Пример «Функции с множеством операндов»
Файлы:
- Синтаксис языка
- Встроенные функции
- Функции с множеством операндов.перфо
- Встроенные функции
Пример программы на языке программирования Перфо:
//Эта программа написана на языке Перфо
//Для демонстрации встроенных функций с множеством операндов
// --- Математические функции ---
// Сложение четырёх чисел
(Вывод "(+ 1 2 3 4): " (+ 1 2 3 4) пс) // ожидаем: 10
// Вычитание
(Вывод "(- 10 2 3): " (- 10 2 3) пс) // ожидаем: 5
// Умножение
(Вывод "(* 2 3 4): " (* 2 3 4) пс) // ожидаем: 24
// Деление
(Вывод "(/ 48 4 2): " (/ 48 4 2) пс) // ожидаем: 6
// Возведение в степень через ^
(Вывод "(^ 2 3 2): " (^ 2 3 2) пс) // ожидаем: 64
// То же через **
(Вывод "(** 5 2 3): " (** 5 2 3) пс) // ожидаем: 15625
// Логическое И
(Вывод "(и Истина Истина Истина): " (и Истина Истина Истина) пс) // ожидаем: Истина
(Вывод "(и 1 1 1): " (и 1 1 1) пс) // ожидаем: Истина
(Вывод "(и Истина Истина Ложь): " (и Истина Истина Ложь) пс) // ожидаем: Ложь
(Вывод "(и 1 0 1): " (и 1 0 1) пс) // ожидаем: Ложь
// Логическое ИЛИ
(Вывод "(или Ложь Ложь Истина): " (или Ложь Ложь Истина) пс) // ожидаем: Истина
(Вывод "(или Ложь Ложь Ложь): " (или Ложь Ложь Ложь) пс) // ожидаем: Ложь
// Побитовое И
(Вывод "(БитИ 15 7): " (БитИ 15 7) пс) // ожидаем: 7 — 0b1111 & 0b0111 = 0b0111
// Побитовое ИЛИ
(Вывод "(БитИЛИ 12 5): " (БитИЛИ 12 5) пс) // ожидаем: 13 — 0b1100 | 0b0101 = 0b1101
// Максимум
(Вывод "(Макс 3 9 7 1): " (Макс 3 9 7 1) пс) // ожидаем: 9
// Минимум
(Вывод "(Мин 3 9 7 1): " (Мин 3 9 7 1) пс) // ожидаем: 1
// --- Функции работы со строками ---
// Склеиваем строки
(Вывод "(& ""ао"" ""бо"" ""во"" ""го""): " (& "ао" "бо" "во" "го") пс) // ожидаем: "аобового"
// Склеиваем значения как строки. Все значения приводятся к строке
(Вывод "(& 5 "" ао "" '2025'): " (& 5 " ао " '2025') пс) // ожидаем: "5 ао 01.01.2025 0:00:00"
// Проверка соответствия шаблону
(Вывод "(СтрШаблон ""%1 съел %2 банана!"" ""Вася"" 23): " (СтрШаблон "%1 съел %2 банана!" "Вася" 23) пс) // ожидаем: Вася съел 23 банана!
// Поиск подстроки
(Вывод "(СтрНайти ""абвгде"" ""вг""): " (СтрНайти "абвгде" "вг") пс) // ожидаем: 3
// Срез строки: от позиции 2 до позиции 4 с шагом 1
(Вывод "(СрезСтроки ""абвгдежз"" 2 4): " (СрезСтроки "абвгдежз" 2 4) пс) // ожидаем: "вгд"
// Срез строки: от позиции 2 до позиции 6 с шагом 2
(Вывод "(СрезСтроки ""абвгдежз"" 2 6 2): " (СрезСтроки "абвгдежз" 2 6 2) пс) // ожидаем: "вдж"
// --- Функции работы с коллекциями ---
// Срез массива
(Перем Мас (Массив 7 Строка "а" "б" "в" "г" "д" "е" "ж" "з"))
// от позиции 1 до позиции 3 с шагом 1
(Вывод "(СрезМассива Мас 1 3): " (.(СрезМассива Мас 1 3) Представление) пс) // ожидаем: б в г
// от позиции 1 до позиции 6 с шагом 2
(Вывод "(СрезМассива Мас 1 6 2): " (.(СрезМассива Мас 1 6 2) Представление) пс) // ожидаем: б г е
// Добавить элемент
(Уст Мас (Новый Массив))
(ДЭЛ Мас "а" "б" "в" "г" "д")
(Вывод "(ДЭЛ Мас ""е""): " (.(ДЭЛ Мас "е") Представление) пс) // ожидаем: массив с "е" в конце
(Вывод "(ДобавитьЭлемент Мас ""ж""): " (.(ДобавитьЭлемент Мас "ж") Представление) пс) // ожидаем: массив с "ж" в конце
// Тест функции ДЭЛ: добавляет элемент к списку
(Перем Буквы (Список "а" "б" "в"))
(Вывод "(ДЭЛ Буквы ""г""): " (ДЭЛ Буквы "г") пс) // ожидаем: (а б в г)
// Добавление нескольких элементов последовательно
(Уст Буквы (ДЭЛ Буквы "д"))
(Уст Буквы (ДЭЛ Буквы "е"))
(Вывод "После нескольких добавлений: " Буквы пс) // ожидаем: (а б в г д е)
// СЭЛ — складываем элементы в список
(Вывод "(СЭЛ ""а"" ""б""): " (СЭЛ "а" "б") пс) // ожидаем: список (а б)
// СложитьЭлементы — складываем элементы в список
(Перем Числа (Список 1 2 3 4))
(Вывод "(СложитьЭлементы Числа 5 6 7): " (СложитьЭлементы Числа 5 6 7) пс) // ожидаем: (1 2 3 4 5 6 7)
// --- Функции работы с типами и значениями
// Тест функции ЗнчТипа: проверка значения на принадлежность к одному из указанных типов
(Вывод "(ЗнчТипа 1ч (Тип ""Строка"") (Тип ""Число"")): " (ЗнчТипа 1ч (Тип "Строка") (Тип "Число")) пс) // ожидаем: Истина
(Вывод "(ЗнчТипа ""абв"" ""Строка"" ""Число""): " (ЗнчТипа "абв" "Строка" "Число") пс) // ожидаем: Истина
(Вывод "(ЗнчТипа '2025' ""Строка"" ""Число""): " (ЗнчТипа '2025' "Строка" "Число") пс) // ожидаем: Ложь
// --- Прочие Функции ---
(Вывод "Команда системы выполнена: " (КомандаСистемы "CMD.exe /C Dir /B > DIR.txt" "C:\Temp") пс)// ожидаем: Истина
(Перем КодВ 0)
(Вывод "Приложение запущено: " (ЗапуститьПриложение "cmd /K dir" "c:\" Истина КодВ) пс) //показывает окно
К началу статьи
Вернуться в раздел:
Примеры по языку Перфо
Перейти в раздел:
Примеры