Создайте программу, которая запрашивает длины двух отрезков и выводит на экран эти отрезки - Pascal ABC
Формулировка задачи:
Создайте программу, которая запрашивает длины двух отрезков и выводит на экран эти отрезки ( в масштабе 1 ед.=5 пикселей) и их "общую меру" (отрезок максимальной длины, который целое число раз укладывается в заданных отрезках);
Пример:
Решение задачи: «Создайте программу, которая запрашивает длины двух отрезков и выводит на экран эти отрезки»
textual
Листинг программы
uses graphABC,crt; var a,b,c,x,y:integer; begin repeat writeln('Введите длины двух отрезков от 1 до ',windowwidth div 5); readln(a,b); until(a>0)and(a<=windowwidth div 5)and(b>0)and(b<=windowwidth div 5); x:=a; y:=b; while x<>y do if x>y then x:=x-y else if y>x then y:=y-x; c:=x; hidecursor; clearwindow; textout(0,10,'Длины отрезков: '+inttostr(a)+' '+inttostr(b)); textout(0,30,'Общая мера= '+inttostr(c)); line(30,60,30+a*5,60); line(30,80,30+b*5,80); setpencolor(clRed); line(30,100,30+c*5,100); end.
Объяснение кода листинга программы
- В начале кода подключаются необходимые модули graphABC и crt.
- Переменные a, b, c, x и y объявлены как целочисленные.
- Запускается цикл repeat, который будет выполняться до тех пор, пока пользователь не введет длины отрезков, удовлетворяющие условиям (от 1 до windowwidth div 5).
- Внутри цикла считываются длины отрезков a и b с помощью функции readln.
- Переменные x и y инициализируются значениями a и b соответственно.
- Запускается цикл while, который будет выполняться до тех пор, пока x не станет равным y.
- Внутри цикла while происходит сравнение значений x и y и, если x больше y, то x уменьшается на y, а если y больше x, то y уменьшается на x.
- Переменная c инициализируется значением x.
- С помощью функции hidecursor скрывается курсор, а с помощью функции clearwindow очищается окно.
- Выводится текст с длинами отрезков и их общей мерой с помощью функций textout и inttostr.
- С помощью функции line рисуются три линии: первая соединяет точки (30,100), (30+a5,100), (30+b5,100), вторая - (30,80), (30+b5,80), (30+c5,80), третья - (30,60), (30+a5,60), (30+c5,60).
- С помощью функции setpencolor устанавливается цвет пера в красный.
- Цикл while завершается, когда x становится равным y.
- Программа заканчивается с помощью функции end.