Модуль 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.

Последнее изменение: Понедельник, 22 мая 2023, 18:49