Консультация № 195690
21.05.2019, 23:27
0.00 руб.
23.05.2019, 09:36
0 2 1
скачать файл 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]

Обсуждение

давно
Профессор
401888
1232
22.05.2019, 10:02
общий
Адресаты:
Если Вас устраивает этот код, а он рабочий, учтите замечания из консультации 159689.
давно
Профессор
401888
1232
26.05.2019, 07:49
общий
это ответ
Здравствуйте, mustang289!
Думаю у Вас здесь те же проблемы что и в предыдущей консультации (№ 195689). Там приложены недостающие у Вас файлы модулей. Приведенный код рабочий.
Форма ответа