Экспертная система Delphi.int.ru

Сообщество программистов
Общение, помощь, обмен опытом

Логин:
Пароль:
Регистрация | Забыли пароль?

Delphi.int.ru Expert

Другие разделы портала

Переход к вопросу:

#   

Статистика за сегодня:  


Лучшие эксперты

Подробнее »



Вопрос # 5 727

/ вопрос решён /

Здравствуйте, эксперты!
Мне бы нужно вычислить сумму вот такого чуда
cos(x)+cos(cos(x))+cos(cos(cos(x)))+...
но что то понять немного не могу, это его нужно в for запихать?
а как сделать что бы ещё и предыдущий элемент прибавить?

micdas Вопрос решён, но можно продолжить его обсуждение в мини-форуме

Вопрос задал: micdas (статус: Посетитель)
Вопрос отправлен: 8 ноября 2011, 09:52
Состояние вопроса: решён, ответов: 1.

Ответ #1. Отвечает эксперт: min@y™

Ну, если надо через for, то как-то так:

function dummy(const x: Double; const n: Integer): Double;
var
  c: Double;
  Index: Integer;
begin
  Result:= 0.0;
  c:= cos(x);
  for Index:= 0 to n - 1 do // n - кол-во членов ряда
    begin
      Result:= Result + c;
      c:= cos(c);
    end;
end;

Ответ отправил: min@y™ (статус: Доктор наук)
Время отправки: 8 ноября 2011, 10:14
Оценка за ответ: 5

Комментарий к оценке: именно так как нужно

Мини-форум вопроса

Всего сообщений: 8; последнее сообщение — 8 ноября 2011, 15:25; участников в обсуждении: 2.
micdas

micdas (статус: Посетитель), 8 ноября 2011, 10:44 [#1]:

а можно и без for?
min@y™

min@y™ (статус: Доктор наук), 8 ноября 2011, 11:00 [#2]:

Цитата (micdas):

а можно и без for?

КанЭщна, дарагой! Можьно через while, repeat и рекурсию. Но ты просил через for - я сделал через for.
Делаю лабы и курсачи по Delphi и Turbo Pascal. За ПИВО! Пишите в личку, а лучше в аську. А ещё лучше - звоните в скайп!
micdas

micdas (статус: Посетитель), 8 ноября 2011, 12:12 [#3]:

Result:= 0.0;
что то паскалю не нравиться 0.0
min@y™

min@y™ (статус: Доктор наук), 8 ноября 2011, 13:06 [#4]:

Цитата (micdas):

Result:= 0.0; что то паскалю не нравиться 0.0

А, извини, я не обратил внимание, что это всё на турбопаскале надо, написал для delphi. Внесу изменения:
function dummy(const x: Double; const n: Integer): Double;
var
  c, Result: Double;
  Index: Integer;
begin
  Result:= 0.0;
  c:= cos(x);
  for Index:= 0 to n - 1 do // n - кол-во членов ряда
    begin
      Result:= Result + c;
      c:= cos(c);
    end;
 
  dummy:= Result;
end;
Делаю лабы и курсачи по Delphi и Turbo Pascal. За ПИВО! Пишите в личку, а лучше в аську. А ещё лучше - звоните в скайп!
micdas

micdas (статус: Посетитель), 8 ноября 2011, 14:35 [#5]:

а в чём у меня ошибка? в упор не вижу
program pr2;
var
x:integer;
function dummy(const x: Double; const n: Integer): Double;
var
c, Result: Double;
Index: Integer;
begin
Result:= 0.0;
c:= cos(x);
for Index:= 0 to n - 1 do
begin
Result:= Result + c;
c:= cos(c);
end;

dummy:= Result;
end;

begin
writeln('Vvedite x');
readln(x);
writeln('summa = ',dummy);
readln;
end.
min@y™

min@y™ (статус: Доктор наук), 8 ноября 2011, 14:50 [#6]:

Цитата (micdas):

а в чём у меня ошибка? в упор не вижу

А там их несколько.
Найди 10 отличий:
program pr2;
 
function dummy(const x: Double; const n: Integer): Double;
var
  c, Result: Double;
  Index: Integer;
begin
  Result:= 0.0;
  c:= cos(x);
  for Index:= 0 to n - 1 do // n - кол-во членов ряда
    begin
      Result:= Result + c;
      c:= cos(c);
    end;
 
  dummy:= Result;
end;
 
 
var
  x: Double;
  n: Integer;
 
begin
  write('Введи x: ');
  readln(x);
  Write('Введи n: ');
  ReadLn(n);
 
  writeln('summa = ',dummy(x, n));
  readln;
end.
Тупо копипастить чужой код, не разобравшись - неблагодарное занятие.
Делаю лабы и курсачи по Delphi и Turbo Pascal. За ПИВО! Пишите в личку, а лучше в аську. А ещё лучше - звоните в скайп!
micdas

micdas (статус: Посетитель), 8 ноября 2011, 15:12 [#7]:

спасибо)))есть же добрые люди на свете
min@y™

min@y™ (статус: Доктор наук), 8 ноября 2011, 15:25 [#8]:

Цитата (micdas):

спасибо)))есть же добрые люди на свете

"Спасибо" - это много. Пива достаточно. :)
Делаю лабы и курсачи по Delphi и Turbo Pascal. За ПИВО! Пишите в личку, а лучше в аську. А ещё лучше - звоните в скайп!

8 ноября 2011, 15:40: Статус вопроса изменён на решённый (изменил автор вопроса — micdas)

Чтобы оставлять сообщения в мини-форумах, Вы должны авторизироваться на сайте.

Версия движка: 2.6+ (26.01.2011)
Текущее время: 22 февраля 2025, 11:47
Выполнено за 0.02 сек.