Можно ли с точностью стереть строку в GraphABC? - PascalABC.NET

Узнай цену своей работы

Формулировка задачи:

Нас учили что когда в окне graphabc идут строки текста, их можно стереть с помощью оператора clearwindow; но этот оператор лишь закрашивает участок белым цветом, а текст дальше идет под этим закрашенным участком т.е ниже, можно ли как то сделать, чтобы текст писался сначала или же над этим белым участком?

Решение задачи: «Можно ли с точностью стереть строку в GraphABC?»

textual
Листинг программы
  1. program uravnenie;
  2.  
  3. uses
  4.   graphabc;
  5.  
  6. var
  7.   a, b, c, d, x2, x1: real;
  8.   z: shortint;
  9.  
  10. begin
  11.   repeat
  12.     TextOut(1, 1, 'a*x2+b*x+c=0');
  13.     TextOut(1, 20, 'Задайте коэффиценты a, b, c:');
  14.     readln(a, b, c);
  15.     if (a = 0) and (b <> 0) then
  16.     begin
  17.       TextOut(1, 50, 'Это линейное уравнение');
  18.       x1 := (-c) / b;
  19.       TextOut(1, 70, 'X=' + FloatToStr(x1));
  20.     end
  21.     else
  22.     if (a = 0) and (b = 0) then begin
  23.       TextOut(1, 50, 'Это не уравнение!')
  24.     end else
  25.     begin
  26.       TextOut(1, 50, 'Это квадратное уравнение');
  27.       d := sqr(b) - 4 * a * c;
  28.       if d > 0 then begin
  29.         x1 := (-b + sqrt(d)) / (2 * a);
  30.         x2 := (-b - sqrt(d)) / (2 * a);
  31.         if x1 > x2 then TextOut(1, 80, 'Первый корень x1=' + FloatToStr(x2) + ' Второй корень x2=' + FloatToStr(x1)) else
  32.           TextOut(1, 80, 'Первый корень x1=' + FloatToStr(x1) + ' Второй корень x2=' + FloatToStr(x2));
  33.       end
  34.       else
  35.       if d = 0 then
  36.       begin
  37.         x1 := (-b) / (2 * a);
  38.         TextOut(1, 80, 'Корень x=' + FloatToStr(x1));
  39.       end
  40.       else
  41.         TextOut(1, 80, 'Корней нет');
  42.     end;
  43.     repeat
  44.       TextOut(1, 110, '1.Заново');
  45.       TextOut(1, 130, '2.Exit');
  46.       readln(z);
  47.       case z of
  48.         1: clearwindow;
  49.         2: closewindow;
  50.       end;
  51.     until (z < 3) and (z > 0);
  52.   until z = 2;
  53. end.

Объяснение кода листинга программы

Список действий в коде:

  1. Программа начинается с повторения блока кода, который будет выполняться до тех пор, пока пользователь не введет 2 для выхода.
  2. В начале каждого цикла выводится уравнение, затем пользователю предлагается ввести коэффициенты a, b и c.
  3. Если a равно 0 и b не равно 0, то это означает, что уравнение линейное, и программа вычисляет и выводит значение x1.
  4. Если a равно 0 и b равно 0, то это означает, что уравнение не является уравнением, и программа выводит соответствующее сообщение.
  5. Если a не равно 0, то это означает, что уравнение квадратное, и программа вычисляет дискриминант (d).
  6. Если d больше 0, то программа вычисляет и выводит значения x1 и x2.
  7. Если d равно 0, то программа вычисляет и выводит значение x1.
  8. Если d меньше 0, то это означает, что корней нет, и программа выводит соответствующее сообщение.
  9. После этого пользователю предлагается выбрать действие: начать заново или выйти.
  10. Если пользователь выбирает 1, то программа сбрасывает окно и возвращается к началу.
  11. Если пользователь выбирает 2, то программа закрывает окно и завершает работу.
  12. Цикл продолжается до тех пор, пока пользователь не введет 2.
  13. Когда пользователь вводит 2, цикл завершается, и программа закрывается.

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

8   голосов , оценка 3.625 из 5

Нужна аналогичная работа?

Оформи быстрый заказ и узнай стоимость

Бесплатно
Оформите заказ и авторы начнут откликаться уже через 10 минут
Похожие ответы