Модераторы: volvo877, Snowy, MetalFan
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Помогите разобраться с условием + алгоритмом задач, вычислить некую функцию последовательным 
:(
    Опции темы
FasterHarder
Дата 12.11.2007, 17:50 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 77
Регистрация: 1.8.2007

Репутация: нет
Всего: нет



Всем программистам привет! Respect! Помогите разобраться с условием + алгоритмом задачи(никаких кодов, это я сделаю самsmile). Условие: вычислить значение функции у = "а" в степени "один делить на р" при "а" > 0, "p" > 0 с точностью до Eps(см. прил. файл). Как бы Eps заранее задаются(0.01, 0.001 и т. д.). Также есть формула последовательного приближения(см. прил. файл). 

Как я понимаю, у меня есть отправная точка, это "у" нулевое равное "а". 
Затем собираюсь подсчитать "у" первое. Но в формуле "Уn" не фигурирует "У(n-1)". Даже если подставить вместо "Уn" "a", то получу "а = 59074 в 18 степени", а это до хрена. Подскажите как быть то?

P.S. вроде б делал нечто подобное ранее, а сейчас что не понимаю как.. 

Присоединённый файл ( Кол-во скачиваний: 6 )
Присоединённый файл  __________.TIF 70,00 Kb
PM MAIL   Вверх
FasterHarder
Дата 15.11.2007, 15:29 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 77
Регистрация: 1.8.2007

Репутация: нет
Всего: нет



Код

program P13;
uses
    crt;
const
    p = 19;
    a = 59074;
var
    y, y_1 : real;    {y - tekusgiy element, y_1 - previous element}
    countIter : integer;
    eps : real;
    numberVariant : byte;
{==============================================================}
function express(x : real) : real;
var
    proizv : real;
    i : integer;
begin
    i := 1;
    proizv := 1;
    while( i <= (p - 1) ) do
    begin
        proizv := proizv * 1 / x;
        inc(i);
    end;

    express := p * a;
end;
{==============================================================}
procedure raschet( ep : real);
begin
    countIter := 0;
    y_1 := a;
    y := 1 / p * ((p - 1) * y_1 + express(y_1));
    while( (abs(y_1 - y) / y) >= ep ) do
    begin
              y_1 := y;
              y := 1 / p * ((p - 1) * y_1 + express(y_1));
              inc(countIter);
    end;

    {vivod na ekran}
    inc(numberVariant);
    writeln(numberVariant:5, '   ', ep:15:4, '   ', y:18:5, '    ', countIter:15);

end;
{==============================================================}
begin
    clrscr;    {clear screen}

    numberVariant := 0;
    writeln('=======================================================================');
    writeln(' N_variant     ', '   Eps     ', '          Yn            ', ' n - kolvo iteratsit ');
    writeln('=======================================================================');

    raschet(0.1);
    raschet(0.01);
    raschet(0.001);
    raschet(0.0001);

    writeln('=======================================================================');
    writeln('!!!!');
    readln;    {zaderzka programmi}
end.

в общем кое что сделал. Но мои результаты не сходятся с ответами. Подскажите как быть то?
P.S. может где какая обшибка закралась.
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Delphi"
THandle
Rrader
volvo877

Запрещается!

1. Обсуждать и делится взломанными компонентами или программным обеспечением

2. Публиковать ссылки на варез

3. Оффтопить

  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь
  • 90% ответов на свои вопросы можно найти в DRKB (Delphi Russian Knowledge Base) - крупнейшем в рунете сборнике материалов по Дельфи

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, THandle, Rrader, volvo877.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Object Pascal: кроссплатформенные технологии | Следующая тема »


 




[ Время генерации скрипта: 0.0413 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.