Слайд 1Массивы
МБОУ «Гимназия № 8»
г.Рубцовск Алтайский край
2013г.
Выполнила:
Каверзина Татьяна Николаевна- высшая квалификационная
категория
Слайд 2цели: освоить теоретические знания о массивах и научиться:
организовывать данные в
виде таблиц;
обосновывать выбор типа элемента массива;
описывать табличные данные;
писать и отлаживать программы, обрабатывающие массивы в среде Turbo Pascal.
Слайд 3В практической деятельности человека часто используются таблицы и списки.
Например:
Список среднесуточной температуры
месяца;
Таблица умножения.
Слайд 4Определим, что же такое массив?
Создадим два массива в компьютере, как обратиться
к каждому из них, к элементам одного массива?
Как отличить элементы одного массива?
Чем отличаются друг от друга массивы?
Сколько чисел достаточно, чтоб определить место каждого элемента
Слайд 5Как же организовать массив на языке программирования?
Построим все этапы создания привычной
для нас таблицы в тетради:
Определяем структуру таблицы, размер строк, столбцов в зависимости от данных.
Строим таблицу.
Заносим в неё данные.
Аналогично организуем работу и с массивами
Слайд 6
Массив – это упорядоченная совокупность однотипных данных, обозначенных одним именем.
Слайд 7 Можно ли описать массив на языке Паскаль, если неизвестно точное
количество его элементов?
Можно ли описать на языке Паскаль массив, если неизвестны точные значения элементов массива, но известен их физический смысл и/или диапазон значений?
Слайд 9
1, 2 …5 — номер элемента - индекс.
А — имя массива
Значения
Индексы
А[3]=?
Имя
массива
Индекс
Значение
1
11
9
7
5
9
Слайд 10Описание массива
: array[..] of ;
Например,
var Mas : array[1..5] of
Real;
Назовите имя массива?
Назовите зарезервированное слово для объявления массива?
Сколько элементов в данном массиве?
Слайд 11Пример:
var
a: array[1..100] of integer;
b: array[1..100]
of integer;
c: array[1..100] of integer; или более
кратко (компактно):
var
a, b, c: array[1..100] of integer;
Слайд 12Заполнение массива
с клавиатуры;
через датчик случайных чисел;
через оператор присваивания (по формуле)
Слайд 13Способ 1
Ввод:
For i:=1 to n do
readln(a[i]);
Вывод:
For
i:=1 to n do
writeln(a[i]);
Слайд 14Способ 2
Через датчик или генератор случайных чисел RANDOM(х).
Randomize;
For i:=1
to n do
а[i]:=random(х);
Слайд 15Если требуется, чтобы значения элементов массива выбирались из определенного интервала [a,b],
то
a+Random(b-a+1);
Слайд 16Способ 3
По формуле:
For i:=1 to n do
а[i]:=i*3;
Слайд 17Задача.
Сформировать массив, содержащий n натуральных (целых) чисел a[i], пользуясь для
ввода данных клавиатурой, и выдать полученный массив на экран дисплея.
Слайд 18uses crt;
var n, i: integer;
a:
array[1..100] of integer;
begin
clrscr;
write('Введи n=');
readln(n);
for i:=1 to n do
begin
write('Введи элемент массива 'a[', i, ']=');
readln(a[i]);
end;
for i:=1 to n do write('a[', i, ']=', a[i]);
readln
end.
Слайд 19Задача. Пользуясь случайными числами, сформировать два массива целых чисел a[i] и
b[i], Получить третий массив
c[i]=a[i] + b[i].
Слайд 20uses crt;
var
n, i: integer;
a, b, c: array[1..100] of integer;
begin
clrscr;
write('Введи n='); readln(n);
randomize;
for i:=1 to n do
begin
a[i]:=random(125);
b[i]:=random(184);
c[i]:=a[i] + b[i];
writeln('a[', i, ']=', a[i], ' b[', i, ']=', b[i], ' c[', i, ']=', c[i]);
end;
readln
end.
Слайд 21Задача. В некотором множестве, состоящем из n учащихся, известны данные о
росте каждого ученика. Найти самого высокого и самого низкого из учеников и колебание роста между ними.
Введем следующие обозначения:
n - количество учеников
i - индекс или порядковый номер ученика
a[i] - массив, содержащий данные о росте каждого ученика.
min - ячейка для ответа. Должна содержать рост самого низкого ученика
max - ячейка для ответа. Должна содержать рост самого высокого ученика
r - колебание в росте самого низкого и самого высокого учеников
Слайд 22При поиске минимального и максимального роста учеников используется алгоритм сравнения
Вначале первое число из массива ростов учащихся a[1] заносится в ячейки для ответа, то есть в min и max, и таким образом, a[1] принимается за минимальный и максимальный рост учеников. Далее последующие числа из массива ростов сравниваются со значениями min и max, и как только находится меньшее, чем min число, оно немедленно заносится в min вместо находившегося там числа. Аналогично и с максимальным ростом. Как только встречается в массиве ростов число, большее, чем число, находящееся в max, большее число заносится в max вместо прежнего числа. Так происходит до тех пор, пока не будет пересмотрен весь массив ростов учащихся. В результате будет найден минимальный и максимальный рост учеников и соотствтствующее колебание минимального роста по отношению к максимальному.
Слайд 23 program rostmas1;
uses crt;
var
n, i, min, max, r: integer;
a: array[1..100] of integer;
begin
clrscr;
write('Введи n='); readln(n);
for i:=1 to n do
begin
write('Введите рост ученика='); readln(a[i]); end;
min:=a[1];
max:=a[1];
for i:=2 to n do
begin
if a[i] if a[i]>max then max:=a[i];
end;
writeln('min=', min, ' max=', max);
r:=max - min;
writrln('Колебание роста=', r);
readln
end.
Слайд 24Нахождение суммы элементов массива
S:=0;
FOR I:=1 TO N DO
S:=S + A[I];
Слайд 25Нахождение произведения элементов массива
P:=1;
FOR I:=1 TO N DO
P:=P * A[I];
Слайд 26Найти максимальный элемент массива и сообщить его порядковый номер
MAX:=A[1]; x:=0;
FOR I:=2
TO N DO
IF A[I] > MAX THEN
Begin
MAX:=A[I]; x:=I;
END;
Слайд 271. Написать программу, которая формирует случайным образом массив из N целых
чисел, лежащих в диапазоне от 1 до 5, после чего на экран выводится сам массив и номера элементов, совпадающих с первым элементом. Протестировать программу на трёх различных тестах.
2. Написать программу, которая вводит массив из N целых чисел и выводит на экран элементы, кратные числу K. Протестировать программу на следующих исходных данных:
а) k=3 Массив: 2 6 -9 4 5 12 -15
б) k=4 Массив: 9 0 8 124 -16 11 19
3. Написать программу, которая вводит массив из N вещественных чисел, а затем заменяет в нём все элементы, превышающие данное число Z, этим числом. Вывести на экран полученный массив и количество замен. Протестировать программу на следующих исходных данных:
а) Z=10 Массив: 1,2 2,6 3 -4,5 11 10,2 3,2 87 -15
б) Z=-2 Массив: 0 -3,1 11 -7,9 -2,1 -1,9 4
4. При поступлении в ВУЗ абитуриенты, получившие «двойку» на первом экзамене, ко второму не допускаются. В массиве A[N] записаны оценки экзаменующихся, полученных на первом экзамене. Подсчитать, сколько человек не допущено ко второму экзамену.
Слайд 29В математике квадратные и прямоугольные таблицы часто называют матрицами
Первый
индекс –
номер
строки
Второй
индекс
–
номер
столбца
M- строк
N столбцов
Матрица имеет размер М*N
Слайд 30Описание массива
:ARRAY[..,..] OF ;
Например
a: array [1..3, 1..6] of integer;
Количество
строк
Количество столбцов
Количество строк
Количество столбцов
Назовите имя массива?
Назовите зарезервированное слово для объявления массива?
Сколько элементов в данном массиве?
Слайд 31Запись:
имя массива[m, n]
указывает
на элемент, стоящий на пересечении m-ой строки и n-го столбца
Например, а [2,3] указывает на элемент во 2-ой строке и 3-ем столбце
VAR A:ARRAY[1..3,1..6] OF REAL;
Слайд 32При решении задач с использованием двумерных массивов организуются вложенные циклы:
For i:=1
to m do begin
изменяется номер строки
For j:=1 to n do begin
изменяется номер столбца
Запись массива: а[i , j]
Слайд 33Опишите таблицу А, состоящую из 4 строк и 5 столбцов, заполните
её случайными числами в интервале от 1 до 100.
VAR A: ARRAY[1..4,1..5] OF INTEGER;
RANDOMIZE;
FOR I:=1 TO 4 DO
FOR J:=1 TO 5 DO
A[I,J]:=RANDOM(100);
Слайд 34Опишите массив , значения элементов которого вычисляются в следующем фрагменте программы:
FOR
I:=1 TO 20 DO
begin
x:=x+1;
FOR J:=1 TO 5 DO
A[I,J]:= A[I,J] + x;
End;
VAR A:ARRAY[1..20,1..5] OF REAL;
Слайд 35Нахождение суммы элементов массива
Слайд 36Найти максимальный элемент массива и сообщить его порядковый номер
MAX:=A[1,1]; x:=0;
FOR i:=2
TO m DO
FOR j:=1 TO n DO
IF A[I,j] > MAX THEN
Begin
MAX:=A[I,j]; x:=i;
END;
Слайд 37Хозяйка ходит в магазин каждый день утром и вечером в течении
недели. Она записывает свои расходы в такую табличку:
Ввести все элементы массива и определить траты хозяйки утром и вечером в течении недели.