Similar presentations:
Массивы. Элементы массива. Заполнение массива
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 (‘Не найдено’);