Нарисовать 4 вида стрелы - Turbo Pascal
Формулировка задачи:
Нужно нарисовать стрелу повёрнутую влево, право, вверх , вниз.
Как сделать чтоб можно было выбрать какое изображение строится?
Например нажимают "1" -влево "2"- вправо "3"-вверх
"4"-вниз
Вот изображения стрел
Вправо:
Влево:
Вверх
Вниз:
Правильное изображение.
Вверх
Решение задачи: «Нарисовать 4 вида стрелы»
textual
Листинг программы
uses graph,crt;
const x=320;
y=240;
a=220;
procedure strela(k1x,k1y,k2x,k2y,k3x,k3y:integer);
var h,x1,y1,x2,y2,x3,y3:integer;
begin
x1:=x+k1x*a;
y1:=y+k1y*a;
h:=a div 5;
x2:=x1+k2x*h;
y2:=y1+k2y*h;
x3:=x1+k3x*h;
y3:=y1+k3y*h;
line(x,y,x1,y1);
line(x1,y1,x2,y2);
line(x1,y1,x3,y3);
line(x2,y2,x3,y3);
readln;
restorecrtmode;
end;
var g,d:integer;
w:char;
begin
repeat
clrscr;
writeln('1-left');
writeln('2-right');
writeln('3-up');
writeln('4-down');
writeln('else - exit');
readln(w);
case w of
'1':begin
initgraph(g,d,'');
strela(-1,0,1,1,1,-1);
end;
'2':begin
initgraph(g,d,'');
strela(1,0,-1,1,-1,-1);
end;
'3':begin
initgraph(g,d,'');
strela(0,-1,-1,1,1,1);
end;
'4':begin
initgraph(g,d,'');
strela(0,1,-1,-1,1,-1);
end;
end;
until not(w in ['1'..'4']);
end.
Объяснение кода листинга программы
- Подключаются необходимые библиотеки graph и crt.
- Задаются начальные значения переменных x, y, a.
- Создается процедура strela, которая принимает 5 аргументов k1x, k1y, k2x, k2y, k3x, k3y типа integer.
- Внутри процедуры используются локальные переменные h, x1, y1, x2, y2, x3, y3 типа integer.
- Выполняются следующие действия:
- x1 и y1 вычисляются как среднее арифметическое от x и y с множителем a.
- h вычисляется как a, деленное на 5.
- x2 и y2 вычисляются как среднее арифметическое от x1 и y1 с множителем h.
- x3 и y3 вычисляются как среднее арифметическое от x1 и y1 с множителем 3*h.
- Выводятся линии на экран с помощью функции line.
- Восстанавливается режим экрана с помощью функции restorecrtmode.
- В основной части программы в цикле повторяется следующее:
- Выводится приглашение для ввода выбора действия.
- Считывается ввод пользователя.
- Проверяется введенный вариант.
- Если введенный вариант соответствует одному из ожидаемых вариантов, то выполняется соответствующий код.
- Если введенный вариант не соответствует ожидаемым вариантам, то программа завершается.
- Программа завершается после того, как были проверены все варианты ответа.