Урок 31-32
Тема: «Описание и использование массивов. Заполнение массива данными»
Цель: сформировать у учащихся умение заполнять одномерные массивы, выводить их на экран и обрабатывать.
I.Анализ контрольной работы.
II.Новый материал.
Если работа программы связана с хранением и обработкой большого количества однотипных переменных, для их представления в программе используют массивы. Массив представляет собой совокупность данных одного типа и общим для всех элементов именем. Элементы массива пронумерованы, и обратиться к каждому из них можно по номеру. Номера элементов массива иначе называют индексами, а сами элементы массива – переменными с индексами.
Характеристики массива:
·Тип – общий тип всех элементов массива;
·Размерность – количество индексов массива;
·Диапазон изменения индекса – определяет количество элементов в массиве.
Индекс – это целая константа или переменная типа integer. При обращении к элементу массива индекс указывается в квадратных скобках после имени массива. Например: a[3], b[1,2].
Описание массива в разделе VAR
Описать массив - это объявит в разделе описания переменных var с использованием зарезервированного слова array (т.е. массив). В общем, виде выглядит так:
Var ИмяМассива: array [НижняяГраница..ВерхняяГраница]
Of ТипЭлементов;
Например:
Var a: array [1..100] of integer; { 100 элементов – целые числа}
Var b: array [1..50] of char; {51 элемент - символы}
Но прежде необходимо указать тип.
Type
имяТипа =array [НижняяГраница..ВерхняяГраница] of ТипЭлементов;
var ИмяМассива : имяТипа;
Заполнение массива данными
Массивы, объявленные в разделе описания переменных, необходимо заполнить данными, прежде чем выполнять с ними какие-либо действия.
Способы задания массива:
·Ввод данных с клавиатуры;
program massiv ;
uses crt;
type mas=array [1..10] of integer;
var i: integer;
m:mas;
begin
for i:=1 to 10 do
begin
write ('Элемент #', i, ': ' );
readln (m[i]);
end;
end.
·С помощью датчика случайных чисел;
program massiv ;
uses crt;
type mas=array [1..10] of integer;
var i: integer;
m:mas;
begin
randomize;
for i:=1 to 10 do
begin
m[i]:= random(20)+1;
write(m[i], ' ');
end;
writeln;
end.
·Присваиванием заданных значений:
a[1]:=29; a[2]:=34; и т.д.
·Считывая значения элементов из файла.
В любом случае для заполнения массива используется цикл for.
Вывод массива:
Вывод массива из 5 элементов:
·В столбец:
For i:=1 to 5 do writeln (a[i]);
·В одну строку, через пробел:
For i:=1 to 5 do writeln (a[i], ‘ ‘);
·С заданием формата, где под каждый элемент отводится 4 позиции:
For i:=1 to 5 do write (a[i] : 4);
Базовые задачи на массивы:
1.На суммировку
2.На количество
3.На замену.
III. Закрепление. Решение задач.
Задача 1. Создать массив из n элементов. Напечатать элементы массива в прямом и обратном порядке.
program massiv ;
uses crt;
type mas=array[1..1000] of integer;
var i,n: integer;
m:mas;
begin writeln ('введи кол-во эл-в массива') ;
readln (n);
randomize;
for i:=1 to n do
begin
m[i]:=random(45)+1;
write(m[i], ' ');
end;
writeln;
for i:=n downto 1 do
begin
write(m[i], ' ');
end; end.
Задача 2. Дан массив целых чисел. Определить: 1) сумму всех элементов массива; 2) произведение всех элементов массива; 3) среднее арифметическое всех элементов массива.
program massiv ;
uses crt;
type mas=array[1..1000] of integer;
var i,s,n,p,k: integer;
m:mas;
begin
randomize;
for i:=1 to 10 do
begin
m[i]:=random(45)+1;
write(m[i], ' ');
s:=S+m[i];
end;
writeln;
write( s);
end.
program massiv ;
uses crt;
type mas=array[1..1000] of integer;
var i,s,n,p,k: integer;
m:mas;
begin s:=1;
randomize;
for i:=1 to 10 do
begin
m[i]:=random(5)+1;
write(m[i], ' ');
s:=S*m[i];
end;
writeln;
write( s);
end.
program massiv ;
uses crt;
type mas=array[1..1000] of integer;
var i,n,p,k: integer;
m:mas; s:real;
begin s:=0;
randomize;
for i:=1 to 10 do
begin
m[i]:=random(10)+1;
write(m[i], ' ');
s:=S+m[i];
end;
writeln;
write( s/10);
end.
Задача 3*. Переставить элементы, стоящие на нечетных местах, с соответствующими элементами на четных местах.
program massiv ;
uses crt;
type mas=array[1..1000] of integer;
var i,n,r: integer;
m:mas;
begin writeln ('введи кол-во эл-в массива') ;
readln (n);
randomize;
for i:=1 to n do
begin
m[i]:=random(45)+1;
write(m[i], ' ');
end;
writeln;
i:=1;
while i<= n-1 do
begin
r:=m[i]; m[i]:=m[i+1]; m[i+1]:=r;
inc(i,2); end;
for i:=1 to n do
write(m[i], ' ');
end.
IV. Итог урока.
V. Домашнее задание.
1. Дан массив целых чисел. Выяснить, верно, ли что сумма элементов массива есть четное число.
2. Дан массив целых чисел. Напечатать все элементы, оканчивающиеся нулем.