Технический форум
Вернуться   Технический форум > Программирование > Форум программистов > Помощь студентам


Ответ
 
Опции темы Опции просмотра
Старый 07.06.2009, 15:02   #1 (permalink)
кир
Новичок
 
Регистрация: 07.06.2009
Сообщений: 4
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 10
Exclamation Помогите с заданиями!


На языке delphi
10. Пусть задана таблица значений функции, т.е. набор значений аргумента и функции (10..20 значений, хранить их можно в массиве). С помощью линейной интерполяции вывести значения функции для середины каждого интервала. Вычисление искомых значений оформить в виде подпрограммы – процедуры.

11. Пусть задана таблица значений функции, т.е. набор значений аргумента и функции (10..20 значений, хранить их можно в массиве). С помощью линейной интерполяции вывести значения функции для произвольно заданного значения аргумента, которое вводится с клавиатуры. Вычисление искомых значений оформить в виде подпрограммы – процедуры.

12. Составить программу решения уравнения F(x)=0 методом дихотомии. Вычисления прекратить при |F(x)| < t , где t - заданное число. Алгоритм вычислений оформить как подпрограмму- процедуру, вычисление значений F(x) проводить с помощью подпрограммы- функции, имя которой передается через заголовок процедуры в переменной процедурного типа.
кир вне форума   Ответить с цитированием
Старый 07.06.2009, 15:28   #2 (permalink)
Vladimir_S
Специалист
 
Аватар для Vladimir_S
 
Регистрация: 27.08.2008
Адрес: Санкт-Петербург
Сообщений: 26,829
Сказал(а) спасибо: 316
Поблагодарили 542 раз(а) в 183 сообщениях
Репутация: 101510
По умолчанию

Цитата:
Сообщение от кир Посмотреть сообщение
На языке delphi
Первые два задания могу изобразить на Паскале, тем более, что организацию консольного ввода в Делфи я в свое время так и не освоил (тут надо либо самому окно программировать, либо искать по библиотекам). С третьим заданием сложнее: во-первых, я всегда пользовался не половинным, а десятичным делением (по-моему, куда как удобнее), а во-вторых, с такой структурой, как передача функции в заголовок процедуры не встречался.
Vladimir_S вне форума   Ответить с цитированием
Старый 07.06.2009, 15:44   #3 (permalink)
кир
Новичок
 
Регистрация: 07.06.2009
Сообщений: 4
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 10
По умолчанию ответ

необходимо с выводом графиков на форме.
не получается передать данные из масива в сам график, график остается стандартным.
если можно хотя бы примерно в Паскале.
кир вне форума   Ответить с цитированием
Старый 07.06.2009, 16:10   #4 (permalink)
Vladimir_S
Специалист
 
Аватар для Vladimir_S
 
Регистрация: 27.08.2008
Адрес: Санкт-Петербург
Сообщений: 26,829
Сказал(а) спасибо: 316
Поблагодарили 542 раз(а) в 183 сообщениях
Репутация: 101510
По умолчанию

Цитата:
Сообщение от кир Посмотреть сообщение

На языке delphi
10. Пусть задана таблица значений функции, т.е. набор значений аргумента и функции (10..20 значений, хранить их можно в массиве). С помощью линейной интерполяции вывести значения функции для середины каждого интервала. Вычисление искомых значений оформить в виде подпрограммы – процедуры.
На Паскале как-то так. Считаем, что число значений N, массив аргументов, расположенных в порядке возрастания, - X, массив значений - Y. Введем тип
AR=ARRAY[1..N] of REAL; , т.е.

CONST
N=10;
TYPE
AR=ARRAY[1..N] of REAL;
VAR
X,Y,X1,Y1:AR;

PROCEDURE Media_Values(Xm,Ym:AR; VAR X1m:AR; VAR Y1m:AR);
VAR i:INTEGER;
BEGIN
FOR i:=1 TO N-1 DO
BEGIN
X1m[i]:=(Xm[i]+Xm[i+1])/2;
Y1m[i]:=(Ym[i]+Ym[i+1])/2;
END;
END;

BEGIN

{ Enter values of X and Y Arrays }

Media_Values(X,Y,X1,Y1);

END.
Vladimir_S вне форума   Ответить с цитированием
Старый 07.06.2009, 16:30   #5 (permalink)
кир
Новичок
 
Регистрация: 07.06.2009
Сообщений: 4
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 10
По умолчанию

а в случае использования только отрицательных значений переменных останется эта же PROCEDURE Media_Values, или она строит график независимо от заданных переменных.
кир вне форума   Ответить с цитированием
Ads

Яндекс

Member
 
Регистрация: 31.10.2006
Сообщений: 40200
Записей в дневнике: 0
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 55070
Старый 07.06.2009, 16:44   #6 (permalink)
Vladimir_S
Специалист
 
Аватар для Vladimir_S
 
Регистрация: 27.08.2008
Адрес: Санкт-Петербург
Сообщений: 26,829
Сказал(а) спасибо: 316
Поблагодарили 542 раз(а) в 183 сообщениях
Репутация: 101510
По умолчанию

Цитата:
Сообщение от кир Посмотреть сообщение
11. Пусть задана таблица значений функции, т.е. набор значений аргумента и функции (10..20 значений, хранить их можно в массиве). С помощью линейной интерполяции вывести значения функции для произвольно заданного значения аргумента, которое вводится с клавиатуры. Вычисление искомых значений оформить в виде подпрограммы – процедуры.
CONST
N=10;
TYPE
AR=ARRAY[1..N] of REAL;
VAR
X,Y:AR;
x1,y1:REAL;

PROCEDURE New_Value(Xn,Yn:AR; x1n:REAL; VAR y1n:REAL);
VAR i:INTEGER;
BEGIN
IF (x1n<Xn[1]) OR (x1n>Xn[N]) THEN
Writeln('Value out of range!') ELSE
BEGIN
i:=0;
REPEAT
INC(i);
UNTIL Xn[i]>x1n;
y1n:=(Yn[i]-Yn[i-1])/(Xn[i]-Xn[i-1])*x1n + (Yn[i-1]*Xn[i]-Yn[i]*Xn[i-1])/(Xn[i]-Xn[i-1]);
END;
END;

BEGIN

{ Enter values of X and Y Arrays }

Write('x = ');
Readln(x1);
New_Value(X,Y,x1,y1);
Writeln('y = ', y1);
Readln;

END.
Vladimir_S вне форума   Ответить с цитированием
Старый 07.06.2009, 18:15   #7 (permalink)
кир
Новичок
 
Регистрация: 07.06.2009
Сообщений: 4
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 10
Smile

Огромное спасибо!!!!!!!!!!!!!!!!!!

кир вне форума   Ответить с цитированием
Ads

Яндекс

Member
 
Регистрация: 31.10.2006
Сообщений: 40200
Записей в дневнике: 0
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 55070
Ответ

Опции темы
Опции просмотра

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Выкл.
HTML код Выкл.
Trackbacks are Вкл.
Pingbacks are Вкл.
Refbacks are Выкл.




Часовой пояс GMT +4, время: 01:26.

Powered by vBulletin® Version 6.2.5.
Copyright ©2000 - 2014, Jelsoft Enterprises Ltd.