![]() |
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
|
Гость ![]() |
Цитата не могу найти причину... Во-первых, EGAVGA.BGI скопируй в директорию с проектом, и измени строку инициализации на:Код InitGraph(grDriver, grMode, ''); , ну, а во-вторых, ты запускаешь с параметром? Надо запускать так:Цитата(Console) F:\interpol interpol.dat , программа проверяет наличие параметров командной строки...Или указывай параметры так: в меню -> Run -> Parameters вводи только имя файла данных: interpol.dat P.S. Координаты заносятся XYXY (именно попарно, а не "сначала все X, потом все Y") |
Jill |
![]()
Сообщение
#3
|
Пионер ![]() ![]() Группа: Пользователи Сообщений: 105 Пол: Женский Реальное имя: Юлия Репутация: ![]() ![]() ![]() |
Цитата Во-первых, EGAVGA.BGI скопируй в директорию с проектом, и измени строку инициализации на: InitGraph(grDriver, grMode, ''); EGAVGA.BGI валяется в директории, в строке инициализации писать так: InitGraph(grDriver, grMode, 'EGAVGA.BGI');? эт я уточняю ![]() С -> Run -> Parameters получилось, но с запуском с параметрами через консоль я не поняла ![]() вырисовывает 2 функции / но по листингу их 3! (стандарт, лагранж и ньютон) или что-то накладывается...? |
![]() ![]() |
![]() |
Текстовая версия | 27.07.2025 11:16 |