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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 04.05.2009, 21:11   #1
tanek
Форумчанин
 
Регистрация: 07.03.2009
Сообщений: 209
По умолчанию функции в паскале

Добрый вечер!!!!!!!!У меня проблема....необходимо разбить данную програму на функци...
задание в приложенном ниже файле
Код:
program pr1;

procedure Task;
begin
   writeln('Вычисление интеграла');
   writeln;
end;

procedure InputParameters(var c,f:real);
begin
   repeat
      writeln('Введите с(с>0)');
      readln(c);
   until (c>0);

   repeat
      writeln('Введите f(f>0)');
      readln(f);
   until (f>0);
end;

procedure InputLimitsIntegral(var a,b:real);
begin
   repeat
      writeln('Введите пределы интегрирования a,b (b>a)');
      readln(a,b);
   until (b>a);
end;

procedure InputAccuracy(var e:real);
begin
   repeat
      writeln('Введите точность вычисления e');
      readln(e);
   until (e>0) and (e<1);
end;

procedure InputData(var c,f,a,b,e:real);
begin
   InputParameters(c,f);
   InputLimitsIntegral(a,b);
   InputAccuracy(e);
end;

function AreaCalculation(f,x,c:real ):real;
begin
if x<-c then AreaCalculation:=-f else
        if abs(x)<=c then AreaCalculation:=exp(-1*sqr(x)) else
        if x>=0 then AreaCalculation:=c-x;
end;


procedure CalculationIntegral(c,f,a,b,e:real; var I1:real);

var
   s,I2:real;
   h,x:real;
   z:boolean;
begin
   z:=false;
   repeat
     n:=20;
     h:=(b-a)/n;
     x:=a;
     s:=0;

     repeat
        x:=x+h;
        s:=s+AreaCalculation(f,x,c);
     until(x>b);
     I2:=h*s;
     I1:=0;

     if ((z=true) and (abs(I2-I1)<e))
     then I2:=I2 else
     begin
       z:=true;
       I1:=I2;
       n:=n*2;
     end;
   until (abs(I2-I1)<e);
end;

procedure InputIntegral(I1:real);
begin
   writeln('Значение интеграла I:=',I1:3:5);
   readln;
end;

var
   I1:real;
   f,c:real;
   a,b:real;
   e:real;

begin
   Task;
   InputData(c,f,a,b,e);
   CalculationIntegral(c,f,a,b,e,I1);
   InputIntegral(I1);
end.
необходимо, что бы в данной програме были еще 2 функции их вот этого куска:
Код:
procedure CalculationIntegral(c,f,a,b,e:real; var I1:real);

var
   s,I2:real;
   h,x:real;
   z:boolean;
begin
   z:=false;
   repeat
     n:=20;
     h:=(b-a)/n;
     x:=a;
     s:=0;

     repeat
        x:=x+h;
        s:=s+AreaCalculation(f,x,c);
     until(x>b);
     I2:=h*s;
     I1:=0;

     if ((z=true) and (abs(I2-I1)<e))
     then I2:=I2 else
     begin
       z:=true;
       I1:=I2;
       n:=n*2;
     end;
   until (abs(I2-I1)<e);
end;
1- вычисление интеграла и помощью левых прямоугольников, 2- функция вычисления интеграла с заданной точностьюб типа:
function LeftPramoyg(a,b,c,f:real; n:longint):real;
function Integral(a,b,c,f,e:real ):real

Последний раз редактировалось tanek; 04.05.2009 в 21:17.
tanek вне форума Ответить с цитированием
Старый 04.05.2009, 21:16   #2
tanek
Форумчанин
 
Регистрация: 07.03.2009
Сообщений: 209
По умолчанию

Задание находится в прикрепленном файле
Вложения
Тип файла: doc задание.doc (31.5 Кб, 8 просмотров)
tanek вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Графика в паскале (построить график функции) matic Помощь студентам 4 26.11.2012 17:02
Модуль процедуры и функции в Паскале HECTOR.A. Помощь студентам 3 26.12.2008 14:29
Мои функции и процедуры на Паскале Dmit41683 Помощь студентам 1 05.12.2008 18:26
Процедуры и функции пользователя в Паскале Alex1991 Помощь студентам 8 02.12.2008 13:11
функции в паскале fru1t__ Помощь студентам 5 13.10.2008 19:24