50097

Массивы. Линейные массивы. Двухмерные массивы – матрицы. Многомерные массивы

Лабораторная работа

Информатика, кибернетика и программирование

Элементами массива могут быть данные любого но только одного типа включая структурированные. Тип элементов массива называется базовым число элементов массива фиксируется при описании и в процессе выполнения программы не меняется. Доступ к каждому отдельному элементу осуществляется путем индексирования элементов массива. Индекс массива по смыслу тождествен понятию индекса элемента вектора.

Русский

2014-01-15

42 KB

3 чел.

PAGE  2

Лабораторная работа № 8

Массивы.

Линейные массивы.  Двухмерные массивы – матрицы. Многомерные массивы.

1. ОПИСАНИЕ ТИПА

На языке ПАСКАЛЬ можно обрабатывать не только отдельные переменные, но и их совокупности. Одной из таких совокупностей является массив. Массив - это структурированный тип данных, состоящий из фиксированного числа элементов, имеющих один и тот же тип. Можно использовать и любой другой ранее описанный тип, поэтому вполне правомерно существование массивов записей, массивов указателей, массивов строк, массивов и т. д. Элементами массива могут быть данные любого, но только одного типа, включая структурированные. Тип элементов массива называется базовым, число элементов массива фиксируется при описании и в процессе выполнения программы не меняется.

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

Дли описания массива предназначено словосочетание

Array  [нач.индекс .. конечный индекс ] of  Тип  

Формат:

Туре

<имя типа> = аrrау [тип индекса]  of  <тип компонент];

Var

<идентификатор,…> :   <имя типа>;

Массив может быть описан и без представления типа в разделе описания типов данных:

Var

< идентификатор,….> :  аrrау [тип индекса]  of  <тип компонент>

Пример:

Туре

Znak = array[1.. 255] of char;

Var

Мatrica:  array[l.. 4] of Znak;

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

Пример.

Type

Vector = array[l.. 4] of integer;

Massiv = array[1..4] of Vector;

Var

Matr : Massiv;  {матрица}

Trmer: array[1..6] of Massiv;  {трехмерный массив}

Ту же структуру можно получить, используя другую форму записи:

Var

Matr :  array [1. .4,1. .4] of integer;   Trmer: array [1..6, 1..4, 1..4] .

Если в такой форме описания массива задан один индекс, массив называется одномерным, если два индекса – двухмерным, если n индексов, n-мерным. Размерность ограничена только объемом памяти конкретного компьютера. Однако любой компьютер имеет фиксированный объем памяти, поэтому многомерные массивы могут быстро его заполнить. Здесь программист должен пойти на компромисс между требованиями задачи и реальным объемом оперативной памяти. В любом случае лучше рассчитывать объем памяти для массивов заранее и сохранять его на разумном уровне. Двухмерные массивы обычно используются для представления матриц.

Для описания массива можно использовать предварительно определенные константы:

Const

G1 = 4;  G2 = 6;

Var

MasY : array[1.. G1,   1.. G2]  of   real;

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

А : array[l. .5,1. .5] of integer;

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

А [1,1]     А[1,2]  …  А[1,5]  

А [2,1]     А[2,2]  …  А[2,5]

.  .  .

                               А[5,5]

С массивами в целом можно выполнять только присваивание. Работают операции отношения  =, <>. При этом массивы должны быть одного типа, например: 

b := a;

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

a[4]    b[i]

С элементом массива можно делать все, что допустимо для переменных того же типа.

Пример

Упорядочивание по возрастанию элементов массива из 20 целых величин.

Для сортировки будем использовать метод выбора. Алгоритм состоит в том, что сначала выбирается наименьший элемент массива и меняется местами с первым элементом, затем просматриваются элементы, начиная со второго, и наименьший из них меняется местами со вторым элементом, и так далее n – 1 раз. На последнем проходе цикла при необходимости меняются местами предпоследний и последний элементы массива.

Program sort;                         { Сортировка выбором }

const n = 20;

var a : array [1 .. n] of integer;

   i, j, nmin, buf : integer;

begin

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

   for i := 1 to n do

Begin

Write(‘a’,i);

readln(a[i]);

end;

   for i := 1 to n - 1 do begin      { просмотр массива n-1 раз }

       nmin := i;

       for j := i + 1 to n do        { поиск минимума }

           if a[j] < a[nmin] then nmin := j;

           buf := a[i];              { перестановка }

           a[i]:= a[nmin];           { двух }

           a[nmin]:= buf;            { элементов массива }

       end;

       writeln('Упорядоченный массив:');

       for i := 1 to n do write(a[i]:5)

end.        


 

А также другие работы, которые могут Вас заинтересовать

83650. Элементы электрических цепей 156 KB
  Электротехнические устройства производящие электрическую энергию называются генераторами или источниками электрической энергии а устройства потребляющие ее приемниками потребителями электрической энергии. Схемы замещения источников электрической энергии Свойства источника электрической энергии описываются ВАХ называемой внешней характеристикой источника. ВАХ источника может быть определена экспериментально на основе схемы представленной на рис. Здесь вольтметр V измеряет напряжение на зажимах 12 источника И а амперметр А ...
83651. Топология электрической цепи 169.5 KB
  Отрезок линии соответствующий ветви схемы называется ветвью графа. Граничные точки ветви графа называют узлами графа. Ветвям графа может быть дана определенная ориентация указанная стрелкой. Подграфом графа называется часть графа т.
83652. Представление синусоидальных величин с помощью векторов и комплексных чисел 166 KB
  Это было связано с тем что первые генераторы электрической энергии вырабатывали постоянный ток который вполне удовлетворял технологическим процессам электрохимии а двигатели постоянного тока обладают хорошими регулировочными характеристиками. Цепи с изменяющимися переменными токами по сравнению с цепями постоянного тока имеют ряд особенностей. Для периодического тока имеем 1 Величина обратная периоду есть частота измеряемая в герцах Гц: 2 Диапазон частот применяемых в технике: от сверхнизких частот 0. Ее принято...
83653. Элементы цепи синусоидального тока. Векторные диаграммы и комплексные соотношения для них 186 KB
  Переходя от синусоидальных функций напряжения и тока к соответствующим им комплексам: разделим первый из них на второй. Следовательно соответствующие им векторы напряжения и тока Полученный результат показывает что напряжение на конденсаторе отстает по фазе от тока на.
83654. Закон Ома для участка цепи с источником ЭДС 189.5 KB
  Положительных направлений напряжений и токов. Однако число уравнений подлежащих решению может быть сокращено если воспользоваться специальными методами расчета к которым относятся методы контурных токов и узловых потенциалов. Метод контурных токов Идея метода контурных токов: уравнения составляются только по второму закону Кирхгофа но не для действительных а для воображаемых токов циркулирующих по замкнутым контурам т. Направления истинных и контурных токов выбираются произвольно.
83655. Основы матричных методов расчета электрических цепей 192 KB
  Соотношение 3 запишем для всех n ветвей схемы в виде матричного равенства или 4 где Z диагональная квадратная размерностью n x n матрица сопротивлений ветвей все элементы которой взаимную индуктивность не учитываем за исключением элементов главной диагонали равны нулю. Сказанное может быть записано в виде матричного соотношения 8 где столбцовая матрица контурных токов; транспонированная контурная матрица. 11 то получим матричную форму записи уравнений составленных по методу контурных токов: 12 где...
83656. Преобразование энергии в электрической цепи. Мгновенная, активная, реактивная и полная мощности синусоидального тока 145 KB
  Мгновенная активная реактивная и полная мощности синусоидального тока Передача энергии w по электрической цепи например по линии электропередачи рассеяние энергии то есть переход электромагнитной энергии в тепловую а также и другие виды преобразования энергии характеризуются интенсивностью с которой протекает процесс то есть тем сколько энергии передается по линии в единицу времени сколько энергии рассеивается в единицу времени. 1 Выражение для мгновенного значения мощности в электрических цепях имеет вид: . Среднее за период...
83657. Резонансы в цепях синусоидального тока 136 KB
  Следствием этого является совпадение по фазе тока на входе цепи с входным напряжением. Резонанс в цепи с последовательно соединенными элементамирезонанс напряжений Для цепи на рис. В цепи преобладает индуктивность т.
83658. Векторные и топографические диаграммы 135.5 KB
  Для наглядного определения величины и фазы напряжения между различными точками электрической цепи удобно использовать топографические диаграммы. Они представляют собой соединенные соответственно схеме электрической цепи точки на комплексной плоскости отображающие их потенциалы. Для построения топографической диаграммы предварительно осуществим расчет комплексных потенциалов другой вариант построения топографической диаграммы предполагает расчет комплексов напряжений на элементах цепи с последующим суммированием векторов напряжений вдоль...