Форум программистов, компьютерный форум, киберфорум
PascalABC.NET
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.86/7: Рейтинг темы: голосов - 7, средняя оценка - 4.86
0 / 0 / 0
Регистрация: 18.05.2015
Сообщений: 14

Определить, образуют ли данные числа ряд Фибоначчи

03.06.2015, 00:22. Показов 1525. Ответов 5
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Доброй ночи, знатоки Паскаля. Очень нуждаюсь в вашей помощи в разработке кода или доработке моей пародии на код. В условии задачи дана произвольная последовательность чисел. Эти числа должны сообщаться программе как параметры командной строки.
Необходимо определить, образуют ли данные числа ряд Фибоначчи (1, 2, 3, 5, 8, 13, 21, 33, 54, ...).
Результат должен выводиться на экран в понятном виде и в таком же виде печататься в файл result.txt.

Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
(*
 Определить, образуют ли данные числа
 ряд Фиббоначчи (1,2,3,5,8,13,21,33,54)
 Результат отправляет в result.txt
*)
 
var
k1,k2,n: integer;
x: real;
i: integer;
 
t: text;
 
begin
 if ParamCount = 0 then
 begin
  writeln('Нет данных для вычисления');
  readln;
  exit;
end;
 
n:= ParamCount;
for i:=1 to n do
begin
end
end.
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
03.06.2015, 00:22
Ответы с готовыми решениями:

Определить, образуют ли данные числа возрастающую последовательность
Дано 15 вещественных чисел. Определить, образуют ли эти числа возрастающую последовательность.C++, помогите написать код

Проверить образуют ли введенные числа последовательность Фибоначчи
В первой строчке вводится сколько всего элементов последовательности(до ста) Во второй строчке n натуральных чисел (n<10^9) (Числа...

Записать в ряд все числа Фибоначчи, не превосходящие целого положительного числа n
type ряд=file of l..maxint; Описать процедуру fib(f,n), записывающую в ряд f все числа Фибоначчи (1, 1, 2, 3, 5, ...), не превосходящие...

5
 Аватар для JuriiMW
5095 / 2661 / 2355
Регистрация: 10.12.2014
Сообщений: 10,060
03.06.2015, 05:52
Лучший ответ Сообщение было отмечено Памирыч как решение

Решение

Как-то так:
Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
procedure FibFalse;
const
  msg = 'Данная последовательнось чисел не является частью последовательности Фибоначчи.';
var
  F : Text;
begin
  WriteLn(msg); Rewrite(F, 'result.txt'); WriteLn(F, msg); Close(F); Halt;
end;
 
procedure FibTrue;
const
  msg = 'Данная последовательнось чисел является частью последовательности Фибоначчи.';
var
  F : Text;
begin
  WriteLn(msg); Rewrite(F, 'result.txt'); WriteLn(F, msg); Close(F); Halt;
end;
 
var
  A : array of Integer; 
  n, F, F_ : Integer;
begin
  SetLength(A, 0);
  
  { Прочтём все параметры в массив }
  try
    for n := 1 to ParamCount do
      begin
        SetLength(A, A.Length+1);
        A[A.Length-1] := ParamStr(n).ToInteger;
      end;
  except
    FibFalse;
  end;
  
  { Если одно число - это не последовательность. Нужно хотя бы 2 ;-) }
  if A.Length < 2 then FibFalse;
  
  { Найдём число F - Фибоначчи, которое больше или равно первому данному числу }
  F := 1; F_ := 1; while A[0] > F do begin F += F_; F_ := F - F_; end;
  
  if F > A[0] then FibFalse;
  
  { Последовательно проверим все остальные числа }
  for n := 1 to A.Length-1 do
    begin
      F += F_; F_ := F - F_; /// Следующее число Фибоначчи
      if A[n] <> F then FibFalse;
    end;
    
  FibTrue;
end.
0
Эксперт Pascal/Delphi
2388 / 1300 / 1492
Регистрация: 29.08.2014
Сообщений: 4,665
03.06.2015, 05:55
Лучший ответ Сообщение было отмечено Памирыч как решение

Решение

Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
uses System.Io;
var
  i:integer;
  a:array of integer;
  r:boolean;
procedure writeresult(s:string);
begin  
    &File.WriteAllText('result.txt',s);
    writeln(s);
end;
begin
  if ParamCount>0 then begin
    SetLength(a,ParamCount);
    for i:=0 to ParamCount-1 do a[i]:=strtoint(ParamStr(i+1));
    r:=true;
    if (a[0]<>1) or  (a[1]<>2) then r:=false;
    for i:=2 to ParamCount-1 do if a[i]<>a[i-2]+a[i-1] then r:=false;
    if r then writeresult('Является') else writeln('Не является');
  end else writeresult('Нет данных для вычисления')
end.
0
 Аватар для JuriiMW
5095 / 2661 / 2355
Регистрация: 10.12.2014
Сообщений: 10,060
03.06.2015, 06:13
Joy, задал параметры: 3 5 8
А твоя программа пишет: Не является

Добавлено через 3 минуты
Упс!
Правильно работает если последовательность задать с самого начала.

Добавлено через 53 секунды
… Мой вариант делает проверку не обязательно с начала…
0
Эксперт Pascal/Delphi
2388 / 1300 / 1492
Регистрация: 29.08.2014
Сообщений: 4,665
03.06.2015, 06:45
Лучший ответ Сообщение было отмечено Aleks Eight как решение

Решение

тогда так:
Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
uses System.Io;
var
  i,f1,f2,f3:integer;
  a:array of integer;
  r:boolean;
procedure writeresult(s:string);
begin  
    &File.WriteAllText('result.txt',s);
    writeln(s);
end;
begin
  if ParamCount>0 then begin
    SetLength(a,ParamCount);
    for i:=0 to ParamCount-1 do a[i]:=strtoint(ParamStr(i+1));
    r:=true;
    f1:=0;f2:=1;
    while a[1]>f1 do begin f3:=f2+f1; f2:=f1; f1:=f3; end;
    if (a[0]<>f2) or  (a[1]<>f1) then r:=false;
    for i:=2 to ParamCount-1 do if a[i]<>a[i-2]+a[i-1] then r:=false;
    if r then writeresult('Является') else writeln('Не является');
  end else writeresult('Нет данных для вычисления')
end.
1
0 / 0 / 0
Регистрация: 18.05.2015
Сообщений: 14
03.06.2015, 16:31  [ТС]
Joy, JuriiMW, спасибо огромное, ребят. Выручили)
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
03.06.2015, 16:31
Помогаю со студенческими работами здесь

Числа Фибоначчи: с какого числа начинается ряд?
Недавно столкнулся с такой проблемой: Некоторые источники утверждают(например Википедия),что ряд чисел Фибоначчи начинается с 0(т.е....

Дан одномерный целочисленный массив. Определить, образуют ли элементы массива определенную часть последовательности Фибоначчи
Дан одномерный целочисленный массив. Определить, образуют ли элементы массива определенную часть последовательности Фибоначчи. Пример....

Определить номер N числа Фибоначчи, при котором сумма N первых чисел Фибоначчи превышает заданное число М
Определить номер N числа Фибоначчи, при котором сумма N первых чисел Фибоначчи превышает заданное число М. Числа Фибоначчи определяются ...

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

Вывести на экран двузначные числа, составляющие ряд Фибоначчи
Вывести на экран двузначные числа, составляющие ряд Фибоначчи помогите доделать, похожее нашел переделал но не красиво смотриться в...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
6
Ответ Создать тему
Новые блоги и статьи
BOINC: 22 года — и всё ещё работает
Programma_Boinc 12.03.2026
BOINC: 22 года — и всё ещё работает Дэвид Андерсон написал ретроспективу. Кратко: в 2001 году он ушёл из United Devices, где был CTO, и за несколько месяцев написал ядро BOINC — клиент, сервер,. . .
SDL3 для Desktop (MinGW): Создаём пустое окно с нуля для 2D-графики на SDL3, Си и C++
8Observer8 10.03.2026
Содержание блога Финальные проекты на Си и на C++: hello-sdl3-c. zip hello-sdl3-cpp. zip Результат:
Установка CMake и MinGW 13.1 для сборки С и C++ приложений из консоли и из Qt Creator в EXE
8Observer8 10.03.2026
Содержание блога MinGW - это коллекция инструментов для сборки приложений в EXE. CMake - это система сборки приложений. Здесь описаны базовые шаги для старта программирования с помощью CMake и. . .
Как дизайн сайта влияет на конверсию: 7 решений, которые реально повышают заявки
Neotwalker 08.03.2026
Многие до сих пор воспринимают дизайн сайта как “красивую оболочку”. На практике всё иначе: дизайн напрямую влияет на то, оставит человек заявку или уйдёт через несколько секунд. Даже если у вас. . .
Модульная разработка через nuget packages
DevAlt 07.03.2026
Сложившийся в . Net-среде способ разработки чаще всего предполагает монорепозиторий в котором находятся все исходники. При создании нового решения, мы просто добавляем нужные проекты и имеем. . .
Модульный подход на примере F#
DevAlt 06.03.2026
В блоге дяди Боба наткнулся на такое определение: В этой книге («Подход, основанный на вариантах использования») Ивар утверждает, что архитектура программного обеспечения — это структуры,. . .
Управление камерой с помощью скрипта OrbitControls.js на Three.js: Вращение, зум и панорамирование
8Observer8 05.03.2026
Содержание блога Финальная демка в браузере работает на Desktop и мобильных браузерах. Итоговый код: orbit-controls-threejs-js. zip. Сканируйте QR-код на мобильном. Вращайте камеру одним пальцем,. . .
SDL3 для Web (WebAssembly): Синхронизация спрайтов SDL3 и тел Box2D
8Observer8 04.03.2026
Содержание блога Финальная демка в браузере. Итоговый код: finish-sync-physics-sprites-sdl3-c. zip На первой гифке отладочные линии отключены, а на второй включены:. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru