Версия для печати темы

Нажмите сюда для просмотра этой темы в обычном формате

Форум «Всё о Паскале» _ Задачи _ Задание последовательности

Автор: Fenrisulven 16.04.2008 22:26

Условие задачи: задается действительное число a. Среди чисел вида 1;1+1/2;1+1/2+1/3;1+1/2+1/3+1/4;... и т.д. найти первое, большее, чем a.

Насколько я понимю, такая последовательность чисел задается по формуле tn=tn-1+1/k , где k - порядковый номер, n и n-1 - индексы

как все это написать в паскале? Я только начинаю его изучать, и понятия не имею как ему объяснить, чего я от него хочу. Если есть какие-л идеи, буду рад!


вот то, что я сам сделал, но не думаю, что это похоже на правду

program Project2;

{$APPTYPE CONSOLE}

uses
SysUtils;

const n=1;
var a,p:extended;
k:integer;

begin
writeln('Type a');
readln (a);
k:=0;

while not (p>a) do
begin
inc(k);
********** <-- это та самая формула, о которой я спрашивал
end;

writeln ('First=',p);
readln;


{ TODO -oUser -cConsole Main : Insert code here }
end.

Автор: volvo 16.04.2008 22:52

p := 0;

while not (p>a) do
begin
inc(k);
p := p + 1/k;
end;

Ты про это ?

Автор: Fenrisulven 16.04.2008 22:58

не знаю, я вот и спрашиваю) Если так, то хорошо. Но прогамма не выдает ответа, после ввода числа ничего не происходит

Автор: volvo 16.04.2008 23:03

У меня отработало.

Число какое вводишь? Я проверю у себя...

Автор: Fenrisulven 16.04.2008 23:23

параметр a? да любое ввожу и ничего не происходит, только возрастает загруженность процессора))

Автор: volvo 16.04.2008 23:46

Цитата
Type a
3
First= 3.0198773448773449E+0000

Type a
10
First = 1.0000043008275808E+0001

Type a
10
First = 1.0000043008275808E+0001

Type a
9
First = 9.0002080629311404E+0000
Что я делаю не так?

Автор: Fenrisulven 16.04.2008 23:58

Вод блин.... не знаю. у меня ны выдает ничего.


В любом случае, спасибо за помощь!