Примеры программ
Коллекция готовых программ для изучения языка и алгоритмов.
Базовые примеры
Hello World
алг
нач
вывод "Привет, мир!", нс
кон
Ввод и вывод
алг
нач
лит имя
вывод "Как вас зовут? "
ввод имя
вывод "Привет, ", имя, "!", нс
кон
Сумма чисел
алг
нач
цел a, b
вывод "Введите два числа: "
ввод a, b
вывод a, " + ", b, " = ", a + b, нс
кон
Математика
Факториал (рекурсия)
алг
нач
цел n
вывод "n = "
ввод n
вывод n, "! = ", факториал(n), нс
кон
алг цел факториал(цел n)
нач
если n <= 1
то
знач := 1
иначе
знач := n * факториал(n - 1)
все
кон
Факториал (цикл)
алг цел факториал(цел n)
нач
цел результат, i
результат := 1
нц для i от 2 до n
результат := результат * i
кц
знач := результат
кон
Числа Фибоначчи
алг
нач
цел i
нц для i от 1 до 20
вывод фибоначчи(i), " "
кц
вывод нс
кон
алг цел фибоначчи(цел n)
нач
если n <= 2
то
знач := 1
иначе
знач := фибоначчи(n - 1) + фибоначчи(n - 2)
все
кон
Наибольший общий делитель (НОД)
алг
нач
вывод "НОД(48, 18) = ", нод(48, 18), нс
кон
алг цел нод(цел a, цел b)
нач
нц пока b <> 0
цел t
t := b
b := mod(a, b)
a := t
кц
знач := a
кон
Проверка на простоту
алг
нач
цел i
вывод "Простые числа до 100:", нс
нц для i от 2 до 100
если простое(i)
то
вывод i, " "
все
кц
вывод нс
кон
алг лог простое(цел n)
нач
если n < 2
то
знач := ложь
иначе
цел i
знач := истина
нц для i от 2 до int(sqrt(n))
если mod(n, i) = 0
то
знач := ложь
все
кц
все
кон
Алгоритмы сортировки
Сортировка пузырьком
алг
нач
цел N = 10
цел таб A[1:N]
цел i, j, t
| Заполняем случайными числами
нц для i от 1 до N
A[i] := rnd(100)
кц
| Сортировка
нц для i от 1 до N - 1
нц для j от 1 до N - i
если A[j] > A[j + 1]
то
t := A[j]
A[j] := A[j + 1]
A[j + 1] := t
все
кц
кц
| Вывод
нц для i от 1 до N
вывод A[i], " "
кц
вывод нс
кон
Сортировка выбором
алг
нач
цел N = 10
цел таб A[1:N]
цел i, j, minIdx, t
| Заполняем
нц для i от 1 до N
A[i] := N - i + 1 | обратный порядок
кц
| Сортировка
нц для i от 1 до N - 1
minIdx := i
нц для j от i + 1 до N
если A[j] < A[minIdx]
то
minIdx := j
все
кц
если minIdx <> i
то
t := A[i]
A[i] := A[minIdx]
A[minIdx] := t
все
кц
| Вывод
нц для i от 1 до N
вывод A[i], " "
кц
вывод нс
кон
Быстрая сортировка
алг
нач
цел N = 10
цел таб A[1:N]
цел i
| Заполняем случайными числами
нц для i от 1 до N
A[i] := rnd(100)
кц
быстрая_сортировка(A, 1, N)
| Вывод
нц для i от 1 до N
вывод A[i], " "
кц
вывод нс
кон
алг быстрая_сортировка(цел таб A[], цел низ, цел верх)
нач
если низ < верх
то
цел опорный, i, j, t
опорный := A[div(низ + верх, 2)]
i := низ
j := верх
нц пока i <= j
нц пока A[i] < опорный
i := i + 1
кц
нц пока A[j] > опорный
j := j - 1
кц
если i <= j
то
t := A[i]
A[i] := A[j]
A[j] := t
i := i + 1
j := j - 1
все
кц
быстрая_сортировка(A, низ, j)
быстрая_сортировка(A, i, верх)
все
кон
Работа со строками
Переворот строки
алг
нач
вывод перевернуть("Привет"), нс | тевирП
кон
алг лит перевернуть(лит s)
нач
лит результат
цел i
результат := ""
нц для i от длин(s) до 1 шаг -1
результат := результат + s[i]
кц
знач := результат
кон
Проверка палиндрома
алг лог палиндром(лит s)
нач
цел i, j
i := 1
j := длин(s)
знач := истина
нц пока i < j
если s[i] <> s[j]
то
знач := ложь
все
i := i + 1
j := j - 1
кц
кон
Черепашья графика
Многоугольник
использовать Черепаха
алг
нач
многоугольник(6, 80) | шестиугольник
кон
алг многоугольник(цел n, вещ сторона)
нач
вещ угол
угол := 360.0 / n
нц для i от 1 до n
вперед(сторона)
вправо(угол)
кц
кон
Спираль из квадратов
использовать Черепаха
алг
нач
вещ размер
размер := 10
нц для i от 1 до 30
нц для j от 1 до 4
вперед(размер)
вправо(90)
кц
размер := размер + 5
вправо(15)
кц
кон
Робот
Закрасить диагональ
использовать Робот
алг
нач
нц пока справа свободно и снизу свободно
закрасить
вправо
вниз
кц
закрасить
кон
Найти и закрасить угол
использовать Робот
алг
нач
| Идём в правый нижний угол
нц пока справа свободно
вправо
кц
нц пока снизу свободно
вниз
кц
закрасить
кон
Онлайн-примеры
Больше примеров доступно в онлайн-песочнице:
- algorithms/ — алгоритмы сортировки
- math/ — математические алгоритмы
- turtle/ — черепашья графика и фракталы
- robot/ — программы для робота
- ml/ — машинное обучение (перцептрон)