Модуль School
Модуль School (англ. «школа») содержит реализацию основных алгоритмов, которые встречаются в школьных задачах. Каждая реализация в основном имеет два формата – для вызова в виде функции и для записи в точечной нотации. Далее будут приведены все основные функции библиотеки, которые наиболее часто являются полезными для решения заданий.
Модуль входит в стандартную библиотеку, чтобы его подключить используется конструкция uses School перед началом программы.
Алгоритмы можно разбить на несколько групп:
1) Перевод десятичного числа n в другую систему счисления:
– функция Bin(n) преобразует n в двоичную строку;
– функция Oct(n) преобразует n в восьмеричную строку;
– функция Hex(n) преобразует n в шестнадцатеричную строку;
– функция ToBase(sn, k) преобразует значение n, заданное строкой sn, в строку, записанную в системе счисления с основанием k = 2..36;
– расширение sn.ToBase(k) делает то же, что ToBase(sn,k).
2) Перевод числа, заданного символьной строкой sn, представляющей значение в системе счисления по основанию k = 2..36, в десятичную систему счисления:
– функция Dec(sn, k) возвращает значение типа int64;
– функция DecBig(sn, k) возвращает значение типа BigInteger.
3) Определение чётности и нечётности числа k:
– метод .IsOdd проверяет число на нечётность
– метод .IsEven проверяет число на чётность
4) Нахождение минимума и максимума последовательности целых чисел s за один проход:
– функция MinMax(s) возвращает кортеж (Min, Max). Тип данных integer или int64 в зависимости от типа последовательности;
– расширение s.MinMax делает то же самое
5) Нахождение НОД и НОК пары чисел a и b:
– функция НОД(a, b) возвращает НОД типа integer или int64;
– расширение t.НОД возвращает НОД для кортежа t = (a, b) с данными типа integer или int64;
– функция НОК(a, b) возвращает НОК типа int64;
– функция НОДНОК(a, b) возвращает кортеж вида (НОД, НОК) для пары чисел a и b типа int64.
6) Разложение числа n на простые множители. Результат помещается в список List:
– функция Factorize(n) выполняет разложение числа n типа integer или int64 на простые множители;
– расширение n.Factorize выполняет разложения числа n на простые множители, только в точечной нотации.
7) Простые числа:
– функция Primes(n) возвращает список List, содержащий простые числа на отрезке [2;n];
– функция FirstPrimes(n) возвращает список List, содержащий первые n простых чисел;
– расширение n.IsPrime возвращает True, если n – простoе и False в противном случае. Переменная n должна быть типа integer или int64.
8) Преобразование числа n в список List, состоящий из цифр числа n:
– функция Digits(n) возвращает список типа List;
– расширение n.Digits делает то же, только в точечной нотации.
9) Получение списка List, содержащего все натуральные делители числа n, включая 1 и n:
– функция Divisors(n), в зависимости от типа n, возвращает значение типа List;
– расширение n.Divisors, точечная запись.
10) Генерация случайных вещественных чисел:
– функция ArrRandomReal(n,a,b,t) возвращает массив длины n, заполненный случайными вещественными числами из промежутка [a;b) с t знаками в дробной части;
– функция SeqRandomReal(n,a,b,t) возвращает последовательность длины n, заполненную случайными вещественными числами из промежутка [a;b) с t знаками в дробной части;
– функция MatrRandomReal(m,n,a,b,t) возвращает массив размером m×n, заполненный случайными вещественными числами из промежутка [a;b) с t знаками в дробной части.
11) Построение таблиц истинности:
– расширение a.Imp(b) возвращает результат операции импликации a→b;
– функция TrueTable((a1, a2,.., aN) -> f(a1, a2,.., aN)) возвращает матрицу типа boolean, содержащую таблицу истинности для заданной функции N аргументов;
– процедура TrueTablePrint(a) выводит таблицу истинности, полученную посредством функции TrueTable;
– процедура TrueTablePrint(a,f) выводит таблицу истинности, полученную посредством функции TrueTable. При f=0 выводятся только строки, в которых значение функции равно False, при f=1 – только строки, в которых оно равно True.