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

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

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

Восстановить пароль

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

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

Добрый день.... У меня возникла небольшая проблемка..... Меня препод попрасил вытащить строчку
Код:
 writeln('Интеграция ', iteration, ' шаг ', step:4:1, ' значение ', res:4:1);
из этого куска кода:
Код:
 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);
Я сам пытался, но так и ни чего не получилось... Подскажите как это сделать.Заранее спасибо...
world12_tk вне форума Ответить с цитированием
Старый 04.04.2009, 15:57   #2
Levsha100
Заблокирован
Старожил
 
Регистрация: 20.07.2008
Сообщений: 4,032
По умолчанию

Чет я не понял задание! Что это значит?
Цитата:
Сообщение от world12_tk Посмотреть сообщение
вытащить строчку
Код:
 writeln('Интеграция ', iteration, ' шаг ', step:4:1, ' значение ', res:4:1);
Levsha100 вне форума Ответить с цитированием
Старый 04.04.2009, 17:41   #3
world12_tk
Форумчанин
 
Регистрация: 24.02.2009
Сообщений: 269
По умолчанию

само задание такое
Код:
{ file encoding: utf-8 }
program integral(input, output);

const
n=100;
var

    a, b: double;
    eps: double;
   R, R_squared: double;
    C, D: double;
    res: double;
    prev_res: double;
    step: double;
    iteration: integer;
    x: double;

function f(x: double): double;
 begin
    if x < -2*R then
        f := D
    else if x < 0 then
        f := sqrt(R_squared - (x + R) * (x + R))
    else if x < 2*R then
      f := -sqrt(R_squared - (x - R) * (x - R))
    else
        f := C;
 end; { function f }
begin
    writeln('Введите нижний предел интегрирования');
    readln(a);
    writeln('Введите верхний предел интегрирования');
    readln(b);

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

    writeln('Введите требуемую точность');
    readln(eps);
    if eps < 1e-6 then
    begin
        writeln('Заданная точность не достижима, задайте число не меньше  1e-6');
        halt
    end;

    writeln ('Введите параметр графической функции R');
    readln(R);
    R_squared := R * R;
    writeln('Введите параметр графической функции c');
    readln(C);
    writeln('Введите параметр графической функции d');
    readln(D);

    writeln('Введены параметры: R = ', R:4:2, ' c = ', c:4:2, ' d = ', d:4:2);
    writeln('Интегрирую от ', a:4:2, ' до ', b:4:2, ' с точностью ', eps:4:3);

    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);
            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);

    writeln('Окончательное значение ', res:4:2);
    writeln('для завершения нажмите любую клавишу');
    readln;
end.
Просто мой препод любит во всем порядок и нужно организовать процедуру вывода, а для этого строчку
Код:
writeln('Интеграция ', iteration, ' шаг ', step:4:1, ' значение ', res:4:1);
нужно от туда вытащить
world12_tk вне форума Ответить с цитированием
Старый 04.04.2009, 19:33   #4
Levsha100
Заблокирован
Старожил
 
Регистрация: 20.07.2008
Сообщений: 4,032
По умолчанию

А! Так заведи массив(для каждого параметра отдельный) и в конце выводи значения!
Levsha100 вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
разделение программы world12_tk Помощь студентам 2 30.03.2009 20:05
Разделение файла Antik163RUS Помощь студентам 9 01.07.2008 12:23
Разделение строки xTANATOSx Общие вопросы Delphi 3 31.10.2007 21:27
Открытие файла,разделение. Kukkk Общие вопросы Delphi 3 20.09.2007 18:53
Выдернуть куски кода из html-кода trafbite Помощь студентам 7 18.08.2007 13:51