Можно ли с точностью стереть строку в 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.

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

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

  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
Похожие ответы