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

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

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

   >   >   > 


Пример «Числа Фибоначчи от ИИ Claude Sonnet 4 »

Файлы:

  • Простые приложения
    • Числа Фибоначчи от ИИ Claude Sonnet 4 .пфл

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



//Эта программа написанна на языке программирования Перфолента.Net.
//Программа демонстрирует различные подходы к вычислению последовательности чисел Фибоначчи.

//Автор: Рогаткин Сергей Анатольевич, 2025
//Пример написан с помощью ИИ Claude Sonnet 4.

#ИспользоватьСтандартнуюБиблиотеку

ИмпортИмён Промкод.Перфолента.Консоль 

Программа ЧислаФибоначчи

    //---------------------------
    Процедура Старт
        
        Консоль.Заголовок = "Числа Фибоначчи - Перфолента.Net"
        Консоль.ЦветТекста = ЦветаКонсоли.Белый
        Консоль.ЦветФона = ЦветаКонсоли.ТемноСиний
        Консоль.Очистить
        
        Консоль.ВыводПС("Демонстрация алгоритмов чисел Фибоначчи")
        Консоль.ВыводПС("=" + "=".Повторить(45))
        Консоль.ВыводПС("")
        
        // Тестируем разные подходы
        n = 15
        
        // 1. Итеративный подход (самый эффективный)
        Консоль.ВыводПС("1. Итеративный подход:")
        ВывестиПоследовательностьФибоначчи(n)
        Консоль.ВыводПС("")
        
        // 2. Рекурсивный подход (для небольших чисел)
        Консоль.ВыводПС("2. Рекурсивный подход (первые 10 чисел):")
        Для i = 0 По 9 Цикл
            Консоль.ВыводПС(ФибоначчиРекурсивно(i))
        КонецЦикла
        Консоль.ВыводПС("")
        Консоль.ВыводПС("")
        
        // 3. Вычисление отдельных чисел
        Консоль.ВыводПС("3. Отдельные числа Фибоначчи:")
        Консоль.ВыводПС("F(20) = " + ФибоначчиИтеративно(20))
        Консоль.ВыводПС("F(30) = " + ФибоначчиИтеративно(30))
        Консоль.ВыводПС("F(40) = " + ФибоначчиИтеративно(40))
        Консоль.ВыводПС("")
        
        // 4. Использование массива
        Консоль.ВыводПС("4. Массив чисел Фибоначчи:")
        МассивФиб = ПолучитьМассивФибоначчи(12)
        Для i = 0 По МассивФиб.ВГраница Цикл
            Консоль.ВыводПС("F(" + i + ") = " + МассивФиб[i])
        КонецЦикла
        
        Консоль.ВыводПС("")
        Консоль.ВыводПС("Нажмите любую клавишу для завершения...")
        Пауза
        
    КонецПроцедуры
    
    //---------------------------
    // Итеративный алгоритм для одного числа (наиболее эффективный)
    Функция ФибоначчиИтеративно(n тип Целое) тип БольшоеЦелое
        
        Если n <= 1 Тогда
            Возврат n
        КонецЕсли
        
        Перем предыдущее тип БольшоеЦелое = 0
        Перем текущее тип БольшоеЦелое = 1
        Перем временное тип БольшоеЦелое
        
        Для i = 2 По n Цикл
            временное = предыдущее + текущее
            предыдущее = текущее
            текущее = временное
        КонецЦикла
        
        Возврат текущее
        
    КонецФункции
    
    //---------------------------
    // Рекурсивный алгоритм (простой, но медленный для больших n)
    Функция ФибоначчиРекурсивно(n тип Целое) тип БольшоеЦелое
        
        Если n <= 1 Тогда
            Возврат n
        КонецЕсли
        
        Возврат ФибоначчиРекурсивно(n - 1) + ФибоначчиРекурсивно(n - 2)
        
    КонецФункции
    
    //---------------------------
    // Процедура для вывода последовательности чисел Фибоначчи
    Процедура ВывестиПоследовательностьФибоначчи(количество тип Целое)
        
        Если количество <= 0 Тогда
            Консоль.ВыводПС("Количество должно быть больше 0")
            Возврат
        КонецЕсли
        
        Перем предыдущее тип БольшоеЦелое = 0
        Перем текущее тип БольшоеЦелое = 1
        
        // Выводим первые два числа
        Если количество >= 1 Тогда 
            Консоль.ВыводПС("0 ")
        КонецЕсли
        Если количество >= 2 Тогда 
            Консоль.ВыводПС("1 ")
        КонецЕсли
        
        // Вычисляем и выводим остальные числа
        Для i = 2 По количество - 1 Цикл
            Перем следующее тип БольшоеЦелое = предыдущее + текущее
            Консоль.ВыводПС(следующее)
            предыдущее = текущее
            текущее = следующее
        КонецЦикла
        
        Консоль.ВыводПС("") // Переход на новую строку
        
    КонецПроцедуры
    
    //---------------------------
    // Функция для получения массива чисел Фибоначчи
    Функция ПолучитьМассивФибоначчи(количество тип Целое) тип БольшоеЦелое[]
        
        Если количество <= 0 Тогда
            Возврат Новый БольшоеЦелое[]
        КонецЕсли
        
        Перем фиб тип БольшоеЦелое[] = Новый БольшоеЦелое[количество-1]
        
        Если количество >= 1 Тогда 
            фиб[0] = 0
        КонецЕсли
        Если количество >= 2 Тогда 
            фиб[1] = 1
        КонецЕсли
        
        Для i = 2 По количество - 1 Цикл
            фиб[i] = фиб[i - 1] + фиб[i - 2]
        КонецЦикла
        
        Возврат фиб
        
    КонецФункции
    
    //---------------------------
    // Функция проверки числа на принадлежность к последовательности Фибоначчи
    Функция ЭтоЧислоФибоначчи(Чис тип БольшоеЦелое) тип Булево
        
        Если Чис < 0 Тогда
            Возврат Ложь
        КонецЕсли
        
        Если Чис = 0 или Чис = 1 Тогда
            Возврат Истина
        КонецЕсли
        
        Перем предыдущее тип БольшоеЦелое = 0
        Перем текущее тип БольшоеЦелое = 1
        
        Пока текущее < Чис Цикл
            Перем следующее тип БольшоеЦелое = предыдущее + текущее
            предыдущее = текущее
            текущее = следующее
        КонецЦикла
        
        Возврат текущее = Чис
        
    КонецФункции
    
    //---------------------------
    // Функция поиска индекса числа Фибоначчи
    Функция НайтиИндексФибоначчи(Чис тип БольшоеЦелое) тип Целое
        
        Если Чис = 0 Тогда
            Возврат 0
        ИначеЕсли Чис = 1 Тогда
            Возврат 1
        ИначеЕсли Чис < 0 Тогда
            Возврат -1 // Не найдено
        КонецЕсли
        
        Перем предыдущее тип БольшоеЦелое = 0
        Перем текущее тип БольшоеЦелое = 1
        Перем индекс тип Целое = 1
        
        Пока текущее < Чис Цикл
            Перем следующее тип БольшоеЦелое = предыдущее + текущее
            предыдущее = текущее
            текущее = следующее
            индекс = индекс + 1
        КонецЦикла
        
        Если текущее = Чис Тогда
            Возврат индекс
        Иначе
            Возврат -1 // Не найдено
        КонецЕсли
        
    КонецФункции

КонецПрограммы


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


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

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

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

  Новости:
      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
       Все новости