Модифицировать квадратное уравнение, добавив проверку того, что первый коэффициент не равен нулю - Pascal ABC

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

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

Модифицируйте программу расчета корней квадратного уравнения,добавив к ней проверку того, что первый коэффициент не равен нулю. В противном случае сообщите пользователю , что уравнение не квадратное, а линейное и вычислите его единственный корень.Если два коэффициента равны нулю, а третий не равен - сообщите пользователю что корней нет. Если все коэффициенты равны нулю, сообщите, что корнем является любое число.

Решение задачи: «Модифицировать квадратное уравнение, добавив проверку того, что первый коэффициент не равен нулю»

textual
Листинг программы
if (a=0)and(b=0)and(c=0) then s:='x-любое число'
else if (a=0)and(b=0)and(c<>0) then s:='действительных корней нет'
else if (a=0)and(b<>0)and(c=0) then s:='x=0'
else if (a=0)and(b<>0)and(c<>0) then
 begin
  x1:=-c/b;
  str(x1:0:2,s1);
  s:='x='+s1
 end
else if (a<>0)and(b=0)and(c=0) then s:='x1=x2=0'
else if (a<>0)and(b=0)and(c<>0) then
 begin
  if -c/a<0 then s:='действительных корней нет'
  else
   begin
    x1:=sqrt(-c/a);
    x2:=-x1;
    str(x1:0:2,s1);
    str(x2:0:2,s2);
    s:='x1='+s1+'   x2='+s2;
   end
 end
else if(a<>0)and(b<>0)and(c=0) then
 begin
  x2:=-b/a;
  str(x2:0:2,s2);
  s:='x1=0 x2='+s2
 end
else
 begin
  d:=b*b-4*a*c;
  if d<0 then s:='действительных корней нет'
  else if d=0 then
   begin
    x1:=-b/(2*a);
    str(x1:0:2,s1);
    s:='x1=x2='+s1;
   end
  else
   begin
    x1:=(-b-sqrt(d))/(2*a);
    x2:=(-b+sqrt(d))/(2*a);
    str(x1:0:2,s1);
    str(x2:0:2,s2);
    s:='x1='+s1+'   x2='+s2;
   end
 end

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

  1. Проверяется условие a=0 and b=0 and c=0. Если оно выполняется, то присваивается переменной s значение 'x-любое число'.
  2. Проверяется условие a=0 and b=0 and c<>0. Если оно выполняется, то присваивается переменной s значение 'действительных корней нет'.
  3. Проверяется условие a=0 and b<>0 and c=0. Если оно выполняется, то присваивается переменной s значение 'x=0'.
  4. Проверяется условие a=0 and b<>0 and c<>0. Если оно выполняется, то выполняется блок кода:
    • присваивается переменной x1 значение -c/b;
    • выводится значение x1 с помощью функции str();
    • присваивается переменной s значение 'x='+s1.
  5. Проверяется условие a<>0) and (b=0) and (c=0). Если оно выполняется, то присваивается переменной s значение 'x1=x2=0'.
  6. Проверяется условие a<>0) and (b=0) and (c<>0). Если оно выполняется, то выполняется блок кода:
    • если -c/a<0, то присваивается переменной s значение 'действительных корней нет';
    • иначе выполняется блок кода:
      • присваивается переменной x1 значение sqrt(-c/a);
      • присваивается переменной x2 значение -x1;
      • выводится значение x1 с помощью функции str();
      • присваивается переменной s значение 'x1='+s1+'   x2='+s2;
    • в конце выполняется оператор s:='x1='+s1+'   x2='+s2;.
  7. Если ни одно из вышеперечисленных условий не выполняется, то выполняется блок кода:
    • вычисляется значение d как bb-4a*c;
    • проверяется значение d. Если оно меньше нуля, то присваивается переменной s значение 'действительных корней нет';
    • иначе выполняется блок кода:
      • присваивается переменной x1 значение (-b-sqrt(d))/(2*a);
      • присваивается переменной x2 значение (-b+sqrt(d))/(2*a);
      • выводятся значения x1 и x2 с помощью функции str();
      • присваивается переменной s значение 'x1='+s1+'   x2='+s2;.

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

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