Презентация разработана к уроку по теме «Структурированный тип данных: МАССИВ»
При использовании данной презентации при объяснении новой темы появляется возможность применять методы личностно-ориентированного обучения: проблемный метод, метод эвристической беседы и элементы исследования. Постановка проблемы ставит учащихся в условия, которые побуждают его решать учебную проблему, проводить анализ материала и оперировать им. Такая деятельность позволяет учащимся получить новую информацию, освоит новые способы применения знаний
Цели
• Получить представление о новом типе
данных – структурированный тип
массив;
• Научить описывать и заполнять
данными массив на языке
программирования Паскаль.
• Сформировать навыки решения задач
с использованием массивов в среде
программирования Паскаль.
Основные понятия
• Структурированный тип данных массив;
• Элемент массива;
• Индекс элемента массива;
• Значение элемента массива;
• Объявление массива;
• Заполнение массива;
• Вывод массива
Массивы
Массив – это совокупность однотипных элементов,
имеющих общее имя и расположенных в памяти
рядом.
Особенности:
• все элементы имеют один тип
• весь массив имеет одно имя
• все элементы расположены в памяти рядом
Примеры:
список учеников в классе
•
• квартиры в доме
• школы в городе
• данные о температуре воздуха за год
Массивы
A массив 2
2
10
1
5
НОМЕР
НОМЕР
элемента массива
элемента массива
3
15
4
20
(ИНДЕКС)
(ИНДЕКС)
5
25
A[1]
A[1]
A[2]
A[2]
A[3]
A[3]
A[4]
A[4]
A[5]
A[5]
ЗНАЧЕНИЕ
ЗНАЧЕНИЕ
элемента массива
элемента массива
A[2]
НОМЕР (ИНДЕКС)
НОМЕР (ИНДЕКС)
элемента массива: 2
элемента массива: 2
ЗНАЧЕНИЕ
ЗНАЧЕНИЕ
элемента массива: 10
элемента массива: 10
Массивы
Последовательность действий при
обработке массивов:
1. массив должен быть объявлен
2. массив должен быть заполнен
данными
3. обработать массив, указанным в
задании образом
4. вывести на экран результаты работы
Объявление массивов
Зачем объявлять?
• определить имя массива
• определить тип массива
• определить число элементов
• выделить место в памяти
Массив целых чисел:
имяимя
начальный
начальный
индекс
индекс
конечный
конечный
индекс
индекс
тип
тип
элементов
элементов
var A :array [ 1 . 5 ] of integer ;
Размер через константу:
const N=5;
var A: array[1.. ] of integer;
var A: array[1.. ] of integer;
N
Объявление массивов
Массивы других типов:
var X, Y: array [1..10] of real;
var X, Y: array [1..10] of real;
C: array [1..20] of integer;
C: array [1..20] of integer;
Другой диапазон индексов:
var Q: array [0..9] of real;
var Q: array [0..9] of real;
C: array [-5..13] of integer;
C: array [-5..13] of integer;
Индексы других типов:
var A: array ['A'..'Z'] of real;
var A: array ['A'..'Z'] of real;
B: array [False..True] of integer;
B: array [False..True] of integer;
...
...
A['C'] := 3.14259*A['B'];
A['C'] := 3.14259*A['B'];
B[False] := B[False] + 1;
B[False] := B[False] + 1;
Ввод с клавиатуры:
Массивы
Read(A[1
]);
Read(A[2
]);
Read(A[3
]);
Read(A[4
]);
Read(A[5
]);
Writeln('Введите массив из 5
Writeln('Введите массив из 5
элементов');
элементов');
For i:=1 to 5 do
For i:=1 to 5 do
Read(A[i]);
Read(A[i]);
For i:=1 to 5 do
For i:=1 to 5 do
read ( А[i] );
read ( А[i] );
For i:=1 to 5 do
For i:=1 to 5 do
begin
begin
write (‘A[‘,I,’]=’);
write (‘A[‘,I,’]=’);
read(A[i]);
read(A[i]);
end;
end;
Массивы
Вывод на экран:
writeln('Массив A:');
writeln('Массив A:');
for i:=1 to N do
for i:=1 to N do
write(A[i],’ ‘);
write(A[i],’ ‘);
Массивы
Объявление:
const N = 5;
const N = 5;
var a: array[1..N] of integer;
var a: array[1..N] of integer;
i: integer;
i: integer;
Ввод с клавиатуры:
for i:=1 to N do
for i:=1 to N do
read ( a[i] );
read ( a[i] );
Вывод на экран:
writeln('Массив A:');
writeln('Массив A:');
for i:=1 to N do
for i:=1 to N do
write(A[i],’ ‘);
write(A[i],’ ‘);
•Домашнее задание:
§5[1], урок 6[2], задание 5, стр.
33 [2].
Используемые учебные пособия:
1.Информатика: учебное пособие для 9го
класса.
2.Информатика: рабочая тетрадь для 9го
класса.
Массивы
Заполнение массива:
CONST
CONST
A:array[1..5] of integer = (25,3,0,16,7);
A:array[1..5] of integer = (25,3,0,16,7);
(типизированная константа)
(типизированная константа)
Вещественные
[4,5]
For i:=1 to 10 do
For i:=1 to 10 do
Целые
A[i]:= random(10);
A[i]:= random(10);
[0,n]
A[i]:=random+4;
A[i]:=random(n+1);
[a,b]
For i:=1 to 10 do
For i:=1 to 10 do
A[i] := sqr(i);
A[i] := sqr(i);
A[i]:=random(ba+1)+a;
•Домашнее задание:
§6[1], урок 8[2], задание 5, стр.
36 [2].
Используемые учебные пособия:
1.Информатика: учебное пособие для 9го
класса.
2.Информатика: рабочая тетрадь для 9го
класса.
Массивы
Арифметические действия над элементами массива
S:=0;
S:=0;
For i:=1 to 10 do
For i:=1 to 10 do
S:=S+A[i];
S:=S+A[i];
P:=1;
P:=1;
For i:=1 to 10 do
For i:=1 to 10 do
P:=P*A[i];
P:=P*A[i];
K:=0;
K:=0;
For i:=1 to 10 do
For i:=1 to 10 do
If A[i]mod 2=0 Then K:=K+1;
If A[i]mod 2=0 Then K:=K+1;
•Домашнее задание:
§7, упражнения 1, 2, 3 стр. 38[1]
Используемые учебные пособия:
1.Информатика: учебное пособие для 9го
класса.
2.Информатика: рабочая тетрадь для 9го
класса.
Массивы
Поиск элементов с заданными свойствами
A[
i]
Сформулируйте условия задачи поиска.
Например: Есть ли в классе ученик ростом выше 180 см?
Массивы
Поиск элементов с заданными свойствами
•значений
•индексов
•количества
A[i]
i
K:=K+1;
For i:=1 to 10 do
For i:=1 to 10 do
IF…
IF…
Массивы
Поиск элементов с заданными свойствами
A[i] mod 2<>0
A[i] mod 2<>0
I mod 2 =0
I mod 2 =0
(A[i] mod 5 = 0) or(A[i] mod 3=0)
(A[i] mod 5 = 0) or(A[i] mod 3=0)
(A[i] mod 2=0) and (I mod 2<>0)
(A[i] mod 2=0) and (I mod 2<>0)
(A[i]>0)and(I mod 2=0)
(A[i]>0)and(I mod 2=0)
•Домашнее задание:
§9 [1], задание 6 стр.44[2]
Используемые учебные пособия:
1.Информатика: учебное пособие для 9го
класса.
2.Информатика: рабочая тетрадь для 9го
класса.
Практическая работа
• Заполнить массив М, состоящий
из 9 элементов числами 3, 4, 7, 9,
19, 23, 24, 27, 39 и вывести его на
экран.
program qq;
var М: array [1..9] of integer; i: integer;
begin
writeln('Исходный массив:');
for i:=1 to 9 do begin
write('M[', i, ']=');
read (M[i]);
end;
end.
program qq;
const N: integer;
var М: array [1..N] of integer; i: integer;
begin
writeln('Исходный массив:');
for i:=1 to N do begin
write('M[', i, ']=');
read (M[i]);
end;
end.
Выполните задания
самостоятельно
М [9] числами 3, 4, 7, 9, 19, 23, 24, 27, 39.
Е [10] числами 11, 12, 13, 14, 15, 16, 17, 18, 19, 20
В [11] числами 1, 8, 9, 10, 15, 21, 23, 24, 19, 64, 63
А[10] числами 1, 7, 12, 14, 96, 49, 63, 54, 13, 22
L[9] числами 105, 126, 134, 176, 181, 193, 132, 144, 156
В [7] числами 4, 5, 6, 7, 9, 16, 25
А [8] числами 9, 11, 13, 29, 39, 23, 41, 46
L [11] числами 33, 35, 37, 36, 41, 42, 44, 47, 49, 52, 53
К [10] числами 81, 82, 83, 91, 92, 93, 41, 42, 43, 50
Заполнить массив и вывести его на экран
1)
2)
3)
4)
5)
6)
7)
8)
9)
10) С [8] числами 2, 1, 3, 4, 5, 9, 11, 14
11) К [9] числами 54, 55, 56, 57, 66, 67, 68, 75, 76
Заполнение массива случайными числами
• «Случайным называется число, появление
которого не связано ни с какой
закономерностью. Например, случайным
является число, выпадающее при
бросании кубика для игры в кости. А сам
кубик можно рассматривать как
генератор случайных чисел. Во всех
языках программирования реализованы
генераторы случайных чисел.
• В Паскале для «включения» генератора
случайных чисел используется функция
Randomize, а само случайное число можно
получить, если использовать функцию
Random.
• Например: у:=Random(x);
• Здесь у — целое случайное число в
интервале от 0 до х— 1, х — целое число,
задающее верхнюю границу интервала
случайных чисел.
• Чтобы получить случайное число в
интервале от А до В (А < В), надо
использовать следующее присваивание:
• у:=Random(BA+l)+A;
Заполнение массива случайными числами
Заполнить
массив М,
состоящий из
9 элементов
случайными
числами в
интервале от
50 до 150 и
вывести его
на экран.
program qq;
сonst N =9;
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.
Выполните задания
самостоятельно
Заполнить массив случайными
числами в заданном интервале
вывести его на экран
1) Z[30] от 2 до 49.
2) L[15] от 10 до 40
3) С[10] от 5 до 15
4) Z[30] от 20 до 76
5) М[40] от 10 до
60
6) В[30] от 6 до 55
7) D[40] от 1 до 50
8) А[20] от 3 до 59
9) М[20] от 1 до 33
10)С[24] от 10 до 46
11)К [22] от 2 до 42
Заполнение массива
константами
элементы массива — константы.
В этом случае заполнение происходит в разделе
const. В этом разделе после описания массива
надо в круглых скобках через запятую указать
конкретные значения элементов. Например,
рассмотрим такую задачу: заполнить массив К[8]
константами: 4, 6, 90, 23, 56, 79, 34, 12. Решение
будет таким:
const К: array[1..8] of Integer = (4, 6, 90, 23, 56,
79, 34, 12);
Вывод массива осуществляется в самой программе
так же, как было рассмотрено ранее
Заполнение массива
константами
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.
Выполните задания
самостоятельно
• написать программу решения
следующей задачи: «Заполнить и
вывести массив, элементы которого
константы», а также реализовать
написанную программу на компьютере.
Заполнение массива, элементы которого
связаны некоторой закономерностью
элементы массива связаны некоторым законом.
• Например, элементы массива — нечетные
положительные числа от 1 до 23, т. е. массив
состоит из чисел 1, 3, 5, 7, 9, ... , 23, т.е.значение
элемента связано с его индексом по закону: М[1] =
2*7—1 для I от 1 до 12. Количество элементов такого
массива можно посчитать по формуле: n = (23 — 1)/2
+ 1.
• Элементы массива — положительные четные числа,
то используется другое соотношение: М[1] = 2*1,
количество элементов вычисляется аналогично.
• Заполнить массив
нечетными целыми
числами в интервале
от 1 до 41 и вывести
его на экран.
• В этой задаче надо
посчитать количество
элементов массива по
формуле
n = (411)/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*jl
for j:=1 to 21 do
Write(b[j], ' ');
Readln; end.