Скрипты и программы на языке Перфо — различия между версиями

Материал из ТХАБ.РФ
Перейти к: навигация, поиск
 
м
 
(не показана 1 промежуточная версия 1 участника)
Строка 1: Строка 1:
 +
 +
// *** Тестовый скрипт на языке Перфо ***
 +
(Отладка Истина) //включим режим отладки скрипта
 +
(Очистить) //очищаем экран консоли
 +
 +
#Область "Привет, МИР!"
 +
(Вывод "Привет, МИР! Это программа на языке Перфо." ПС)
 +
//запросим у пользователя имя и сохраним в переменную
 +
(Перем Пользователь (Ввод "Введи своё имя: "))
 +
(Вывод "Вас зовут " Пользователь ПС)
 +
(Пауза)
 +
(Вывод ПС) // ПС это символ перевода строки
 +
#КонецОбласти 
 +
 +
#Область "Арифметические выражения"
 +
//попробуем вычислять арифметические выражения
 +
(Перем А 5.3) (Вывод "Перем А=" А ПС) //создадим переменную А и выведем её значение на экран
 +
//тут мы налету создадим идентификатор Б из строки "Б"
 +
(Перем (Идент "Б") 4.7)
 +
//после создания идентификатора (Идент "Б") сразу вычислим его значение ((Идент "Б"))
 +
(Вывод "Перем Б=" ((Идент "Б")) ПС)
 +
(Вывод "Выражение: (+ А Б)" ПС)
 +
(Вывод "Результат = " (+ А Б) ПС)
 +
(Вывод "Выражение: (* А (+ А Б))" ПС)
 +
(Вывод "Результат = " (* А (+ А Б)) ПС)
 +
(Пауза)
 +
(Вывод ПС)
 +
#КонецОбласти 
 +
 +
//проверим оператор Если
 +
(если (> А 100)
 +
(
 +
(Вывод "А=" А " больше 100!" ПС)
 +
(перем Б (* Б 2))
 +
(вывод "Б умножилось на 2 = " Б ПС)
 +
)
 +
(
 +
(Вывод "А=" А " НЕ больше 100!" ПС)
 +
(перем Б (* Б 10))
 +
(вывод "Б умножилось на 10 = " Б ПС)
 +
)
 +
)
 +
//оператор Если возвращает последнее значение из выбранной по условию последовательности
 +
(Вывод (Если (< А 100) "меньше 100" "больше 100") пс)
 +
(Пауза)
 +
(Вывод ПС)
 +
 +
//создадим функцию с одним аргументом
 +
(Функция (Квадрат х) (* х х))
 +
 +
//проверим функцию
 +
(Вывод "Выражение: (Квадрат А)" ПС)
 +
(Вывод "Результат = " (Квадрат А) ПС)
 +
(Пауза)
 +
(Вывод ПС)
 +
 +
//создадим функцию с двумя аргументами
 +
(Функция (Множ х у) (* х у))
 +
 +
//проверим функцию
 +
(Вывод "Выражение: (Множ А Б)" ПС)
 +
(Вывод "Результат = " (Множ А Б) ПС)
 +
(Пауза)
 +
(Вывод ПС)
 +
 +
//определим функцию очень хитрым способом
 +
//условие возвращает действие + или -, которое затем применяется к х
 +
(функция (абс х)
 +
((если (>= х 0) + -) х)
 +
)
 +
(Вывод "Результат (абс -3) = " (абс -3) ПС)
 +
 +
//определим факториал
 +
(функция (факториал х)
 +
(если (= х 0)
 +
1
 +
(* х (факториал (- х 1)))
 +
)
 +
)
 +
(Вывод "Результат (факториал 0) = " (факториал 0) ПС)
 +
(Вывод "Результат (факториал 1) = " (факториал 1) ПС)
 +
(Вывод "Результат (факториал 2) = " (факториал 2) ПС)
 +
(Вывод "Результат (факториал 3) = " (факториал 3) ПС)
 +
(Вывод "Результат (факториал 4) = " (факториал 4) ПС)
 +
 +
//используем лямбду без параметров
 +
(перем ЛЯМ (функ () "значение лямбды"))
 +
(Вывод "Результат (лям) = " (лям) ПС)
 +
//используем лямбду с двумя параметрами
 +
(перем ЛЯМ2 (функ (х у) (+ х у)))
 +
(Вывод "Результат (лям2 3 5) = " (лям2 3 5) ПС)
 +
 +
//проверим область видимости
 +
(функция (ФА Б) (+ (* Б Б) 25))
 +
(функция (ФД Б) (+ (ФА (+ Б 1)) (ФА (- Б 1))))
 +
(Вывод "(ФА 5)=" (ФА 5) пс)
 +
(Вывод "(ФБ 10)=" (ФА 10) пс)
 +
 +
== Список  скриптов на [[Перфо.NET]] ==
 +
* [[Тестовый скрипт на Перфо.NET]] - работает на Альфа версии Перфо.NET
 +
* [[Тестовый скрипт на Перфо.NET - 2]]
 +
 +
== См. также ==
 +
* [[Перфо]] - описание языка
 +
* [[Введения в функциональный язык программирования Перфо]] - Описание языка, учебник по [[Перфо.NET]]
 +
 
[[Категория:Перфо.NET]]
 
[[Категория:Перфо.NET]]
 
[[Категория:Скрипты и программы на языке Перфо.NET]]
 
[[Категория:Скрипты и программы на языке Перфо.NET]]

Текущая версия на 20:49, 7 августа 2020

// *** Тестовый скрипт на языке Перфо ***
(Отладка Истина) //включим режим отладки скрипта
(Очистить) //очищаем экран консоли
#Область "Привет, МИР!"
(Вывод "Привет, МИР! Это программа на языке Перфо." ПС)
//запросим у пользователя имя и сохраним в переменную
(Перем Пользователь (Ввод "Введи своё имя: "))
(Вывод "Вас зовут " Пользователь ПС)
(Пауза)
(Вывод ПС) // ПС это символ перевода строки
#КонецОбласти  
#Область "Арифметические выражения"
//попробуем вычислять арифметические выражения
(Перем А 5.3) (Вывод "Перем А=" А ПС) //создадим переменную А и выведем её значение на экран
//тут мы налету создадим идентификатор Б из строки "Б"
(Перем (Идент "Б") 4.7) 
//после создания идентификатора (Идент "Б") сразу вычислим его значение ((Идент "Б")) 
(Вывод "Перем Б=" ((Идент "Б")) ПС)
(Вывод "Выражение: (+ А Б)" ПС)
(Вывод "Результат = " (+ А Б) ПС)
(Вывод "Выражение: (* А (+ А Б))" ПС)
(Вывод "Результат = " (* А (+ А Б)) ПС)
(Пауза)
(Вывод ПС)
#КонецОбласти  
//проверим оператор Если
(если (> А 100)

( (Вывод "А=" А " больше 100!" ПС) (перем Б (* Б 2)) (вывод "Б умножилось на 2 = " Б ПС) ) ( (Вывод "А=" А " НЕ больше 100!" ПС) (перем Б (* Б 10)) (вывод "Б умножилось на 10 = " Б ПС) )

)
//оператор Если возвращает последнее значение из выбранной по условию последовательности
(Вывод (Если (< А 100) "меньше 100" "больше 100") пс)
(Пауза)
(Вывод ПС)
//создадим функцию с одним аргументом
(Функция (Квадрат х) (* х х))
//проверим функцию
(Вывод "Выражение: (Квадрат А)" ПС)
(Вывод "Результат = " (Квадрат А) ПС)
(Пауза)
(Вывод ПС)
//создадим функцию с двумя аргументами
(Функция (Множ х у) (* х у))
//проверим функцию
(Вывод "Выражение: (Множ А Б)" ПС)
(Вывод "Результат = " (Множ А Б) ПС)
(Пауза)
(Вывод ПС)
//определим функцию очень хитрым способом
//условие возвращает действие + или -, которое затем применяется к х
(функция (абс х)

((если (>= х 0) + -) х)

)
(Вывод "Результат (абс -3) = " (абс -3) ПС)
//определим факториал
(функция (факториал х)

(если (= х 0) 1 (* х (факториал (- х 1))) )

)
(Вывод "Результат (факториал 0) = " (факториал 0) ПС)
(Вывод "Результат (факториал 1) = " (факториал 1) ПС)
(Вывод "Результат (факториал 2) = " (факториал 2) ПС)
(Вывод "Результат (факториал 3) = " (факториал 3) ПС)
(Вывод "Результат (факториал 4) = " (факториал 4) ПС)
//используем лямбду без параметров
(перем ЛЯМ (функ () "значение лямбды"))
(Вывод "Результат (лям) = " (лям) ПС)
//используем лямбду с двумя параметрами
(перем ЛЯМ2 (функ (х у) (+ х у)))
(Вывод "Результат (лям2 3 5) = " (лям2 3 5) ПС)
//проверим область видимости 
(функция (ФА Б) (+ (* Б Б) 25))
(функция (ФД Б) (+ (ФА (+ Б 1)) (ФА (- Б 1))))
(Вывод "(ФА 5)=" (ФА 5) пс)
(Вывод "(ФБ 10)=" (ФА 10) пс)

Список скриптов на Перфо.NET

См. также