Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Глава7.doc
Скачиваний:
1
Добавлен:
16.04.2019
Размер:
139.26 Кб
Скачать

7.3. Оператор цикла с параметром for

Оператор имеет вид

for i := m1 to m2 do оператор

или

for i := m1 downto m2 do оператор,

где оператор - простой или составной оператор (тело цикла); i - параметр цикла; m1, m2 - соответствен­но начальное и конечное значения параметра (рис. 7.3).

Рис. 7.3. Синтаксическая диаграмма оператора for

На параметр цикла в операторе for накладываются следующие ограничения:

1) в качестве параметра может использоваться только переменная дискретного типа1 (например, целого);

2) начальное и конечное значения параметра могут быть конс­тантами, переменными или выражениями, но должны иметь одинаковый с ним тип;

3) параметр цикла, а также его начальное и конечное значения не могут быть изменены никаким оператором в теле цикла;

4) после завершения цикла значение его параметра становится неопределенным, если только цикл не был прерван оператором пере­хода.

Выполнение оператора for начинается с присваивания его па­раметру цикла начального значения m1. Затем значение параметра (назовём его текущим и обозначим i ) сравнивается с конечным значением m2. Если в операторе цикла используется ключевое слово to и i m2, то выполня­ется тело цикла, после чего параметр i увеличивается на 1; когда i становится строго больше m2, цикл перестает выполняться и следует переход на оператор, расположенный за циклом. При использовании в операторе for ключевого слова downto i после каждого выполнения тела цикла уменьшается на 1. Выполнение цикла продолжается до тех пор, пока i не станет строго меньше m2.

Пример 7.4

Выполнить задание, приведённое в примере 7.1, используя оператор for.

В этой задаче количество повторений цикла равняется числу точек разбиения на отрезке [a,b] и может быть вычислено до выпол­нения цикла как целая часть от деления длины отрезка b-a на ве­личину шага x.

program example74;

var x, y, dx, a, b: real;

n, i : integer;

begin

{вычисление числа повторений тела цикла}

n := trunc ((b - a) / dx) + 1;

x := a;

for i := 1 to n do

begin

y := sin ( sqr (x));

writeln ('x:=', x:10:3, ' y:=' ,y:10:3);

x := x + dx

end

end.

7.4. Одномерные массивы и их описание

Одним из многих вопросов, стоящих перед программистом, приступающим к решению задачи, является вопрос о том, в каком виде следует представить исходные данные, так как от этого зависит качество программы. Часто исходные данные рационально представить в виде массива. Массив - это упорядоченная совокупность переменных одно­го типа, называемых элементами массива. Все элементы имеют одно и то же имя, совпадающее с именем массива. Каждый элемент снабжает­ся индексом (порядковым номером), определяющим его относительную позицию в ряду других элементов, и называется индексированной пе­ременной. Индекс элемента записывается вслед за его именем в квадратных скобках, например, a[3], max[10] и т.д.

Характеристиками каждого массива являются его имя, размер­ность и длина. Имя массива выбирается по тем же правилам, что и имя простой (неиндексированной) переменной. Одномерный массив в TurboPascal соответствует в математике вектору. Под длиной массива будем понимать количест­во составляющих его элементов. Массивы относятся к одной из раз­новидностей составного типа, а именно к регулярному типу.

Определение регулярного типа имеет вид

array [t2] of t1,

где t1 - тип элементов массива (базовый тип); t2 - тип индек­сов элементов массива.

В качестве элементов массива могут выступать переменные лю­бого типа, допустимого в языке. Тип индекса задаёт количество элементов в массиве, т.е. его длину; это количество определяется числом возможных значений типа, указанного в описании массива. Для индексации элементов массива чаще всего используется ограни­ченный тип, который образуется из какого-либо дискретного, кроме longint.

В программе каждый массив должен быть описан. Его описание может быть сделано либо в разделе описания переменных - var, либо в двух разделах: описания типов - type и описания переменных. Но в любом случае в описании массива должно присутствовать определе­ние регулярного типа.

Описание массива в разделе переменных выглядит так:

var

имя массива: array [t2] of t1;

Пример 7.5

a)

var

amper: array [0..30] of real;

Описан массив с именем amper, состоящий из 31 элемента типа real; индексация его элементов начинается с нуля и заканчивается целым числом 30; справа от символа ’: ’ находится определение ре­гулярного типа;

b)

var

v,w: array [-1..15] of integer;

Описаны два эквивалентных массива v и w целого типа, содер­жащие по 17 элементов в каждом.

________________________________________________________

Рассмотрим теперь второй способ описания массивов. Он вклю­чает себя два этапа: сначала в разделе описания типов объявляется регулярный пользовательский тип, а затем в разделе описания переменных указывается имя массива, принадлежащего данному типу:

type

имя типа = array [t2] of t1;

var

имя массива: имя типа;

Пример 7.6

type vec = array [-5..10] of integer;

var b: vec;

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]