| 
| 
 | Вопрос # 5 727/ вопрос решён / | 
 |  Здравствуйте, эксперты!Мне бы нужно вычислить сумму вот такого чуда
 cos(x)+cos(cos(x))+cos(cos(cos(x)))+...
 но что то понять немного не могу, это его нужно в for запихать?
 а как сделать что бы ещё и предыдущий элемент прибавить?
 
|  |   Вопрос задал: 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 (статус: Посетитель), 8 ноября 2011, 10:44 [#1]:а можно и без for? |  
|   | min@y™ (статус: Доктор наук), 8 ноября 2011, 11:00 [#2]: Цитата (micdas): а можно и без for?  КанЭщна, дарагой! Можьно через while, repeat и рекурсию. Но ты просил через for - я сделал через for.
 Делаю лабы и курсачи по Delphi и Turbo Pascal. За ПИВО! Пишите в личку, а лучше в аську. А ещё лучше - звоните в скайп! |  
|   | micdas (статус: Посетитель), 8 ноября 2011, 12:12 [#3]:Result:= 0.0; что то паскалю не нравиться 0.0
 |  
|   | 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 (статус: Посетитель), 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™ (статус: Доктор наук), 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 (статус: Посетитель), 8 ноября 2011, 15:12 [#7]:спасибо)))есть же добрые люди на свете |  
|   | min@y™ (статус: Доктор наук), 8 ноября 2011, 15:25 [#8]: Цитата (micdas): спасибо)))есть же добрые люди на свете  "Спасибо" - это много. Пива достаточно.
   Делаю лабы и курсачи по Delphi и Turbo Pascal. За ПИВО! Пишите в личку, а лучше в аську. А ещё лучше - звоните в скайп! |  8 ноября 2011, 15:40: Статус вопроса изменён на решённый (изменил автор вопроса — micdas) Чтобы оставлять сообщения в мини-форумах, Вы должны авторизироваться на сайте. |