Имя пользователя:
Пароль:  
Помощь | Регистрация | Забыли пароль?  | Правила  

Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Программирование и базы данных » *Теория* | Числа Фибоначчи

Ответить
Настройки темы
*Теория* | Числа Фибоначчи

Аватара для Grub

Ветеран


Сообщения: 662
Благодарности: 64


Конфигурация

Профиль | Отправить PM | Цитировать


Изменения
Автор: Grub
Дата: 06-06-2006
Ребята помогите выкрутиться!!! Договорился с преподом чтоб он мне зачет поставил, а он мне в ответ на это задание дал. Мол напиши прогу, которая бы находила и отоброжала числа Фибоначчи. А я в программировании вообще не силен. Могу по уже написаному сделать, да кнопки на форму покидать и все. И самое главное, что в задании нет предела. А я так понимаю, что как только число дойдет до конца обьявленного типа, то выдаст ошибку. Вот надо эту ошибку попробовать побороть. Не бросайте в беде человека.... Подскажите или ссылку какую дайте.....

Отправлено: 08:10, 06-06-2006

 

Аватара для DVDshnik

Не дед


Moderator


Сообщения: 15391
Благодарности: 2196

Профиль | Отправить PM | Цитировать


Цитата:
числа Фибаначи
Фибоначчи числа, емнип.

PS: последнее не что иное как сокращение фразы "если меня память не подводит".

-------
Ненавижу, когда все шагают строем - одинаково стриженые, одинаково одетые, с одинаковыми мыслями в одинаково пустых головах. (С) Кий


Последний раз редактировалось DVDshnik, 06-06-2006 в 11:48.


Отправлено: 08:23, 06-06-2006 | #2



Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети.

Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля.


Аватара для Grub

Ветеран


Сообщения: 662
Благодарности: 64

Профиль | Отправить PM | Цитировать


DVDshnik да не злись ты. Если из-за каждой орфографической ошибки так злится, нервное расстройство можно заработать. И спасибо за подсказку

Отправлено: 09:26, 06-06-2006 | #3


Ветеран


Сообщения: 1807
Благодарности: 146

Профиль | Отправить PM | Цитировать


Числа Фибоначчи - похоже, любимая развлекаловка разных преподов, и подлость действительно в том, что они очень быстро выходят за пределы 32-битных чисел. Плюс к тому на них еще любят объяснять рекурсию, поэтому программирование вычисления чисел Фибоначчи есть очень во многих книжках. Например, в Фаронове. Какой хоть язык программирования?

Можно и нагуглить кой-чего.

http://www.kursovik.com/programming/201021.html - сама прога (экзешник) бесплатно, исходник на Паскале - за деньги. Есть и задарма:

http://old.osp.ru/pcworld/2001/07/130t2.htm
http://forum.vingrad.ru/index.php?sh...d=#entry250663 - обсуждение на форуме с парой вариантов решения

Можно и еще найти.

ЗЫ: Нашел вот на Питоне (язык-то не указан!): http://pythonbook.it-arts.ru/files/s...th_python.html

Отправлено: 10:53, 06-06-2006 | #4


Пользователь


Сообщения: 79
Благодарности: 1

Профиль | Отправить PM | Цитировать


Grub
Вот задание:
___________________________________________________________
Условие.
Последовательность чисел Фибоначчи u0,u1....un образуется по закону u(0)=0;u(1)=1;u(i)=u(i-1)+u(i-2); i=1,2,3....
Дано натуральное число n>1 . Получить u0,u1....u.
____________________________________________________________
вот решение:

Решение.
В программу вводится количество элементов массива в диапазоне 1 <n<46 (т.к. 47 член последовательности превышает допустимое значение для типа данных int). Осуществляется проверка введённых значений. Выделяется оперативная память под массив с помощью функции malloc(). В цикле производим заполнение массива по формуле u(i)=u(i-1)+u(i-2). Затем с помощью функции printf() все элементы массива выводится на экран.

Код: Выделить весь код
#include <conio.h>;
#include <stdio.h>;
#include <alloc.h>;
void main ()
{
   int n,i,*u;          //n-количество элементов последовательности, i - счётчик, *u- указатель на массив
   do{
   printf(" Warning! Max value n<=46 \n Input n=");  // "введите кол-во элементов последовательности"
   scanf("%d",&n);                                                       // вводим n 
   clrscr();
   }while(n>46);                                                         //если n>46, то повторяем цикл do-while
   u =(int *)malloc(n*sizeof(int));                               // выделяем динамически память под массив
   u[0]=0;                                                                   // задаём значение первых двух элементов
   u[1]=1;
   printf("\n for u0=%d; \n for u1=%d;",u[0],u[1]);   //выводим первые два эл-та на экран
	for(i=2;i<n;i++)                                                 
	{
   u[i]=u[i-1]+u[i-2];
   printf("\n for u%d=%d;",i,u[i]);   // и далее в цикле, согласно формуле все остальные эл-ты выводим
   }
   getch();
   free(u);         // очищаем отведённую под массив память
 }

Отправлено: 11:35, 06-06-2006 | #5


Аватара для Grub

Ветеран


Сообщения: 662
Благодарности: 64

Профиль | Отправить PM | Цитировать


Блин, ребята извините. На делфях надо сделать. Задание такое: сделай мне прогу, которая будет выводить строку из чисел Фибоначчи. Предел не указываю, т.к. сам знаю что при достижении "крит.числа" вылетит ошибка. Сделай чтоб ошибка не вылетала.
Я так понял что ему бесконечность подавай. А вообще, для начала хоть что-нибудь бы найти.
XPEHOMETP, Hemp спасибо. Ща буду просматривать.

-------
Иди, мой друг, всегда иди дорогою добра!


Отправлено: 12:36, 06-06-2006 | #6


Аватара для CyberDaemon

DOOMer


Сообщения: 3254
Благодарности: 438

Профиль | Отправить PM | Цитировать


Числа Киббоначи, знакомая штука
Чтобы переполения не было - считай столбиком, как на пумашке в школе. Если тип переменной "строка" - то раньше зачот дойдет до конца

-------
"640 K ought to be enough for anybody" Bill Gates, 1981


Отправлено: 12:54, 08-06-2006 | #7


Пользователь


Сообщения: 71
Благодарности: 1

Профиль | Отправить PM | Цитировать


на pascal'е

Код: Выделить весь код
Program Fibonache;
uses crt;
var x,y,z,n,i: longint;
begin;
clrscr;
x:=1; y:=1;
write ('‡*¤*©вҐ Ї®ап¤Є®ўл© *®¬Ґа зЁб«* ”ЁЎЎ***зЁ:   ');
readln(n);
   for i:=3 to n do begin;
   z:=x+y; y:=x; x:=z;
   end;
       if n<3 then z:=1;
writeln ('зЁб«® ”ЁЎЎ®**зЁ:  ',z);
readln;
end.
на pascal'е с помощью процедуры

Код: Выделить весь код
Program Fibonache;
uses crt;
var x,y,z,n,i: longint;
procedure shet (n:longint; var z:longint);
begin;
  if n>=3 then begin; shet (n-1,z);
  z:=x+y; y:=x; x:=z;
  end else if n=3 then begin x:=1;y:=1;z:=2 end else begin x:=1; y:=1; z:=1; end;
end;
begin;
clrscr;
write ('‡*¤*©вҐ Ї®ап¤Є®ўл© *®¬Ґа зЁб«* ”ЁЎЎ***зЁ:   ');
readln(n);
shet (n,z);
writeln ('зЁб«® ”ЁЎЎ®**зЁ:  ',z);
readkey;
end.
то что каракули, там чё то по русски, а на дэлфи не долго переделать язык одинаковый

Отправлено: 02:06, 11-07-2006 | #8

L13


Сообщения: n/a

Профиль | Цитировать


Была похожая задача у меня на дипломе (не Фибоначчи). Основная проблема была быстрое завершение числового диапазона, а препадам хотелось получать числа подлинее, так они одному студенту задание дали на суммирование чисел в символьном формате. Т.е. 123 + 456 были на самом деле '123' + '456'. По идее так можно и до бесконечности, пока размера диска хватит.

Отправлено: 14:23, 28-07-2006 | #9



Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Программирование и базы данных » *Теория* | Числа Фибоначчи

Участник сейчас на форуме Участник сейчас на форуме Участник вне форума Участник вне форума Автор темы Автор темы Шапка темы Сообщение прикреплено

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
Простые числа на Си++ nemo555 Программирование и базы данных 13 13-03-2007 21:24
четность числа elfoflorien Вебмастеру 6 18-09-2005 20:49
Случайные числа на JavaScript Dimonweb Вебмастеру 2 12-08-2004 03:23
Округления числа до десятичного khvalera Программирование и базы данных 3 02-09-2003 06:01
суммироват числа Artashes Программирование и базы данных 3 30-08-2003 18:31




 
Переход