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

50

Лабораторная работа 7 массивы Цель работы

Изучение правил описания массивов, реализации ввода/вывода данных для массивов различной размерности и других действий с ними.

Методические указания

Данная лабораторная работа - первая из работ со структурированными типами данных. До сих пор программировались действия с простыми типами данных. Результатом их выполнения становился скаляр - число, символ, имя. Turbo Pascal позволяет обрабатывать также сложные данные, которые характеризуются не только типом их компонент, но и способом их организации, т.е. структурой. Максимальный размер любой структуры не должен превышать 65520 байтов. Язык предоставляет возможность работать со следующими сложными типами данных: массив, множество, запись, файл. Рассмотрим правила описания массивов и действий с ними.

Массив - это упорядоченная совокупность данных одного типа. Такая совокупность характеризуется общим числом элементов (компонент), размером и размерностью, которая определяет способ организации данных внутри массива. Различают одномерные массивы (векторы), двумерные массивы (матрицы) и n-мерные массивы. Величина n ограничивается максимальным размером структуры. Следовательно, вектор характеризуется одним типом индексов, который задает нумерацию его элементов; матрица - двумя типами индексов, один из которых определяет номер строки в массиве, а другой задает номер столбца; n-мерный массив использует n типов индексов.

Одномерный тип-массив описывается следующим образом:

type <имя_типа> = array [<тип_индексов>] of <тип_компонент>;

Тип индексов может быть любым порядковым, кроме Longint, Integer, Word. Компоненты могут быть любого типа, в том числе и структурированного, т.е. можно описать тип-массив, элементами которого будут, например, записи.

Обычно тип индексов определяют через тип-диапазон с использованием константы, например так:

const n = 10;

type vector = array [1..n] of real;

var v : vector;

Объявленная переменная v является вектором с вещественными компонентами, пронумерованными от 1 до 10. Значения компонент пока не заданы. Размер массива можно объявлять с запасом и использовать требуемое число его элементов. Выбор компоненты массива производят по ее номеру, например v[7]:= 2.3 - седьмой элемент вектора v получил значение 2,3. Присваивать значения одного массива другому можно лишь в том случае, если они описаны как идентичные. Покажем это на примере.

type vec = array [1..5] of byte;

var v1,v2 : vec;

v3 : array [1..5] of byte;

После задания значений элементам, например массива v1, можно присвоить эти же значения элементам вектора v2 - v2 := v1, но недопустимо присваивание v3 := v2, т.к. типы переменных v2 и v3 не являются идентичными.

Двумерный тип-массив может быть описан одним из двух способов:

  1. type <имя_типа> = array [<тип_индексов_строк>] of

array [<тип_индексов_столбцов>] of <тип_компонент>;

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

type stroka = array [1..5] of byte; {строка матрицы}

matrix = array [1..3] of stroka; {матрица - массив строк}

2) type matrix = array [1..3, 1..5] of byte;

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

равнозначны. Элемент матрицы m типа matrix, находящийся на пересечении i-ой строки и j-го столбца, в программе записывается следующим образом:

m[i, j] или m[i][j].

Аналогичным образом могут быть описаны массивы любой размерности.

Инициализация генератора псевдослучайных чисел

i := 1 (1) 10

случайное целое число не более 100

i := 1 (1) 4

Вывод (‘Введите i-ю строку’)

j := 1 (1) 4

Ввод ()

Вывод (‘Исходный вектор:’)

i := 1 (1) 10

Вывод в строку элементов вектора

Перевод курсора в начало новой строки

Вывод (‘Исходная матрица:’)

i := 1 (1) 4

j := 1 (1) 4

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