![]() |
1. Заголовок темы должен быть информативным. В противном случае тема удаляется ...
2. Все тексты программ должны помещаться в теги [code=pas] ... [/code].
3. Прежде чем задавать вопрос, см. "FAQ", если там не нашли ответа, воспользуйтесь ПОИСКОМ, возможно такую задачу уже решали!
4. Не предлагайте свои решения на других языках, кроме Паскаля (исключение - только с согласия модератора).
5. НЕ используйте форум для личного общения, все что не относится к обсуждению темы - на PM!
6. Одна тема - один вопрос (задача)
7. Проверяйте программы перед тем, как разместить их на форуме!!!
8. Спрашивайте и отвечайте четко и по существу!!!
![]() |
Женя |
![]()
Сообщение
#1
|
Гость ![]() |
Условие:
--- Пусть функция y(x) задана таблицей: Xi X1 X2 X3 ... Xm Yi Y1 Y2 Y3 ... Ym Составить программу для вычисления значения этой функции в произвольной точке X1<=X<=Xm по формуле линейной интерполяции: Цитата X - Xi Y(X) = Yi + --------- * (Yi+1 - Yi) Xi+1 - Xi , где Xi<=X<=Xi+1 Расчёт функции оформить в виде подпрограммы. Таблица и значение аргумента вводятся, результат расчёта выводить в главной программе. > i+1, 2, 3, m, i - это всё нижний индекс. --- Вот начал делать, и что-то не получается.. пожалуйста, проведите корректировку: Код program inter; type mas=array [1..10] of real; var x,y: mas; i,m,n:integer; g:real; Procedure Input (m1:integer; var x1:mas); var i:integer; begin writeln ('Введите значения X: '); for i:=1 to m1 do readln (x1[i]); end; Procedure Input1 (m1:integer; var y1:mas); var i:integer; begin writeln ('Введите значения Y: '); for i:=1 to m1 do readln (y1[i]); end; Function Summa (m1,n1:integer;x1,y1:mas):real; var i:integer; s:real; begin for i:=1 to m1-1 do begin if x1[i+1]-x1[i]=0 then begin writeln('y(x) - не существует.'); end else s:=y1[i]+((x1[n1]-x1[i])/(x1[i+1]-x1[i]))*(y1[i+1]-y1[i]); end; summa:=s; end; begin writeln ('Введите количество элементов X, Y: '); readln(m); Input (m,x); Input1 (m,y); Writeln ('Введите произвольную точку: '); readln(n); g:=summa (m,n,x,y); writeln ('Значения равны: ',g:10:5); readln end. Заранее благодарен! Сообщение отредактировано: volvo - 22.12.2004 0:28 |
![]() ![]() |
volvo |
![]()
Сообщение
#2
|
Гость ![]() |
Что значит "не хочет"?
Цитата(Console) The Data : -1.0000000 1.009000000000000E+000 -0.9000000 4.740000000000000E-001 -0.8000000 2.475000000000000E-001 -0.7000000 4.091000000000000E-001 -0.6000000 6.512000000000000E-001 -0.5000000 6.007000000000000E-001 -0.4000000 3.610000000000000E-002 -0.3000000 -7.662000000000000E-001 -0.2000000 -1.381400000000000E+000 -0.1000000 -1.442900000000000E+000 The polynomial : Poly[ 9]= 7.502480158738636E+003 Poly[ 8]= 3.788740079369168E+004 Poly[ 7]= 8.179012896833815E+004 Poly[ 6]= 9.828562500009664E+004 Poly[ 5]= 7.179005381951237E+004 Poly[ 4]= 3.279548854169682E+004 Poly[ 3]= 9.368500327389358E+003 Poly[ 2]= 1.635103664683947E+003 Poly[ 1]= 1.559646261906029E+002 Poly[ 0]= 4.518900000004579E+000 X Interpolated Y value Ты же получаешь полином... Что тебе не нравится? |
![]() ![]() |
![]() |
Текстовая версия | 27.07.2025 11:12 |