- •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
- •Использование сопроцессора
7. Последовательность разделов.
Как уже было отмечено, разделы описаний в Турбо Паскале могут следовать в произвольном порядке, при этом любой из них может повторяться несколько раз.
Пример 7.
Const Nmax = 100;
Type Ar = array[1..Nmax] of integer;
Var X : Ar;
Const g = 9.81;
Type Ars = array[0..Nmax+1] of real;
Var i,n : byte;
Y,Z : Ars;
При этом должны выполняться два основополагающих правила:
1) ни одно имя не должно быть описано дважды;
2) любое имя может быть использовано лишь после его описания (например, имя Nmax используется в разделе Type после описания этого имени в разделе Const).
Тем не менее рекомендуется без необходимости не изменять порядок следования описаний, принятый в стандартном языке Паскаль: Label, Const, Type, Var, процедуры и функции.
А Л Г О Р И Т М И С П О С О Б Ы
Е Г О П Р Е Д С Т А В Л Е Н И Я
Обработка информации в ЭВМ производится на основании алгоритма. Под алгоритмом понимают конечное упорядоченное множество правил, четко и однозначно определяющих последовательность операций для решения задачи или класса задач.
Для формализации записи алгоритмов используют различные изобразительные средства. К основным из них относятся формульно-словесный, блок-схемный и запись с помощью алгоритмических языков.
1. Формульно-словесный способ.
Здесь для записи алгоритма используется естественный язык с привлечением, если это необходимо, математических формул и обозначений.
Пример 1. Найти
Шаг 1. Положить равным .
Шаг 2. Если , то положить равным .
Шаг 3. Если , то положить равным . Конец.
Пример 2. Найти наибольший общий делитель двух целых чисел .
Для решения этой задачи обычно используют разложение значений и на простые множители, после чего произведение множителей, общих для и , определяет их наибольший общий делитель.
Например, для = 420 и = 90 имеем
420 = 2 2 3 5 7; 90 = 2 3 3 5 .
Наибольший общий делитель в этом случае равен 2 3 5 = 30.
В принципе этот способ можно использовать для формулировки рассматриваемого алгоритма, однако вначале потребуется разработать алгоритм разложения числа на простые множители, что является нетривиальной задачей.
Более просто поставленная задача решается с помощью так называемого алгоритма Евклида.
Обозначим наибольший общий делитель через . Вполне очевидно, что .
Тогда алгоритм Евклида можно описать следующим образом.
Шаг 1. Если = 0, то принять и закончить вычисления, иначе перейти к
шагу 2.
Шаг 2. Вычислить и .
Шаг 3. Заменить значение на значение , а значение - на значение . Пе-
рейти к шагу 1.
Здесь q - целая часть от деления m на n; r - остаток от деления.
При = 420, = 90 имеем:
Шаг 1. = 90 0;
Шаг 2. = [420/90] = 4; = 420 - 4 90 = 60;
Шаг 3. = 90; = 60;
Шаг 1. = 60 0;
Шаг 2. = [90/60] = 1; = 90 – 1 60 = 30;
Шаг 3. = 60; = 30;
Шаг 1. = 30 0;
Шаг 2. = [60/30] = 2; = 60 – 2 30 = 0;
Шаг 3. = 30; = 0;
Шаг 1. = 0 = 30 .
Основным недостатком формульно-словесной записи алгоритма является то, что здесь используется естественный язык, для которого органически присуща неоднозначность слов. К недостаткам данного способа относят также ненаглядность записи алгоритма.