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

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

Вернуться   Форум программистов > Delphi программирование > Паскаль, Turbo Pascal, PascalABC.NET
Регистрация

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 01.12.2016, 16:25   #1
Cantdie62
 
Регистрация: 24.11.2016
Сообщений: 5
По умолчанию Цикл с предусловием

Вычислить значение заданной функции непосредственно и как сумму ряда с погрешностью 0.001. Значение аргумента выбрать самостоятельно
Изображения
Тип файла: jpg IMG_2181.jpg (64.8 Кб, 141 просмотров)
Cantdie62 вне форума Ответить с цитированием
Старый 01.12.2016, 16:29   #2
p51x
Старожил
 
Регистрация: 15.02.2010
Сообщений: 15,695
По умолчанию

Как пробовали? Какие ошибки выдал компилятор?
p51x вне форума Ответить с цитированием
Старый 01.12.2016, 18:31   #3
digitalis
Старожил
 
Аватар для digitalis
 
Регистрация: 04.02.2011
Сообщений: 4,536
По умолчанию

Ну дык формулу отсканил, вопрос на клаве натюкал. Alles kaput - мысли кончились.
digitalis вне форума Ответить с цитированием
Старый 04.12.2016, 12:07   #4
newerow1989
Я самый любопытный
Участник клуба
 
Аватар для newerow1989
 
Регистрация: 24.07.2012
Сообщений: 1,949
По умолчанию

Код:
function fact(n:integer):integer;
var i:integer;
begin
   Result:=1;
   For i:=2 to n do
      Result:=Result*i;
end;

const e=0.001;
var x,s,s1,st:real;
    n:integer;
    zn:-1..1;
begin
   Write('x = '); Readln(x);
   s:=1;
   st:=1;
   zn:=1;
   n:=1;
   s1:=1;
   While Abs(s1)>e do
   begin
      st:=st*x*x;
      zn:=-zn;
      s1:=zn*st/fact(2*n+1);
      n:=n+1;
      s:=s+s1;
   end;
   Writeln(s:5:5);
   Writeln(Sin(x)/x:5:5);
   Readln;
end.
С запрограммированным приветом, Неверов Евгений!
Сайт: http://newerow1989.ru
[Паскаль] [Delphi]

Последний раз редактировалось newerow1989; 04.12.2016 в 17:03.
newerow1989 вне форума Ответить с цитированием
Старый 04.12.2016, 16:49   #5
ViktorR
Старожил
 
Регистрация: 23.10.2010
Сообщений: 2,304
По умолчанию

Уважаемый newerow1989
Такой ответ может понравиться преподавателю, который ...
Но это не верный ответ. И Правильному преподавателю он не понравится.
Мной уже делалось замечание по поводу того, как следует решать подобные примеры.
Для Вас, прочитайте вложение.

Для тех, у кого возникает вопрос о том как правильно посчитать ряды Тейлора обязательно почитайте это вложение.
Код:
const MaxIter = 1000; {Число допустимых итераций}
var    x, eps : double; {Аргумент и точность}
   an, sum, k : double; {Член ряда и сумма}
            n : integer; {Номер члена ряда}
         flag : boolean; {Флаг получения результата}
Begin
  write('Input X and eps: '); {Запросим аргумент и точность}
  readln(x, eps);
  flag := true;
    an := 1; {Первый член ряда}
   sum := sum + an; {Начальная сумма}
     n := 0;
  while abs(an) > eps do
  begin
     k := -sqr(x) / ((2*n + 2) * (2*n+3));
    an := an * k; {Следующий член ряда}
   sum := sum + an; {Добавим к сумме}
     n := n + 1; {Увеличиваем номер}
    if n > MaxInt then {n - больше допустимого значения}
    begin
      writeln('Divergent series!'); {Расходящийся ряд}
      flag := false;
      break;
    end;
  end; {завершение цикла}
  if flag then {Вывод результата}
  begin
    writeln('X= ', x:8:6, ' Eps= ', eps:8:6, ' n= ', n:8);
    writeln('Sin(x)/x = ', Sin(x)/x:8:6, ' Sum= ', sum:8:6);
  end;
  readln;
End.
Как-то так, ...
Вложения
Тип файла: rar Work.rar (81.8 Кб, 17 просмотров)
Как-то так, ...

Последний раз редактировалось ViktorR; 04.12.2016 в 17:01.
ViktorR вне форума Ответить с цитированием
Старый 04.12.2016, 16:59   #6
newerow1989
Я самый любопытный
Участник клуба
 
Аватар для newerow1989
 
Регистрация: 24.07.2012
Сообщений: 1,949
По умолчанию

Чего не так-то? Два варианта работают
С запрограммированным приветом, Неверов Евгений!
Сайт: http://newerow1989.ru
[Паскаль] [Delphi]
newerow1989 вне форума Ответить с цитированием
Старый 04.12.2016, 17:15   #7
ViktorR
Старожил
 
Регистрация: 23.10.2010
Сообщений: 2,304
По умолчанию

Прочитайте, например, вот тут:
http://www.programmersforum.ru/showthread.php?t=299609
И попробуйте только что написанный Вами пример при x = 5.
Замечу, что этот ряд сходится для любых |x| < бесконечности.
И да, если eps сделать равной 1 то решение будет находиться быстро.
А вы установите eps = 0.00005, например.


Как-то так, ...
Как-то так, ...
ViktorR вне форума Ответить с цитированием
Ответ


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

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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
При приближенном вычислении суммы ряда расчет выполнять с точностью E. Использовать цикл с предусловием и цикл с постусловием. dvpvitas Паскаль, Turbo Pascal, PascalABC.NET 0 16.06.2015 18:43
Цикл с предусловием Alexandr2802 Помощь студентам 1 21.11.2013 00:29
Цикл с предусловием glupayastudentka Помощь студентам 2 29.06.2009 21:19
Цикл с предусловием. ( цикл while) Цикл с постусловием. (цикл repeat ... until) Mr.User Помощь студентам 9 23.11.2007 01:34