Главная Случайная страница Контакты | Мы поможем в написании вашей работы! | ||
|
Массив – фиксированное количество упорядоченных однотипных компонент, снабженных индексами. Может быть одномерным или двумерным.
Объявление типа массива:
<имя типа>= array [<тип индекса(сов)>] of <тип компонент>;
Пример 8:
type Arr=array [1..3] of Real; Matrix=array [1..3,1..2] of Integer; |
Вместо квадратных скобок можно использовать круглые скобки с точкой:
type Arr=array (.1..3.) of Real; |
Компоненты массива могут быть любого (в том числе структурированного) типа.
Индекс может быть любого порядкового типа, кроме LongInt. При использовании в качестве индекса Integer или Word можно использовать лишь их диапазон.
Описание переменных-массивов производится либо в разделе описания переменных:
var M1, M2: Arr; Matr: Matrix; M4, M5: array [1..3] of Real; |
либо в разделе описания констант:
const M3: Arr=(1,2,3); Mat: Matrix=((1,2),(3,4),(5,6)); |
Здесь M1, M2 – массивы уже объявленного типа Arr, M3 – массив-типизированная константа, M4, M5 – тип массива описывается в разделе переменных var. В последнем случае массивы M4, M5 не идентичны типу Arr, им нельзя присваивать значения других массивов.
Доступ к элементам массива осуществляется указанием имени массива, за которым в квадратных скобках указывается значение индекса (см. пример 9).
Пример 9:
writeln(M1[2]); writeln(Matr[X, Y]); X:= M2[Succ(I)]; |
Присвоение другого массива возможно только для массивов идентичного типа! Для массивов, описанных в примере 10 допустим оператор A:=B, недопустим C:= A;
Пример 10:
var A, B: array [1..5] of Integer; C: Array[1..5] of Integer; |
Пример 11:
var Si: array [0..100] of Real; X, Step: Real; i: Integer; begin Step:= 0.1; X:=0; for i:= 0 to 10 do begin Si[i]:= Sin(X); X:= X + Step; end; end. |
В примере 11 производится вычисление значений функции sin(x) на отрезке [0, 10] с шагом 0.1 и помещение их в массив Si.
Пример 12.
var A: array [1..5,1..5] of Real; i, j: Integer; begin for i:= 1 to 5 do for j:= 1 to 5 do begin write('A[',i,',',j,']='); readln(A[i,j]); end; for i:= 1 to 5 do begin for j:= 1 to 5 do write(A[i,j]:10:2); writeln; end; end. |
В примере 12 вводятся элементы двумерного массива и выводятся на экран в виде таблицы значений.
Варианты заданий
Вычислить сумму элементов на побочной диагонали двумерного массива. | |
Вычислить сумму элементов, находящихся выше главной диагонали двумерного массива. | |
В одномерном массиве поменять местами максимальный и минимальный элементы. | |
В двумерном массиве поменять местами столбцы с максимальным и минимальным элементами. | |
В двумерном массиве поменять местами строки с максимальным и минимальным элементами. | |
Упорядочить элементы массива по возрастанию. | |
Подсчитать количество пар одинаковых соседних элементов в одномерном массиве. | |
Инверсировать одномерный массив (расположить его элементы в обратном порядке). | |
В двумерном массиве (NxN) произвести зеркальную перемену элементов относительно главной диагонали. | |
В двумерном массиве (NxN) произвести зеркальное отражение относительно горизонтальной оси симметрии. | |
В двумерном массиве (NxN) произвести зеркальное отражение относительно вертикальной оси симметрии. | |
В двумерном массиве (NxN) произвести зеркальное отражение относительно побочной диагонали. | |
Определить, сколько раз один одномерный массив встречается в другом. | |
Повернуть двумерный массив на 90о по часовой стрелке. | |
Повернуть двумерный массив на 90о против часовой стрелки. | |
В двумерном массиве (NxM) найти и вывести максимальные элементы по столбцам с указанием значения и местоположения. | |
В двумерном массиве (NxM) найти и вывести максимальные элементы по строкам с указанием значения и местоположения | |
Перемножить 2 матрицы (NxM) по правилам матричного произведения. |
Требования к оформлению отчета приведены в разделе "Содержание и оформление отчета".
Дата публикования: 2015-04-07; Прочитано: 221 | Нарушение авторского права страницы | Мы поможем в написании вашей работы!