Turbo Pascal 7.0 Ряд Фибоначчи
Пользователи, просматривающие топик: none
|
Зашли как: Guest
|
Имя |
Сообщение |
<< Старые топики Новые топики >> |
|
|
Turbo Pascal 7.0 Ряд Фибоначчи - 2010-02-17 21:59:39.706666
|
|
|
Sashko_Milashko
Сообщений: 2
Оценки: 0
Присоединился: 2010-02-17 21:49:33.673333
|
Использовать цикл с заданным числом повторений Найдите n-й член ряда Фибоначчи, элементы которого вычисляются по формулам: a1 = a2 = 1; ai = ai-1 + ai-2, (i > 2). П р и м е ч а н и е. Для нахождения членов ряда используйте только ДВЕ переменные а и b.
|
|
|
RE: Turbo Pascal 7.0 Ряд Фибоначчи - 2010-02-17 22:55:34.893333
|
|
|
rgo
Сообщений: 7170
Оценки: 281
Присоединился: 2004-09-25 05:14:25
|
И с чем возникли трудности? С вычислением следующего элемента небось, да? Смотри сюда. Для начала я обозначения сменю слегка, чтобы меньше путаницы было. Определение последовательности чисел фибоначчи я запишу так: f[n+1] = f[n] + f[n-1] (я буковку a сменил на f, чтобы не путать с переменной a, и нумерацию чуть сдвинул, мне кажется так удобнее). теперь, пускай a=f[n-1], b=f[n]. Нам надо что-то сделать, чтобы стало так: a=f[n], b=f[n+1]. Первый шаг напрашивается, мы сосчитаем по формуле f[n+1] (мы ведь знаем f[n-1] и f[n]) и положим результат в b, где он и должен лежать.b := a + b; Теперь у нас такая ситуация: a=f[n-1], b=f[n+1]. Нам надо как-то сосчитать f[n] и положить его в a. Зырим в формулу f[n+1]=f[n]+f[n-1] и видим, что f[n]=f[n+1]-f[n-1] так ведь? Ну дык то что справа от =, это ведь b-a, не так ли? А слева мы поставим a, поскольку результат туда сохранять будем:a := b - a; Ну и всё вместе:b := a + b;
a := b - a; Вот и вся проблема.
|
|
|
RE: Turbo Pascal 7.0 Ряд Фибоначчи - 2010-02-17 23:02:13.580000
|
|
|
Sashko_Milashko
Сообщений: 2
Оценки: 0
Присоединился: 2010-02-17 21:49:33.673333
|
эммм… как-то я всё равно особо не въехала….(((( а можно как прога в целом выглядит? и цикл использовать я ток учусь прогарммировать и возникают трудности…..
|
|
|
RE: Turbo Pascal 7.0 Ряд Фибоначчи - 2010-02-17 23:20:00.150000
|
|
|
DenisaN
Сообщений: 184
Оценки: 0
Присоединился: 2009-12-25 17:40:45.006666
|
Приблизительно так, только если вдруг синтаксические ошибки есть не суди строго, просто давно я паскаля не видел=) a:=1 b:=1 write ('введите n'); readln (n); for i to n do begin b:=a+b; a:=b-a; i:=i+1; end; writeln ('ваш ответ a=',a,'b=',b)
|
|
|
RE: Turbo Pascal 7.0 Ряд Фибоначчи - 2010-02-18 00:33:02.340000
|
|
|
rgo
Сообщений: 7170
Оценки: 281
Присоединился: 2004-09-25 05:14:25
|
quote:
ORIGINAL: DenisaN Приблизительно так, только если вдруг синтаксические ошибки есть не суди строго, просто давно я паскаля не видел=) … write ('введте n'); То есть тебя паскаль так поражает с непривычки, что пальцы по клавишам не попадают? :D
|
|
|
RE: Turbo Pascal 7.0 Ряд Фибоначчи - 2010-02-18 09:01:12.990000
|
|
|
DenisaN
Сообщений: 184
Оценки: 0
Присоединился: 2009-12-25 17:40:45.006666
|
Ну с кем не бывает, уже исправил
|
|
|
|
|