Слайд 2Определения
Массив – группа элементов одного типа, объединенных под общим именем.
Индекс
– что-то (чаще всего номер), что позволяет отличать элементы массива
один от другого и обращаться к ним.
Особенности:
все элементы имеют один тип
весь массив имеет одно имя
все элементы расположены в памяти рядом
Слайд 3Обычную книгу можно считать своего рода массивом. Почему?
Ответ: книга состоит
из множества однотипных элементов – страниц, у каждой страницы есть
номер (индекс), все страницы объединены под одним названием (название книги)
Слайд 4Дом также можно считать массивом. Почему?
Ответ: дому соответствует один почтовый
адрес (город, улица, номер). Элементами дома можно считать квартиры, у
каждой из которых есть номер (индекс).
Слайд 5Шахматную доску можно считать массивом. Почему?
Доска состоит из клеток, каждая
клетка обозначается буквой и цифрой (двойной индекс).
Слайд 6Футбольную команду можно считать «массивом». Почему?
Ответ: команда состоит из нескольких
людей, у каждого из них есть номер (индекс).
Слайд 7Описание массивов
Массивы описываются в разделе описания переменных. Общий вид описания:
массива>: array [..] of ;
Примеры:
A : array
[1..10] of real;
Создается массив из действительных чисел (real), с нумерацией от 1 до 10 (всего 10 элементов).
Слайд 8Примеры
M : array [-5..5] of integer;
Сколько элементов в этом массиве?
Какого они типа? Как они нумеруются?
Z : array [-8..-1] of
integer;
Сколько элементов в этом массиве? Какого они типа? Как они нумеруются?
Mass : array [5..15] of integer;
Сколько элементов в этом массиве? Какого они типа? Как они нумеруются?
Слайд 9Использование элемента массива
Для использования элемента указывается имя массива и в
квадратных скобках индекс этого элемента.
Примеры:
Read(A[1]);
A[3]:=(2 * x + 6) mod
4;
A[4]:=(A[1]+A[2]) div A[3];
Допустимые операции определяются типом элемента (элемент массива ничем не отличается от обычной переменной, кроме особенного написания имени).
Слайд 10Ввод массива
Пусть массив описан так:
A : array [1..10] of real;
Тогда
для ввода массива можно использовать цикл:
For i:=1 to 10 do
read( A[i] );
Вопрос: почему не repeat или while?
Вопрос: как будет выглядеть вывод всех элементов массива? Вывод первой половины массива?
Вопрос: как изменится ввод массива, если описание будет таким:
A : array [-8..8] of integer;
Слайд 11Массивы
Объявление:
Ввод с клавиатуры:
Поэлементные операции:
Вывод на экран:
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;
a[1] =
a[2] =
a[3] =
a[4] =
a[5] =
5
12
34
56
13
for i:=1 to N do a[i]:=a[i]*2;
writeln('Массив A:');
for i:=1 to N do
write(a[i]:4);
Массив A:
10 24 68 112 26
Слайд 12Заполнение массива случайными числами
«Случайным называется число, появление которого не связано
ни с какой закономерностью. Например, случайным является число, выпадающее при
бросании кубика для игры в кости. А сам кубик можно рассматривать как генератор случайных чисел. Во всех языках программирования реализованы генераторы случайных чисел.
Слайд 13В Паскале для «включения» генератора случайных чисел используется функция Randomize,
а само случайное число можно получить, если использовать функцию Random.
Например: у:=Random(x);
Здесь у — целое случайное число в интервале от 0 до х— 1, х — целое число, задающее верхнюю границу интервала случайных чисел.
Чтобы получить случайное число в интервале от А до В (А < В), надо использовать следующее присваивание:
у:=Random(B-A+l)+A;
Слайд 14Заполнить массив М, состоящий из 9 элементов случайными числами в
интервале от 50 до 150 и вывести его на экран.
program
qq;
var М: array [1..9] of integer;
i: integer;
begin
writeln('Исходный массив:');
for i:=1 to 9 do begin
M[i] := random(100) + 50;
write( M[i]:4);
end;
end.
Заполнение массива случайными числами
Слайд 15Заполнение массива константами
элементы массива — константы.
В этом случае заполнение происходит
в разделе const. В этом разделе после описания массива надо
в круглых скобках через запятую указать конкретные значения элементов. Например, рассмотрим такую задачу: заполнить массив К[8] константами: 4, 6, 90, 23, 56, 79, 34, 12. Решение будет таким:
const К: array[1..8] of Integer = (4, 6, 90, 23, 56, 79, 34, 12);
Вывод массива осуществляется в самой программе так же, как было рассмотрено ранее
Слайд 16Заполнение массива константами
program qq;
сonst М: array [1..8] of integer=(4, 6,
90, 23, 56, 79, 34, 12);
var i: integer;
begin
writeln('Исходный
массив:');
for i:=1 to 8 do begin
write(‘M[', i, ']=‘,M[i]:4);
end;
end.
Слайд 17Заполнение массива, элементы которого связаны некоторой закономерностью
элементы массива связаны
некоторым законом.
Например, элементы массива — нечетные положительные числа от 1
до 23, т. е. массив состоит из чисел 1, 3, 5, 7, 9, ... , 23, т.е.значение элемента связано с его индексом по закону: М[i] = 2*i—1 для I от 1 до 12. Количество элементов такого массива можно посчитать по формуле: n = (23 — 1)/2 + 1.
Элементы массива — положительные четные числа, то используется другое соотношение: М[i] = 2*i, количество элементов вычисляется аналогично.
Слайд 18Заполнить массив нечетными целыми числами в интервале от 1 до
41 и вывести его на экран.
В этой задаче надо посчитать
количество элементов массива по формуле
n = (41-1)/2 + 1 = 21.
Остальное решение не требует пояснения, и можно сразу написать программу:
Program prog8;
uses Crt;
var
b: array[1..21] of Integer;
j: Integer;
Begin
ClrScr;
for j:=1 to 21 do b[j]:=2*j-1
for j:=1 to 21 do
Write(b[j], ' ');
Readln; end.
Слайд 19Задача. Дано 5 целых чисел. Опишите алгоритм (программу) нахождения наибольшего
среди них.
Слайд 20Пример программы без использования массивов
program Maximum;
var a,b,c,d,e : integer;
begin
read(a,b,c,d,e);
if (a>=b)
and (a>=c) and (a>=d) and (a>=e) then write(a);
if (b>=a) and
(b>=c) and (b>=d) and (b>=e) then write(b);
if (c>=a) and (c>=b) and (c>=d) and (c>=e) then write(a);
if (d>=a) and (d>=b) and (d>=c) and (d>=e) then write(a);
if (e>=a) and (e>=b) and (e>=c) and (e>=d) then write(a);
end.
Вопрос: как изменится программа, если чисел станет 10?
Вопрос: как изменится программа, если чисел станет 1000?
Слайд 21Пример программы с использованием массива
program Maximum;
var A : array [1..5] of
integer;
i, max : integer;
begin
for i:=1 to 5 do read(
A[i] );
max:= A[1];
for i:=2 to 5 do if A[i] > max then max:= A[i];
write(max);
end.
Вопрос: как изменится программа, если чисел станет 10?
Вопрос: как изменится программа, если чисел станет 1000?
Вопрос: как изменится программа, если числа будут действительными?
Слайд 22
Что такое массив?
Что такое элемент массива?
Что такое индекс массива?
Что такое
размерность массива?
Как можно обратиться к ячейке массива?
Какого типа могут быль
элементы массива?
Какого типа может быть индекс массива?
Как объявить массив?
Как заполнить массив с клавиатуры.?
(запишите блок ввода массива)
Как заполнить массив случайными числами?
(запишите блок ввода массива)
Напишите программу нахождения суммы элементов массива.
Напишите программу нахождения произведения элементов стоящих на четных местах.