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