Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 12.01.2008, 04:00   #1
КиношкА
горе студенткО
Пользователь
 
Аватар для КиношкА
 
Регистрация: 10.01.2008
Сообщений: 24
Вопрос использование процедур и функций для работы с массивами.....Паскаль....

Чесно говаря непонимаю условий изза этого разработать праграму не могу...... Если кто их понимает хотяб обьесните что надо делать....(понятно что надо в начале ввисти число и одномерный массива а дальше голова понять не можит что с этим всем делать....)

С клавиатуры ввести объём выроботки (натуральное число) n>3 и вещественный компаненты двух одноменых массивов {Xi.Yi/i=1,n(над один запятая эн чертачка сверху)}, причём X1<X2<...<Xn. Требуеться разработать интерполяцию функции Lin(E,X,Y), которая для задонного аргумента Еэ(в обр сторону знак принадлежности) [X1,Xn] вычислить Z по формуле:

Z=Yi+((Y(i+1)-Yi)*(E -Xi))/(X(i+1) -Xi).
Смерть стоит того, чтобы жить, а любовь стоит того, чтобы ждать... В. Цой
КиношкА вне форума Ответить с цитированием
Старый 12.01.2008, 10:54   #2
puporev
Старожил
 
Регистрация: 13.10.2007
Сообщений: 2,740
По умолчанию

Хоть бы написали по человечески, дольше думал над переводом текста, чем над условием. Понял так.
1.Вводим объем выборки (не выроботки), или размерность массивов N. Вводим элементы массивов. При вводе нужно предусмотреть контроль за правильностью ввода: n>=3, x1<x2..<xn, количество введенных элементов должно составлять N.
2.Пишем подпрограмму-функцию, которая состоит из одной формулы.
3.В основной программе после ввода N, Xi,Yi и Е пишем
if (E>=X1) and (E<=Xn) then
Z:=Lin(E,X,Y);
puporev вне форума Ответить с цитированием
Старый 12.01.2008, 17:41   #3
КиношкА
горе студенткО
Пользователь
 
Аватар для КиношкА
 
Регистрация: 10.01.2008
Сообщений: 24
По умолчанию

puporev
спасибки за обьеснение сейчас попробуем.....
Смерть стоит того, чтобы жить, а любовь стоит того, чтобы ждать... В. Цой
КиношкА вне форума Ответить с цитированием
Старый 12.01.2008, 21:01   #4
КиношкА
горе студенткО
Пользователь
 
Аватар для КиношкА
 
Регистрация: 10.01.2008
Сообщений: 24
По умолчанию

Так нечего и не получилось((((
Смерть стоит того, чтобы жить, а любовь стоит того, чтобы ждать... В. Цой
КиношкА вне форума Ответить с цитированием
Старый 13.01.2008, 03:53   #5
КиношкА
горе студенткО
Пользователь
 
Аватар для КиношкА
 
Регистрация: 10.01.2008
Сообщений: 24
По умолчанию

помогите плиз решить а то я савсем запуталась((((
Смерть стоит того, чтобы жить, а любовь стоит того, чтобы ждать... В. Цой
КиношкА вне форума Ответить с цитированием
Старый 13.01.2008, 10:55   #6
puporev
Старожил
 
Регистрация: 13.10.2007
Сообщений: 2,740
По умолчанию

Вот как можно сделать то, о чем я писал. Внимательно спиши, особенно запятые и апострофы, прогони программу с разными вариантами чисел (правильно и неправильно). Что еще непонятно, спрашивай.
Код:
Program formula;
uses crt;
type mass=array[1..100]of real;//объявляем тип массив
var n,i,j:integer;
    X,Y,Z:mass;
    E:real;
    label 1,2,3;  //метки для возврата назад, если ввели неправильное число
function Lin(E:real;X,Y:mass):real;//функция
var p:real;
begin
p:=Y[i]+(Y[i+1]-Y[i])*(E-X[i])/(X[i+1]+X[i]);
Lin:=p;
end;
begin      //начало основной программы
clrscr;
1:
Write('Objem vyborki=');readln(n);//ввод N
if n<=3 then
   begin
     writeln('Nevernoe znachenie N');
     goto 1;
   end;
Writeln('vvedite znachenia y[i]:');  //ввод Y
for i:=1 to n do
   begin
     write('y[',i,']=');readln(y[i]);
   end;
2:
Writeln('vvedite znachenia x[i] (x1<x2..<xn):');  //ввод X
write('x[1]=');readln(x[1]);
for i:=2 to n do
   begin
     write('x[',i,']=');readln(x[i]);
     if x[i]<=x[i-1] then
       begin
          writeln('Nevernoe znachenie N');
          goto 2;
       end;
   end;
3:
Write('vvedite E (x[1]<=E<=x[n]): ');readln(E);//ввод Е
if (E<x[1])or(E>x[n])
then
   begin
     writeln('Nevernoe znachenie E');
     goto 3;
   end;
for i:=1 to n do        //вычисления
   begin
     writeln('Z[',i,']=',Lin(E,X,Y):5:2);
   end;
readln;
end.
puporev вне форума Ответить с цитированием
Старый 13.01.2008, 14:23   #7
КиношкА
горе студенткО
Пользователь
 
Аватар для КиношкА
 
Регистрация: 10.01.2008
Сообщений: 24
По умолчанию

Блин оказываеться я дура..... Я понила сваю ошибку)))))
puporev спасибки за помошь!!!!!!
Смерть стоит того, чтобы жить, а любовь стоит того, чтобы ждать... В. Цой
КиношкА вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Глобальность функций и процедур rivers Общие вопросы Delphi 5 01.08.2008 20:35
Использование функций Excel СеВа Microsoft Office Excel 0 14.03.2008 13:37
Параметры процедур и функций shurik_7866 Общие вопросы Delphi 8 10.12.2007 19:49
есть у кого SQL справочник команд процедур и функций, с подробным описанием и примерами? Рустам SQL, базы данных 2 23.11.2007 12:20