Автор Анна Евкова
Преподаватель который помогает студентам и школьникам в учёбе.

Основы программирования на языке Pascal

Содержание:

ВВЕДЕНИЕ

На сегодняшний день язык программирования Pascal является одним из самых понятных и простых в изучении, а также данный язык считается одним из самых развитых языков программирования.

Язык программирования Pascal был разработан Никлаусом Виртом в конце 60-х годов. Алгоритмический язык был назван в честь ученого Блеза Паскаля, создавшего первое вычислительное устройство – суммирующую машину. Предназначение алгоритмического языка заключалось в обучении студентов программированию.

Язык программирования Pascal довольно быстро получил широкое распространение во всем мире за счет своей простоты, логичности и эффективности. Благодаря данному языку тексты различных программ с легкостью проверяются на правильность, за счет чего требуется минимальное количество специалистов по программированию. Он содержит средства для создания программ любой сложности, что и обусловило выбор этого языка в качестве одного из основных для обучения программированию в образовательных учреждениях.

Таким образом, алгоритмический язык «Pascal» позволяет рационализировать рабочий процесс программирования, а также создавать структурированные программы трудоемких и сложных вычислений. Этим и обуславливается тема исследования курсовой работы.

Объект исследования – язык программирования Pascal.

Предмет исследования – программирование на языке Pascal.

Цель курсовой работы – выявить основы программирования на языке Pascal.

Достижение поставленной цели обеспечивается выполнением следующих задач:

  • Рассмотреть основные элементы языка программирования Pascal, такие как: алфавит, данные и выражения языка.
  • Описать стандартные простые типы данных и структуру программы на языке Pascal.
  • Охарактеризовать операторов языка программирования Pascal.
  • Описать подпрограммы, сложные типы данных и массивы.

В курсовой работе были использованы книги, учебные пособия и научные статьи по теме исследования за последние 3-4 года. Книги и учебные пособия были отобраны по степени надежности издательств. Издательства большинства использованных книг и учебных пособий относятся к различным государственным университетам, например, Волгоградский государственный технический университет, Кубанский государственный аграрный университет им. И. Т. Трубилина, Магнитогорский государственный университет. Научные статьи были отобраны из таких журналов, как: «Научный форум: технические и физико-математические науки», APRIORI, Интернет-технологии в образовании, Актуальные направления научных исследований: перспективы развития, Информатика, Инновации в науке, Молодежный научный форум, Модернизация и технологическое развитие промышленности, Информационно-коммуникативная культура: наука и образование. Эти журналы были выбраны потому, что они имеют высокий рейтинг, в этих журналах публикуются труды высокоспециализированных специалистов в сфере программирования.

Курсовая работа содержит введение, основную часть, состоящую из двух глав, заключение, список литературы и приложение.

1 Основные элементы языка программирования Pascal

1.1 Алфавит, данные и выражения языка Pascal

Языки программирования представляют собой формальные языки, которые применяются для описания данных и алгоритма их обработки на электронно-вычислительных машинах. При записи алгоритма решения задачи на языке программирования важно отчетливо знать правила написания и использования элементарных информационных и языковых единиц. Любой язык программирования определяется алфавитом, синтаксисом и семантикой [9, C. 122].

Алфавит представляет собой конечный набор знаков, состоящий из букв, десятичных и шестнадцатеричных цифр, специальных символов, допустимых в конкретном языке программирования. Символы языка – это элементарные знаки, используемые для составления любых текстов [12, C. 247].

Из символов алфавита выстраиваются слова, а из них, в свою очередь, - предложения. В Pascal из алфавита формируются зарезервированные слова, идентификаторы (имена процедур, функций, переменных, констант и т. п.), выражения (алгебраические, логические и т. д.), значения констант и переменных, описание типов и т. п. [15, C. 60]

Алфавит языка Pascal включает в себя следующие символов:

1. Латинские буквы (заглавные и прописные).

2. Цифры от 0 до 9.

3. Знаки арифметических операций: + – сложение; – - вычитание; * – умножение; / – деление

4. Знаки отношений:

> – больше; <– меньше; = – равно;> = – больше или равно; <= – меньше или равно; <> – не равно.

5. Разделители:

.– для разделения целой и дробной части числа, обозначение конца программы, отделение полей в записи;

, – для разделения элементов в списке;

; – для разделения операторов;

: – для отделения переменной или константы от типа и метки от оператора;

«‘ – выделение символа или строковой константы;

() – выделение выражений, списков параметров;

[] – выделение индексов массивов, элементов множеств;

{} – скобки комментариев.

6. Спецификаторы:

^ – значение величины по ее указателю;

@ – обозначение адреса переменной;

# – обозначение символа по его коду;

$ – обозначение директивы компилятора или знак 16-ричного числа.

7. _ – знак подчеркивания [17, C. 21]

Последовательность символов образуют слова, группа слов – выражение, а определенные комбинации слов и выражений составляют словарь языка.

1. Указатели функций. В языке Pascal существует ряд стандартных функций, которые записываются следующим образом: <имя функции> (<список параметров>)

Например,

SIN (Х) – синус х;

ABS (5) – модуль (абсолютная величина) числа 5;

Х MOD 2 – остаток от деления величины х на 2.

Язык Pascal также позволяет пользователю создавать свои собственные функции [25, C. 171].

2. Имена величин (идентификаторы) обозначаются набором символов, состоящих из латинских букв (A-Z, A-z) и цифр (0—9).

Имена указывают на элементы языка – константы, метки, типы, переменные, процедуры, функции, модули, объекты. При указании имени на первом месте должна стоять буква. Можно использовать в именах переменных знак подчеркивания «_». Нельзя использовать в качестве имен величин служебные слова языка [1, C. 77].

Например, В, Primer, G_18 – правильно заданные имена.

В качестве имен в языке Pascal не разрешено использовать служебные слова, стандартные константы, типы, процедуры, функции и файлы. Также имена величин не могут содержать: русских букв, знаков препинания, специальных символов (~, #, $, % и других). Имя переменной может быть любой длины, не превышающей 250 символов. Также не учитывается регистр букв, то есть переменные с именами Primer и pRiMeR будут рассматриваться как одна и та же переменная [22, C. 113].

3. Величины. Величина – это единица данных, представленная своим именем (идентификатором) либо своим значением. С величиной связывается определенное множество значений. Например, физическая величина СКОРОСТЬ. Она может принимать различные значения 15 м/с, 200 км/ч и т. д. Также каждая величина имеет свои допустимые значения (интервал значений). Например, величина РОСТ ЧЕЛОВЕКА может принимать значения 1 м 40 см, 2 м 2 см и т. д. Интервал значений данной величины находится в промежутке (приблизительно) от 40 см до 2 м. Все величины языка Pascal можно условно разделить на две группы: постоянные и переменные. Постоянные величины (константы) – это величины, принимающие в ходе выполнения программы только одно значение [2, C. 79].

Постоянные величины делятся на числовые и литерные (символьные, строковые). Например, числовые величины – 5; -45.6; -45216; литерные величины – «стол»; «125». Литерные величины всегда берутся в одиночные кавычки (апострофы). Переменные величины в ходе выполнения программы могут принимать разное количество значений. Переменные величины могут иметь буквенное обозначение или с индексом. Например, простые – Х; DF; с индексом – Х1; DF25 [20].

4. Типы величин. В зависимости от значения величины подразделяются на целые, вещественные, литерные, табличные и логические, которые, в свою очередь имеют деление и обозначение в зависимости от размерности значения величины.

целые INTEGER, SHORTING, BYTE, WORD, LONGINT;

вещественные REAL, SINGLE, DOUBLE, EXTENDED, COMP;

литерные CHAR, STRING;

табличные ARRAY;

логические BOOLEAN [16, C. 25].

5. Выражения. Одним из важнейших элементов языка Pascal являются выражения, которые представляют собой формулу, служащую для вычисления некоторого нового значения по значениям входящих в него переменных и констант. Выражения языка Pascal задают правила вычисления некоторого значения. Все выражения языка Pascal можно разделить на арифметические и логические. Арифметические выражения записываются с помощью знаков арифметических операций по определенным правилам. Например, 15+2; 12.3*12.8; D-F. Результат вычислений арифметических выражений может быть только значением числового типа, причем целого типа, когда оба аргумента целого типа, иначе вещественного типа. Исключением является операция деления, результат которой всегда вещественного типа. Примеры правильных арифметических выражений:

x + 3 mod y;

2 * PI * sqr (radius);

x div (y + z); (a1 – a2) / b[i, j];

9.14;

sqrt (abs (y + 3)) [1, C. 78].

Логические выражения обычно используются при задании различных условий, которые могут выполняться или не выполняться. В связи с этим результат вычислений логических выражений может быть либо true, либо false. Логические выражения могут содержать:

  • переменные и константы числовых, символьных и логических типов;
  • скобки, изменяющие порядок вычислений;
  • логические операции: and, or, not, xor;
  • операции отношения (сравнения): <,>,> =, <=, <>, =;
  • данные структурированных типов;
  • арифметические и логические функции [4, C. 43].

Операции сравнения выполняются только над однотипными скалярными величинами, например, оба операнда символьного типа или оба операнда числового типа и т. д. Примеры правильных логических выражений:

(b mod c > 0.51) and (a[i] <> 0); (x = 0) or (x = 1); (sqrt (x + y) > 0) xor (z <= 0);

6. Условия. Условия на языке Pascal бывают простые и составные.

Простые условия записываются с помощью знаков отношения в виде:

<выражение> <знак отношения> <выражение>

Например, F> 5; H=2; name <> «ваня».

Составные условия включают в себя несколько простых условий соединенных с помощью служебных слов NOT (не), AND (и), OR (или):

<простое условие> {AND, OR} <простое условие>

Например, D> 50 AND T <200; F1=5 OR T2 <=15 [3, C. 59].

7. Служебные слова (операторы). Все служебные слова языка являются словами английского языка. Операторы задают последовательность некоторых действий (команд), которые необходимо выполнить. Для описания сложных действий используют группу операторов. В этом случае операторы объединяются в составной оператор или блок [24].

В записи программы на языке Pascal обычно не различают малые и большие латинские буквы (PROGRAM, program, Program – одно и то же).

Примеры некоторых операторов языка Pascal:

PROGRAM (программа) – название программы;

BEGIN (начало) – начало программы;

END (конец) – конец программы;

VAR (variable – переменная величина);

LABEL (метка);

CONST (константа);

TYPE (тип);

IF (если) … THEN (то) … ELSE (иначе) – условный оператор (команда ветвления);

CASE – оператор выбора;

GOTO – оператор безусловного перехода;

FOR… TO… DO – оператор повторения (цикла);

REPEAT (повторять) … UNTIL (до тех пор, пока не) – оператор повторения;

WHILE (пока) … DO – оператор повторения (цикла);

PROCEDURE (процедура);

FUNCTION (функция) [18, C. 60].

По ходу усовершенствования языка в словарь могут добавляться новые типы величин и операторы [21, C. 18].

В языке Pascal существует несколько основных типов величин: числовые (целые и действительные), логические, литерные, табличные.

Типы величин отличаются ограничениями на область значений величины соответствующего типа. Правильный выбор целого типа для величины позволяет экономично расходовать ресурсы памяти компьютера [23, C. 137].

1.2. Стандартные простые типы данных и структура программы на языке Pascal

Стандартные простые типы данных

В программах можно использовать как стандартные типы данных, так и типы данных, определяемые пользователем, которые не входят в наше рассмотрение. Стандартные типы данных не требуют предварительного описания [5, C. 6].

Переменные простых (скалярных) типов данных в любой момент времени принимают только одно значение, которое не имеет выраженной структуры. Рассмотрим простые типы данных более подробно:

  • integer – целый тип. Переменные и константы этого типа принимают целочисленные значения [19, C. 20].

Описание: <идентификатор>: integer;

Пример: var chet, vozrast: integer;

Операции: +, –, *, /, div, mod дают в результате целое число.

Стандартные функции, результат которых – целое число.

Существуют и другие типы целочисленных данных. Например, байтовый тип (byte) аналогичен целочисленному типу, но имеет более узкий диапазон значений от 0 до 255. Переменная байтового типа занимает один байт, т. е. по сравнению с целочисленным типом память экономится в два раза;

  • real – вещественный тип. Внутренним представлением данных этого типа являются числа с плавающей точкой (Е-числа). Результат выполнения операций над данными этого типа не обязательно будет точен, а скорее всего, с погрешностью, величина которой определяется количеством разрядов, используемых для представления чисел с плавающей точкой [6].

Вещественные числа с плавающей точкой представляются в экспоненциальном виде:

m E+p, где m – мантисса, E – означает «10 в степени», p – порядок.

Пример: 10.1E00 = 10.1*100= 10.1, 1.2E+03 = 1.2*103 = 1200, 100E-02 = 100*10-2 = 1.

Описание: <идентификатор>: real;

Пример: var diametr, summa: real;

Операции: +, *, /, – и возведения в квадрат, дают в результате вещественное число.

Стандартные функции, результат которых – вещественное число;

  • boolean – логический тип задает для своих переменных и констант два значения: истина (true) и ложь (false) [20, C. 125].

Описание: <идентификатор>: boolean;

Пример: var A, B, flag: boolean;

Стандартные функции для работы с логическими данными представлены в Приложении 1.

Операции. Значение логических операций для A и B представлены в порядке убывания приоритета выполнения в Таблице 1.

Таблица 1

Логические операции

Логические переменные

Логические операции

A

B

not A

A and B

A or B

A xor B

0

0

1

0

0

0

0

1

1

0

1

1

1

0

0

0

1

1

1

1

0

1

1

0

ПРИМЕЧАНИЕ – значение «ложь» обозначено – 0, а «истина» – 1.

Источник: Авдеюк О. А. Информатика и программирование: основы программирования на языке Паскаль / О. А. Авдеюк, Л. Г. Акулов, В. Ю. Наумов; ВолгГТУ. – 2-изд., испр. – Волгоград, 2018. – С. 81.

  • char – символьный тип. Значения символьного типа – весь набор ASCII-символов, а значит, один символ занимает в памяти 1 байт. Символьные значения используются в апострофах, например: ’A’, ’ ’, ’y’, ’8’ [7, C. 32].

Описание: <идентификатор>: char;

Пример: var symbol, operation: char;

Операции. Сравнение символьных величин производится по значениям их кодов, например: ‘A’ <‘B’ <… < ‘Z’, ‘a’ < ‘b’ < … < ‘z’, ‘0’ < ‘1’ < … < ‘9’, ‘А’ < ‘Б’ < … < ‘Я’.

Структура программы. Состав разделов описаний программы

Текст программы на языке Pascal записывается в виде последовательных строк и состоит из заголовка, раздела описаний и раздела операторов, они представлены в Таблице 2.

Таблица 2

Заголовки программы, разделы описаний и разделы операторов

Заголовок программы

рrogram <имя программы> [(имена файлов)];

Раздел описаний

Определение констант (const); Определение меток (label); Определение типов (type); Определение переменных (var); Определение процедур и функций (procedure, function);

begin

Раздел операторов

Операторы ввода данных Операторы обработки данных Операторы вывода результатов обработки

end

Источник: Гуськова Е. Н. Программирование: изучаем Pascal / Е. Н. Гуськова, С. Ю. Знатнов. – Коломна: Государственное образовательное учреждение высшего образования Московской области «Государственный социально-гуманитарный университет», 2017. – С. 49.

Заголовок программы необязателен, а если присутствует, то состоит из зарезервированного слова program и имени программы, возможно со списком параметров в круглых скобках и заканчивается точкой с запятой [11].

рrogram <имя программы> [(Input, Output)];

Пример: program schet_sum;

Раздел описаний может отсутствовать или состоять из некоторого набора подразделов определений. Раздел определения констант предназначен для присваивания некоторых постоянных значений идентификаторам; начинается с зарезервированного слова const.

Пример: const diametr = 31; radius = 5.05 [14, C. 83];

Раздел определения меток начинается со слова label, за которым следует через запятую список меток. В качестве меток могут использоваться целые числа без знака или идентификаторы. Сама метка ставится в теле программы перед оператором и отделяется двоеточием.

Пример: label 10, metka1 [1, C. 85];

Раздел определения типов используется для объявления скалярных пользовательских и структурных типов данных; начинается с зарезервированного слова type.

Пример: type massiv = array [1..50] of real [7, C. 46];

Раздел определения переменных сообщает компилятору типы всех используемых в программе переменных; начинается с зарезервированного слова var, за которым перечисляются через запятую имена переменных, затем через двоеточие их тип.

Пример: var i, j: integer; S: real [14, C. 84];

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

Раздел операторов оформлен в виде блока, ограниченного begin и end с точкой. Все операторы в блоке разделяются точкой с запятой. Исключением является зарезервированное слово end, перед которым разделитель не ставится [7, C. 47].

В программе принято делать отступы для ее удобочитаемости. Желательно всегда следовать указанному принципу в целях создания более понятных программ.

Выводы:

Основная функция Pascal – работа с данными, что предоставляет программисту возможность определять пользовательские типы данных. Благодаря этому происходит строгая проверка данных, что предотвращает смешивание типов данных. Изначально Pascal был предназначен для преподавания. Pascal является более простым, написанный на нем код очень похож на естественный язык, поэтому его легко понять обычному пользователю

Pascal отличается легким синтаксисом языка, а, как известно, чем сложнее грамматика языка и чем больше вариантов предполагают семантические правила – тем больше проходов будет выполнять компилятор. Именно поэтому компиляторы с языка Pascal работают очень быстро

На данный момент, язык программирования Pascal является общепризнанным языком при освоении различных ступеней образования, который сочетает в себе основные свойства алгоритмического языка программирования высокого уровня и доступную форму, позволяющую начинающему программисту освоить технологию создания программы.

2. Операторы языка программирования Pascal, подпрограммы и сложные типы данных

2.1. Операторы языка программирования Pascal

Алгоритмические действия (команды), которые необходимо выполнить для решения задачи на языке программирования называют операторами языка, а параметры команд – операндами. Общий вид команды можно представить следующим образом:

<имя команды> [<параметр 1>, <параметр 2>, …, <параметр N>] [8, C. 14];

Выполнение одного оператора можно сопоставить одному шагу (действию) алгоритма. Последовательность таких операторов и составляют тело программы. Все операторы языка Pascal можно разделить на три группы: простые, ввода / вывода и структурные [10, C. 173].

На самом деле операторы ввода / вывода являются обращениями к стандартным процедурам ввода / вывода, т. к. в языке Pascal нет специальных операций такого вида. Стандартно программа получает входные данные из файла Input и помещает результаты обработки в файл Output, которые связаны с клавиатурой и экраном дисплея соответственно. Чтение данных, введенных с клавиатуры, осуществляет оператор ввода данных с клавиатуры.

Формат использования: read ([<имя файла ввода>],<список ввода>);

Требования к выполнению:

– в качестве <имя файла ввода> по умолчанию используется стандартный файл ввода с именем Input, иначе указывается имя нестандартного файла ввода;

– <список ввода> – любое количество идентификаторов, перечисленных через запятую [4, C. 95].

Выполнение: если не указано имя файла ввода, то данные вводятся с клавиатуры в файл Input через пробел, а затем нажимается клавиша <Enter> или каждое значение через нажатие клавиши <Enter>, при этом курсор клавиатуры остается в той же строке после последнего значения [1, C. 86].

Оператор ввода данных приостанавливает выполнение программы и как только файл ввода заполнен значениями, начинает чтение из этого файла и присваивание их именам переменных из списка ввода.

При вводе значений переменных может произойти программное прерывание, если вводимые значения не соответствуют описанному типу переменных. Пример: пусть задано описание следующих переменных: var a: integer; b: real; с: char [7, C. 53];

Ввод значений переменных может осуществляться в двух вариантах, они представлены в Таблице 3.

Таблица 3

Варианты использования оператора ввода

Запрос ввода

Вариант 1

Вариант 2

read (a, b, c); или read (a); read (b); read (с);

345 <Enter>

0.789 <Enter>

‘x’ <Enter>

345 <Пробел> 0.789 <Пробел> ‘x’ <Пробел>

Источник: Кононов А. Д. Основы программирования на языке Паскаль. Основные понятия алгоритмического языка Паскаль / А. Д. Кононов, А. А. Кононов. – Воронеж: Воронежский государственный архитектурно-строительный университет, 2017. – С. 38

Вывод результатов работы программы осуществляет оператор вывода данных на экран монитора.

Формат использования: write ([<имя файла вывода>], <список вывода>);

Требования к выполнению:

– в качестве <имя файла вывода>, по умолчанию, используется стандартный файл ввода с именем Output, иначе указывается имя нестандартного файла вывода;

– <список вывода> – любое количество идентификаторов, перечисленных через запятую, возможно с указанием формата вывода или сообщение, обрамленное в апострофы. Выполнение оператора вывода write (или writeln) заключается в том, что он помещает первое поле11 для первой переменной, второе – вплотную за первым и т. д. последовательно в начало выходного файла [16, C. 39].

Оператор writeln с указанием параметров или без параметров (в отличие от write) после записи в выходной файл последнего данного добавляет литеру конца строки.

Пример: пусть задано описание следующих переменных:

var A, B, n, Sum: integer; S: real;

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

Таблица 4

Варианты использования оператора вывода

Пример использования

Пояснения

write ('Введите количество чисел');

Вывод сообщения перед оператором ввода

write (Sum);

Вывод Sum в стандартном формате

write ((A + B) / n : 5 : 2);

Вывод вещественного значения с полями вывода

write (Сумма чисел равна ', S);

Вывод S в научном формате с комментарием

Источник: Кудрец Д. Основы программирования на языке Pascal / Д. Кудрец. – М.: Издательские решения, 2018. – С. 19.

Для данных целочисленных типов можно задавать ширину поля:

write (<идентификатор> : <ширина поля>);

Если не задана ширина поля для вывода данных числовых типов, то используется стандартный формат вывода. При этом выделяется количество позиций вывода, равное количеству символов, не считая апострофов [2].

Вещественные данные могут выводиться в научном формате, если не указана точность. Например, число 0.001963 представляется как 1.963E-03.

Для вывода вещественных данных можно задавать ширину двух полей вывода:

write (<идентификатор>: <ширина поля 1>: <ширина поля 2>);

где ширина поля 1 – задает общее количество позиций: целая часть + точка + дробная часть; ширина поля 2 – задает количество позиций, выделяемых под дробную часть [6, C. 19].

Для программирования линейных процессов обработки информации используются простые операторы, которые в своей структуре не объединяют другие операторы. К ним относятся: пустой оператор, оператор присваивания и оператор обращения к процедуре. Оператор присваивания замещает содержимое переменной значением выражения [14, C. 69].

Формат использования: <идентификатор>: = <выражение>;

Требования к выполнению:

– переменная и выражение должны быть одного и того же типа;

– выполняется присваивание любых типов данных (кроме файловых).

Выполнение: оператор присваивания заменяет значение переменной из левой части на значение выражения из правой части. В Таблице 5 отображены варианты использования оператора присваивания

Таблица 5

Варианты использования оператора присваивания

Пример использования

Пояснения

S := dl * h;

Произведение значений dl и h присваивается переменной S

Sum := Sum + x

Значение переменной Sum увеличивается на x

Flag := true;

Значению переменной Flag присваивается true (истина)

Источник: Химич А. В. Сравнительный анализ языков программирования: Паскаль, С++, PYTHON / А. В. Химич // Молодежный научный форум. – 2018. – С. 138.

Для организации ввода значений переменных в сообщениях не нужно указывать сами имена переменных ввода. Обязательным считается указание единиц измерения значений, если они заданы. Для пользователя неважно, как именуются в программе те или иные переменные [1].

Пустой оператор чаще всего служит для организации выхода из середины программы или составного оператора.

Требования к выполнению:

– оператор может располагаться в любой части программы, где позволяет синтаксис языка и может быть помечен меткой;

– в качестве пустого оператора обычно ставится разделитель точка с запятой [11, C. 71].

Выполнение: пустой оператор не выполняет никаких действий.

Значения переменных, связанные в выражение, должны быть определены до выполнения оператора присваивания.

Программирование ветвящихся процессов обработки информации реализуется через использование структурных операторов, которые в своей структуре объединяют другие операторы. К ним относятся операторы: составной, условный, выбора и безусловного перехода [2].

Составной оператор определяет порядок выполнения операторов, перечисленных внутри скобок.

Формат использования: begin <оператор1>; … <оператор N> end;

Требования к выполнению:

– символ точка с запятой можно рассматривать как признак следования: т. е. выполнение следующего оператора должно начаться сразу же после того, как закончится выполнение предыдущего;

– end тоже можно рассматривать как разделитель (точка с запятой) и поэтому перед end точка с запятой не ставится;

– символы begin ... end. называют операторными скобками. Операторные скобки позволяют сделать программу более наглядной за счет выделения некоторых участков, имеющих возможно большую длину [7, C. 83].

Выполнение: составной оператор объединяет операторы, перечисленные внутри скобок, в единый объект обработки – блок.

Условный оператор позволяет выполнять то или иное действие в зависимости от результата проверки логического условия.

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

– полная форма: if <условие> then <оператор 1> else <оператор 2>;

– неполная форма: if <условие> then <оператор 1> [3, C. 92];

Требования к выполнению:

– <условие> должно быть логическим выражением;

– сложные условия задаются с помощью операций отношения: <,>, <>, <=,> = и могут соединяться между собой логическими операциями: and, or, not, которые обязательно заключаются в круглые скобки (см. таблицу 3);

– если в логическом условии указывается только имя переменной логического типа или ее отрицание, то проверяется значение этой переменной на истинность;

– в качестве <оператор 1> и <оператор 2> могут быть любые операторы, в том числе составной оператор [7, C. 62].

Выполнение условного оператора полной формы состоит в следующем: вычисляется значение логического условия. Если это значение истина (true), то выполняется <оператор 1>, иначе выполняется <оператор 2> и выполнение условного оператора заканчивается. Условный оператор неполной формы выполняется аналогично, только в качестве <оператор 2> взят пустой оператор. Варианты использования условного оператора отображены в Таблице 6.

При вычислении значения арифметического выражения необходимо предусмотреть проверку входных значений переменных, иначе это может привести к ошибочным (аварийным) ситуациям. Например, ошибка «деление на 0».

Оператор безусловного перехода изменяет порядок выполнения программы: управление передается оператору, помеченному меткой. Формат использования: goto <имя метки> [4, C. 69];

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

Таблица 6

Варианты использования условного оператора

Пример использования

Пояснения

If not A then x:=1 else x:= 0;

Если отрицание значения логической переменной А равно истина, то x = 1, иначе x = 0

If (x < 0) and (y <> 1) then z:=abs (x) / (y – 1);

Если x < 0 и y <> 1, то z присваивается значение выражения: abs (x) / (y – 1);

If x mod 2 = 0

then write (x, ‘– четное’) else write (x, ‘– нечетное’);

Если остаток от деления x на 2 равен 0, то выводится сообщение: «x – четное», иначе выводится сообщение: «x – нечетное»

Источник: Авдеюк О. А. Информатика и программирование: основы программирования на языке Паскаль / О. А. Авдеюк, Л. Г. Акулов, В. Ю. Наумов; ВолгГТУ. – 2-изд., испр. – Волгоград, 2018. – С. 96.

Вместо использования оператора безусловного перехода для организации ветвящихся процессов примените условный оператор, а для организации циклов, замените его циклами с условиями [3].

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

Формат использования: case <выражение> of

<метка 1>: <оператор 1>;

<метка 2>, <метка 5>: <оператор 2>;

<метка N>: <оператор N>;

else <оператор N+1>

end [4, C. 93];

Требования к выполнению:

– <выражение> является выражением того же скалярного типа, что и метки;

– <метка 1>, …, <метка N> обязательно являются константами одного и того же скалярного типа, причем разного значения;

– если по разным значениям меток выполняются одни и те же действия, то можно упростить вид оператора, перечисляя данные метки через запятую;

– в качестве <оператор> может использоваться составной оператор, в т. ч. снова оператор выбора [18, C. 62].

Выполнение оператора выбора сводится к вычислению значения выражения <идентификатор> и если обнаруживается совпадение с i-той меткой, то выполняется i-тый оператор, иначе выполняется <оператор N+1>. Оператор цикла с параметром (безусловный цикл) позволяет повторять некоторое действие заданное число раз (тело цикла) [22].

Формат использования:

форма 1:

for <параметр цикла>:= <начальное значение> to <конечное значение> do <оператор>;

форма 2:

for <параметр цикла>:=< конечное значение> downto <начал-е значение> do оператор>;

Требования к выполнению:

– войти в цикл можно только через его начало; начальное значение параметра цикла не должно превышать конечного, если используется форма 1 и наоборот, начальное значение превышает конечное, если используется форма 2;

– переменная-параметр цикла должна быть описана как переменная целого типа;

– начальное и конечное значения параметра цикла могут быть переменными, тогда их значения определяются заранее, причем переменные должны быть того же типа, что и переменная-параметр;

– в качестве <оператор> может использоваться составной оператор, если циклически повторяется серия действий;

– прервать выполнение цикла можно двумя способами: либо увеличить значение параметра цикла до конечного, либо использовать процедуру break [2, C. 96].

Невозможно задать в языке Pascal шаг выполнения цикла, отличный от 1 или -1.

Выполнение: переменной-параметру присваивается начальное значение; если начальное значение не превышает конечного, то выполняется тело цикла. Каждый раз значение параметра цикла увеличивается на 1. Условием завершения цикла можно считать значение параметра, превышающее конечное значение на единицу [4].

Если начальное значение превышает или равно конечному значению, то выполняется тело цикла. Каждый раз значение параметра цикла уменьшается на 1. Условием завершения цикла можно считать значение параметра, на единицу меньше конечного значения.

Следует помнить о трех запретах при обращении к циклу с параметром:

– нельзя изменять параметр цикла в его теле, это может привести к досрочному выходу из цикла;

– нежелательно досрочно выходить из цикла с параметром;

– нельзя использовать значение параметра цикла после выхода из цикла, т. к. значение его не определено [6, C. 21].

Оператор цикла с предусловием в зависимости от результата проверки логического условия может осуществлять повтор действия.

Формат использования: while <условие> do <оператор>;

Требования к выполнению:

– <условие> должно быть логическим выражением;

– <условие> проверяется после исполнения каждой итерации;

– в качестве <оператор> может использоваться составной оператор, если циклически повторяется серия действий;

– <оператор> может ни разу не выполнится, если <условие> окажется ложным на первой итерации исполнения [11, C. 102].

Выполнение: пока значение выражения <условие> остается истина, происходит выполнение тела цикла, иначе цикл завершается, т. е. признак завершения работы оператора цикла с предусловием, когда значение выражения <условие> – ложь [2].

Оператор цикла с постусловием осуществляет повтор действия в зависимости от результата проверки логического условия.

Формат использования: repeat <оператор> until <условие>;

Требования к выполнению:

– <условие> должно быть логическим выражением;

– <условие> проверяется после каждой итерации исполнения;

– в качестве <оператор> может использоваться составной оператор;

– цикл с постусловием выполняется до тех пор, пока условие не станет истинным; – тело цикла выполнится обязательно хотя бы один раз [14, C. 112].

Выполнение тела цикла происходит до тех пор, пока значение выражения <условие> остается ложью, иначе цикл завершается, т. е. когда значение <условие> станет истина.

В программы необходимо вносить участки защиты от неправильно введенных данных.

Часто оператор цикла с постусловием применяют для проверки корректности ввода данных. Например, контроль ввода времени суток можно осуществить следующим образом: repeat

writeln ('Введите часы и минуты через точку');

readln (time);

x:= trunc (time); y:= frac (time) until (x < 24) or (x > 0) or (y < 0.59) or (y > 0) ; В этом примере, пока не будет корректно введено реальное время суток, будет повторяться цикл с запросом ввода [11, C. 85].

2.2. Подпрограммы

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

– создания программ как отдельных отлаженных блоков, создаваемых разными пользователями с последующим объединением;

– экономии оперативной памяти ПК за счет однократного занесения подпрограммы в память и впоследствии многократного вызова;

– локализации в конкретной подпрограмме процесса поиска и исправления ошибок [13, C. 72].

Все переменные, используемые подпрограммами, могут быть либо глобальными, описанными в основной программе и доступными всем подпрограммам, либо локальными, описанными внутри подпрограммы и доступными только ей самой [21, C. 19].

Язык Pascal допускает любой уровень вложенности подпрограмм.

Считается недопустимым изменять содержимое глобальных переменных в подпрограммах, поскольку отследить содержимое таких переменных становится довольно сложно. В этом случае говорят о побочном эффекте, который приводит к нарушению принципов структурированности программы [2].

Рассмотрим на примерах программ primer_1 и primer_2 использование локальных и глобальных переменных посредством изменения значения переменной логического типа, примеры представлены в Таблице 7.

Поскольку значения логических переменных выводить нельзя, вывод значения переменной x организован через печать символьных имен значений (‘true’ / ’false’) [3].

Вызов подпрограмм осуществляется из основной программы, при этом выполнение основной программы приостанавливается, и управление передается в подпрограмму и возвращается по окончании работы подпрограммы [1, C. 152].

Таблица 7

Использование локальных и глобальных переменных посредством изменения значения переменной логического типа на примерах программ

рrogram primer_1; var x: boolean; procedure izmen; begin x:= true; end;

begin x:= false; izmen;

if x then write (‘true’) else write (‘false’) end.

Замечания и пояснения к программе.

Переменная x описана в основной программе, следовательно, она является глобальной переменной. Описанная в основной программе процедура, изменяет содержимое глобальной переменной, поэтому переменная x принимает значение true (побочный эффект).

рrogram primer_2; var x: boolean;

procedure izmen; var x: boolean;

begin x:= true; end;

begin x:= false; izmen;

if x then write (‘true’) else write (‘false’) end.

Замечания и пояснения к программе.

В основной программе x – глобальная переменная, равная false. В процедуре объявлена локальная переменная с тем же именем. Изменение значения локальной переменной никак не повлияет на содержимое глобальной переменной, тогда x остается равным false.

Источник: Акулов Л. Г. Информатика и программирование: основы программирования на языке Паскаль / Л. Г. Акулов, В. Ю. Наумов, О. А. Авдеюк. – Волгоград: Волгоградский государственный технический университет, 2017. – С. 143.

Для осуществления вызова подпрограммы необходимо указать ее имя и в скобках параметры (если они есть), называемые фактическими параметрами.

В вызываемой подпрограмме список параметров с указанием их типов является аргументами для данной подпрограммы. Эти аргументы называются формальными параметрами или «фиктивными», т. к. над ними не выполняется никаких арифметических операций. Вычисления производятся только над фактическими параметрами [14].

Все идентификаторы, введенные в разделе формальных параметров: определения констант, типов, описании переменных, процедур или функций, локальны в данном описании процедуры, что и является их областью определенности. Они не доступны вне этой области. Значения локальных переменных в момент входа в подпрограмму не определены.

Пример: пусть в программе А вызывается процедура В.

program A;

procedure B (x, y: real); begin end; {B}

begin

B (3.09, pi / 2);

end. {A}

В рассмотренном примере значения 3.09 и pi / 2 являются фактическими параметрами, а переменные x и y являются формальными параметрами.

Формальные и фактические параметры обязательно должны совпадать по количеству, порядку следования и типу [2].

Список формальных параметров может включать в себя: параметры-значения, параметры-переменные, параметры-процедуры (перед ними указывается procedure) и параметры-функции (перед ними указывается function). В наше рассмотрение включены первые два вида параметров, как наиболее часто используемые:

1) параметры-значения

Описание состоит в указании его имени и через двоеточие типа.

Требования к использованию:

– передаются из основной программы в подпрограмму в виде копии значения, т. е. происходит присваивание значений фактических параметров формальным;

– изменение значений переменных в подпрограмме никак не повлияет на значения переменных из основной программы;

– тип параметра может быть любым, за исключением файлового;

– значением фактического параметра для формального параметра-значения может быть выражением.

2) параметры-переменные

Описание аналогично описанию параметров-значений, но только перед именем параметра записывается зарезервированное слово var.

Требования к использованию:

– передаются из основной программы в подпрограмму фактически в виде адресов переменных, т. е. подпрограмма имеет доступ к этим параметрам и может их изменять;

– в качестве значения фактического параметра для формального параметрапеременной запрещено использовать выражение [16, C. 39].

Рассмотрим на примерах программ primer_3 и primer_4 различия в использовании формальных параметров: параметров-переменных и параметров-значений посредством изменения значения переменной логического типа, они представлены в Таблице 8.

Таблица 8

Различия в использовании формальных параметров на примерах

рrogram primer_3; var x: boolean;

procedure izmen (var y: boolean); begin y:= true; end;

begin

x:=false; izmen (x);

if x then write (‘true’) else write (‘false’) end.

Замечания и пояснения к программе.

x – глобальная переменная, y определена

в процедуре как параметр-переменная. Следовательно, значение переменной y зависит от значения переменной x и наоборот. С изменением значения переменной y на true, изменяется и значение переменной x, т е. тоже становится равным true.

program primer _4; var x: boolean;

procedure izmen (y: boolean); begin y:= true; end;

begin

x:= false; izmen (x);

if x then write (‘true’) else write (‘false’) end.

Замечания и пояснения к программе.

x – глобальная переменная со значением

false, переменная y в процедуре определена как параметр-значение. При вызове процедуры выполняется присваивание y:= x. При этом все связи с переменной x теряются, т. е. y:= true никак не влияет на x, следовательно, x остается равным false.

Источник: Кононов А. Д. Основы программирования на языке Паскаль. Основные понятия алгоритмического языка Паскаль / А. Д. Кононов, А. А. Кононов. – Воронеж: Воронежский государственный архитектурно-строительный университет, 2017. – С. 43.

Заметим, что в программах primer_3 и primer_4 были использованы процедуры, описания которых будет подробно рассмотрено ниже.

В языке Pascal существуют два вида подпрограмм: процедуры и функции. Рассмотрим описание и использование подпрограмм-функций.

Описание любой функции имеет следующий вид:

function <имя функции> ([<список формальных параметров>]): <тип функции> [1];

Требования к использованию:

– обращение к функциям осуществляется только указанием в арифметическом или логическом выражении имени функции и следующих за ним фактических параметров;

– <тип функции> задает тип значения функции, который совпадает с типом значения, сформированным функцией;

– составной оператор задает алгоритм вычисления значения функции;

– функция может формировать только единственное скалярное значение, которое присваивается имени функции одним из операторов, входящим в составной оператор;

– функция обязана вернуть результат работы;

– использование в теле функции ее собственного имени подразумевает рекурсивность выполнения этой процедуры [16, C. 45]

Рассмотрим описание и использование подпрограмм-процедур. У описания процедуры много схожего с описанием функции:

procedure <имя процедуры> ([<список формальных параметров>]);

Требования к использованию:

– назначение процедур состоит в том, чтобы определить некоторые повторяющиеся части программы;

– обращение к процедурам осуществляется с помощью оператора обращения;

– процедура выполняет заданную последовательность действий, не возвращая результат в основную программу;

– результаты работы процедуры могут быть получены основной программой только через параметры-переменные [17, C. 45].

2.3. Сложные типы данных. Массивы

Переменные, встречавшиеся ранее, можно назвать простыми переменными: одно имя переменной связано с единственным значением. Использование простых переменных не всегда оправдано, а точнее, неудобно. Предположим, необходимо хранить в памяти последовательность из n значений для последующей обработки: потребуется ввести соответственно n переменных. А если обрабатывать табличные данные, то число затребованных переменных резко возрастает.

Для решения задач такого типа необходимо определение сложных (структурированных) типов данных, которые состоят как из однотипных, так и из разнотипных данных. В наше рассмотрение входит изучение регулярного типа данных – массивов.

При обработке данных, сгруппированных в последовательности и таблицы, удобнее обращаться к ним как к единому объекту и по одному имени. Структурный регулярный тип данных (массив), как раз, и состоит из совокупности однотипных данных (констант) [1].

Массивы бывают одномерные (один индекс), двумерные (два индекса) и n-мерные (n индексов). Примером одномерного массива может служить вектор, двумерного – матрица (таблица), трехмерного массива – матрица, элементами которой являются векторы. Представить массивы более высокой размерности поможет воображение пользователя [11, C.74].

Набор однотипных данных можно представить в памяти ПК как одномерный массив: type <имя массива> = array [<тип индекса>] of <тип элементов массива>;

Описание переменной типа массив справедливо для любых типов массивов:

var <имя переменной>: <имя массива> [2, C. 149];

На практике наиболее часто используется совмещенное описание переменной типа массив: var <имя переменной>: array [<тип индекса>] of <тип элементов массива>; где <Тип индекса> определяет кроме типа индекса еще и размерность массива, равную количеству заданных индексов;

<Тип элементов массива> называется базовым.

Требования к использованию:

– количество элементов массива должно быть известно до описания массива и не изменяется во время работы программы (однако значение этих компонент описанием не задается);

– к любой компоненте массива имеется прямой доступ. Номер некоторой компоненты массива называется ее индексом и одновременно является ее адресом;

– индексом массива может быть выражение любого скалярного типа, кроме вещественного типа; – диапазон значений индекса определяется типом индекса [16, C.48].

Обращение к элементу одномерного массива: <имя переменной типа массив> [индекс].

Пример: описание type massiv = array [1...20] of real; означает, что определен тип массив с именем massiv, состоящим из 20 компонент типа real; а описание var А: massiv; означает, что переменная А является переменной типа massiv, причем в качестве индекса может быть использовано любое целое число от 1 до 20. Обращение к i-тому элементу массива A есть A [i] [3, C. 182].

Вместо массива возможно использование последовательности значений, если условие задачи не предполагает хранение в памяти всех введенных данных [3].

Размерность массивов всегда определена в виде констант до описания самих массивов [1].

Основные операции над элементами массивов разной размерности рассмотрим на примере четырех описанных массивов A, D, B и C, представленных в Таблице 9.

Таблица 9

Выполнение основных операций над массивами разной размерности

Виды операций

Одномерные массивы

Двумерные массивы

Инициализация массивов

for i:= 1 to 10 do A[i]:= 0;

for i:= 1 to 20 do for j:= 1 to 10 do B[i, j]:= 0;

Ввод значений с клавиатуры

for i:= 1 to 10 do read (A[i]);

for i:= 1 to 20 do for j:= 1 to 10 do read (B[i, j]);

Вывод значений на экран

for i:= 1 to 10 do writeln (A[i]);

for i:= 1 to 20 do for j:= 1 to 10 do writeln (B[i, j]);

Копирование массивов

A = D или

for i:= 1 to 10 do A[i]:= D[i];

B = C или

for i:= 1 to 20 do for j:= 1 to 10 do

B[i, j]:= C[i, j];

Источник: Андреева Т. А. Программирование на языке Pascal / Т. А. Андреева. – М.: НОУ «Интуит», 2016. – С. 179.

var A, D: array [1..10] of real;

B, C: array [1..20, 1..10] of integer;

i, j: integer;

Элементами массива могут быть компоненты структурных типов. Например, массив строк, массив массивов, массив записей, массив указателей, и т. д. [3, C. 180].

Выводы:

Выполнение одного оператора можно сопоставить одному шагу (действию) алгоритма. Последовательность таких операторов и составляют тело программы. Все операторы языка Паскаль можно разделить на три группы: простые, ввода / вывода и структурные.

Использование стандартных процедур и функций не требует предварительного описания и дает ряд преимуществ, обеспечивая возможность: – создания программ как отдельных отлаженных блоков, создаваемых разными пользователями с последующим объединением; – экономии оперативной памяти ПК за счет однократного занесения подпрограммы в память и впоследствии многократного вызова; – локализации в конкретной подпрограмме процесса поиска и исправления ошибок.

ЗАКЛЮЧЕНИЕ

Язык Pascal содержит удобные средства для представления данных. Развитая система типов позволяет адекватно описывать данные, подлежащие обработке, и конструировать структуры данных произвольной сложности.

Pascal является типизированным языком, что означает фиксацию типов переменных при их описании, а также строгий контроль преобразований типов и контроль доступа к данным в соответствии с их типом (как на этапе компиляции, так и при исполнении программ).

Набор операторов языка Pascal отражает принципы структурного программирования и позволяет записывать достаточно сложные алгоритмы в компактной и элегантной форме. Pascal является процедурным языком с традиционной блочной структурой и статически определенными областями действия имен. Процедурный механизм сочетает в себе простоту реализации и использования и гибкие средства параметризации.

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

Pascal полностью прочитывает исходный текст, написанный программистом, и составляет последовательность машинных кодов, выполняющую те действия, которые описал программист в hqundmnl тексте. Эта последовательность сохраняется в файл с расширением “.EXE” и является самостоятельным исполняемым файлом, который может быть запущен сам по себе, уже без участия Pascal и, даже, на другом компьютере, на котором Pascal может быть не установлен.

Существует ряд объективных причин, обусловивших выдающийся успех языка Pascal. Среди них в первую очередь необходимо указать следующие:

  • Язык в естественной и элегантной форме отразил важнейшие современные концепции технологии разработки программ:
    1.  развитая система типов, 
    2. ориентация на принципы структурного программирования, 
    3. поддержка процесса пошаговой разработки. 

Благодаря своей компактности, концептуальной целостности и ортогональности понятий, а также удачному первоначальному описанию, Pascal оказался весьма легок для изучения и освоения. В противоположность громоздким многотомным описаниям таких языков, как PL/l, Cobol, FORTRAN, достаточно полное описание языка Pascal занимает около 30 страниц текста, а его синтаксические правила можно разместить на одной странице.

  • Несмотря на относительную простоту языка, он оказался пригоден для весьма широкого спектра приложений, в том числе для разработки очень больших и сложных программ, например, операционных систем.

Особенностями языка Pascal являются строгая типизация и наличие средств структурного (процедурного) программирования. Pascal был одним из первых таких языков. По мнению Вирта, язык должен способствовать дисциплинированному программированию, поэтому, наряду со строгой типизацией, в Pascal сведены к минимуму возможные синтаксические неоднозначности, а сам синтаксис автор постарался сделать интуитивно понятным даже при первом знакомстве с языком.

СПИСОК ИСПОЛЬЗОВАННЫХ ИСТОЧНИКОВ

  1. Авдеюк О. А. Информатика и программирование: основы программирования на языке Паскаль / О. А. Авдеюк, Л. Г. Акулов, В. Ю. Наумов; ВолгГТУ. – 2-изд., испр. – Волгоград, 2018. – 268 с.
  2. Акулов Л. Г. Информатика и программирование: основы программирования на языке Паскаль / Л. Г. Акулов, В. Ю. Наумов, О. А. Авдеюк. – Волгоград: Волгоградский государственный технический университет, 2017. – 268 с.
  3. Андреева Т. А. Программирование на языке Pascal / Т. А. Андреева. – М.: НОУ «Интуит», 2016. – 277 с.
  4. Анищик Т. А. Основы алгоритмического программирования на языке Паскаль / Т. А. Анищик. – Краснодар: Кубанский государственный аграрный университет им. И. Т. Трубилина, 2017. – 183 с.
  5. Антипов А. В. Эффективное обучение программированию с помощью современных языков / А. В. Антипова, Д. А. Игумнов, Х. Г. Ахмедова // Научный форум: технические и физико-математические науки. – 2017. – С. 5 – 10.
  6. Бизяева Н. Д. Особенности применения семиотического подхода в обучении программированию на языке Pascal на основе английской лексики / Н. Д. Бизяева, Д. А. Будагова // Информатика в школе. – 2017. - №4(127). – С. 18 – 21.
  7. Варфоломеева Т. Н. Структурная методология программирования на примере языка Паскаль / Т. Н. Варфоломеева, С. А. Повитухин. – Магнитогорск: Магнитогорский государственный университет, 2015. – 103 с.
  8. Ветчинкин, Д. А. C или PASCAL, с чего начать? / Д. А. Ветчинкин, Д. С. Трунин, В. А. Волков // APRIORI. – 2015. - №6. – С. 12 – 21.
  9. Гайдуков С. Обзор языков программирования / С. Гайдуков // Наука и технологии в современном мире. – 2017. – С. 121 – 127.
  10. Григорьев Ю. В. Сравнительный анализ языков программирования Pascal и C / Ю. В. Григорьев // Интернет-технологии в образовании. - 2018. – С. 171 – 186.
  11. Гуськова Е. Н. Программирование: изучаем Pascal / Е. Н. Гуськова, С. Ю. Знатнов. – Коломна: Государственное образовательное учреждение высшего образования Московской области «Государственный социально-гуманитарный университет», 2017. – 155 с.
  12. Деревянко, Е. Ю. Языки программирования, используемые для создания автоматизированных тестовых систем / Е. Ю. Деревянко, С. О. Залевская, Ж. А. Фомченко // Актуальные направления научных исследований: перспективы развития. – 2017. – С. 247 – 249.
  13. Ершов А. П. Эвоюляция языков программирования / А. П. Ершов, С. Б. Покровский // Проблемы информатики. – 2017. – №2(35). – С. 70 – 79.
  14. Касторнова В.А. Структуры данных и алгоритмы их обработки на языке программирования Паскаль: учебное пособие/ В.А. Касторнова. -СПб.: BHV, 2016. - 304 c.
  15. Касторнов А. Ф. Языки программирования и их роль в становлении предметной области «Информатика» / А. Ф. Касторнов, В. А. Касторнова // Педагогическая информатика. – 2016. - №1. – С. 59 – 68.
  16. Кононов А. Д. Основы программирования на языке Паскаль. Основные понятия алгоритмического языка Паскаль / А. Д. Кононов, А. А. Кононов. – Воронеж: Воронежский государственный архитектурно-строительный университет, 2017. – 53 с.
  17. Кудрец Д. Основы программирования на языке Pascal / Д. Кудрец. – М.: Издательские решения, 2018. – 50 с.
  18. Мазничевская Л. И. Использование процедур и функций в языке программирования Паскаль / Л. И. Мазничевская // Информатика. – 2016. - №4(117). – С. 60 – 62.
  19. Соколов А. А. Полнофункциональные языки программирования и их анализ / А. А. Соколов // Современные научные исследования: теория и практика. – 2018. – С. 19 – 24.
  20. Сулипов Ш.Л. Изучение методов сортировки средствами языка программирования Паскаль / Ш.Л. Сулипов, Х.Б. Абухаджиева, М.А. Бетигова // Научные исследования и современное образование: материалы II Междунар. науч.-практ. конф. (Чебоксары, 26 март 2018 г.) / редкол.: О.Н. Широков [и др.] – Чебоксары: ЦНС «Интерактив плюс», 2018. – С. 124-126.
  21. Сырицына В. Н. Модернизация языка программирования Pascal / В. Н. Сырицына // Инновации в науке. – 2017. - №6(67). – С. 18 – 20.
  22. Хамидуллова Д. Р. Есть ли перспективы у Pascal? История создания и дальнейшее использование языка / Д. Р. Хамидуллова, К. А. Фадеева, Е. О. Ладанова // Постулат. – 2018. - №1 (27). – С. 112 – 116.
  23. Химич А. В. Сравнительный анализ языков программирования: Паскаль, С++, PYTHON / А. В. Химич // Молодежный научный форум. – 2018. – С. 136 – 141.
  24. Шмаков Н. В. Изучение основ программирования на языке «Pascal» с использованием динамических игр / Н. В. Шмаков // Модернизация и технологическое развитие промышленности. – 2018. – С. 94 – 96.
  25. Kozlova V. V. Programming languages -the Pascal language / V. V. Kozlova, A. P. Karpushina, D. S. Sinichkina // Информационно-коммуникативная культура: наука и образование. – 2018. – С. 170 – 172.

ПРИЛОЖЕНИЕ 1

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

Имя функции

Назначение

Пример использования

Целочисленные функции

ord (x)

– порядковый номер значения x в множестве, определенном типом x

ord(‘a’) = 65

dec (x)

– уменьшение x на единицу

dec(10)=9

inc (x)

– увеличение x на единицу

inc(10)=11

trunc (x)

– получение целой части вещественного числа x

trunc(5.85) = 5

round (x)

– округление до целого вещественного числа x

round(5.85) = 6

Вещественные функции

abs (x)

– абсолютная часть числа x

abs(-2) = 2

arctan (x)

– арктангенс x

arctan(0) = 0

cos (x)

– косинус x

cos(pi) = -1

sin (x)

– синус x

sin(pi) = 0

frac (x)

– дробная часть x

frac(3.14) = 0.14

int (x)

– целая часть x

int(3.64) = 3

ln (x)

– натуральный логарифм

ln(1) = 0

exp (x)

– вычисление ex

exp(0) = 1

sqr (x)

– возведение в квадрат x

sqr(5) = 25

sqrt(x)

– квадратный корень x

sqrt(25) = 5

Символьные функции

pred (x)

– выдает предыдущее значение

pred('c') = 'b'

succ (x)

– выдает последующее значение

succ('c') = 'd'

ord (x)

– выдает численное значение кода

ord('9') - ord('1') = 8

chr (x)

– выдает символ по числовому коду

chr(70) = 'f'

upcase (x)

– преобразует строчную букву в прописную

upcase(‘a’) = ‘a’

Логические функции и операции

not

– операция логического отрицания

A = true; not A = false

and

– операция умножения

(конъюнкция)

A = true; B = false A and B = false

or

– операция логического сложения

(дизъюнкция)

A = true; B = false A or B = true

xor

– исключающее ИЛИ

A = true; B = false A xor B = true

Строковые функции

concat (s1, ..,sn)

– объединяет строки, начиная с S1 по Sn, общая длина должна быть < 255

co cat('п', 'к') = ’пк’

copy (s, k, n)

– возвращает копию подстроки, состоящую из n символов, начиная с k-той позиции строки S

s = ’pe tium-486’; copy(s, 1, 7) = ’pe tium’;

length (s)

– вычисляет длину строки S

s = ‘mode ’; e gth(s) = 5;

pos (s1, s2)

– выдает номер позиции, начиная с которой располагается подстрока S1 в строке S2

s = ‘ aa ’;pos(‘aa’, s) = 3; pos(‘b’, s) = 0;

delete (s, k, n)

– удаляет n символов строки S, начиная с k-той позиции

s = ‘ibm at’;

de ete(s, 4, 3) = ‘ibm’;

insert (s1,s2, k)

– вставляет подстроку S1 в строку S2, начиная с k-той позиции

s1 = ‘КГ’; s2 = ‘АУ’; insert(s1, s2, 3) = ‘КГАУ’;

str (n, s)

– преобразовывает число n в строку S

= 29; str( , s) = ‘29’;

val (s, n, cod)

– преобразует строку S в число n; Cod – переменная целого типа, значение которой равно 0, если операция выполнена без ошибки, иначе содержит номер ошибочной позиции;

s = ‘2009’;

val(s, n, cod) = 2009; cod = 0; s = ‘1.2a+01’;

val(s, n, cod) = ?; cod = 3;