Можно ли с точностью стереть строку в GraphABC? - PascalABC.NET
Формулировка задачи:
Нас учили что когда в окне graphabc идут строки текста, их можно стереть с помощью оператора clearwindow; но этот оператор лишь закрашивает участок белым цветом, а текст дальше идет под этим закрашенным участком т.е ниже, можно ли как то сделать, чтобы текст писался сначала или же над этим белым участком?
Решение задачи: «Можно ли с точностью стереть строку в GraphABC?»
textual
Листинг программы
- program uravnenie;
- uses
- graphabc;
- var
- a, b, c, d, x2, x1: real;
- z: shortint;
- begin
- repeat
- TextOut(1, 1, 'a*x2+b*x+c=0');
- TextOut(1, 20, 'Задайте коэффиценты a, b, c:');
- readln(a, b, c);
- if (a = 0) and (b <> 0) then
- begin
- TextOut(1, 50, 'Это линейное уравнение');
- x1 := (-c) / b;
- TextOut(1, 70, 'X=' + FloatToStr(x1));
- end
- else
- if (a = 0) and (b = 0) then begin
- TextOut(1, 50, 'Это не уравнение!')
- end else
- begin
- TextOut(1, 50, 'Это квадратное уравнение');
- d := sqr(b) - 4 * a * c;
- if d > 0 then begin
- x1 := (-b + sqrt(d)) / (2 * a);
- x2 := (-b - sqrt(d)) / (2 * a);
- if x1 > x2 then TextOut(1, 80, 'Первый корень x1=' + FloatToStr(x2) + ' Второй корень x2=' + FloatToStr(x1)) else
- TextOut(1, 80, 'Первый корень x1=' + FloatToStr(x1) + ' Второй корень x2=' + FloatToStr(x2));
- end
- else
- if d = 0 then
- begin
- x1 := (-b) / (2 * a);
- TextOut(1, 80, 'Корень x=' + FloatToStr(x1));
- end
- else
- TextOut(1, 80, 'Корней нет');
- end;
- repeat
- TextOut(1, 110, '1.Заново');
- TextOut(1, 130, '2.Exit');
- readln(z);
- case z of
- 1: clearwindow;
- 2: closewindow;
- end;
- until (z < 3) and (z > 0);
- until z = 2;
- end.
Объяснение кода листинга программы
Список действий в коде:
- Программа начинается с повторения блока кода, который будет выполняться до тех пор, пока пользователь не введет
2
для выхода. - В начале каждого цикла выводится уравнение, затем пользователю предлагается ввести коэффициенты a, b и c.
- Если a равно 0 и b не равно 0, то это означает, что уравнение линейное, и программа вычисляет и выводит значение x1.
- Если a равно 0 и b равно 0, то это означает, что уравнение не является уравнением, и программа выводит соответствующее сообщение.
- Если a не равно 0, то это означает, что уравнение квадратное, и программа вычисляет дискриминант (d).
- Если d больше 0, то программа вычисляет и выводит значения x1 и x2.
- Если d равно 0, то программа вычисляет и выводит значение x1.
- Если d меньше 0, то это означает, что корней нет, и программа выводит соответствующее сообщение.
- После этого пользователю предлагается выбрать действие: начать заново или выйти.
- Если пользователь выбирает
1
, то программа сбрасывает окно и возвращается к началу. - Если пользователь выбирает
2
, то программа закрывает окно и завершает работу. - Цикл продолжается до тех пор, пока пользователь не введет
2
. - Когда пользователь вводит
2
, цикл завершается, и программа закрывается.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д