Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Lazarus, Free Pascal, CodeTyphon
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 02.12.2016, 10:03   #1
igormel
Пользователь
 
Регистрация: 11.11.2016
Сообщений: 22
По умолчанию FreePascal. использовать процедуры и функции. Получить решение биквадратного уравнения.

Программа FreePascal. Нужно использовать процедуры.
Получить решение биквадратного уравнения a*x^4+b*x^2+c=0

Последний раз редактировалось igormel; 02.12.2016 в 10:12.
igormel вне форума Ответить с цитированием
Старый 02.12.2016, 10:15   #2
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,238
По умолчанию

насколько я помню из детства, для решения биквадратного уравнения заданного вида, нужно ввести промежуточную переменную (пусть это будет t), равную x^2
тогда получаем обычное квадратное уравнение:
a*t^2 +b*t + c=0
решаем его относительно t
для положительных значений t берём x = +/- корень из t
в общем случае получается 4-ре числа.

В чём проблема написать код для решения на Паскаль? Не знаете, как дискриминант вычислить? или формулу забыли?
Serge_Bliznykov вне форума Ответить с цитированием
Старый 02.12.2016, 10:17   #3
igormel
Пользователь
 
Регистрация: 11.11.2016
Сообщений: 22
По умолчанию

Смысл в том, что нужно решить через процедуры
igormel вне форума Ответить с цитированием
Старый 02.12.2016, 10:19   #4
p51x
Старожил
 
Регистрация: 15.02.2010
Сообщений: 15,695
По умолчанию

и в чем проблема? В процедуры можно передать параметр "по ссылке" и получить результат в него, а не как возвращаемое значение.
p51x вне форума Ответить с цитированием
Старый 02.12.2016, 10:22   #5
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,238
По умолчанию

Цитата:
Сообщение от igormel Посмотреть сообщение
Смысл в том, что нужно решить через процедуры
решение без процедуры есть?

выкладывайте сюда, посмотрим, что нужно подправить.

А есть мысли, что именно должно быть вынесено в процедуру(ы)?
если да - то задача тривиальна.
если нет - тогда нужно проявлять фантазию (выносить в процедуру ввода a,b,c, выносить в процедуру вычисление квадратного уравнения и т.д.)
Serge_Bliznykov вне форума Ответить с цитированием
Старый 02.12.2016, 10:22   #6
igormel
Пользователь
 
Регистрация: 11.11.2016
Сообщений: 22
По умолчанию

Я в программировании нуб. Раз на то пошло, то пожалуйста, реите эту задачу для меня.
igormel вне форума Ответить с цитированием
Старый 02.12.2016, 10:24   #7
igormel
Пользователь
 
Регистрация: 11.11.2016
Сообщений: 22
По умолчанию

Program Sq2;
Var A, B, C, D, X, X1, X2 : Real;
Begin
Writeln ('Введите коэффициенты уравнения (A, B, C) ');
readln(a,b,c);
If A=0 Then
If B=0 Then
If C=0 Then Writeln('X - любое число')
Else Writeln('Корней нет! ')
Else
Begin
X:=-C/B;
Writeln('X=',X:8:3);
End
Else
Begin
D:=B*B-4*A*C;
If D<0 Then Writeln ('Корней нет! ')
Else
Begin
X1:=(-B+SQRT(D))/2/A;
X2:=(-B-SQRT(D))/2/A;
Writeln ('X1=', X1:8:3, ' X2=',X2:8:3);
End;
End;
End.
Вот эта задача, но она без использования процедур. И тут обычное квадратное уравнение, но степени исправить я смогу.
igormel вне форума Ответить с цитированием
Старый 02.12.2016, 10:56   #8
type_Oleg
Старожил
 
Аватар для type_Oleg
 
Регистрация: 02.03.2008
Сообщений: 2,538
По умолчанию

Цитата:
Сообщение от igormel Посмотреть сообщение
И тут обычное квадратное уравнение
Как вам уже советовали, возьмите корень квадратный из положительных корней.

По поводу процедур - непонятно, что вам непонятно. А объяснять вам основы Паскаль неохота, это элементарно, Ватсон.
Посмотрите по форуму в других темах, как создают процедуры. Тут уже 100500 раз такие вопросы были.
type_Oleg вне форума Ответить с цитированием
Старый 02.12.2016, 11:04   #9
igormel
Пользователь
 
Регистрация: 11.11.2016
Сообщений: 22
По умолчанию

Пожалуйста, напишите саму процедуру. У меня после нового года экзамен, я в этом всём буду разбиратся. Именно сейчас мне нужна сама задача, Поэтому прошу вас
igormel вне форума Ответить с цитированием
Старый 02.12.2016, 11:37   #10
type_Oleg
Старожил
 
Аватар для type_Oleg
 
Регистрация: 02.03.2008
Сообщений: 2,538
По умолчанию

Цитата:
Сообщение от igormel Посмотреть сообщение
Пожалуйста, напишите саму процедуру
Поиск корней квадратного уравнения:
Код:
procedure SQua2(A,B,C: Real;var D,x1,x2:Real);
var s:Real;
Begin
 D:=B*B-4*A*C;
 if D<0 then Exit;
 s:=Sqrt(D);
 x1:=(-B+s)/(2*A);
 x2:=(-B-s)/(2*A);
end;
После вызова провеять:
Код:
 if D<0 then Writeln ('Корней нет! ')
 // и т.д.
type_Oleg вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Pascal. Использовать функции/процедуры максич Паскаль, Turbo Pascal, PascalABC.NET 4 12.12.2015 09:51
Как использовать ListBox внутри своей функции\процедуры calypso C++ Builder 1 29.05.2013 17:37
Двумерная матрица. Решение Через Процедуры и функции. poseidonLOST Паскаль, Turbo Pascal, PascalABC.NET 1 16.12.2010 21:19
Решение биквадратного уравнения Котакот Помощь студентам 26 31.10.2009 20:19
Решение биквадратного уравнения Паскаль.... КиношкА Помощь студентам 8 19.12.2008 01:25