Археология об основании Рима: Новые раскопки проясняют и такой острый дискуссионный вопрос, как дата самого возникновения Рима...

История развития пистолетов-пулеметов: Предпосылкой для возникновения пистолетов-пулеметов послужила давняя тенденция тяготения винтовок...

Структурированный тип данных массив

2017-11-17 740
Структурированный тип данных массив 0.00 из 5.00 0 оценок
Заказать работу

Вверх
Содержание
Поиск

Структурированные данные представляют собой элементы, которые в свою очередь являются данными простых или структурированных типов. В языке Pascal различают следующие структурированные типы данных: массивы, строки, записи, множества, файлы.

Массив в Pascal представляет собой конечный набор однотипных объектов (чисел, символов, строк и т. п.), имеющих общее имя и хранящихся в последовательно размещенных ячейках памяти. Использование массивов позволяет хранить элементы векторов и матриц в памяти компьютера с теми же обозначениями, что и в математических записях; организовать циклические вычисления с различными исходными данными; уменьшить объем программ, сделать их более наглядными и надежными.

Размер массива − это количество элементов, содержащихся в нем. Каждый элемент массива занимает определенное местоположение, определяемое порядковым номером, который называется индексом. Количество индексов, необходимое для точного определения положения элемента, называется размерностью массива. В языке Pascal различают одно-, двух- и многомерные массивы. Наиболее широко используются одномерные массивы, соответствующие математическому представлению векторов, и двумерные, соответствующие прямоугольным таблицам − матрицам.

Описание массивов

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

Формат описания массива:

< имя массива >: array [ диапазон индексов ] of < тип элементов >

Можно декларировать массив-константу, тип данных массив или переменную-массив, например:

Const mas_const = (2.3, 4, 6.4, −2, −3.7);

{массив из пяти вещественных элементов-констант}

Var

D: array [1..10] of integer; {одномерный массив-переменная из десяти целочисленных элементов}

B: array [0..50,0..20] of char;{двумерный массив-переменная, размером 51 ´ 21, из символьных элементов}

C: array [-3..4] of Boolean; {одномерный массив-переменная из восьми элементов логического типа}

Type norm_mas = array[1..10,1..10] of integer;

{описание типа данных пользователя – массив 10 ´ 10 из целых чисел}

Var D1, D2: norm_mas; {двумерные переменные-массивы типа norm_mas}

Над массивами целиком определена операция присваивания, например, оператор вида

D1:=D2

означает, что всем элементам массива D1 присвоены значения элементов массива D2.

Могут быть также использованы логические выражения вида

D1=D2

и

D1<>D2.

Все остальные операции с массивами осуществляются поэлементно.

Формат обращения в программе к конкретному элементу массива:

< имя массива > [< номер элемента >]

Например,

D[1] − обращение к первому элементу одномерного массива D,

D[i] − обращение к i -му элементу одномерного массива D;

D[2*i+1] − обращение к элементу одномерного массива D, номер которого является значением выражения 2*i+1.

W[i, j] − обращение к элементу, расположенному на пересечении i -й строки и j -го столбца в двумерном массиве W,

W[1, 5] − обращение к элементу, являющемуся пятым в первой строке двумерного массива W,

W[3, j] − обращение к элементу третьей строки и j -го столбца.

Ввод элементов массива

Для работы с массивами широко используют циклы и вложенные циклы.

Ввод элементов одномерного массива D размером n можно кодировать следующим образом:

for i:=1 to n do read(D[i]);

Выполняется указанный фрагмент кода в случае ввода значений-чисел следующим образом:

1) параметру цикла (целочисленной переменной i) присваивается начальное значение (единица);

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

3) после ввода пользователем строки из n чисел, разделенных пробелом, и нажатия клавиши Enter выполнение программы возобновляется, и введенные числа заносятся в качестве значений в массив D.

Вариантом кода, реализующего ввод значений элементов массива, является конструкция

for i:=1 to n do readln(D[i]);

Она выполняется так:

1) параметру цикла (целочисленной переменной i) присваивается начальное значение (единица);

2) выполнение программы приостанавливается в ожидании ввода пользователем первого элемента массива (обращение к процедуре ввода readln(D[i]));

3) после ввода пользователем значения первого элемента массива, который может быть целым или вещественным числом, символом или строкой (в зависимости от того, как описан массив D в разделе описаний программы), необходимо нажать клавишу Enter, что возобновит выполнение программы – введенное пользователем значение станет значением первого элемента массива D;

4) параметру цикла iприсваивается следующее значение (два). Далее повторяются шаги 2−4 алгоритма.

Когда значение параметра цикла достигнет конечного (станет равным n), и пользователь введет значение последнего элемента массива и нажмет Enter, цикл for..to..do завершит свою работу и управление перейдет следующему оператору.

Ввод элементов массива − многошаговая процедура. Поэтому следует позаботиться о том, чтобы в процессе выполнения программы были введены корректные данные. Один из способов повышения надежности ввода − вывод на экран подсказки в виде строки текста, дающего представление о количестве и типе элементов массива, например:

n:=7; {количество элементов массива}

writeln('Введите ',n,' целочисленных элементов
массива D ');

for i:=1 to n do

Begin

write('D[',i,']=');

readln(D[i])

end;

Первый раз приостановка выполнения программы произойдет тогда, когда на экране монитора отобразится подсказка

D[1]=

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

В языке Pascal, реализованном в Free Pascal, присвоение элементам массива заданных списком значений допустимо также и при описании массива. Например,

Var

D: array [1..10] of integer =

(3,5,8,12,7,4,6,34,3,43);

Для двумерного массива W, состоящего из n × m элементов, простейший фрагмент кода, реализующего ввод элементов массива, имеет вид:

for i:=1 to n do

for j:=1 to m do read(W[i,j]);

При выполнении этого кода сначала требуется ввести с клавиатуры значения элементов первой строки, затем второй и т. д. Завершается ввод нажатием клавиши Enter.

Вывод элементов массива

Вывод одномерного массива тоже производится поэлементно с помощью, например, цикла for..to..do:

for i:=1 to n do write(D[i],’ ’);

или

for i:=1 to n do writeln('D[',i,']=',D[i]);

Посредством первого оператора цикла значения элементов массива D, разделенные пробелами, выводятся в строку.

Например,

3 5 8 12 7 4 6 34 3 43

Второй оператор цикла выводит значения элементов массива D в виде 10 строк:

D[1]=3

D[2]=5

D[3]=8

D[4]=12

D[5]=7

D[6]=4

D[7]=6

D[8]=34

D[9]=3

D[10]=43

Вывести двумерный массив можно в строку и в столбец. Но наиболее информативным является представление в форме прямоугольной таблицы. Код, реализующий такой способ вывода, имеет вид:

for i:=1 to n do

Begin

for j:=1 to m do write(W[i,j]);

{вывод элементов i -й строки через пробел}

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

end;


Поделиться с друзьями:

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

Наброски и зарисовки растений, плодов, цветов: Освоить конструктивное построение структуры дерева через зарисовки отдельных деревьев, группы деревьев...

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

Семя – орган полового размножения и расселения растений: наружи у семян имеется плотный покров – кожура...



© cyberpedia.su 2017-2024 - Не является автором материалов. Исключительное право сохранено за автором текста.
Если вы не хотите, чтобы данный материал был у нас на сайте, перейдите по ссылке: Нарушение авторских прав. Мы поможем в написании вашей работы!

0.023 с.