Компьютерный форум OSzone.net  

Компьютерный форум OSzone.net (http://forum.oszone.net/index.php)
-   Программирование и базы данных (http://forum.oszone.net/forumdisplay.php?f=21)
-   -   *Теория* | Числа Фибоначчи (http://forum.oszone.net/showthread.php?t=66856)

Grub 06-06-2006 08:10 447163

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

DVDshnik 06-06-2006 08:23 447168

Цитата:

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

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

Grub 06-06-2006 09:26 447195

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

XPEHOMETP 06-06-2006 10:53 447244

Числа Фибоначчи - похоже, любимая развлекаловка разных преподов, и подлость действительно в том, что они очень быстро выходят за пределы 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

Hemp 06-06-2006 11:35 447270

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);        // очищаем отведённую под массив память
 }


Grub 06-06-2006 12:36 447302

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

CyberDaemon 08-06-2006 12:54 448389

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

sandycrazy 11-07-2006 02:06 460037

на 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.

то что каракули, там чё то по русски, а на дэлфи не долго переделать язык одинаковый

L13 28-07-2006 14:23 465841

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


Время: 14:06.

Время: 14:06.
© OSzone.net 2001-