IPB
ЛогинПароль:

> Прочтите прежде чем задавать вопрос!

1. Заголовок темы должен быть информативным. В противном случае тема удаляется ...
2. Все тексты программ должны помещаться в теги [code=pas] ... [/code].
3. Прежде чем задавать вопрос, см. "FAQ", если там не нашли ответа, воспользуйтесь ПОИСКОМ, возможно такую задачу уже решали!
4. Не предлагайте свои решения на других языках, кроме Паскаля (исключение - только с согласия модератора).
5. НЕ используйте форум для личного общения, все что не относится к обсуждению темы - на PM!
6. Одна тема - один вопрос (задача)
7. Проверяйте программы перед тем, как разместить их на форуме!!!
8. Спрашивайте и отвечайте четко и по существу!!!

> Ханойские башни (вопрос по прогр-к), Программа не выполняется...
Needhelp
сообщение 4.04.2007 20:32
Сообщение #1


Живет здесь...
**

Группа: Пользователи
Сообщений: 69
Пол: Мужской

Репутация: -  0  +


 
program Hanoy;
uses Crt,Graph;
type ArrType =array [1..1] of byte;
var Col,
Beg,End_ :byte;
Arr :^ArrType;
i,j :integer;

CountMoves: longint;

procedure GraphInit;
var GrDr,GrMode:smallint;
begin
GrDr:=d8bit;
GrMode:=m640x480;
InitGraph(GrDr,GrMode,'');
end;
procedure DrawRings;
var a,b,c:byte;
begin
ClearDevice;
SetColor(White);
Line(100,200,100,400);
Line(300,200,300,400);
Line(500,200,500,400);
Line(50,400,550,400);
SetFillStyle(SolidFill, Red);
SetColor(Yellow);
j:=0;a:=0;b:=0;c:=0;
for i:=1 to Col do
case Arr^[i] of
0:Inc(a);
1:Inc(b);
2:Inc©;
end;
for i:=1 to Col do
begin
case Arr^[i] of
0:begin
Bar(100+Arr^[i]*200-i*5,400-a*5,100+Arr^[i]*200+i*5,400-a*5-5);
Rectangle(100+Arr^[i]*200-i*5,400-a*5,100+Arr^[i]*200+i*5,400-a*5-5);
Dec(a);
end;
1:begin
Bar(100+Arr^[i]*200-i*5,400-b*5,100+Arr^[i]*200+i*5,400-b*5-5);
Rectangle(100+Arr^[i]*200-i*5,400-b*5,100+Arr^[i]*200+i*5,400-b*5-5);
Dec(b);
end;
2:begin
Bar(100+Arr^[i]*200-i*5,400-c*5,100+Arr^[i]*200+i*5,400-c*5-5);
Rectangle(100+Arr^[i]*200-i*5,400-c*5,100+Arr^[i]*200+i*5,400-c*5-5);
Dec©;
end;
end;
end;
if ReadKey=#27 then begin
CloseGraph;
halt(1);
end;
while KeyPressed do Readkey;
end;
procedure PrintQuant(c,b,e:byte);
begin
Arr^[c]:=e;
DrawRings;
Inc(CountMoves);
end;
procedure Move(c,b,e:byte);
begin
if c=1 then PrintQuant(c,b,e)
else
begin
Move(c-1,b,3-b-e);
PrintQuant(c,b,e);
Move(c-1,3-b-e,e);
end;
end;
begin
CountMoves := 0;

GraphInit;
Beg:=0;
End_:=2;
Col:=4;
GetMem(Arr,Col);
for i:=1 to Col do
Arr^[i]:=Beg;
DrawRings;
Move(Col,Beg,End_);
Freemem(Arr,Col);
CloseGraph;

writeln('Count = ', CountMoves);
ReadLn;
end.


Выдает такую ошибку (в прикрепленном файле фотка...) в строке var GrDr,GrMode:smallint; (что-то smallint не нравится)...
Может дело в Паскале???


Эскизы прикрепленных изображений
Прикрепленное изображение
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 

Сообщений в этой теме


 Ответить  Открыть новую тему 
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 



- Текстовая версия 20.07.2025 10:42
Хостинг предоставлен компанией "Веб Сервис Центр" при поддержке компании "ДокЛаб"