Программа перестает работать при наличии меню - Pascal ABC

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

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

Без меню все работает. Сделал в меню, включаю программу решения биквадратных уравнений под номером 1, ввожу нужные данные, потом просто все стирается и возвращается в меню не выводя результата. В чем может быть проблема? Заранее большое спасибо.

Решение задачи: «Программа перестает работать при наличии меню»

textual
Листинг программы
program test;
 
uses
  CRT;
 
var
  a, s, r, b, c, h, x1, x2, x3, x4, x5, x6, d: real;
  q: integer;
  V: char;
begin
  repeat
    clrscr;
    writeln('Введите номер фигуры');
    writeln('Программа решения биквадратных-1');
    writeln('Программа решения квадратных-2');
    writeln('круг-3');
    writeln('Выход-q');
    readln(V);
    case V of
      '1':
      begin//программа решает биквадратное уравнение вида a*x^4+b*x^2+c'
        writeln('программа решает биквадратное уравнение вида a*x^4+b*x^2+c');
        Write('введите a= ');
        Readln(a);
        Write('введите b= ');
        Readln(b);
        Write('введите c= ');
        Readln(c);
        d := b * b - 4 * a * c;
        if d < 0 then
          writeln('уравение не имеет решений')
        else
        begin
          x1 := (-b + sqrt(d)) / (2 * a);
          x2 := (-b - sqrt(d)) / (2 * a);
          if (x1 < 0) and (x2 < 0) then
            writeln('уравение не имеет решений')
          else
          begin
            if x1 >= 0 then
            begin
              x3 := sqrt(x1);
              x4 := -sqrt(x1);
              Write('ответ: ', x3, ';', x4, ';');
            end;
            if x2 >= 0 then
            begin
              x5 := sqrt(x2);
              x6 := -sqrt(x2);
              writeln(x5, ' ;', x6, '.');
            end;
          end;
        end;
        writeln('Press ENTER to continue...');
        readln;
      end;
      '2':
      begin//программа решения квадратных уравнений
        clrscr;
        Write('Wwedite A: ');
        readln(a);
        Write('Wwedite B: ');
        readln(b);
        Write('Wwedite C: ');
        readln(c);
        {Вычисляем дискриминант}
        d := b * b - 4 * a * c;
        {Если дискриминант больше 0, то вычисляем корни и выводим на экран}
        if d > 0 then
        begin
          x1 := (b - sqrt(d)) / (2 * a);
          x2 := (-b - sqrt(d)) / (2 * a);
          writeln('x1 = ', x1: 0: 4);
          writeln('x2 = ', x2: 0: 4);
        end;
        {Если дискриминант равен 0, то вычисляем один корень и выводим на экран}
        if d = 0 then
        begin
          x1 := -(b / (2 * a));
          writeln('корень = ', x1: 0: 4);
        end;
        {Если дискриминант меньше 0, то выводим сообщение}
        if d < 0 then
        begin
          writeln('Korney net');
        end;
        readln;
      end;
      '3':
      begin//круг
        writeln('Площадь круга');
        writeln('радиус круга');
        readln(r);
        s := 3.14 * r * r;
        writeln('Решение готово');
        writeln('Площадь круга=', s);
        writeln('Нажмите Enter для отчистки экрана.');
        readln;
      end;
    end;
  until V = 'q';
  writeln('Программа завершена.Для выхода нажмите любую клавишу');
  readln;
end.

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

  1. Переменные a, b, c, d, x1, x2, x3, x4, x5, x6 объявлены и инициализированы значениями 0.
  2. В блоке repeat-until программа предлагает пользователю ввести номер фигуры.
  3. В зависимости от введенного номера фигуры программа выполняет различные действия:
    • Если введено '1', программа решает биквадратное уравнение и выводит значения x1, x2, x3, x4, x5, x6.
    • Если введено '2', программа решает квадратное уравнение и выводит значения x1, x2, x3, x4, x5, x6.
    • Если введено '3', программа вычисляет площадь круга и выводит значение радиуса круга.
  4. Программа продолжает выполняться до тех пор, пока пользователь не введет 'q'.
  5. По окончании работы программы выводится сообщение о завершении и предлагается нажать любую клавишу для выхода.

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


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

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

12   голосов , оценка 4.167 из 5
Похожие ответы