📖 Документация Qumir

← Вернуться в Playground

Стандартные функции

Эта страница перечисляет встроенные функции и процедуры Qumir, которые доступны без подключения исполнителей. Команды исполнителей описаны отдельно: Черепаха, Робот, Чертежник, Рисователь, Клавиатура. Модуль Комплексные числа тоже имеет отдельную страницу.

Команды ввод и вывод являются частью языка, а не обычными функциями. Их синтаксис описан в разделе Синтаксис языка.

Числа

Функция Тип результата Описание
sign(x: вещ) цел Знак числа: -1, 0 или 1.
iabs(n: цел) цел Модуль целого числа.
abs(x: вещ) вещ Модуль вещественного числа.
imin(a: цел, b: цел) цел Минимум из двух целых чисел.
imax(a: цел, b: цел) цел Максимум из двух целых чисел.
min(a: вещ, b: вещ) вещ Минимум из двух вещественных чисел.
max(a: вещ, b: вещ) вещ Максимум из двух вещественных чисел.
int(x: вещ) цел Отбрасывает дробную часть, округляя к нулю.
div(a: цел, b: цел) цел Целочисленное деление. При b = 0 возвращает 0.
mod(a: цел, b: цел) цел Остаток, согласованный с div: a = div(a,b) * b + mod(a,b). При b = 0 возвращает 0.
МАКСЦЕЛ цел Максимальное значение типа цел.
МАКСВЕЩ вещ Максимальное значение типа вещ.

Для положительного делителя mod(a, b) возвращает неотрицательный остаток от 0 до b - 1. Например, при делении -7 на 3: div(-7, 3) = -3, mod(-7, 3) = 2.

Математика

Аргументы тригонометрических функций задаются в радианах.

Функция Тип результата Описание
sqrt(x: вещ) вещ Квадратный корень.
sin(x: вещ) вещ Синус.
cos(x: вещ) вещ Косинус.
tg(x: вещ) вещ Тангенс.
ctg(x: вещ) вещ Котангенс.
arcsin(x: вещ) вещ Арксинус.
arccos(x: вещ) вещ Арккосинус.
arctg(x: вещ) вещ Арктангенс.
ln(x: вещ) вещ Натуральный логарифм.
lg(x: вещ) вещ Десятичный логарифм.
exp(x: вещ) вещ Экспонента e^x.
fpow(x: вещ, n: цел) вещ Возведение вещественного числа в целую степень.
pow(x: вещ, y: вещ) вещ Возведение вещественного числа в вещественную степень.

Случайные числа

Функция Тип результата Описание
rnd(x: вещ) вещ Случайное вещественное число от 0 до x.
rand(a: вещ, b: вещ) вещ Случайное вещественное число от a до b.
irnd(n: цел) цел Случайное целое число от 0 до n - 1; при n = 0 возвращает 0.
irand(a: цел, b: цел) цел Случайное целое число от a до b - 1; если b <= a, возвращает a.

Строки и символы

Строки индексируются с 1. Это относится и к операциям вида s[i], и к срезам s[i:j].

Функция или процедура Тип результата Описание
длин(s: лит) цел Количество символов в строке.
позиция(что: лит, где: лит) цел Позиция первого вхождения подстроки что в строку где; если не найдено, возвращает 0.
поз(что: лит, где: лит) цел Краткий синоним позиция.
позиция после(начало: цел, что: лит, где: лит) цел Ищет что в где, начиная с позиции начало; если не найдено, возвращает 0.
поз после(начало: цел, что: лит, где: лит) цел Краткий синоним позиция после.
удалить(s: лит, начало: цел, сколько: цел) нет Удаляет из строки s сколько символов, начиная с позиции начало.
вставить(что: лит, куда: лит, позиция: цел) нет Вставляет строку что в строку куда перед указанной позицией.
юникод(c: сим) цел Unicode-код символа.
юнисимвол(n: цел) сим Символ с Unicode-кодом n.

Пример:

алг
нач
    лит s := "абракадабра"
    вывод длин(s), нс              | 11
    вывод позиция("ка", s), нс     | 5
    удалить(s, 2, 3)
    вставить("XYZ", s, 2)
    вывод s, нс
кон

Преобразование строк и чисел

Функция Тип результата Описание
цел_в_лит(n: цел) лит Преобразует целое число в строку.
вещ_в_лит(x: вещ) лит Преобразует вещественное число в строку.
лит_в_цел(s: лит, рез успех: лог) цел Преобразует начало строки в целое число. В успех записывается да, если удалось прочитать число.
лит_в_вещ(s: лит, рез успех: лог) вещ Преобразует начало строки в вещественное число. В успех записывается да, если удалось прочитать число.

Если преобразование строки не удалось, числовая функция возвращает 0, а флаг успеха получает нет.

алг
нач
    лог ok
    цел n
    n := лит_в_цел("123abc", ok)
    если ok
        то вывод n, нс
        иначе вывод "не число", нс
    все
кон

Файлы

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

Функция или процедура Тип результата Описание
открыть на чтение(имя: лит) файл Открывает файл для чтения.
открыть на запись(имя: лит) файл Открывает файл для записи; старое содержимое перезаписывается.
открыть на добавление(имя: лит) файл Открывает файл для добавления в конец.
закрыть(f: файл) нет Закрывает файл.
есть данные(f: файл) лог Возвращает да, если из файла ещё можно читать данные.
конец файла(f: файл) лог Возвращает да, если достигнут конец файла.

Файлы обычно используются через команды ввод и вывод:

алг
нач
    файл f
    цел x
    f := открыть на чтение("input.txt")
    ввод f, x
    закрыть(f)
    вывод x, нс
кон

Время

Функция или процедура Тип результата Описание
время цел Количество миллисекунд от начала текущих локальных суток.
ждать(ms: цел) нет Асинхронно ожидает ms миллисекунд. В браузере не блокирует интерфейс.

Пример:

алг
нач
    вывод время, нс
    ждать(1000)
    вывод время, нс
кон