Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 06.12.2009, 12:16   #1
Banderas123
Пользователь
 
Регистрация: 05.12.2009
Сообщений: 14
По умолчанию число Фибоначчи (Pascal)

Здрасте. Решаю задачки, и тут пришлось решить задачу на числа Фибоначчи.
Цитата:
Числа 1 1 2 3 5 8 13 21 34..... Каждое из чисел, начиная с третьего, является суммой двух предыдущих.
f[1]=1 f[2]=1 f[3]=2 f[4]=3 f[5]=5 f[6]=8 ......
Я написал кож вот так:
Код:
program Birthday;
USES CRT;
var
f : array[1..10] of integer;
i, k, l : integer;
begin ClrScr;
    for i:=1 to 10 do
    begin
        k:=i-1;
        l:=i-2;
        f[i]:=f[k]+f[l];
        writeln(f[i]);
    end;
end.
Вроде все правильно записал, но оно не работает... даже сообщения о ошибки нету =(

В чем проблема? И можно записать код вот так?
Код:
f[i]:=f[i-2]+f[i-1];
Banderas123 вне форума Ответить с цитированием
Старый 06.12.2009, 12:18   #2
Alex Cones
Trust no one.
Старожил
 
Аватар для Alex Cones
 
Регистрация: 07.04.2009
Сообщений: 6,526
По умолчанию

А перед последним End`ом пробовали написать ReadLn;?
SQUARY PROJECT - НАБОР БЕСПЛАТНЫХ ПРОГРАММ ДЛЯ РАБОЧЕГО СТОЛА.
МОЙ БЛОГ
GRAY FUR FRAMEWORK - УДОБНАЯ И БЫСТРАЯ РАЗРАБОТКА WINAPI ПРИЛОЖЕНИЙ
Alex Cones вне форума Ответить с цитированием
Старый 06.12.2009, 12:37   #3
Banderas123
Пользователь
 
Регистрация: 05.12.2009
Сообщений: 14
По умолчанию

Спасибо, но я не могу понять, почему мне программа выводить совсем не те числа, что надо?
Чуть поправил код
Код:
program Birthday;
USES CRT;
var
f : array[1..10] of integer;
i, k, l : integer;
begin ClrScr;
    for i:=3 to 10 do
    begin
        f[i]:=f[i-1]+f[i-2];
        writeln(f[i]);
    end;
end.

Последний раз редактировалось Banderas123; 06.12.2009 в 12:39.
Banderas123 вне форума Ответить с цитированием
Старый 06.12.2009, 12:41   #4
LeBron
Форумчанин
 
Регистрация: 10.10.2009
Сообщений: 680
По умолчанию

Не дает ошибки? Странно. Есть обращение к несуществующему элементу - это раз (при i=1 мы обращаемся к f[-1]), и не проинициализированны начальные значения - это уже не влияет на ошибку, но влияет на результат. Если первым 2 элементам присвоить 1 и начинать дальше заполнять с 3его, то должно работать.
LeBron вне форума Ответить с цитированием
Старый 06.12.2009, 12:42   #5
ОДИНОЧЕСТВО В СЕТИ
Любопытная Вредина
Участник клуба
 
Аватар для ОДИНОЧЕСТВО В СЕТИ
 
Регистрация: 19.06.2009
Сообщений: 1,285
По умолчанию

вот сравните со своей! найдите отличия
Код:
program Fib; 
 var n:byte;
function F(k:byte):word; 
begin 
 if k<2 then F:=1 else F:=F(k-1)+F(k-2);
end; 
begin 
 for n:=1 to 10 do; 
 writeln(F(n)); 
 readln 
end.
Дурь - это особая форма материи, которая не возникает ниоткуда и не исчезает никуда, а лишь переходит из одной головы в другую.

Последний раз редактировалось ОДИНОЧЕСТВО В СЕТИ; 06.12.2009 в 12:45.
ОДИНОЧЕСТВО В СЕТИ вне форума Ответить с цитированием
Старый 06.12.2009, 12:43   #6
Daramant
Форумчанин
 
Регистрация: 06.01.2009
Сообщений: 340
По умолчанию

Ты забыл проинициализировать начальные значения.
Код:
program Birthday;
USES CRT;
var
f : array[1..10] of integer;
i, k, l : integer;
begin ClrScr;
    f[1] := 1;
    f[2] := 1;
    for i:=3 to 10 do
    begin
        f[i]:=f[i-1]+f[i-2];
        writeln(f[i]);
    end;
end.
Истинный успех – это то, что Вы сделали в сравнении с тем, что могли бы сделать.
Никогда не бойся делать то, что ты не умеешь. Помни, ковчег был построен любителем. Профессионалы построили "Титаник".
Daramant вне форума Ответить с цитированием
Старый 06.12.2009, 12:48   #7
Banderas123
Пользователь
 
Регистрация: 05.12.2009
Сообщений: 14
По умолчанию

Спасибо, сейчас буду пробовать.. =)
Banderas123 вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Pascal: Наиболее часто встречающееся число в массиве. MaGWaY_minsk Помощь студентам 2 20.01.2010 00:22
[pascal]Массив Чисел Фибоначчи decantnik Помощь студентам 5 16.11.2009 17:51
N-e число Фибоначчи MAKEDON Общие вопросы C/C++ 2 10.03.2009 13:01
Определить n-ое число Фибоначчи - Рекурсия Xeon332 Помощь студентам 3 09.01.2008 19:01
Число перемен знака в массиве. Количество слов в тексте. Pascal. Cartman18 Помощь студентам 1 10.12.2007 12:58