Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
261.doc
Скачиваний:
0
Добавлен:
01.07.2025
Размер:
2.11 Mб
Скачать

Лабораторная работа № 8 Обработка одномерных массивов

Цель работы овладение практическими навыками работы с одномерными массивами.

Теоретические сведения

Все простые типы данных (целые, вещественные, символьные, логические) имеют два характерных свойства: неделимость и упорядоченность их значений.

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

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

  • регулярный тип (массивы);

  • комбинированный тип (записи);

  • файловый тип (файлы);

  • множественный тип (множества);

  • строковый тип (строки).

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

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

Массив – это совокупность конечного числа элементов одного и того же типа, в котором каждый элемент имеет номер, а все элементы общее имя. Номер элемента называется индексом.

Характеристики массива:

  • тип – общий тип всех элементов массива;

  • размерность (ранг) – количество индексов максима;

  • диапазон изменения индекса (индексов) – определяет количество элементов в массиве.

Одномерный массив (вектор)это пример массива, в котором элементы нумеруются одним индексом.

В качестве номера (индекса) элемента массива используется выражение порядкового типа (чаще integer).

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

Способ 1. В разделе описания переменных

var

ИмяМассива: array[НижняяГраница..ВерхняяГраница] of ТипЭлементов;

Способ 2. В разделе описания типов

type

ИмяМассива: array[НижняяГраница..ВерхняяГраница] of ТипЭлементов;

Способ 3. В разделе описания констант

const

ИмяМассива: array[1..10] of integer=(5, 78, -45, 14, -63, 100, -789, 10, 1, 0);

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

Const

maxrow=10; maxcol=15;

var

m, n:integer;

matrix:array[1..maxrow,1.. maxcol] of real

Какие ошибки могут возникнуть при описании массивов:

  • не определены размерность и границы диапазонов: a: array[] of real;

  • значение нижней границы массива превышает значение верхней: b: array[10..1] of integer;

  • границы массива необходимо задавать константой, а не выражением: c: array[1..a+b] of real;

  • недопустимо использовать вещественные числа для границ индексов: d: array[1.0..100.0] of integer;

Заполнение массива данными (ввод элементов)

Массив, описанный как типизированная константа, уже содержит данные. Массивы, объявленные в разделе описания переменных, необходимо заполнить данными, прежде чем выполнять с ними какие-либо действия.

Значения элементов массива также можно задать следующими способами:

  • при вводе данных с клавиатуры:

write('Введите количество элементов в массиве');

readln(n);

for i:=1 to n do

begin

writeln('a[',i,']='); {Можно эту строчку в программе не использовать}

readln (a[i]);

end;

  • с помощью датчика случайных чисел:

randomize;

writeln('Введите количество элементов массива');

readln(n);

for i:=1 to n do

begin

a[i]:=random(50);

writeln('a(',i,')=',a[i]);

end;

  • присвоением заданных значений (например по формуле i2/(i+2)):

writeln('Введите количество элементов массива');

readln(n);

for i:=1 to n do

begin

a[i]:=i*i/i+2;

writeln('a(',i,')=',a[i]);

end;

Вывод массива

  • вывод в столбец:

for i:=1 to n do

writeln(a[i]);

  • в одну строку, через пробел – разделитель:

for i:=1 to n do

write(a[i],' ');

  • с заданием формата (например, где под каждый элемент отводится 4 позиции):

for i:=1 to n do

writeln(a[i]:4);

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