Найти корни уравнения - 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.
Объяснение кода листинга программы
- Создается функция
asin
, которая вычисляет арксинус числаx
. - Создаются переменные
n
,a
,b
,c
,d
,x
,x1
,x2
,as1
иas2
, которые будут использоваться для решения уравнения. - Выводится запрос на ввод значения
n
, которое будет использоваться в уравнении. - Проверяется значение
n
. Еслиn
равно нулю, выводится сообщение о том, что уравнение имеет один кореньx = pi/2
. - Если
n
не равно нулю, выполняется ряд вычислений для определения корней уравнения. - Если дискриминант
d
меньше нуля, выводится сообщение о том, что решений нет. - Если
d
равен нулю, вычисляется значениеx
и выводится сообщение о том, что уравнение имеет один кореньx = asin(x)
. - Если
d
больше нуля, вычисляются значенияx1
иx2
, и выводится сообщение о том, что уравнение имеет два корняx1 = asin(x1)
иx2 = asin(x2)
. - Код завершается.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д