Стандартные функции
Эта страница перечисляет встроенные функции и процедуры 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)
вывод время, нс
кон