Вычислить значение выражения - PascalABC.NET (24515)
Формулировка задачи:
Написал программу для решения, но она оказалась нерабочей. Мне надо чтобы при введении x=3 и c=0 прога должна выдать нет решения
а при x=9 и c=-1 ответ 2
Листинг программы
- program s1;
- var x,c,b,y:real;
- begin
- writeln (x,c);
- readln (x,c);
- begin
- if c<>0 then
- b:=1/c;
- begin
- if c>=-5 then
- x:=sqrt(5+c);
- end;
- begin
- if x>=sqrt(5+c) then
- begin
- y:=sqrt(1+sqrt(x));
- writeln(y);
- end
- else
- if x<=b then
- begin
- if x<>-5 then
- begin
- Y:=1/x+5;
- writeln(y);
- else writeln('нет решения');
- end
- else
- writeln('нет решения');
- end
- else
- if x>=1 then begin
- y:=sqrt(x+1);
- writeln(y);
- else writeln('нет решения');
- end
- else writeln('нет решения');
- end;
- end;
- end.
Решение задачи: «Вычислить значение выражения»
textual
Листинг программы
- procedure err;
- begin
- WriteLn('Нет решений.');
- Halt;
- end;
- begin
- var x := ReadLnReal('x =');
- var c := ReadLnReal('c =');
- if c = 0 then err;
- var a := sqrt(5 + c); var b := 1 / c;
- if a < b then err;
- if x <= b then WriteLn('y = ', sqrt(x + 1))
- else if x < a then WriteLn('y = ', 1 / (x + 5))
- else { x >= a } WriteLn('y = ', sqrt(a + sqrt(x)));
- end.
Объяснение кода листинга программы
- Представлен код на языке PascalABC.Net
- Задача - вычислить значение выражения
- Введенные переменные:
- x (считывается значение с помощью ReadLnReal)
- c (считывается значение с помощью ReadLnReal)
- Если c равно нулю, то выводится сообщение
Нет решений.
и выполнение программы прекращается с помощью Halt - Вычисляются значения переменных a и b:
- a = sqrt(5 + c)
- b = 1 / c
- Если a меньше b, то выводится сообщение
Нет решений.
- Если x меньше или равно b, то выводится значение y равное sqrt(x + 1)
- Если x меньше a, то выводится значение y равное 1 / (x + 5)
- Если x больше или равно a, то вычисляется значение y равное sqrt(a + sqrt(x))
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д