Массивы Массив - упорядоченная структура данных одного типа

advertisement
Массивы
Массив - упорядоченная структура данных одного типа, имеющих общее имя.
Упорядочение элементов в массиве происходит по их номерам.
Массив задается именем, типом данных и размерностью.
Размерность - количество элементов в массиве.
Массивы делятся на одномерные (линейные), двумерные (матрицы) и многомерные (кубик
Рубика).
В одномерном массиве элементы нумеруются одним индексом.
В двумерном массиве элементы нумеруются двумя индексами.
Для описания массива служат служебные слова array of:
array [размерность] of тип_элементов
Например:
К элементу массива обращаются по имени массива и номеру элемента:
A[2] – элемент под номером 2,
А[1,2] – элемент в 1 строке 2 столбце
ОДНОМЕРНЫЕ МАССИВЫ
Одномерный массив можно представить в виде таблицы, в которой существует только одна
строка или один столбец.
A=
34
45
2
А1
А2
А3
, где: A - имя массива;
1, 2, 3 - порядковый номер (индексы);
34, 45, 2 - элементы массива (содержимое);
Элементы вводятся в массив и выводятся на экран поочередно, поэтому для ввода-вывода и
обработки элементов массива необходимо организовать цикл.
Ввод одномерного массива в цикле с параметром:
На языке Турбо Паскаль:
for i:=1 to N do
begin
write(‘x(‘,i, ’)= ‘);
readln(x[i])
end;
1
Вывод одномерного массива в цикле с параметром
1. В столбец: For I := 1 to n do Writeln(а[i]);
2. В строку через робел: For I := 1 to n do
Begin
Write(а[i], ‘ ‘);
Writeln;
End;
3. С заданием формата, где под каждый элемент отводится 4 позиции:
For I := 1 to n do Write(а[i]:4);
Примеры одномерных массивов: платежи за каждый из 12 месяцев, расположение букв в
алфавите.
Задача 1: Поиск минимального элемента массива
Дан массив Х, состоящий из 7 элементов. Найти минимальный элемент массива.
Алгоритм решения задачи:
1. Пусть в переменной с именем Min хранится значение минимального элемента массива.
Предположим, что первый элемент массива является минимальным. Запишем его в переменную
Min.
2. Все последующие элементы массива сравниваем в цикле с минимальным. Если текущий
элемент массива оказывается меньше минимального, то записываем его в переменную Min.
Решение:
Таблица 1 – Определение минимального элемента
Номера элементов
1
2
3
4
5
6
7
Исходный массив
4
7
3
8
9
2
5
Значение переменной Min
4
4
3
3
3
2
2
На языке Турбо Паскаль:
Var
x: array [1..7] of integer;
min: integer;
Begin
Writeln(‘Введите элементы массива’);
for i:=1 to 7 do
begin
write(‘x(‘,i, ’)= ‘);
readln(x[i])
end;
min := x[1];
For i := 2 to n do
If x[i] < min then
begin
min := x[i];
end;
write (‘Min=’, Min);
end.
2
Задача 2: Какое число будет напечатано в результате работы программы:
var
k, m: integer;
Dat: array [1..10] of integer;
begin
Dat[1] :=16; Dat[2] :=20;
Dat[3] :=20; Dat[4] :=41;
Dat[5] :=14; Dat[6] :=21;
Dat[7] :=28; Dat[8] :=12;
Dat[9] :=15; Dat[10] :=35;
m:=0;
for k:=1 to 10 do
if dat[k]>m then
begin
m:=Dat[k]
end;
writeln('m=',m);
end.
Решение:
Таблица 2 – Определение результата
m
Исходный массив
Значение переменной m
0
1
16
16
2
20
20
Номера элементов
4
5
6
41
14
21
41
41
41
3
20
20
7
28
41
8
12
41
9
15
41
10
35
41
Задача 3: Дан массив Х, состоящий из n элементов. Найти произведение его элементов.
Решение:
n=8
Таблица 3 – Произведение элементов
р
Исходный массив
Значение переменной р
1
1
2
2
2
3
6
Номера элементов
3
4
5
1
4
1
6
24
24
6
2
48
7
3
144
8
2
288
На языке Турбо Паскаль:
Для обработки элементов массива удобно использовать
цикл For…do.
Фрагмент программы:
p := 1;
For i := 1 to n do
p := p*x[i];
3
Задача 4: Сравнение элементов массива
Определить содержит ли массив А[1..20] число Х, введенное с клавиатуры.
Решение:
uses crt;
var
a: array[1..20] of integer;
i, х: integer;
begin
randomize;{запуск процедуры генератора случайных чисел}
for i:=1 to 20 do
begin
clrscr;
randomize;
writeln(‘Введите число х’)
read (x);
for i:=1 to 20 do
a[i] := random (100);
if x = a[i] then
write('Число х имеется ');
end;
readln
end.
ДВУМЕРНЫЕ МАССИВЫ
Двумерный массив (матрица) - массив, в котором элементы нумеруются двумя индексами –
номером строки и номером столбца:
А11
А21
А31
А41
А12
А22
А32
А42
А13
А23
А33
А43
А14
А24
А34
А44
А15
А25
А35
А45
Двумерные массивы располагаются в памяти по строкам: сначала все элементы первой
строки, затем – второй т.д.
При обращении к элементам массива в квадратных скобках указываются два индекса: b[2,3]
или a[i,j].
Обработка массивов производится при изменении индексов элементов.
Ввод/вывод матриц
Для ввода -вывода используются 2 вложенных цикла:
1. По строкам.
2. По столбцам.
4
Ввод двумерного массива:
For i:=1 To n Do
For j:=1 To m Do
Begin
Write (‘A[I,j]’);
Read (A[i,j]);
End;
Вывод двумерного массива по строкам:
For i:=1 To n Do
Begin
For j:=1 To m Do
Write (A[i,j]:3);
WriteLn;
End;
Примеры двумерных массивов: окна в здании, температура по времени.
5
Download