- •1. Двоичная система счисления.
- •2. Восьмеричная система счисления.
- •3. Шестнадцатеричная система счисления.
- •4. Сложение и вычитание в 2, 8 и 16 c/c.
- •2. Вещественные числа (числа с плавающей запятой).
- •3. Логические данные.
- •2. Зарезервированные слова.
- •X a8 alpha Massiv z52d9 eps Res_52_a ___75
- •6. Метка.
- •2. Целые типы данных.
- •4. Вещественные типы.
- •1. Раздел описания меток.
- •2. Раздел описания констант.
- •3. Раздел описания типов.
- •4. Раздел описания переменных.
- •6. Раздел операторов.
- •7. Последовательность разделов.
- •1. Формульно-словесный способ.
- •2. Блок-схемный способ.
- •Ввод - вывод одномерного массива
- •2. Ввод массива из текстового файла.
- •3. Вывод одномерного массива на экран.
- •Примеры обработки одномерных массивов
- •1. Параметр цикла должен быть ординального типа.
- •2. Параметр должен быть описан в том же блоке, где находится сам оператор цикла.
- •5. В теле цикла параметр не должен изменяться.
- •6. Начальное и конечное значения параметра цикла вычисляются только один раз, до начала цикла.
- •7. При нормальном завершении цикла значение его параметра считается неопределенным.
- •Контроль ординальных переменных
- •Вставка элемента в упорядоченный массив
- •Удаление элементов из массива
- •«Школьный» алгоритм сортировки
- •Группировка массива методом прямой выборки
- •Группировка массива методом прямого обмена
- •Var c : array[1..10,1..15,1..8] of real.
- •1. Ввод элементов матрицы с клавиатуры.
- •2. Ввод матрицы из текстового файла.
- •3. Вывод матрицы на экран.
- •Тождественные и совместимые типы
- •Обработка в процедуре одномерных массивов с различными именами типов
- •Обработка в процедуре матриц с различными именами типов
- •Var s : string[V],
- •Процедуры и функции для обработки строк
- •Определение битовой структуры поля памяти
- •Процедуры и функции для файлов любого типа
- •Var p : pointer;
- •1. Формирование стека из текстового файла.
- •7. Определение значения и местоположения максимального элемента в стеке.
- •8. Удаление из стека максимального элемента.
- •9. Добавление элемента в упорядоченный стек.
- •2. Добавление нового элемента в очередь.
- •3. Удаление элемента из очереди.
- •6. Удаление произвольного элемента из очереди.
- •7. Добавление нового элемента в произвольное место очереди.
- •1. Формирование дека.
- •Var sin : integer;
- •Процедура заполнения FillChar
- •Процедура перемещения данных move
- •Управление экраном в текстовом режиме
- •Сохранение и восстановление экрана
- •Interface
- •Implementation
- •Процедуры управления текстовым режимом экрана
- •Intr(n:byte; Var Reg:Registers),
- •If KeyPressed then
- •Автоматическая оптимизация программ
- •1. Свертывание констант.
- •2. Слияние констант.
- •3. Вычисление по короткой схеме.
- •4. Удаление неиспользуемого кода.
- •If false then
- •5. Эффективная компоновка.
- •Оверлейная структура программы
- •Interface
- •Implementation
- •Interface
- •Implementation
- •Использование сопроцессора
1. Раздел описания меток.
Любой оператор в программе может быть промаркирован меткой. Метка ставится перед оператором и отделяется от него двоеточием. Все метки должны быть описаны в разделе описания меток.
Метка
Пример 2.
Label 10, 20, Met15;
2. Раздел описания констант.
Этот раздел определяет некоторые идентификаторы как синонимы констант.
Имя Константа
Пример 3.
Const g = 9.81;
Nmax = 100;
TextString = 'Нажмите клавишу Enter';
Константа pi является предописанной и равна pi = 3.1415926536 .
В разделе описания констант можно использовать выражения, в состав которых входят константы, знаки операций и некоторые функции (abs, odd, ord и др.). Значения таких выражений вычисляются при компиляции программы.
Пример 4.
Const pi4 = pi/4;
MaxSize = MaxInt div SizeOf(real);
В операторах программы рекомендуется, как правило, вместо значений констант использовать имена констант. Это улучшает читаемость программы и облегчает ее модификацию.
Предположим, что константа Nmax = 100 в примере 3 определяет максимальный размер массива. Если в операторах программы в различных местах непосредственно записано значение 100, то при необходимости изменения размера массива нужно везде заменить это значение другим, например, числом 200. При этом не исключено, что где-нибудь в программе будет пропущена такая замена или же, наоборот, изменено число 100, которое не является размером массива. В то же время, если в программе везде записано Nmax, то достаточно изменить лишь одно число в разделе констант.
3. Раздел описания типов.
Типы данных real, integer, boolean, char являются предопределенными и используются в разделе описания переменных. Если программисту требуется ввести новый тип данных, то этот тип нужно описать в разделе описания типов.
Т
и п Имя
типа
Пример 5.
Type Interval = 10..50;
Ar = array[1..100] of real;
Здесь Interval - диапазонный тип, Ar - тип массива с вещественными компонентами.
4. Раздел описания переменных.
Каждое имя переменной (простой, составной или другого типа) должно быть приведено в разделе описания переменных.
Имя Т
и п
Пример 6.
Var i, j, k : integer;
a, b : real;
X : Ar;
d : Interval;
Примечание. Var – это сокращение слова variable (переменная, 'vεriəbl).
5. Раздел описания процедур и функций. Назначение и структура раздела будут изложены в дальнейшем при рассмотрении процедур и функций.
6. Раздел операторов.
Раздел содержит в себе операторы, реализующие обработку информации в программе. Его синтаксическая диаграмма :
Оператор
Раздел операторов - это частный случай составного оператора, который включает в себя один или несколько операторов, заключенных в "операторные скобки" begin .. end. Разделителем между операторами является точка с запятой.
Операторы Паскаль-программы - это оператор присваивания, условный оператор, оператор перехода и др.
Из синтаксической диаграммы следует, что между словами Begin и End могут отсутствовать какие-либо операторы, может быть одна или несколько точек с запятой. Это возможные примеры пустого оператора, который будет рассмотрен несколько позже.