top of page

Урок 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. Дан массив целых чисел. Напечатать все элементы, оканчивающиеся нулем.

bottom of page