- •Программирование на языке высокого уровня
- •1 Часть Учебное пособие Москва 2007
- •Оглавление
- •1. Основы алгоритмизации
- •1.1. Алгоритмизация и требования к алгоритму
- •1.2. Блок-схемы алгоритмов
- •1.2.1. Способы записи алгоритма
- •1.2.2. Блок-схемы
- •1.2.3. Следование, ветвление, цикл
- •1.3. Этапы разработки программы
- •1.3.1. Язык программирования. Программа
- •1.3.2. Этапы разработки
- •1.4. Ошибки
- •1.4.1. Компилятор. Синтаксис и семантика
- •1.4.2. Типы ошибок
- •2. Алфавит языка Турбо Паскаль. Программа
- •2.1. Идентификаторы
- •2.2. Разделители
- •2.3. Специальные символы
- •2.4. Структура Pascal-программы
- •Пример простейшей программы на языке Pascal
- •3. Типы данных
- •3.1. Структура типов данных
- •3.2. Простые типы
- •3.2.1. Порядковые типы
- •3.2.1.1 Целые типы.
- •3.2.1.1.1. Встроенные процедуры и функции, применимые к целым типам
- •3.2.1.2. Логический тип.
- •3.2.1.3. Символьный тип.
- •3.2.1.4. Перечисляемый тип.
- •3.2.2. Вещественные типы
- •3.3. Константы и переменные
- •3.4. Преобразование типов
- •4. Операторы
- •4.1. Ввод данных
- •4.2. Вывод данных
- •4.3. Составной оператор
- •4.4. Условный оператор
- •4.5. Операторы циклов
- •4.5.1. Оператор for
- •4.5.2. Оператор while
- •4.5.3. Оператор repeat
- •4.5.4. Стандартные функции для циклов
- •4.6. Оператор выбора case
- •5. Массивы
- •5.1 Определение массива
- •5.2. Ввод/вывод одномерного массива (вектора).
- •5.3 Типизированные константы – массивы
- •5.4. Сортировка массивов (ранжирование)
- •6. Процедуры и функции
- •6.1. Подпрограммы
- •6.2. Параметры. Глобальные и локальные описания
- •6.3. Процедуры
- •6.4. Функции
- •6.5. Процедура exit
- •6.6. Рекурсия
- •6.7. Директивы подпрограмм
- •6.8. Открытые массивы
- •7. Записи
- •7.1.Определение и правила записи
- •7.2. Оператор присоединения
- •7.3. Записи с вариантами (экономия пространства)
- •8. Множества
- •8.1. Понятие множества
- •8.2. Конструктор множества
- •8.3. Операции над множествами
- •8.4. Примеры программ, использующих множества.
- •Литература
4.5.4. Стандартные функции для циклов
Исполняются во всех трех видах цикла (for, while, repeat).
Для досрочного выхода из цикла можно использовать оператор BREAK.
Процедура CONTINUE позволяет прервать выполнение любого цикла и передает управление на его заголовок, заставляя немедленно перейти к выполнению следующей итерации.
Пример 1
for i:=1 to 45 do
begin
for f:=f+i;
if (f>100) or (i<39) then break
end;
for i:=1to 45 do
begin (исключает суммирование нечетных чисел)
f:=f+i;
if add (i) then continue
end;
4.6. Оператор выбора case
При написании программ не рекомендуется использовать вложенные друг в друга операторы IF. Считается, что число уровней не должно быть больше 2, 3. А оператор выбора позволяет выбрать одно из нескольких возможных продолжений программы. Параметром, по которому осуществляется выбор, служит ключ выбора – выражение любого порядкового типа (селектор).
Case <ключ выбора> of <список const>: <оператор> else <оператор> end;
Case, of, else, end – зарезервированные слова
<ключ выбора> – выражение любого порядкового типа;
<список const> – const того же типа, что и выражение (ключ выбора);
<оператор> – произвольный оператор Т-П.
Сначала вычисляется выражение (ключ выбора), затем в последовательности списка констант отыскивается такой, который совпадает с вычисленным значением (ключ выбора) и выполняется соответствующий данной const оператор. После этого оператор выбора прекращает свою работу. В случае отсутствия const в списке выбора, управление передается оператору, стоящему за словом else.
Пример 1
Case dig of (dig – целое число)
0 : writeln (‘ноль‘);
1,3,5,7,9 : writeln (‘нечет‘);
2,4,6,8 : writeln (‘чет‘);
else
writeln (‘Совпадений нет‘)
end;
Пример 2
Ключ выбора – тип- диапазон.
Case i of
1….10 : writeln (‘число в диапазоне 1…..10 ‘);
11…20 : writeln ( ‘число в диапазоне 11…20 ‘);
21…30 : writeln (‘число в диапазоне 21…30 ‘);
else
writeln (‘число вне диапазона ‘)
end;
Пример 3
Ключ выбора – перечисляемый тип.
var
season : (winter, spring, summer, autumn);
Case season of
winter : writeln (‘Зима ‘);
spring : writeln (‘Весна‘);
summer : writeln (‘Лето‘);
autumn : writeln (‘Осень‘);
end;
5. Массивы
5.1 Определение массива
В Т-П 4 структурированных типа:
-
массивы;
-
записи
-
множества;
-
файлы.
Каждый из типов характеризуется множественностью, образующих этот тип данных, т.е. переменная или const всегда имеют несколько компонентов. Каждый компонент может принадлежать какому-либо структурированному типу, что говорит о возможности вложенности типов. В Т-П допускается произвольная глубина вложенности типов. Однако суммарная длина любого из них во внутреннем представлении не должна превышать 65520 байт.
Массивом можно назвать упорядоченную совокупность переменных одного типа, обеспечивающую доступ к любой из них простым указанием ее порядкового номера (индекса).
Описание массива задается следующим образом
TYPE
<имя типа> = ARRAY [<список индексных типов>] OF <тип>;
где
<имя типа> - правильный идентификатор
ARRAY, OF – кодовые слова (массив, из)
<список индексных типов> – список одного или нескольких типов, разделенных запятыми. Квадратные скобки, обрамляющие список – требование синтаксиса.
<тип> – любой тип Т-П.
В качестве индексных типов в Т-П можно использовать любые порядковые типы, кроме LONGINT и типов диапазонов с базовым типом LONGINT.
Примеры описания типов и переменных
TYPE
Color = (red, blue, black);
mas1 = array [-5…15] of real;
mas2 = array [1…10] of integer;
mas3 = array [’a’…’c’]. of array [1…5] of boolean;
mas4 = array [Boolean] of char;
var
a: mas1; b:mas2; c: mas3; d:mas4;
e: array [color] of real;
Переменная А – вектор с вещественными компонентами, пронумерованы от -5 до 15.
Переменная В – квадратная матрица целых чисел, состоящая из 10 строк и 10 столбцов.
Переменная С – матрица логических величин, у которой задано три строки ’a’ , ’в’, ’с’ и пять столбцов.
Переменная D – символьный вектор, состоящий из двух компонентов.
Переменная Е – трехкомпонентный вещественный вектор. Обращение к ним E(red), E(blue), E(black)
При объявлении
var
ar : array [1…2, 1..2] of byte;
-------------------------------------------
ar[1,1]:=1; ar[1,2]:=5; ar[2,1]:=3; ar[2,2,]:=7;
в памяти ЭВМ будут расположены числа : 1, 5, 3, 7.
В Т-П единственным оператором присваивания можно передать элементы массива другому массиву того же типа.
Ar1,ar2 : array [1…2, 1..2] of byte;
ar1:=ar2;
Ввод массива осуществляется несколькими способами.