Код презентации скопируйте его
Массивы Массив – поименованный набор однотипных элементов, каждый из которых имеет свой номер, (индекс). Если индексов несколько, то массив многомерный). Особенности: все элементы имеют один тип весь массив имеет одно имя все элементы расположены в памяти рядом Примеры: список учеников в классе квартиры в доме школы в городе данные о температуре воздуха за год
Структура массива B Одномерный массив А[i] типа real из 9 элементов Двумерный массив В[i,j] типа integer из 4 строк и 5 колонок. Элемент массива В[2,4]=34 Номер строки Номер столбца
Объявление массивов Зачем объявлять? определить имя массива определить тип массива определить число элементов выделить место в памяти ЭВМ Объявление массива позволяет правильно оперировать с данными и резервировать место для хранения данных в памяти.
Объявление массива целых чисел Массив описывают в секции VAR Const N=12; var A: array[1.. N] of integer; Описание через константу
Объявление массивов Массивы других типов: var X, Y: array [1..10] of real; C: array [1..20] of char; Другой диапазон индексов: var Q: array [0..9] of real; C: array [-5..13] of char; Индексы других типов: var A: array ['A'..'Z'] of real; B: array [False..True] of integer; D: array ['a'..'z',w2..w4] of string; A['C'] := 3.14259*A['B']; B[False] := B[False] + 1;
Что нельзя делать? Нельзя в массивы целого типа вводить вещественные значения var a: array[1..10] of integer; ... A[5] := 4.5; Нельзя использовать индексы отсутствующие в перечислениях var a: array ['z'..‘с'] of integer; ... A['B'] := 15; Нельзя выходить за пределы индексов указанные в описании var a: array [0..9] of integer; ... A[10] := 'X';
Операции с массивами Выполняются в циклах Объявление const N = 5; var a: array[1..N] of integer; i: integer; Ввод данных с клавиатуры for i:=1 to N do begin write('a[', i, ']='); read ( a[i] ); end; Данные обрабатывают поэлементно for i:=1 to N do a[i]:=a[i]*2; Вывод данных на дисплей writeln('Массив A:'); for i:=1 to N do write(a[i]:4); a[1] = a[2] = a[3] = a[4] = a[5] = 5 12 34 56 13 a[1] = a[2] = a[3] = a[4] = a[5] = 10 24 68 112 26 10 24 68 112 26 for i:=1 to N do writeln (‘a[‘,I,’]=‘,a[i]:4); Что будет на экране?
Решение задач 1. Определить среднее арифметическое массива из пяти чисел. Предусмотреть, что изменение количества чисел должно менять только секцию описаний. program mass1; const n=5; var i:integer; a: array [1..n] of real; sr:real; begin for i:=1 to n do begin write ('введите а[',i,']='); readln (a[i]); end; Sr:=0; for i:=1 to n do sr:= sr+a[i]; sr:=sr/n; for i:=1 to n do writeln ('а[',i,']=',a[i]); writeln('среднее арифметическое sr=',sr); end.
Решение задач 2. В массиве из пяти элементов найти минимальный элемент и его номер. Изменение количества чисел должно менять только секцию описаний program mass2; const n=5; var i,j:integer; a: array [1..n] of real; min:real; begin for i:=1 to n do begin write (‘а[',i,']='); readln (a[i]); end; min:=a[1]; for i:=1 to n do if a[i]
Задание на самоподготовку Заполнить массив случайными целыми числами из интервала от -7 до 25. Дан целочисленный массив, c числом элементов N, вывести все его нечетные элементы в начиная с конца и их сумму. Написать программу, которая вычисляет, сколько раз введенное с клавиатуры число встречается в массиве. Написать программу, которая проверяет, есть ли во введенном с клавиатуры массиве элементы с одинаковыми значением.
Одномерный массив Суммирование (произведение) элементов. Поиск в массиве максимального (минимального) элементов и их индексов. Поиск совпадений. Сортировка массива по убыванию и возрастанию.
Одномерный массив суммирование Создать массив 100 целых случайных чисел из интервала [2;9]. Найти: количество совпадений с числом введенным с клавиатуры; сумму чисел кратных трем; произведение всех чисел массива. const n = 100; var a: array[1..n] of integer; sum, pr, x : real; i,sov: integer; begin for i := 1 to n do a[i]:=Trunc(random*(9-2+1))+2; for i := 1 to n do writeln ('a[',i,']=',a[i]); writeln ('введите число для поиска'); read (x); sov:=0; for i := 1 to n do if x=a[i] then sov:=sov+1; sum := 0; for i := 1 to n do if a[i] mod 3 = 0 then sum := sum + a[i]; pr := 1; for i := 1 to n do pr := pr * a[i]; writeln('Число совпадений: ', sov); writeln('Сумма элементов: ', sum:10:2); writeln('Произведение элементов: ', pr:20:2); end.
Двумерный массив Массив – набор элементов одного типа, имеющих общее имя, и разные номера (индексы). Массив с двумя индексами называют двухмерным. Моделью двумерного массива является прямоугольная таблица элементов - матрица. Номер элемента состоит из двух чисел – номера строки, и номера столбца. Матрица 3х3 элемента Главная диагональ Обращение к элементам массива имеет вид: А [ i , j ]. Это означает, что мы хотим получить элемент, расположенный в i -й строке и j -м столбце.
Описание двумерного массива Описание матрицы в разделе var аналогично описанию одномерного массива, только необходимо указывать диапазон изменения столбцов и строк. Const n=10; m=12; Var a:array [1..n,1..m] of integer; Или Var B:array [1..10,1..12] of real;
Ввод двумерного массива Паскаля с клавиатуры Writeln (‘Введите матрицу построчно’); For i:=1 to n do For j:= 1 to m do Begin Write (‘a[‘,i,’,’,j,’]=‘); Readln (a[i,j]); End;
Ввод двумерного массива из генератора случайных чисел Randomize; For i:=1 to n do Begin For j:=1 to m do Begin a[i,j]:=random(11)+2; write(a[i,j],’ ‘); End; Writeln; End; Массив случайных целых чисел из интервала [2,12]
Суммирование элементов массива Сумма всех элементов: sum:=0; for i:=1 to n do for j:=1 to m do sum:=sum+a[i,j]; writеln('Сумма=',sum); Сумма элементов главной диагонали (x[1,1], x[2,2] и т.д.): sum:=0; for i:=1 to n do sum:=sum+a[i,i]; writеln ('Сумма=',sum); Cумма по столбцам с записью в массив zum[1..m]: for j:=1 to m do zum[j]:=0; for i:=1 to n do zum[j]:=zum[j]+x[i,j]; for j:=1 to m do write(zum[j]:4);
Максимальный (минимальный) элемент массива max:=a[1,1]; min:=a[1,1]; for i:=1 to n do for j:=1 to m do begin if a[i,j]>max then max:=a[i,j]; if a[i,j]
Решение задач Вывести максимальные и минимальные элементы в каждом столбце двумерного массива program mass2x; Const n=10; m=12; Var a:array [1..n,1..m] of integer; i,j,min,max: integer; begin For i:=1 to n do Begin For j:=1 to m do Begin a[i,j]:=random(11)+2; write(a[i,j]:6,' '); End; Writeln; End; Writeln; For j:=1 to m do Begin min:=a[1,j]; max:=a[1,j]; For i:=1 to n do Begin if min>a[i,j] then min:=a[i,j]; if max