Заданный массив многочленов второй степени, состоящий из трех элементов. Найти тот, для которого определен интеграл приобретает наименьшего значения на определенном отрезке.
Как в массив записать многочлены? Через функцию можно? Моя попытка: Код:
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
18.11.2010 6:37
Цитата(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
18.11.2010 6:41
Цитата(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 мин.
Цитата
Можно, конечно, сделать и массив функций, но в данном случае это неоправданно, поскольку вид функции задан довольно конкретно (а кроме того, тебе это рановато, думаю..)
Правильно думаете
мисс_граффити
18.11.2010 12:50
Цитата
Что не так?
Туда надо числа записывать (double), а ты что пытаешься запихнуть?
Lapp
18.11.2010 13:18
Цитата(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 тут совсем не нужен. Он будет нужен потом, при вычислениях по этим полиномам (при взятии интеграла, например).
Давай, разбирайся и спрашивай дальше.
Это текстовая версия — только основной контент. Для просмотра полной версии этой страницы, пожалуйста, нажмите сюда.