
Способы заполнения массива
(Слайды 10,11)
Значения элементов массива также можно задать следующими способами:
при вводе данных с клавиатуры: for i:=1 to n do read (a[i]);
с помощью датчика случайных чисел.
Заполним массив числами в диапазоне от -3 до 7.
randomize;
for i:=1 to n do a[i]:=random(11)-3;
присваиванием заданных значений;
Заполним массив четными числами
for i:=1 to n do a[i]:=i*2;
или
for i:=1 to n do begin
readln (x);
if x mod 2=0 then a[i]:=x
считывая значения элементов из файла: for i:=1 to n do read (f,a[i]);
Вывод элементов массива осуществляется в цикле: for i:=1 to n do write (a[i],’ ‘)
Действия с одномерными массивами.
(Слайд 12)
Для работы с массивом как единым целым используется имя массива без указания индекса в квадратных скобках. Массивы могут участвовать только в операциях отношения «равно», «не равно», и в операторе присваивания. В этом случае массивы должны иметь одинаковый тип элементов и одинаковое количество элементов.
Например.
Var A,B:array[1..n] of integer;
Применение допустимых операций даст следующий результат:
A=B-результат истина, если значение каждого элемента массива а равно соответствующему значению элемента b.
A<>B- результат истина, если хотя бы одно значение элемента массива а не равно значению соответствующего элемента массива b.
A:=B- все значения элементов массива B присваиваются соответствующим элементам массива A.
Действия над элементами массива.
(Слайд 13)
Пусть в одномерном массиве а содержится n элементов- целые числа.
Нахождение суммы, произведения, среднеарифметического элементов массива удовлетворяющих заданным условиям.
Например. Вычислим сумму элементов.
Program z1;
Uses crt;
Const n=10;
Var a:array[1..n] of integer; {описываем массив а}
i, s: integer;
begin
randomize; s:=0;
for i:=1 to n do begin
a[i]:=random(11)-3; {заполняем массив а случайными числами }
write (a[i],’ ‘); {вывожу заполненный массив}
end;
for i:=1 to n do s:=s+a[i]; {находим сумму элементов массива а }
writeln (‘сумма элементов массива =’, s) {выводим ответ }
end.
(Слайд 14)
Подсчет количества элементов, удовлетворяющих какому-либо условию.
Например, найдем произведение элементов имеющих нечетный индекс.
Program z2;
Uses crt;
Const n=10;
Var a:array[1..n] of integer; {описываем массив а}
i, p: integer;
begin
randomize; p:=1;
for i:=1 to n do begin
a[i]:=random(11)-3; {заполняем массив а случайными числами }
write (a[i],’ ‘); {вывожу заполненный массив}
end;
for i:=1 to n do
if i mod 2<>0 then p:=p*a[i] {находим произведение элементов массива а имеющих нечетный индекс}
writeln (‘призведение элементов массива =’, s) {выводим ответ }
end.
(Слайд 15)
Поиск элемента с заданным значением. Найти элемент — это значит выяснить его номер в массиве.
Например, найдем номер первого из элементов массива а, имеющего значение равное нулю. Если таких элементов нет, выведем соответствующее сообщение.
Program z2;
Uses crt;
Const n=10;
Var a:array[1..n] of integer; {описываем массив а}
i, p: integer;
begin
randomize; p:=1;
for i:=1 to n do begin
a[i]:=random(11)-3; {заполняем массив а случайными числами }
write (a[i],’ ‘); {вывожу заполненный массив}
end;
i:=1;
repeat
i:=i+1
until (a[i]=0) or (i=n) ; {выход из цикла, когда нашли нужный элемент или массив закончился}
if a[i]=0 then writeln (‘номер первого нулевого элемента=’, i)
else writeln (‘ таких элементов нет!’);
end.
(Слайд 16)
Поиск максимального (минимального) элемента и его номера.
Например, в одномерном массиве подсчитает количество элементов равных минимальному.
Ребята, кто попробует решить эту задачу на доске? Вызываю к доске ученика пожелавшего решить задачу.
А с остальными ребятами проговариваем алгоритм решения.
Описать массив.
Заполнить массив.
Найти минимальный элемент массива.
Подсчитать количество элементов равных минимальному.
For i:= 1 to n do if a[i]=min then k:=k+1;
Рассматриваем решение на доске. Комментируем, исправляем ошибки, если таковы были.
Сортировка элементов массива.
Сдвиг, удаление и вставка элементов массива.
Последние перечисленные действия над элементами массива мы будем рассматривать позже.
(Слайд 17)
Подведение итога урока. А теперь, ребята вернемся к целям урока (которые записаны на доске). Скажите на все вопросы мы нашли ответы?
Чем ценны массивы?
Ученик. (Предполагаемый ответ) Массивы ценны тем, что:
Индексы элементов массива обеспечивают доступ не к одному, а к последовательности элементов. Обработка массивов производится при изменении индексов элементов.
Сразу можно хранить и обрабатывать большое количество однотипных данных
Каким образом задается описание массива, что в нем указывается?
Каким образом задается обращение к элементу массива?
Почему при описании массива предпочтительнее употреблять константы , а не указывать размеры массива в явном виде?
(Слайд 20)
Домашнее задание.
Решить задачу: написать программу сортировки отрицательных элементов одномерного массива по возрастанию.