Язык программирования Перфолента.Net - Официальный сайт

 Язык программирования Перфолента.Net - Официальный сайт.

Поиск   
Главная :: О проекте :: Контакты :: Обратная связь :: Благодарности :: ВходГость

   >   >   > 


Пример «Числа Фибоначчи»

Файлы:

  • Синтаксис языка
    • Функции
      • Числа Фибоначчи.перфо

Пример программы на языке программирования Перфо:



//Эта программа написана на языке программирования Перфо
//для демонстрации написания функций и рекурсии 


//Вычисление чисел Фибоначчи реализуем с помощью рекурсии

//Способ 1:
//рекурсия в виде дерева... дерево вызовов очень быстро растет...
(функция (Фибоначчи Н)
  (Выбор ((= Н 0) 0)
        ((= Н 1) 1)
        (Иначе (+ (Фибоначчи (- Н 1)) (Фибоначчи (- Н 2))))
  )
)
//тест
(Для (Инд 0 10)
    (Вывод "Результат (Фибоначчи " Инд ") = " (Фибоначчи Инд) ПС)
) 
(Вывод пс)

//Способ 2:
//заменяем рекурсию в виде дерева на линейную рекурсию,
//что намного эффективнее
(функция (Фибоначчи2 Н) 
  (Фибоначчи2-итерация 1 0 Н))

(функция (Фибоначчи2-итерация А Б Счетчик)
  (Если (= Счетчик 0)
      Б
      (Фибоначчи2-итерация (+ А Б) А (- Счетчик 1))))
//тест
(Для (Инд 0 10)
    (Вывод "Результат (Фибоначчи2 " Инд ") = " (Фибоначчи2 Инд) ПС)
) 
(Вывод пс)

//Способ 3:
//заменяем рекурсию на цикл,
//что ещё эффективнее, чем линейная рекурсия
(функция (Фибоначчи3 Н)
    (Перем Чис1 0)
    (Перем Чис2 0)
    (Перем Рез 0)
    (Для (Инд 1 Н)
        (Если (Или (= Инд 1) (= Инд 2)) 
            (Уст Рез 1)
            (Уст Рез (+ Чис1 Чис2))
        )
        (Уст Чис1 Чис2)
        (Уст Чис2 Рез)
    )
    Рез
)
//тест
(Для (Инд 0 10)
    (Вывод "Результат (Фибоначчи3 " Инд ") = " (Фибоначчи3 Инд) ПС)
) 
(Вывод пс)



К началу статьи


Вернуться в раздел:
Примеры по языку Перфо

Перейти в раздел:
Примеры
  Поддержи проект!

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

  Новости:
      21.01.2026 На сайт добавлена статья "Конструируем класс. События"
      20.01.2026 Опубликован новый релиз 0.4.18.0_NY языка программирования Перфолента.Net
      29.12.2025 Анонс: Новая возможность - разрабатываем веб-сайты, веб-приложения и веб-API на Перфоленте!
      07.06.2025 Небольшие дополнения к документации на сайте - описание атрибута поля &Атомарное
      09.05.2025 На сайте опубликован релиз 0.4.16.0_SE дистрибутива языка программирования Перфолента.Net
      27.04.2025 Дополнена статья про циклы
      04.01.2025 Опубликован новый релиз дистрибутива языка программирования Перфолента.Net версии 0.4.15.0_CE
      23.09.2024 Опубликована новая статья: "Конструируем класс. Делегаты."
      30.08.2024 Опубликован новый релиз дистрибутива языка программирования Перфолента.Net версии 0.4.14.0
      24.05.2024 Обновлён справочный раздел сайта
      01.07.2023 Новая версия 0.4.13.0 языка программирования Перфолента.Net
       Все новости