Массивы. Элементы массива. Заполнение массива

1.

2.

1) Основные понятия
2) Описание массива
3) Элементы массива
4) Заполнение массива
5) Вывод массива
6) Тест
7) Решение задач

3.

Массив – это набор однотипных данных, снабженных системой
из одного или нескольких индексов, каждый из которых
принимает последовательные целые значения.
Размерность массива – количество индексов, необходимое для
однозначного доступа к элементу массива.
Тип массива – тип входящих в него элементов.

4.

На языке программирования Pascal массивы описываются в
блоке var, с указанием имени массива, его типа и диапазона
изменения индексов. Например, одномерный целочисленный
массив М, состоящий из 10 элементов описывается следующим
образом:
var M: array [1..10] of integer;
При описании двумерных, трехмерных и еще большей
размерности массивов диапазоны индексов разделяются
запятой. Например, описание трехмерного массива N:
Имя
Тип
Диапазон
Тип элементов
массива
«массив»
индексов
массива
N: array
[1..10, 1..8,
1..15] of integer;

5.

Для обращения к элементу массива нужно указать имя массива
и в квадратных скобках номер индекса соответствующего
данному элементу: М[i].
Например, для одномерного целочисленного массива M:
i
M[i]
1
15
M[4]
=
2
3
?
3
0
4
12
5
-7
6
6
7
5
8
5
9
2
10
-4
Найдите значение выражения:
M[10]+M[7]=?
Ответ: 1

6.

Для двумерного целочисленного массива D:
D[3,2]
i
j
1
2
3
4
1
3
2
-1
0
2
4
7
4
4
3
1
-6
0
-5
4 5
5 -2
4 2
3 -3
4 6
=
?
Найдите значение выражения:
D[2,1]-D[1,5]=?
Ответ: 4

7.

Заполнение массива может осуществляться тремя способами:
1) Ввод значений с клавиатуры:
for i:=1 to 10 do read(M[i]);
2) Случайным образом:
функция позволяет перемешивать числа из
диапазона указанном в функции random и
употребляется перед ней
randomize;
for i:=1 to 10 do M[i]:=random(100);
3) Заполнение по формуле:
for i:=1 to 10 do M[i]:=i+7;
функция
генерирует
целые
числа в диапазоне от 0 до 99

8.

Вывод элементов массива на экран осуществляется следующим
образом:
for i:=1 to 10 do writeln (M[i]);
В данном примере используется оператор writeln, после
выполнения которого курсор переводится на новую строку,
поэтому значения элементов массива будут выведены в столбик.
Как нужно изменить оператор вывода массива, чтобы
значения элементов массива выводились в строку и
разделялись между собой символом «пробел»?
Ответ: for i:=1 to 10 do write (M[i], ‘ ‘);

9.

Program Summa;
var sum, i: integer;
M: array [1..10] of integer;
begin
for i:=1 to 10 do read (M[i]);
sum:=0;
for i:=1 to 10 do s:=s+M[i];
writeln (sum);
end.
{заголовок программы}
{описание переменных}
{описание массива}
{начало}
{ввод элементов массива}
{начальное значение суммы - 0}
{значение суммы увеличивается
на значение текущего элемента
массива}
{вывод результата суммы}
{конец}

10.

Ответ:
Program Minimum;
Maximum;
{заголовок
программы}
По
аналогии
с приведенным
var min,
max, i:i: integer;
integer;
{описаниесоставьте
переменных}
примером
программу
M: array [1..10] of integer; для
{описание
массива}минимального
нахождения
begin
{начало} массива.
элемента
for i:=1 to 10 do read (M[i]); {ввод элементов массива}
max:=M[1];
min:=M[1];
{выбираем 1-й эл.массива как max}
for i:=2 to 10 do
{если значение текущего элемента
if M[i]<min
M[i]>max then
then min:=M[i];
max:=M[i]; массива больше, чем max, то max
присваиваем его значение}
writeln (min);
(max);
{вывод максимального значения}
end.
{конец}

11.

Вопрос №1
Вопрос №2
Вопрос №4
Вопрос №3
Вопрос №5
Завершить тест
Вопрос №6

12.

Массив – это
А) набор индексов, каждый из
последовательные целые значения.
которых
принимает
Б) набор различного типа данных, снабженных системой индексов.
В) набор однотипных данных, снабженных системой из одного
или нескольких индексов, каждый из которых принимает
последовательные целые значения.
Г) набор данных.

13.

Двумерный массив описывается:
А) var D: array [1..10, 3..15] of integer;
Б) var D: array [1..2] of integer;
В) var D: array [1..10, 1..10];
Г) var D := array [1..10, 2..10] of integer;

14.

Индекс элементов массива может быть:
А) целым числом.
Б) вещественным числом.
В) вещественным положительным числом.
Г) целым положительным числом.

15.

Как обратиться к 8-му элементу одномерного массива с именем F?
А) F8
Б) F[1..8]
В) F[8]
Г) F(8)

16.

Чему будет равно значение выражения D[3,4]+D[2,3] для массива D:
3
2
-1
0
4
7
4
4
1
-6
0
-5
5
4
3
4
-2
2
-3
6
А) 5
Б) -3
В) -1
Г) 9

17.

Чему будет равно значение переменной s, после выполнения
фрагмента программы:
А) 2
s:=0;
for i:=1 to 5 do
if M[i]>4 then s:=s+1;
Для массива M:
6
4
5
Б) 18
В) 0
7
-4
Г) 3

18.

К списку вопросов

19.

К списку вопросов

20.

Задача
№1.
В
таблице
Dat
представлены данные о количестве
голосов, поданных за 10 исполнителей
народных песен (Dat[1] – количество
голосов,
поданных
за
первого
исполнителя; Dat[2] – за второго и т. д.).
Определите,
какое
число
будет
напечатано в результате работы
следующей программы.
Ответ: 41
var k, m: integer;
Dat: array[1..10] of integer;
begin
Dat[1] := 16; Dat[2] := 20;
Dat[3] := 20; Dat[4] := 41;
Dat[5] := 14; Dat[6] := 21;
Dat[7] := 28; Dat[8] := 12;
Dat[9] := 15; Dat[10] := 35;
m := 0;
for k := 1 to 10 do
if Dat[k]>m then m := Dat[k];
writeln(m);
end.

21.

Задача №2. В таблице Dat хранятся
данные измерений среднесуточной
температуры за 10 дней в градусах
(Dat[1] – данные за первый день, Dat[2]
– за второй и т. д.). Определите, какое
число будет напечатано в результате
работы следующей программы.
Ответ: 3
var k, m: integer;
Dat: array[1..10] of integer;
begin
Dat[1] := 12; Dat[2] := 15;
Dat[3] := 17; Dat[4] := 15;
Dat[5] := 14; Dat[6] := 12;
Dat[7] := 10; Dat[8] := 13;
Dat[9] := 14; Dat[10] := 15;
m := 0;
for k := 1 to 10 do
if Dat[k]=15 then m := m+1;
writeln(m);
end.

22.

Задача №3. В таблице Dat хранятся
данные измерений среднесуточной
температуры за 10 дней в градусах
(Dat[1] – данные за первый день, Dat[2]
– за второй и т. д.). Определите, какое
число будет напечатано в результате
работы следующей программы.
Ответ: 10
var k, m: integer;
Dat: array[1..10] of integer;
begin
Dat[1] := 12; Dat[2] := 15;
Dat[3] := 17; Dat[4] := 15;
Dat[5] := 14; Dat[6] := 12;
Dat[7] := 10; Dat[8] := 13;
Dat[9] := 14; Dat[10] := 15;
m := 20;
for k := 1 to 10 do
if Dat[k]<m then m := Dat[k];
writeln(m);
end.

23.

Задача №4. В таблице Dat хранятся
данные измерений среднесуточной
температуры за 10 дней в градусах
(Dat[1] – данные за первый день, Dat[2]
– за второй и т. д.). Определите, какое
число будет напечатано в результате
работы следующей программы.
Ответ: 7
var k, m: integer;
Dat: array[1..10] of integer;
begin
Dat[1] := 12; Dat[2] := 15;
Dat[3] := 17; Dat[4] := 15;
Dat[5] := 14; Dat[6] := 12;
Dat[7] := 10; Dat[8] := 13;
Dat[9] := 14; Dat[10] := 15;
m := 0;
for k := 1 to 10 do
if Dat[k]>12 then m := m+1;
writeln(m);
end.

24.

Задача №5. Дан целочисленный массив из 20 элементов. Элементы
массива могут принимать целые значения от –10 000 до 10 000
включительно. Опишите на языке программирования алгоритм,
позволяющий найти и вывести количество пар элементов массива, в
которых хотя бы одно число делится на 3. Под парой подразумевается
два подряд идущих элемента массива.
const N=20;
var a: array [1..N] of integer;
i, j, k: integer;
begin
for i:=1 to N do readln(a[i]); …
… end.
Ответ:
k:=0;
for i:=1 to N-1 do
if (a[i] mod 3 =0) or (a[i+1] mod 3 = 0) then
k:=k+1;
writeln (k);

25.

Задача №6. Дан целочисленный массив из 20 элементов. Элементы
массива могут принимать целые значения от –10 000 до 10 000
включительно. Опишите на языке программирования алгоритм,
позволяющий найти и вывести количество пар элементов массива,
сумма которых нечётна и положительна. Под парой подразумевается
два подряд идущих элемента массива.
const N=20;
var a: array [1..N] of integer;
i, j, k: integer;
begin
for i:=1 to N do readln(a[i]); …
… end.
Ответ:
k:=0;
for i:=1 to N-1 do
if ((a[i]+a[i+1]) mod 2<>0) and
(a[i]+a[i+1]>0) then k:=k+1;
writeln (k);

26.

Задача №7. Дан целочисленный массив из 20 элементов. Элементы
массива могут принимать целые значения от 0 до 10 000
включительно. Опишите на языке программирования алгоритм,
позволяющий найти и вывести максимальное значение среди
трёхзначных элементов массива, не делящихся на 9. Если в исходном
массиве нет элемента, удовлетворяющих данному условию, то
выведите сообщение «Не найдено»..
const N=20;
var a: array [1..N] of integer;
i, j, k: integer;
begin
for i:=1 to N do readln(a[i]); …
… end.
Ответ:
max := 99;
for i := 1 to N do
if (a[i]>=100) and (a[i]<=998) and
(a[i] mod 9<>0) and (a[i]>max) then max := a[i];
if max > 99 then writeln (max)
else writeln (‘Не найдено’);
English     Русский Правила