- •Основы программирования
- •Учебное пособие и методические указания по выполнению практических занятий для студентов специальностей:
- •Isbn 966-7508-285
- •7.080401 – Информационные управляющие системы и технологии
- •Isbn 966-7508-285
- •Оглавление
- •Введение
- •Часть I. Основы вычислительной техники, алгоритмизации и программирования;
- •Часть II. Алгоритмизация информационных процессов;
- •Часть III. Алгоритмический язык с.
- •1. Краткие теоретические сведения
- •1.1. Структурно-функциональная организация среды пакета Turbo-Pascal
- •1.2. Среда программирования пакета Turbo-Pascal
- •1.3. Технология работы с текстовым редактором
- •1.4. Прогон и отладка программы
- •1.5. Алгоритмизация вычислительных процессов
- •1.6. Структура программы на языке Тurbo-Pascal
- •1.7. Типы данных
- •1.8. Выражения и стандартные функции
- •1.9. Массивы и записи
- •Var mas: array[1..2,1..3] of integer;
- •1.10. Основные операторы
- •1.11. Процедуры и функции
- •1.12. Работа с файлами
- •2. Методические указания к практическим занятиям
- •2. Текст программы:
- •2. Тексты программ:
- •2. Тексты программ:
- •2. Текст программы:
- •2. Текст программы:
- •2. Текст программы:
- •2. Текст программы:
- •Приложения Основные символы схем алгоритмов
- •Список рекомендуемой литературы
1.9. Массивы и записи
Массивом называется упорядоченная совокупность компонентов (элементов) одного из возможных в ТP типов данных. Описание массива задается следующим образом:
VAR <имя массива>: ARRAY [список индексов] OF <тип>;
где <имя массива> — уникальный идентификатор;
<список индексов> — перечисление размерностей массива с указанием минимального (начального) и максимального (конечного) значений каждой размерности;
<тип> — любой тип данных, используемых в ТP-программах.
Например:
Var mas: array[1..2,1..3] of integer;
– двухмерный массив размерности 2 на 3 элемента, имеющий имя MAS. Все элементы массива принадлежат к целым числам.
Для обращения к конкретному элементу массива нужно задать его относительное положение в массиве с помощью индексов, причем индексы должны быть либо целыми числами, либо выражениями целого типа и не выходить по значению за пределы заданного при объявлении диапазона.
Запись – это структура данных, состоящая из фиксированного числа компонентов, называемых полями записи. В отличие от массива, компоненты (поля) записи могут быть различного типа. Чтобы можно было ссылаться на тот или иной компонент записи, поля именуются.
Структура объявления типа записи такова:
TYPE <имя записи> = RECORD
<список полей>
END;
Здесь <имя записи> — правильный идентификатор;
<список полей> — представляет собой последовательность имен полей записи, между которыми ставится символ « ; ».
Например:
TYPE zap = RECORD
fio: STRING;
god_rogd: INTEGER;
END;
К каждому из компонентов записи можно получить доступ, если использовать составное имя, т.е. указать имя записи, затем точку и имя поля, например: zap.fio или zap.god_rogd.
Вопросы для самопроверки:
Дать определение массива.
Привести описание массива в ТР-программе.
Привести форму обращения к элементу массива.
Дать определение переменной типа запись.
Привести описание переменной типа запись в ТР-программе.
Привести форму обращения к элементу записи.
1.10. Основные операторы
К числу основных операторов языка ТР относятся операторы присваивания, ввода, вывода, условного перехода, циклов, безусловного перехода и выбора варианта.
Оператор присваивания служит для вычисления значений переменных. Он обозначается символом := и имеет следующую структуру:
<имя переменной> := <выражение>;
Арифметические выражения, стоящие в правой части оператора присваивания, могут содержать константы, идентификаторы переменных, числовые функции.
Для выполнения оператора присваивания необходимо, чтобы все входящие в него переменные были явно объявлены. Кроме того, переменным, входящим в арифметическое выражение, должны быть предварительно присвоены значения, соответствующие их типам.
Оператор выполняется в два действия. Сначала вычисляется значение выражения, стоящего справа от знака присваивания (:=). Потом полученное значение выражения присваивается переменной, стоящей слева от знака присваивания, при этом предыдущее значение этой переменной будет потеряно.
Операторы ввода предназначены для ввода в программу значений переменных с помощью клавиатуры. Они имеют следующую структуру:
READ(<список ввода>);
READLN(<список ввода>);
Список ввода представляет собой последовательность разделенных запятыми имен переменных, значения которых вводятся извне. Вводимые значения отображаются на экране. Отличие операторов READ от READLN заключается в том, что последний после ввода данных из списка осуществляет переход на следующую строку во вводимом файле. Оператор READLN без списка ввода производит лишь пропуск строки во вводимом файле.
Операторы вывода служат для вывода на экран значений выражений, переменных, констант и пояснительного текста. Они имеют следующую структуру:
WRITE(<список вывода>);
WRITELN(<список вывода>);
Список вывода представляет собой последовательность разделенных запятыми выражений, имен переменных и констант, фрагментов выводимого текста. Текст, который необходимо вывести на экран без каких-либо изменений, заключается в апострофы (символ « ’ »). Операторы WRITE и WRITELN отличаются тем, что последний осуществляет вывод элементов списка, начиная с новой строки. Оператор WRITELN без списка вывода производит переход на новую строку.
Вещественные значения переменных и арифметических выражений выводятся в виде нормализованных чисел с десятичным порядком (т.е. в форме с плавающей точкой). Если существует необходимость представить значения вещественных переменных и арифметических выражений в форме с фиксированной точкой, в списке вывода указывается их формат:
WRITE(<выражение>:N:M);
здесь N — количество позиций, отводимых под выводимое значение выражения или переменной;
М — количество позиций, выделяемых под дробную часть выводимого значения.
Условный оператор (оператор условного перехода) служит для реализации разветвлений вычислительного процесса. Он имеет следующую структуру:
IF <условие> THEN
<оператор 1>
ELSE <оператор 2>;
Условие задается в виде логического выражения, истинность которого влечет выполнение оператора 1, а ложность – оператора 2.
Оператор 1 и оператор 2 могут быть как простыми, так и составными, т.е. состоящими из нескольких простых операторов, ограниченных операторными скобками. Составной оператор имеет следующую структуру:
BEGIN
<простой оператор 1>;
· · ·
<простой оператор n>;
END;
Операторы цикла обеспечивают многократное выполнение простого или составного оператора, называемого телом цикла.
В языке ТP существуют три разновидности операторов цикла. Первая из них, реализующая цикл по схеме «ОТ И ДО», имеет следующую структуру:
FOR <имя переменной>:=<выражение 1> ТО <выражение 2> DO <оператор>;
При выполнении данного оператора переменная, называемая счетчиком цикла, увеличивает каждый раз на единицу свое целочисленное значение, изменяясь от величины, полученной в результате вычисления выражения 1, до величины, полученной в результате вычисления выражения 2.
Возможно также и обратное направление изменения значений счетчика цикла: если вместо служебного слова ТО в операторе цикла используется слово DOWNTO, то при выполнении цикла переменная будет уменьшать свое значение каждый раз на единицу.
Другой разновидностью оператора цикла является оператор, реализующий цикл по схеме «ДО ТЕХ ПОР, ПОКА» с проверкой условия в начале цикла. Он имеет следующую структуру:
WHILE <условие> DO
<оператор>;
Оператор (как правило, составной) выполняется до тех пор, пока истинно условие, заданное в виде логического выражения. Если при первом обращении к циклу условие не выполняется, то цикл пропускается и управление передается следующему оператору программы.
Третьей разновидностью оператора цикла является оператор, реализующий цикл по схеме «ДО ТЕХ ПОР, ПОКА» с проверкой условия в конце цикла. Он имеет следующую структуру:
REPEAT
<группа операторов>
UNTIL <условие>;
Группа операторов выполняется до тех пор, пока ложно условие, заданное в виде логического выражения. Очевидно, цикл в любом случае будет выполнен хотя бы один раз.
Оператор безусловного перехода используется для принудительного (безусловного) перехода в некоторую точку программы, помеченную специальной меткой. Он имеет структуру:
GOTO <метка>;
Оператор выбора варианта служит для выбора одного из заданных возможных направлений дальнейшего развития вычислительного процесса в зависимости от значения специального арифметического выражения, называемого селекторным. Он имеет следующую структуру:
CASE <Селекторное выражение> OF
<метка 1>:<оператор 1>;
<метка 2>:<оператор 2>;
<метка n>:<оператор n>;
END;
Селекторное выражение составляется таким образом, чтобы его значения совпадали с метками последующих операторов.
Вопросы для самопроверки:
Раскрыть понятие оператора присваивания.
Дать характеристику операторов ввода.
Дать характеристику операторов вывода.
Сформулировать правило форматирования вывода.
Раскрыть структуру условного оператора (оператора условного перехода).
Раскрыть структуру оператора цикла FOR.
Раскрыть структуру оператора цикла WHILE.
Раскрыть структуру оператора цикла REPEAT.
Дать характеристику оператора безусловного перехода.
Раскрыть структуру оператора выбора варианта.