скачать файл Listing_sharik.doc [47.5 кб]Здравствуйте! Прошу помощи в следующем вопросе:
задание Построить движение шарика по следующей траектории
код почему не получается где ошибки?
Листинг:
[code lang=pascal h=300]program Sharik;
uses crt,graph;
var
x_h,y_h : integer; //Объявляем переменные координат шара
{ инициализация графического режима
VGA, режим VGAHI 640 x 480 }
procedure Graph_init;
var
d,r,err : integer; //Объявляем переменные графического драйвера,
// графического режима, ошибки
begin
d := VGA; r := VGAHI;
InitGraph(d,r,'');
err := GraphResult; //Проверяем результат последней операции с графикой
if (err <> 0) then //Не ноль означает ошибку!
begin // Сообщение об ошибке и досрочный выход из программы
writeln('Ошибка в инициализации графики!!!');
delay(1000);
halt;
end;
ClearDevice;
end;
{ рисование шара синим цветом }
procedure Shar_blue;
begin
setcolor(1); //Выбираем текущий цвет
circle(x_h,y_h,10); //Рисуем окружность радиусом 10
SetFillStyle(1,1); // Устанавливаем стиль (тип и цвет) заполнения шара
FloodFill(x_h,y_h,1);// Заполняем шар цветом, используя текущий стиль
end;
{ рисование следа шара }
procedure Shar_fon;
begin
setcolor(0); //Выбираем цвет следа шара
circle(x_h,y_h,10); //Рисуем окружность радиусом 10
SetFillStyle(1,0); // Устанавливаем стиль (тип и цвет) заполнения следа шара
FloodFill(x_h,y_h,0);// Заполняем след шара цветом, используя текущий стиль
end;
{ перемещение шарика }
procedure Move;
var
i,k : integer; // Объявляем переменные
begin
for k := 1 to 3 do // Цикл кол-ва «ступеней»
begin
for i := 1 to 50 do // Цикл перемещения по оси Х
begin
Shar_blue; // Вызов процедуры
delay(10);// Задержка
Shar_fon; // Вызов процедуры
delay(10); // Задержка
x_h := x_h - 1; // Смещаем шар на 1 влево
end; //выход из цикла
for i := 1 to 50 do // Цикл перемещения по оси Y
begin
Shar_blue; // Вызов процедуры
delay(5); // Задержка
Shar_fon; // Вызов процедуры
delay(5); // Задержка
y_h := y_h + 1; // Смещаем шар на 1 вниз
end; //выход из цикла
end;
end;
begin
x_h := 600; // Устанавливаем координаты оси Х
y_h := 50; // Устанавливаем координаты оси Y
Graph_init; // Запускаем графический режим
setcolor(3); // Выбираем цвет фона
SetFillStyle(1,3); // Устанавливаем стиль (тип и цвет) заполнения фона
FloodFill(0,0,3); //Заполняем фон
Move; // Запускаем процедуру перемещения шарика
repeat
until keypressed; // Ожидание нажатия любой клавиши
CloseGraph; // Выход из графического режима
end. // Завершение программы
[/code]