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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 30.03.2009, 01:18   #1
world12_tk
Форумчанин
 
Регистрация: 24.02.2009
Сообщений: 269
По умолчанию разделение программы

Добрый вечер...... у меня возникла проблема... я написал одну прогу, которая интегрирует площадь фигуры.... Мне препод сказал поделить прогу на процедуры и функции...
Вот исходный код:
Код:
{ file encoding: utf-8 }
program integral1(input, output);

const
n=100;
procedure Input(var a,b,eps,fx,c:double);
begin
    writeln('введите нижний предел');
    readln(a);
    writeln('введите верхний предел');
    readln(b);

    if a >= b then
    begin
        writeln('верхний предел интегрирования должебыть больше нижнего');
        readln;
        halt
    end;

    writeln('ведите точность');
    readln(eps);
    if eps < 1e-6 then
    begin
        writeln('заданная точность не допустима');
        readln;
        halt
    end;

    writeln('Введите графический параметр f');
    readln(fx);
    writeln('Введите графический параметр c');
    readln(c);
end;
function f(x,fx,c: double): double;
var
  e,z:double;
 begin
    e:=exp(-sqr(x));
    z:=-fx;
    if x < -c then
        f :=z
    else if (x >-c) and (x<c) then
        f :=e
    else if x>c then
        f:=x
 end; { function f }
procedure Integral(var a,b,eps,fx,c,x:double);
var
 iteration:integer;
 res: double;
 prev_res: double;
 step: double;

begin
    iteration := 0;
    res := 0;  step := (b - a) / n;

    repeat
        iteration := iteration + 1;
        prev_res := res;
        res := 0;
        x := a;

        while x < b do
        begin
            res := res + f(x,fx,c);
            x := x + step;
        end;
        res := res * step;

        writeln('Интеграция ', iteration, ' шаг ', step:4:1, ' значение ', res:4:1);
        step := step / 2;
    until (iteration > 1) and (abs(res - prev_res) < eps);
end;
var

    a, b: double;
    eps: double;
   R, R_squared: double;
    C, D: double;
    res: double;
    x,fx: double;
begin
    Input(a,b,eps,fx,c);
    Integral(a,b,eps,fx,c,x);
    writeln('окончательное значение ', res:4:2);
    readln;
end.
помогите мне разделить вот этот кусок кода в процедуре Integral
Код:
  
writeln('Интеграция ', iteration, ' шаг ', step:4:1, ' значение ', res:4:1);
Заранее спасибо
world12_tk вне форума Ответить с цитированием
Старый 30.03.2009, 08:39   #2
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

А зачем? У тебя и так оптимальное деление...
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 30.03.2009, 20:05   #3
world12_tk
Форумчанин
 
Регистрация: 24.02.2009
Сообщений: 269
По умолчанию

Дело в том, что препод мой очень любит порядок..... и мне сказал, что эта строчка должна находится в проуедуре вывода.... я пытался сам, но безуспешно....
world12_tk вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Разделение 2-х слов в строке 856100 Общие вопросы Delphi 9 06.10.2008 20:41
разделение формы на 4 части za4ot Общие вопросы Delphi 2 03.07.2008 12:12
Разделение файла Antik163RUS Помощь студентам 9 01.07.2008 12:23
Разделение строки xTANATOSx Общие вопросы Delphi 3 31.10.2007 21:27
Открытие файла,разделение. Kukkk Общие вопросы Delphi 3 20.09.2007 18:53