- •Программирование в системе Pascal abc
- •Введение
- •1. Система программирования pascal abc
- •1.1. Структура меню среды
- •1.2. Команды редактора Pascal abc
- •Команды удаления и вставки
- •1.3. Правила оформления программ
- •1.4. Компиляция и исправление синтаксических ошибок
- •1.5. Этапы подготовки и решения задач на компьютере
- •1.6. Словарь основных терминов
- •2. Начальные сведения о языке pascal abc
- •2.1. Алфавит языка
- •2.2. Константы
- •2.3. Идентификаторы и типы данных
- •2.4. Переменные и именованные константы
- •2.5. Структура простой программы и комментарий
- •3. Оператор присваивания и числовые данные
- •3.1. Арифметические выражения
- •Приоритеты операций в выражении
- •3.2. Оператор присваивания
- •3.3. Процедуры ввода-вывода
- •3.4. Стандартные функции Pascal abc
- •3.5. Целые типы в Pascal abc
- •3.6. Вещественные типы
- •Переменные комплексного типа
- •3.7. Примеры и задания к самостоятельному выполнению
- •4. Программирование разветвленных алгоритмов
- •4.1. Логические выражения
- •4.2. Условный оператор if
- •4.3. Составной и пустой операторы
- •4.4. Оператор безусловного перехода
- •4.5. Пример и задания с оператором if
- •4.6. Оператор выбора варианта case
- •4.7. Примеры и задания с оператором case
- •5. Программирование алгоритмов циклической структуры
- •5.1. Оператор счётного цикла
- •5.2. Примеры и задания для оператора цикла со счётчиком
- •Задания к самостоятельному выполнению
- •5.3. Оператор цикла с предусловием
- •5.4. Пример и задания для оператора цикла с предусловием
- •5.5. Оператор цикла с постусловием
- •5.6. Процедуры прерываний циклов
- •5.7. Примеры и задания для циклов с постусловием
- •Задания для самостоятельного выполнения
- •6. Структурированные типы данных
- •6.1. Массивы данных
- •Типизированные константы-массивы
- •6.2. Пример и задания для одномерных массивов
- •Задания для самостоятельного выполнения Задание 1
- •Задание 2
- •6.3. Ограниченный тип (диапазон)
- •6.4. Пример и задания для двумерных массивов
- •Задания для самостоятельного выполнения Задание 1
- •Задание 2
- •Задание 3
- •7. Структурное программирование
- •7.1. Структура сложной программы
- •7.2. Подпрограммы. Процедуры и функции
- •7.3. Структура подпрограммы-функции
- •7.4. Примеры и задания с подпрограммой-функцией
- •Задания для самостоятельного выполнения Задание 1
- •Задание 2
- •7.5. Структура подпрограммы-процедуры
- •7.6. Передача в подпрограмму массивов и строк
- •7.7. Рекурсия в программе
- •7.8. Вложенные подпрограммы
- •7.9. Процедуры exit и halt
- •7.10. Пример и задания с подпрограммой-процедурой
- •Задания для самостоятельного выполнения Задание 1
- •Задание 2
- •8. Обработка символьных данных
- •8.1. Символьный тип
- •8.2. Задания для символьных данных
- •9. Обработка строк текста
- •9.1. Строковый тип
- •9.2. Встроенные функции и процедуры для обработки строк
- •9.3. Пример и задания для обработки строк
- •Задания для самостоятельного выполнения
- •10. Файлы
- •10.1. Процедура связывания файлов
- •10.2. Процедуры и функции для работы с файлами
- •10.3. Типизированные файлы
- •10.4. Текстовые файлы
- •10.5. Процедуры ввода
- •10.6. Процедуры вывода
- •10.7. Примеры и задания для работы с файлами
- •Задания для самостоятельного выполнения Задание 1
- •Задание 2
- •11. Комбинированный тип – записи
- •11.1. Структура данных типа записи
- •11.2. Обработка полей записей
- •11.3. Задания с обработкой записей Задание 1
- •Задание 2
- •12. Процедурные типы
- •Библиографический список
- •Обозначения графические в схемах алгоритмов (гост 19.701-90)
- •Содержание
Задание 2
Сформировать таблицу Пифагора для чисел натурального ряда.
Задание 3
Модифицировать программу_3_2 (или 6_3) таким образом, чтобы значения X, F1 и F2 были представлены двумерным массивом, состоящим из трех строк.
7. Структурное программирование
7.1. Структура сложной программы
Любая программная единица включает следующие разделы:
<Объявление программной единицы>
{Раздел описаний}
BEGIN
{Раздел исполняемых операторов}
END. {символ конца программной единицы}
<Объявление программной единицы> заголовок программы, процедуры или функции. Заголовок программы можно опускать, для процедур и функций наличие заголовка обязательно.
<Cимвол конца программной единицы> это символ точки для программы или символ ";" для процедуры или функции.
В разделе описаний объявляются идентификаторы типов, объектов, констант, переменных, а также метки, процедуры и функции. Каждый блок определяется своим ключевым словом. Тогда структура программы будет иметь вид
PROGRAM <имя программы>;
USES <список библиотечных модулей>;
LABEL <список меток в основном блоке>;
CONST < определение констант>;
TYPE <определение типов>;
VAR <определение глобальных переменных>;
<определение процедур>
<определение функций>;
BEGIN
<основной блок программы>
END.
Директива USES выполняет подключение стандартных или написанных программистом модулей. Она должна обязательно стоять первой, если присутствует в программе. Например, строкой
USES CRT;
производится подключение модуля CRT. Модуль CRT содержит процедуры и функции для управления выводом текста на дисплей, звуковым генератором и чтением с клавиатуры.
Блоки TYPE, CONST, VAR, LABEL в Паскале АВС могут следовать друг за другом в любом порядке и встречаться в разделе описаний сколько угодно раз.
В блоке LABEL перечисляются через запятую метки, используемые в программной единице. Метка может содержать числовое значение либо являться идентификатором. Например:
LABEL 1, 400, M1, EPS;
Если метка описана в этом блоке, но в программе не встретилась, то выдается сообщение об ошибке. Метки не должны повторяться. Блок меток может находиться в любом месте, их может быть несколько, но все метки должны быть определены до начала основной программы. При отсутствии меток блок исключается.
Блок CONST описывает константы двух видов:
CONST <имя1> = <константа1>;
<имя2> = <константа2>;
. . .
или
CONST <имяК>: <тип> = <константаK>;
<имяR>: <тип> = <константаR>;
. . .
Например: CONST NI = 100;
f = -NI;
d: real = 7.65432;
Блок TYPE содержит определения вводимых программистом нестандартных типов в следующих формах:
TYPE <идентификатор> = (<список_компонентов>);
или
TYPE <идентификатор> = <описание_типа>;
Пример: TYPE FAMILY = (FATHER, MOTHER);
Когда в Паскале используются только стандартные типы (например: INTEGER, REAL), этот блок опускается.
Блок VAR описывает имена переменных, а также имена массивов:
VAR A1, A2, ..., An: <тип1>;
B1, B2, ..., Bn: <типК>;
...
<имя массива>: ARRAY[диапазон] OF <тип>;
где буквами Ai, Bj указаны имена переменных, а <тип1>, <типК> – типы соответствующих переменных, [диапазон] указывает начальное и конечное значения индексов массива, <тип> задает тип элементов массива.
Пример: VAR A, B, C: INTEGER; {объявлены три переменные целого типа}
D, M: REAL; {объявлены две вещественные переменные}
MASS1: ARRAY[1..10] OF REAL; {массив из 10 чисел}
MASS2: ARRAY[-2..2] OF CHAR; {массив из пяти символов}
В качестве значений диапазона могут использоваться идентификаторы любого порядкового типа, если их значения определены выше в разделе CONST.