Тема19 Массивы

advertisement
МАССИВЫ
Конечная, упорядоченная по номерам совокупность
значений, объединенных общим типом и именем
Индекс – величина, характеризующая положение
элемента, относительно начала массива.
№
Х
1
25
2
87
3
43
… …
29 17
30 33
Например, массив Х из 30 элементов
(целые числа)
Определение элементов массива
Const N=30;
Var …
M:array[1..N] of integer;
Массивы
(определение и печать элементов массива)
Program massiv_Opr_elem;
Const N=10;
Var k,s:integer; sr:real;
M:array[1..N] of integer;
begin
Randomize; {активизируем датчик случайных чисел}
For k:=1 to N do {Определяем элементы массива}
M[k]:=random(101) – 50; {случ. числа от -50 до 50}
For k:=1 to N do {Печатаем элементы массива}
Write( M[k]:5); {в одной строке}
Writeln;
{Переводим курсор в следующую строку}
…
…
S:=0;
For k:=1 to N do {Находим сумму}
s:=s + M[k]; {элементов массива}
Sr:=s/n;
{и среднее значение}
Writeln( ‘Сумма=‘,s:5, ‘Среднее
значение =’,sr:6:2);
Readln;
…
…
Max:=M[1]; Inmax:=1;
For k:=1 to N do {Находим максимальное и его индекс}
If M[k] > Max then
begin
Max:= M[k]; Inmax:=k;
end;
Writeln( ‘Максимальное = M[‘, inmax, ‘]=‘,Max);
Readln;
…
1. В массиве из 20 элементов найти количество
элементов, имеющих отрицательное значение.
2. … имеющих положительное значение.
3. Каких больше (отрицательных или
положительных)?
4. Есть ли в массиве элементы, значение которых
равно нулю?
5. Найти минимальный элемент массива и его
Решение задач
индекс.
6. Поменять местами минимальное значение и
последний элемент массива.
7. Рассортировать элементы массива по
возрастанию.
8. Удалить элемент массива с максимальным
значением.
9. После максимального элемента массива
вставить число 100
ДВУМЕРНЫЕ МАССИВЫ –
Положение элементов описывается двумя
индексами. Их можно представить в виде
прямоугольной таблицы или матрицы.
А=
а11 а12 а13
а21 а22 а23
Матрица А размерностью 2*3 (две строки, три столбца)
Номер элемента определяется пересечением строки
и столбца. а12 – элемент, стоящий в первой строке и
во втором столбце.
Объявление двумерного массива
Const n = 2; m = 3;
Var a: array[1..n,1..m] of <тип элементов>;
Программы большинства матричных задач
строятся на основе вложенных циклов.
Внешний цикл работает со строками матрицы,
внутренний цикл – со столбцами матрицы
Формирование двумерного массива
осуществляется всеми возможными способами:
ввод с клавиатуры,
через генератор случайных чисел,
с помощью файла или др.
Program dv_mas; {Ввод и вывод двумерного массива А }
Const n = 10; m = 15; {размерностью 10*15}
Var i,k: integer;
a: array[1..n,1..m] of integer;
Begin
Randomize;
{активизируем датчик случайных чисел}
For i:=1 to n do {Определяем элементы массива}
For k:=1 to m do
A[i,k]:=random(51) – 25; {случ. числа от -25 до 25}
For i:=1 to n do {Печатаем элементы массива}
Begin
For k:=1 to m do
Write( A[i,k]:5);
Writeln;
End;
…
Сформировать одномерный массив, каждый элемент которого
равен сумме отрицательных элементов соответствующей
строки заданной целочисленной матрицы.
(Var )
B: array[1..n] of integer;
…
For i:=1 to n do
Begin
B[ i ]:=0; {задание начальных значений элементов массива суммы}
For k:=1 to m do
if A[ i,k ] < 0 then B[ i ]:= B[ i ] + A[ i,k ];
End;
Writeln (‘Массив из суммы отр-ных элементов’);
For i:=1 to n do {Печатаем элементы массива В}
Write( В[ i ]:5);
Writeln;
Решение задач
1. Найти максимальный элемент двумерного
массива и его индексы.
2. Найти количество отрицательных
элементов в каждой строке.
3. Определить, есть ли в данном массиве
элемент, равный нулю.
Download