Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 17.07.2010, 00:27   #1
Голем
Новичок
Джуниор
 
Регистрация: 17.07.2010
Сообщений: 10
Вопрос задача паскаль

скажите плиз как считать инфу с файла и избавиться от ошибки 106
Голем вне форума Ответить с цитированием
Старый 17.07.2010, 00:30   #2
Голем
Новичок
Джуниор
 
Регистрация: 17.07.2010
Сообщений: 10
По умолчанию

вот текст проги:
Program Voln;

Uses Crt;

var



XS, YS, XE, YE : Byte;

X, Y, I : Byte;

MapM : array [1..10, 1..10] of Byte;

Moves : Byte;

MovesX : array [1..100] of Byte;

MovesY : array [1..100] of Byte;

Procedure Next(Var X, Y : Byte);

Begin

If (X <10) and (MapM[X, Y] - MapM[X + 1, Y] = 1) then

Begin

X := X + 1;

Exit;

End;

If (X >1) and (MapM[X, Y] - MapM[X - 1, Y] = 1) then

Begin

X := X - 1;

Exit;

End;

If (Y <10) and (MapM[X, Y] - MapM[X, Y + 1] = 1) then

Begin

Y := Y + 1;

Exit;

End;


If (Y >1) and (MapM[X, Y] - MapM[X, Y - 1] = 1) then

Begin

Y := Y - 1;

Exit;

End;

End;
const
n=10;
type
t= array[1..n, 1..n] of integer;

var

Map:t;

f: text;
k,j:integer;


Begin

ClrScr;
assign(f, 'karta.pas');
reset(f);
Writeln('ichodnaya karta');

for x:=1 to n do
for y:=1 to n do



readln(f, Map[x,y]);




For Y := 1 to 10 do

Begin

For X := 1 to 10 do Write(Map[X, Y], ' ');

WriteLn;

End;

WriteLn('Please enter X and Y of the start: ');

ReadLn(XS, YS);

WriteLn('Please enter X and Y of the end: ');

ReadLn(XE, YE);
If (XS = XE) or (YS = YE) then
Begin

WriteLn('Start = End. Error!!!');

ReadLn;

Halt;

End;

If (Map[XS, YS] = 1) or (Map[XE, YE] = 1) then

Begin

WriteLn('Error!!!');

ReadLn;

Halt;

End;

MapM[XS, YS] := 1;

I := 1;

Repeat

I := I + 1;

For Y := 1 to 10 do

For X := 1 to 10 do

If MapM[X, Y] = I - 1 then

Begin

If (Y <10) and (MapM[X, Y + 1] = 0)
and (Map[X, Y+1] = 0) Then MapM[X, Y+1] := I;

If (Y >1)
and (MapM[X, Y-1] = 0) and (Map[X, Y-1] = 0) Then MapM[X, Y-1] := I;

If (X <10)
and (MapM[X+1, Y] = 0) and (Map[X+1, Y] = 0) Then MapM[X+1, Y] := I;

If (X >1)
and (MapM[X-1, Y] = 0) and (Map[X-1, Y] = 0) Then MapM[X-1, Y] := I;

End;

If I = 100 then Begin

WriteLn('You can''t go there!!!');

ReadLn;

Halt;

End;

{For X := 1 to 10 do begin

For y := 1 to 10 do

Write(MapM[X, Y]:4);
Writeln
End;
Readln; }

Until MapM[XE, YE] >0;
Writeln;
Moves := I - 1;

X := XE;

Y := YE;

I := Moves;

Map[XE, YE] := 4;

Repeat

MovesX[I] := X;

MovesY[I] := Y;

Next(X, Y);

Map[X, Y] := 3;

I := I - 1;

Until (X = XS) and (Y = YS);

Map[XS, YS] := 2;

For I := 1 to Moves do WriteLn('X = ', MovesX[I],', Y = ', MovesY[I]);

WriteLn('Total: ', Moves, ' moves');

ReadLn;

For x := 1 to 10 do

Begin

For y := 1 to 10 do Write(Map[X, Y], ' ');

WriteLn;

End;

ReadLn;

End.
вот что в файле:
Map: ( (0, 0, 1, 0, 0, 0, 0, 0, 0, 0),
(1, 0, 0, 0, 0, 1, 0, 0, 1, 0),
(0, 0, 0, 1, 1, 1, 0, 0, 1, 1),
(0, 1, 0, 0, 0, 1, 0, 0, 1, 0),
(0, 0, 0, 0, 1, 1, 1, 0, 1, 0),
(0, 0, 1, 1, 1, 0, 1, 0, 0, 0),
(0, 0, 0, 1, 0, 0, 1, 0, 0, 0),
(1, 1, 0, 1, 0, 0, 1, 1, 1, 0),
(0, 1, 0, 0, 0, 0, 1, 0, 0, 0),
(0, 1, 0, 0, 0, 0, 1, 0, 0, 0) );
Голем вне форума Ответить с цитированием
Старый 17.07.2010, 01:20   #3
spamer
Software Developer
Старожил
 
Аватар для spamer
 
Регистрация: 19.12.2008
Сообщений: 2,070
По умолчанию

В коде не разбирался, но считать поле из файла для игры можно вот как-то так:
PHP код:
...

var
  
x,Integer;
begin
assignfile
(f,'Test.txt');
reset(f);
  for 
y:=1 to n do
    for 
x:=1 to m do
      if 
x<m then
        read
(f,mas[x,y])
      else
        
readln(f,mas[x,y]);
closefile(f);

... 
Будь проще и люди к тебе потянутся
spamer вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
задача по Паскаль... Вера123 Помощь студентам 3 09.06.2009 21:20
Задача на Паскаль Julia86 Помощь студентам 1 08.03.2009 11:44
Задача по паскаль. aleksandr_dss Помощь студентам 1 31.12.2008 00:09
ПАСКАЛЬ задача gotex Помощь студентам 3 04.06.2008 21:08