Помощь - Поиск - Пользователи - Календарь
Полная версия: Нужна помощь в составлении программы Pascal ABC
Форум «Всё о Паскале» > Pascal, Object Pascal > Задачи
alyonka_k
Правильно ли составлена программа?
Вычислите значение выражения ln(x+ln(x+ln(x+...ln(x)...))),x>0,(n скобок)

program log_nat;

var
  x, a, log: real; i, n: byte;

begin
  write('Введите x(>0) - '); read(x);
  write('Введите целое число n>0 - ');read(n);
  a := ln(x);
  for i := 1 to n do
    log := ln(x + ln(a));
  writeln('Ответ: ', log)
end.


Не забываем заключать код программы в соответствующие теги!
Федосеев Павел
Наерное, неправильно.
  log:=ln(x);
  for i:=1 to n-1 do
    log:=ln(x+log);

alyonka_k
Спасибо. А вот это:

Вычислить сумму ряда, используя цикл while. Вычисление
слагаемых выполнять, используя рекуррентные отношения cos x/a+cos^2 x/3a+
+cos^3 x/5a+... с точностью е.

program sum_ryad_whl;

const
  e = 0.0001;

var
  sum, f, x, d: real; a, m: integer;

begin
  write('Введите значение x--> '); read(x);
  write('Введите значение a(<>0)--> '); read(a);
  sum := 0; f := cos(x); m := a; d := f / m;
  while d >= e do 
  begin
    sum := sum + d; f := f * cos(x); m := m + 2 * m; d := f / m;
  end;
  writeln('Ответ:', sum:9:4);
end.
Гость
Опять нет

  sum := 0;
  CosX := cos(x);
  f:=CosX/a;
  m := 1.0;
  d := f / m;
  while d >= e do
  begin
    sum := sum + d;
    f := f * CosX;
    m := m + 2.0;
    d := f / m;
  end;

alyonka_k
А почему m:=1.0 , а не просто 1?
Федосеев Павел
Пусть будет просто "1".
alyonka_k
Спасибо, Вы мне очень помогли!
Это текстовая версия — только основной контент. Для просмотра полной версии этой страницы, пожалуйста, нажмите сюда.