Найти корни уравнения - Pascal ABC (14400)

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

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

На входе даётся число n. Нужно решить уравнение

Решение задачи: «Найти корни уравнения»

textual
Листинг программы
//функция arcsin, в Паскаль АВС.net не нужна, там есть
function asin(x:real):real;
begin
if x=-1 then asin:=-pi/2
else if x=1 then asin:=pi/2
else asin:=arctan(x/sqrt(1-x*x));
end;
var n,a,b,c,d,x,x1,x2,as1,as2:real;
begin
write('n=');
readln(n);
if n=0 then write('Уравнение имеет 1 корень x=pi/2')
else
 begin
 //решаем квадратное уравнение относительно sin(x)
  a:=n*n;
  b:=2*n-1;
  c:=1;
  d:=b*b-4*a*c;
  writeln('d=',d:0:2);//для проверки
  if d<0 then write('Решений нет')
  else if d=0 then
   begin
    x:=-b/2*a;
    writeln('x=',x:0:2);//для проверки
    if abs(x)>1 then write('Решений нет')//|sin|<=1
    else write('Уравнение имеет 1 корень x=',asin(x):0:2);
   end
  else
   begin
    x1:=(-b+sqrt(d))/2/a;
    x2:=(-b-sqrt(d))/2/a;
    writeln('x1=',x1:0:2,'  x2=',x2:0:2);//для проверки
    if (abs(x1)>1)and(abs(x2)>1) then write('Решений нет')
    else if (abs(x1)<=1)and (abs(x2)>1)
    then write('Уравнение имеет 1 корень x=',asin(x1):0:2)
    else if (abs(x2)<=1)and (abs(x1)>1)
    then write('Уравнение имеет 1 корень x=',asin(x2):0:2)
    else write('Уравнение имеет 2 корня x1=',asin(x1):0:2,' x2=',asin(x2):0:2);
   end;
 end;
end.

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

  1. Создается функция asin, которая вычисляет арксинус числа x.
  2. Создаются переменные n, a, b, c, d, x, x1, x2, as1 и as2, которые будут использоваться для решения уравнения.
  3. Выводится запрос на ввод значения n, которое будет использоваться в уравнении.
  4. Проверяется значение n. Если n равно нулю, выводится сообщение о том, что уравнение имеет один корень x = pi/2.
  5. Если n не равно нулю, выполняется ряд вычислений для определения корней уравнения.
  6. Если дискриминант d меньше нуля, выводится сообщение о том, что решений нет.
  7. Если d равен нулю, вычисляется значение x и выводится сообщение о том, что уравнение имеет один корень x = asin(x).
  8. Если d больше нуля, вычисляются значения x1 и x2, и выводится сообщение о том, что уравнение имеет два корня x1 = asin(x1) и x2 = asin(x2).
  9. Код завершается.

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


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

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

15   голосов , оценка 4.133 из 5