Программа для вычисления функции - Pascal (80312)

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

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

Составить программу для вычисления функции (функция внизу), где x - меньший корень уравнения ax^2+bx+c=0. Значения a, b, с задавать при вводе. На экран дисплея вывести значения a, b, c, x, y. Спасибо

Решение задачи: «Программа для вычисления функции»

textual
Листинг программы
var a,b,c,d,x1,x2,x,y: real;
    k:byte;
begin
writeln('Введите коэффициенты квадратного уравнения a,b,c');
readln(a,b,c);
d:=b*b-4*a*c;
k:=0;
if d<0 then write('Уравнение не имеет действительных корней')
else if d=0 then write('Уравнение имеет только 1 действительный корень')
else
 begin
  x1:=(-b-sqrt(d))/(2*a);
  x2:=(-b+sqrt(d))/(2*a);
  if x1<x2 then x:=x1
  else x:=x2;
  writeln('x1=',x1:0:3,' x2=',x2:0:3,' x=',x:0:3);
  if x<0 then y:=x+cos(x)/(x*x-1)
  else
   begin
    if x=0 then k:=1
    else y:=(x*x+1)*cos(x)/(x*x);
   end;
   if k=1 then write('Значение Y не определено, деление на 0')
   else write('Y=',y:0:3)
  end;
end.

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

  1. Объявление переменных:
    • a, b, c, d, x1, x2, x, y - вещественные числа
    • k - целое без знака
  2. Ввод значений коэффициентов квадратного уравнения a, b и c с помощью функции readln
  3. Вычисление дискриминанта квадратного уравнения: d := b*b - 4*a*c
  4. Установление начального значения переменной k как 0: k := 0
  5. Проверка условия:
    • Если дискриминант меньше 0, то выводится сообщение Уравнение не имеет действительных корней
    • В ином случае, если дискриминант равен 0, выводится сообщение Уравнение имеет только 1 действительный корень
    • В остальных случаях выполняется следующий блок:
  6. Нахождение корней квадратного уравнения: x1: = (-b-sqrt(d))/(2*a) и x2 := (-b+sqrt(d))/(2*a)
  7. Проверка условия:
    • Если x1 меньше x2, то x присваивается значение x1
    • В противном случае x присваивается значение x2
  8. Вывод корней уравнения x1, x2 и x с точностью до 3 десятичных знаков
  9. Проверка условия:
    • Если x меньше 0, то y присваивается значение x + cos(x)/(x*x-1)
    • В ином случае:
      • Если x равен 0, устанавливается значение k равное 1
      • В остальных случаях y присваивается значение (x*x+1)*cos(x)/(x*x)
  10. Проверка условия:
    • Если k равно 1, выводится сообщение Значение Y не определено, деление на 0
    • В ином случае выводится значение Y с точностью до 3 десятичных знаков.

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

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