К.т.н. Орлов А.А.

Муромский институт Владимирского государственного университета

(МИ ВлГУ), г. Муром, Российская Федерация

Изучение синтаксиса языков программирования на основе математических структур и операторов

Математическое описание (формализация) является довольно важным при создании алгоритма и его реализации в виде программы на каком-нибудь языке программирования. Именно из-за незнания математических структур данных, а также выполняемых над ними операций программный код, реализуемый начинающим программистом, громоздок, плохо читаем и содержит большое количество ошибок. Возникает также вопрос: «Зачем выдумывать новые структуры данных, если они уже есть в математике?»

В предлагается подход, связанный с изучением синтаксиса языков программирования на базе уже давно известных математических структур данных, функций, операций и псевдокода. Изучение осуществляется на приведенных ниже примерах.

Выделим следующие основные структуры.

Переменные, принадлежащие следующим множествам: Nмножество натуральных чисел; N0 – множество натуральных чисел с нулем; Z – множество целых чисел; R – множество вещественных чисел. Могут быть также определены переменные, принадлежащие конечным множествам.

Пример

Вводятся три переменные a, b, c; в a заносится 5; в b – 6; результат сложения помещается в с:

aÎZ              (a принадлежит множеству целых чисел)

bÎZ              (b принадлежит множеству целых чисел)

a = 5             (занесение 5 в a)

b = 6             (занесение 6 в b)

cÎZ              (c принадлежит множеству целых чисел)

c = a + b       (занесение суммы a и b в c, c = 11)

Вектор – упорядоченное множество. На векторах определены следующие операции: сложение со скаляром, умножение на скаляр, сложение векторов, скалярное произведение векторов, векторное произведение векторов.

Пример

NÎZ

N = 5

                 (A – вектор целых чисел размером N)

A = (3, 4, 1, 0, 1)              (занесение элементов в вектор A)

                 (B – вектор целых чисел размером N)

B = (1, 7, 3, 1, 0)             (занесение элементов в вектор B)

                 (C – вектор целых чисел размером N)

C = A + B                        (сложение двух векторов)

Матрица – двумерный массив данных (таблица). На матрицах определены следующие операции: сложение со скаляром, умножение на скаляр, сложение матриц, умножение матрицы на вектор, произведение матриц.

Пример

N, M,ÎZ

N = 3, M = 4

          (A – матрица целых чисел размером N´M)

           (занесение элементов в матрицу A)

          (B – матрица целых чисел размером N´M)

B = A + 2                         (сложение матрицы со скаляром)

С помощью математических выражений можно сформировать следующие структуры управления потоками (или операторы программирования).

Оператор условия

Пример

Если D > 0, то F = 4, иначе F = 6.

Составной оператор условия – оператор условия, который возвращает значение в зависимости от выполнения этого условия.

Пример

Операторы цикла

Цикл со счетчиком (for).

Пример

Для i = 1,…,10 выполнять …

Цикл со счетчиком, построенный на основе ранжированной переменной.

Пример

Bi = Ai + 3, i = 1,…,10.

Пример

S = S + f(x), x = 1, 3, …, 9.

Условный оператор цикла (while).

Пример

Пока D < 10 выполнять …

Каждому из приведенных примеров сопоставляется программный код. Практика работы со студентами показала, что предложенный принцип обеспечивает быстрое освоение синтаксиса какого-либо языка программирования и получение навыков в создании более наглядного и удобно читаемого кода программы. Большую роль (а именно оценка возможностей языков программирования) данный подход сыграл при преподавании дисциплины «Сравнительный анализ языков программирования».