Помощь - Поиск - Пользователи - Календарь
Полная версия: Массив из многочленов второго степеня.(Delhpi/Pascal)
Форум «Всё о Паскале» > Pascal, Object Pascal > Задачи
Wild_klas
Заданный массив многочленов второй степени, состоящий из трех элементов.
Найти тот, для которого определен интеграл приобретает наименьшего значения на определенном отрезке.


Как в массив записать многочлены? Через функцию можно?
Моя попытка:
Код:



Function Mnogochlen(m1,m2,m3,x:real):real;
Begin
M1:=3*(x*x)+4*x+7;
M2:=6*(x*x)-8*x+3;
M3:=4*(x*x)-x+1;
End;

Type Massiv=array [1..10] of integer;
Const M:massiv of mnogochlen =(M1,m2,m3);

Подскажите, как правильно записать функцию в массив, или процедуру??
Lapp
Цитата(Wild_klas @ 18.11.2010 2:15) *
Как в массив записать многочлены? Через функцию можно?

Это, смотря какой массив. Многочлен второй степени можно представить, как три числа. Как именно - тебе решать. Можно тоже массивом из трех элементов:
type
tPolynom = array [0..2] of double;
- или можно как запись:
type
tPolynom = record
a,b,c: double;
end;

После того, как определишься с выбором представления, организуй массив:
var
a: array [1..3] of tPolynom;

Каждый элемент этого массива есть многочлен.

Можно, конечно, сделать и массив функций, но в данном случае это неоправданно, поскольку вид функции задан довольно конкретно (а кроме того, тебе это рановато, думаю..)
Wild_klas
Цитата(Lapp @ 18.11.2010 3:37) *

Это, смотря какой массив. Многочлен второй степени можно представить, как три числа. Как именно - тебе решать. Можно тоже массивом из трех элементов:
type
tPolynom = array [0..2] of double;
- или можно как запись:
type
tPolynom = record
a,b,c: double;
end;

После того, как определишься с выбором представления, организуй массив:
var
a: array [1..3] of tPolynom;

Каждый элемент этого массива есть многочлен.

Ага, то есть так. Спасибо. буду разбираться.


Добавлено через 12 мин.
 Var x:real;
type
tPolynom = array [0..3] of double;
Const mnogochlen:tPolynom=((3*x*x+2*x+5),(x*x+5*x+1),(5x*x+x+4));

Выбивает constant expression expected. Что не так?

Добавлено через 1 мин.
Цитата
Можно, конечно, сделать и массив функций, но в данном случае это неоправданно, поскольку вид функции задан довольно конкретно (а кроме того, тебе это рановато, думаю..)

Правильно думаете smile.gif
мисс_граффити
Цитата
Что не так?

Туда надо числа записывать (double), а ты что пытаешься запихнуть?
Lapp
Цитата(Wild_klas @ 18.11.2010 2:41) *
 Var x:real;
type
tPolynom = array [0..3] of double;
Const mnogochlen:tPolynom=((3*x*x+2*x+5),(x*x+5*x+1),(5x*x+x+4));

Выбивает constant expression expected. Что не так?

Смотри сюда )).
Допустим, у тебя есть многочлен второго порядка (квадратный то бишь), вот такой:
3x2 + 2x +5

Он полностью задается своими тремя коэффициентами:
p2x2 + p1x1 + p0x0.
(x0 я притенил, поскольку он всегда равен 1)
В данном (первом) случае это 3, 2 и 5. Нумеровать коэффициенты принято по значению степени x, то есть в данном случае:
p0 = 5
p1 = 2
p2 = 3

Для второго твоего полинома, (x*x+5*x+1), будет так:
p0 = 1
p1 = 5
p2 = 1

Понятно?
Значит, если ты хочешь задать константами, то примерно так:
type
tPolynom = array [0..2] of double;
Const
mnogochlen: tPolynom=((3,2,5),(1,5,1),(.....));

(тут я еще поправил твою ошибку: не 0..3, а 0..2)
Третью скобку заполни сам.
А x тут совсем не нужен. Он будет нужен потом, при вычислениях по этим полиномам (при взятии интеграла, например).

Давай, разбирайся и спрашивай дальше.
Это текстовая версия — только основной контент. Для просмотра полной версии этой страницы, пожалуйста, нажмите сюда.