Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Учебно-методическое пособие по Паскалю.doc
Скачиваний:
9
Добавлен:
25.04.2019
Размер:
398.34 Кб
Скачать

5.3 Оператор цикла с параметром

Синтаксис оператора цикла с параметром:

For I:= N to K do

Begin

< предложения тела цикла >

End;

Здесь FOR (для), TO (до), DO (выполнить) - ключевое слова; I - параметр цикла; N, K - начальное и конечное значение параметра цикла.

Циклическая часть программы выполняется повторно для каждого значения параметра цикла I от его начального значения N до конечного значения K включительно.

В качестве параметра цикла может использоваться только переменная порядкового типа, N и K могут быть заданы выражениями. Если в выражении присутствуют действительные переменные, то необходимо к выражению применить стандартные математические функции ROUND или TRUNC.

Если параметр цикла  I  описывается в разделе переменных как переменная целого типа, то параметр  I изменяется на величину шага, равную +1 или -1. Если значение параметра цикла уменьшается, то шаг его изменения -1, и в операторе цикла FOR ключевое слова  TO заменяется на ключевое слово  DOWNTO.

Пример: найти сумму первых ста членов последовательности 1, 2, 3, …

Program Summa;

Var I, Sum : Integer;

Begin

For I:=1 to 100 do S:=S+I;

Writeln(S);

End.

6 Структурированные типы данных

6.1 Массивы

Массив - это упорядоченная совокупность однотипных элементов. Члены этой совокупности называются элементами массива. Каждый элемент определяется именем массива и его положением в массиве.

Упорядоченность последовательности данных заключается в том, что элементы массива располагаются в последовательных ячейках памяти.

Массивы бывают одномерные, двумерные, трехмерные, и т.д. Массив называется одномерным, если для получения доступа к его элементам достаточно одной индексной переменной.

Объявление одномерного массива:

VAR

Имя_массива: ARRAY[1..k] OF <Тип_данных>;

Здесь переменная k задает количество элементов в массиве, при этом значение индекса элементов лежит в интервале от 1 до k и может принимать только целые значения.

Массивы могут иметь и более одного измерения. Размерность ("мерность") массива определяет количество индексов отдельного элемента.

Объявление двумерного массива (двумерной матрицы):

Имя_массива: ARRAY [1..k1,1..k2] OF Тип_данных;

Здесь k1 задает количество строк и диапазон изменения индекса строк, k2 - количество столбцов и диапазон изменения индекса столбцов.

Объявление трехмерного массива:

Имя_массива: ARRAY[1..k1,1..k2,1..k3] OF < Тип_данных>;

Здесь k1 задает количество строк и диапазон изменения индекса строк, k2 - количество столбцов и диапазон изменения индекса столбцов, k3 - количество слоев и диапазон изменения индекса слоев.

Подобным образом описываются массивы и более высокой размерности. Ограничения на максимальное значение размерности не существует.

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

На примере двумерного массива А(5х6) рассмотрим ввод элементов массива и вывод их на экран в виде строк и столбцов.

Program Wwod_Wywod;

Var A : Array [1..5,1..6] of integer;

I,J : Integer;

Begin

For I:=1 to 5 do

For J:=1 to 6 do

read(A[I,J]); {- считывание в цикле всех 30 элементов массива}

For I:=1 to 5 do Begin

For J:=1 to 6 do Write (A[I,J]:4); {- вывод в одну строку значений элементов массива вложенного цикла длиной в 4 символа}

Writeln; {- переход на новую строку}

End;

End.

При работе с массивами надо помнить, что в каждый момент времени мы работаем с одним конкретным элементом массива заданного типа. Если элементов массива много, то для ввода значений часто используют функцию Random(Х), которая возвращает случайное целое число, равномерно распределенное в диапазоне от 0 до Х-1 (Х – параметр обращения). Если параметр Х опущен, то функция возвращает вещественное число в диапазоне от 0 до 1.

Program Wwod;

Var A : Array [1..8,1..10] of Integer;

I, J : Integer;

Begin

For I:=1 to 8 do

For J:=1 to 10 do A[I,J] := Random(100);

……………

End.

При решении задач массивы используются очень часто, и зачастую эти массивы необходимо отсортировать по возрастанию или по убыванию. Существует два основных алгоритмов сортировки.

Сортировка выбором

  1. Установить номер наименьшего элемента массива

  2. Поменять местами наименьший и первый элементы массива.

  3. Оставив в покое первый элемент, выполнить первые два пункта над остатком массива. Пункт 3 повторять, пока остаток не сократится до одного элемента.

Метод пузырька (обменная сортировка)

  1. Сравнивать в цикле соседние элементы, и если левый элемент оказался больше, то поменять его местами с правым.

  2. Выполнить шаг 1, не обращаясь к последнему элементу.

Пример. Отсортировать массив в порядке убывания (сортировка осуществляется при помощи двух вложенных циклов)

For j:=1 to N-1 do

Begin

NEW:=MAS[N];

K:=N;

For i:=N downto j do

If MAS[i]>NEW then

Begin

K:=i;

NEW:=MAS[i]

End;

MAS[K]:=MAS[j];

MAS[J]:=NEW;

End;