Наряду с простыми переменными (поименованными участками оперативной памяти), существует еще один способ размещения данных в памяти, когда однородные данные помещаются друг за другом, носят одно общее имя и снабжаются своими порядковыми номерами.
Такая упорядоченная последовательность однородных величин, имеющих общее имя и свой порядковый номер, называется массивом.
Элемент массива называется индексной переменной, т.к. имеет свой номер (индекс) и с ним можно работать как с простой переменной.
Такая организация данных применяется тогда, когда с различными данными необходимо произвести одинаковые действия («пересмотреть» всех учащихся, чтобы определить самого высокого, сложить температурные показания за каждый день месяца, чтобы определить среднюю температуру и т.д.).
Работа с массивами:
- Массив должен быть объявлен в разделе объявления переменных:
VAR M: array[1..N] of integer;
М – имя массива, которое вы задаете сами;
1..N – количество элементов массива;
of integer – описание типа элементов, из которых состоит массив.
- Прежде чем начать работу с массивом, надо его заполнить данными
- Доступ к элементу массива осуществляется путем указания имени массива и индекса (номера) элемента: M[6]
- Для ввода, вывода и обработки массивов удобно применять инструкцию циклов.
При заполнении массивов удобно использовать датчик случайных чисел, который подключается после оператора BEGIN с помощью команды RANDOMIZE. Вызывается датчик командой RANDOM(N) и выдает число от 0 до N-1.
Например, нам надо получать числа в диапазоне от 4 до 12, для этого, при вызове датчика, указываем следующие числа: RANDOM(9)+4.
Задача № 1
Допустим, нам надо заселить 12 типовых домиков семьями, состав которых колеблется от 3-х до 7 человек.
Сформируем массив домиков, содержимое которых – целые числа (количество человек в семье). Заполнять массив будем с помощью датчика случайных чисел.
Program prim;
Uses crt;
Var DOM: array[1..12] of integer; {массив целых чисел}
I: integer; {переменная под счетчик цикла (перебор всех домов по порядку)}
BEGIN
Clrscr;
Randomize; {подключение датчика случайных чисел}
For I:=1 to 12 do
DOM[I]:= RANDOM(5)+3; {заселяем случайным образом в дома жителей}
For I:=1 to 12 do
WRITELN('DOM[', I, ']= ', DOM[I]); {вывод на экран содержимого массива}
END.
Задача № 2 (продолжение задачи №1)
Нахождение суммы элементов массива и элементов массива, отвечающих заданному условию
а) Посчитать общее количество человек, заселенных в дома (см. предыдущую задачу).
Для подсчета суммы всех заселенных людей, заводим переменную S в строке объявления переменных.
б) Посчитать количество домиков, в которых заселилось 3 человека. Для этих целей заведем переменную С (счетчик).
Program prim1;
Uses crt;
Var DOM: array[1..12] of integer; {массив целых чисел}
I: integer; {переменная под счетчик цикла (перебор всех домов по порядку)}
S,C: integer;
BEGIN
Clrscr;
Randomize; {подключение датчика случайных чисел}
S:=0; {сумма всех жильцов равна 0}
For I:=1 to 12 do
begin
DOM[I]:= RANDOM(5)+3; {заселяем случайным образом в дома жителей}
S:=S+ DOM[I]; {каждый раз добавляем к сумме жильцов следующего
заселяемого домика}
WRITELN('DOM[', I, ']= ', DOM[I]); {вывод на экран элемента массива}
end;
WRITELN('общее количество заселенных жильцов =',S);
For I:=1 to 12 do
IF DOM[I]=3 THEN C:=C+1;
WRITELN('количество домов с тремя жильцами =',C);
END.
Задание 1
- Заполнить массив из 10 элементов целыми числами в диапазоне от 1 до 10 с помощью датчика случайных чисел;
- Вывести на экран элементы массива: а) в столбик, б) в строчку;
- Посчитать среднее арифметическое элементов массива;
- Найти количество элементов массива, значение которых равно 4.
Задание 2
- Заполнить с клавиатуры массив, состоящий из 5 английских слов и вывести их на экран;
- Посчитать количество слов в массиве, которые начинаются на букву «а»
Вариант 1
1. Дан фрагмент программы. Что появится на экране?
S:=0;
FOR I:=1 TO 4 DO
BEGIN
MAS[I]:=2*I;
S:=S+MAS[I];
END;
WRITELN (S);
2. Дан фрагмент программы. Что появится на экране?
FOR I:=1 TO 4 DO
MAS[I]:=I;
MAS[2]:=MAS[1];
WRITELN (MAS[2]);
3. Как объявить массив из 8 вещественных чисел?
4. Как задать датчику случайных чисел диапазон от 2 до 12?
Вариант 2
1. Дан фрагмент программы. Что появится на экране?
S:=0;
FOR I:=1 TO 4 DO
BEGIN
MAS[I]:=2;
S:=S+MAS[I];
END;
WRITELN (S);
2. Дан фрагмент программы. Что появится на экране?
FOR I:=1 TO 4 DO
MAS[I]:=I+1;
MAS[2]:=MAS[1];
WRITELN (MAS[2]);
3. Как объявить массив из 10 целых чисел?
4. Как задать датчику случайных чисел диапазон от 1 до 10?
Вариант 3
1. Дан фрагмент программы. Что появится на экране?
S:=0;
FOR I:=1 TO 4 DO
BEGIN
MAS[I]:=2*I-1;
S:=S+MAS[I];
END;
WRITELN (S);
2. Дан фрагмент программы. Что появится на экране?
FOR I:=1 TO 4 DO
MAS[I]:=10-I;
MAS[2]:=MAS[1];
WRITELN (MAS[2]);
3. Как объявить массив из 10 символов?
4. Как задать датчику случайных чисел диапазон от 3 до 12?
Вариант 4
1. Дан фрагмент программы. Что появится на экране?
S:=0;
FOR I:=1 TO 4 DO
BEGIN
MAS[I]:=1;
S:=S+MAS[I];
END;
WRITELN (2*S);
2. Дан фрагмент программы. Что появится на экране?
FOR I:=1 TO 4 DO
MAS[I]:=2+I;
MAS[2]:=MAS[1];
WRITELN (MAS[2]);
3. Как объявить массив из 12 целых чисел?
4. Как задать датчику случайных чисел диапазон от 10 до 100?
Вариант 5
1. Дан фрагмент программы. Что появится на экране?
S:=0;
FOR I:=1 TO 4 DO
BEGIN
MAS[I]:=1+I;
S:=S+MAS[I];
END;
WRITELN (S);
2. Дан фрагмент программы. Что появится на экране?
FOR I:=1 TO 3 DO
MAS[I]:=8;
MAS[2]:=MAS[1]+2;
WRITELN (MAS[2]);
3. Как объявить массив из 6 вещественных чисел?
4. Как задать датчику случайных чисел диапазон от 1 до 3?
Вариант 6
1. Дан фрагмент программы. Что появится на экране?
S:=0;
FOR I:=1 TO 4 DO
BEGIN
MAS[I]:=I;
S:=S+MAS[I];
END;
WRITELN (S);
2. Дан фрагмент программы. Что появится на экране?
FOR I:=1 TO 4 DO
MAS[I]:=I;
MAS[1]:=MAS[4];
WRITELN (MAS[1]);
3. Как объявить массив из 15 целых чисел?
4. Как задать датчику случайных чисел диапазон от 4 до 6?


Массивы в Паскале (25.34 КB)

