Можно ли с точностью стереть строку в 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
, цикл завершается, и программа закрывается.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д