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

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

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

Восстановить пароль
Повторная активизация e-mail

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

Ответ
 
Опции темы Поиск в этой теме
Старый 27.06.2012, 10:55   #1
KIMWO
Новичок
Джуниор
 
Аватар для KIMWO
 
Регистрация: 27.06.2012
Сообщений: 4
По умолчанию Числа Фибоначчи Delphi

Здравствуйте, у меня вопрос жизни и смерти.
Помогите решить задачу с помощью языка программирования Delphi

задача состоит в следующем:
есть заданная последовательность целых чисел (n; xi, i=1...n)
найти первое число фибоначчи поповшееся в этой последовательности.
(в случае не нахождения такового вывод сообщения "нет" в случае да число фибоначчи " ")

Пожалуйста помогите..
KIMWO вне форума Ответить с цитированием
Старый 27.06.2012, 11:07   #2
VIK_aka_TOR
Участник клуба
 
Аватар для VIK_aka_TOR
 
Регистрация: 30.01.2011
Сообщений: 1,578
По умолчанию

а в чем проблемы?... не знаете как числа фибоначи "строятся", или же как сравнивать числа?...
сперва определить минимальные и максимальные эдлементы в вашей последовательности... что бы знать с каких пор и до какого момента сканить... ну а там уже судя по всему обычным перебором... ну или же запихнуть в множество вашу последовательность и проверять .... собственно решать вам...
пишу код не только за печеньки
VIK_aka_TOR вне форума Ответить с цитированием
Старый 27.06.2012, 11:30   #3
KIMWO
Новичок
Джуниор
 
Аватар для KIMWO
 
Регистрация: 27.06.2012
Сообщений: 4
По умолчанию

мне просто нужен программный код.
извините конечно, но я помощи прошу, а не нравоучений. у меня не вышло. по этому и прошу помощь. получилось бы писать не стала
KIMWO вне форума Ответить с цитированием
Старый 27.06.2012, 11:34   #4
VIK_aka_TOR
Участник клуба
 
Аватар для VIK_aka_TOR
 
Регистрация: 30.01.2011
Сообщений: 1,578
По умолчанию

показывайте что у вас не получилось...
вы же не написали на какой стадии у вас начались затруднения... вот и начал с самого начала... тобишь саму идею реализации... да и не нравоучения это... а идеи способа реализации... наработочки ваши в студию...
пишу код не только за печеньки
VIK_aka_TOR вне форума Ответить с цитированием
Старый 27.06.2012, 11:39   #5
DiemonStar
Старожил
 
Регистрация: 08.02.2012
Сообщений: 2,173
По умолчанию

Цитата:
мне просто нужен программный код.
извините конечно, но я помощи прошу, а не нравоучений.
Вы меня извините, но для того чтобы вам помогли, а не сделали всё за вас, желательно выложить свои наработки и указать что конкретно не получается. Поверьте, вам же лучше если помогут разобраться, а не принесут готовое решение.
Правильно поставленная задача - три четверти решения.
DiemonStar вне форума Ответить с цитированием
Старый 27.06.2012, 11:48   #6
KIMWO
Новичок
Джуниор
 
Аватар для KIMWO
 
Регистрация: 27.06.2012
Сообщений: 4
По умолчанию


это математический код, а преобразовать в программный не вышло.
KIMWO вне форума Ответить с цитированием
Старый 27.06.2012, 15:00   #7
VikaR
Пользователь
 
Регистрация: 01.07.2011
Сообщений: 21
По умолчанию

для 100 первых чисел Фибоначчи и максимум 100 чисел из файла "1.txt" лежащего в однй директории с экзешником
Код:
var
   fibo: array[1..100] of integer;
   nums: array[1..100] of integer;
   i, j, k: integer;
   filen: TextFile;
   no: boolean;
begin
   AssignFile(filen, '1.txt');
   Reset(filen);
   k:=0;
   while not Eof(filen) do
   begin
      Read(filen, nums[k]);
      inc(k);
   end;
   fibo[1]:=1;
   fibo[2]:=1;
   for i:=3 to 100 do
      fibo[i]:=fibo[i-1]+fibo[i-2];
   no:= true;
   for i:=1 to k do
      for j:=0 to 100 do
         if nums[i] = fibo[j] then
         begin
            no := false;
            ShowMessage('Найдено:' + IntToStr(nums[i]));
         end;
    if no then
       ShowMessage('Не найдено');
end;
VikaR вне форума Ответить с цитированием
Старый 27.06.2012, 15:40   #8
BDA
МегаМодератор
СуперМодератор
 
Аватар для BDA
 
Регистрация: 09.11.2010
Сообщений: 7,316
По умолчанию

VikaR, небольшое замечание:
354224848179261915075 (100-е число Фибоначчи)
2147483647 (максимальное значение integer)

Свое решение, может быть, выложу ближе к вечеру.

Update
9223372036854775807 (максимальное число int64 - уже почти хватает для 100-го числа Фибоначчи)

Цитата:
Если объявить массив
Код:
fibo: array[1..100] of real;
, то все верно.
Если его так объявить, то это нарушит условия. В условии целые числа, т.е. придется переписывать условия сравнения, да и точность будет страдать.

Остановимся на числе integer и найдем (для простоты программы) максимальное число Фибоначчи, помещающееся в данный тип, вручную.
Таким элементом является 46 число Фибоначчи - 1836311903.
Код:
program Project1;
{$APPTYPE CONSOLE}

uses
  SysUtils;

const
  c = 46; // count of fibbonacci

var
  f: array [1 .. c] of integer;
  n, i, j, a: integer;
  no: boolean;

begin
  try
    f[1] := 1;
    f[2] := 1;
    for i := 3 to c do
      f[i] := f[i - 1] + f[i - 2];
    write('Input n: ');
    readln(n);
    for i := 1 to n do
    begin
      read(a);
      if not((a < f[1]) or (a > f[c])) then
        for j := 2 to c do
          if f[j] = a then
          begin
            writeln('First fibonacci element ', a, ' on ', i,
              ' position from ', n);
            readln;
            readln;
            exit;
          end;
    end;
    writeln('No fibonacci elements');
    readln;
    readln;
  except
    on E: Exception do
      writeln(E.ClassName, ': ', E.Message);
  end;

end.
Пишите язык программирования - это форум программистов, а не экстрасенсов. (<= это подпись )

Последний раз редактировалось BDA; 28.06.2012 в 00:28.
BDA вне форума Ответить с цитированием
Старый 27.06.2012, 16:31   #9
VikaR
Пользователь
 
Регистрация: 01.07.2011
Сообщений: 21
По умолчанию

ВDA, верное замечание!
Если объявить массив
Код:
fibo: array[1..100] of real;
, то все верно.
VikaR вне форума Ответить с цитированием
Старый 27.06.2012, 21:46   #10
KIMWO
Новичок
Джуниор
 
Аватар для KIMWO
 
Регистрация: 27.06.2012
Сообщений: 4
По умолчанию

загвоздка именно в том что нужно вывести 1е число фибоначчи которое попадается в последовательности целых чисел..

Последний раз редактировалось KIMWO; 27.06.2012 в 21:51.
KIMWO вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
числа Фибоначчи akademochka Помощь студентам 3 22.03.2012 23:45
рассчитать числа Фибоначчи в Delphi sunni_girl91 Помощь студентам 3 22.05.2011 12:36
Delphi. Числа Фибоначчи. Nicole Помощь студентам 2 09.04.2011 22:06
Числа Фибоначчи zerc Помощь студентам 1 22.10.2010 19:50
Числа Фибоначчи sher_man Помощь студентам 9 20.10.2007 18:45