Нарисовать 4 вида стрелы - Turbo Pascal
Формулировка задачи:
Нужно нарисовать стрелу повёрнутую влево, право, вверх , вниз.
Как сделать чтоб можно было выбрать какое изображение строится?
Например нажимают "1" -влево "2"- вправо "3"-вверх
"4"-вниз
Вот изображения стрел
Вправо:
Влево:
Вверх
Вниз:
Листинг программы
- line (100,200,600,200);
- line (600,200,500,100);
- line (600,200,500,300);
- line (500,100,500,300);
Листинг программы
- line (100,200,600,200);
- line (100,200,200,100);
- line (100,200,200,300);
- line (200,100,200,300);
Листинг программы
- line (200,200,200,700);
- line (200,200,100,300);
- line (200,200,300,300);
- line (100,300,300,600);
Листинг программы
- line (200,200,200,700);
- line (200,700,100,600);
- line (200,700,300,600);
- line (100,600,300,600);
Правильное изображение.
Вверх
Листинг программы
- line (200,200,200,700);
- line (200,200,100,300);
- line (200,200,300,300);
- line (100,300,300,300);
Решение задачи: «Нарисовать 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.
- В основной части программы в цикле повторяется следующее:
- Выводится приглашение для ввода выбора действия.
- Считывается ввод пользователя.
- Проверяется введенный вариант.
- Если введенный вариант соответствует одному из ожидаемых вариантов, то выполняется соответствующий код.
- Если введенный вариант не соответствует ожидаемым вариантам, то программа завершается.
- Программа завершается после того, как были проверены все варианты ответа.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д