Структурированный тип данных массив
Изучить §3 "Структурированный тип данных массив"
Внимательно изучите примеры.
Важно знать как выполнить:
Описание массива: var <имя массива>: array[<тип индекса>] of <тип элементов>;
var p: array [1..30] of array [1..30] of boolean; //массив из 30 элементов логического типа
var а: array[1..25] of integer; //массив из 25 целых чисел
var S: array[1..27] of string; //массив из 27 строковых величин
var T: array[1..31] of real; //массив из 31 вещественных чисел
Массивы константы:
const simple _ numb: array[1..5] of integer = (2, 3, 5, 7, 11); //массив из числовых констант
const c _ rgb: array of string = ('красный','синий','зеленый'); //массив из строковых констант
Обращение к элементу массива:
а[3]
T[i]
S[n-1]
Операции над индексированными переменными:
а[3] := 25 mod 7;
s := (t[1] + t[30])/2;
a[k] := b[k]*2;
Sum := Sum + а[i];
if а[i] < 0 then ...
Ввод элементов массива:
for var i := 1 to 10 do read(a[i]);
for var i := 1 to n do read(a[i]);
Заполнение массива случайными числами:
for var i := 1 to n do a[i] := random(101);
Вывод элементов массива в столбец (по одному в строке):
for var i := 1 to n do writeln(a[i]);
Вывод элементов массива в строку (через пробел):
for var i := 1 to n do write(a[i], ' ');
Вывод элементов массива в строку (в обратном порядке):
for var i := n downto 1 do write(a[i], ' ');
Пример 3.2
В 10 Б классе 27 учащихся. В классном журнале указаны фамилия и имя каждого из них. Для хранения списка учащихся можно использовать массив S, состоящий из 27 строк. Индекс каждого элемента — порядковый номер учащегося из списка в классном журнале. Тогда запись S[5] — фамилия и имя учащегося под номером 5.
Пример 3.3.
Каждый день в декабре измеряли температуру воздуха. Для хранения значений температуры можно использовать массив Т, состоящий из 31 вещественного числа. Индекс элемента — номер дня в декабре. Запись Т[15] — температура воздуха 15 декабря.
Пример 3.14.
Случайным образом задать n элементов массива а. Каждый элемент — число из отрезка [0; 100].
var a: array[1..100] of integer;
n: integer;
begin
writeln('Введите количество
чисел в массиве ');
readln(n);
for var i := 1 to n do
a[i] := random(101);
...
end.
Пример 3.19.
Вывод элементов массива в строку (в обратном порядке).
for var i := n downto 1 do
write(a[i], ' ');
Пример 3.20.
V. Программа:
var a: array[1..10] of integer;
n, S: integer;
begin
writeln('Введите количество чисел в массиве >=5');
readln(n);
writeln('Введите ', n,' чисел через пробел ');
for var i := 1 to n do
read(a[i]);
S := a[3] + a[5];
write('Сумма чисел = ', S);
end.
Пример 3.21.
Написать программу, которая сформирует массив из n чисел из отрезка [0; 100] случайным образом. Вывести массив на экран.
var a: array[1..100] of integer;
n: integer;
begin
writeln('Введите количество чисел в массиве ');
readln(n);
for var i := 1 to n do
a[i] := random(101);
for var i := 1 to n do
write(a[i],' ');
end.
Пример 3.22.
Написать программу, которая сформирует массив из n четных чисел из отрезка [20; 70] случайным образом. Вывести на экран k-й элемент массива.
var a: array[1..100] of integer;
n, k: integer;
begin
writeln('Введите количество чисел в массиве ');
readln(n);
for var i:=1 to n do
begin
a[i]:=2*random(10, 35);
write(a[i], ' ');
end;
writeln;
writeln('Введите k ');
readln(k);
write(a[k]);
end.
Пример 3.23.
Написать программу, которая введет с клавиатуры список фамилий учащихся и выведет из него фамилии с номерами от k1 до k2.
var s: array [1..20] of string;
n, k1, k2: integer;
begin
writeln('Количество учащихся ');
readln(n);
writeln('Фамилии ');
for var i := 1 to n do
readln(s[i]);
writeln('k1 и k2 ');
readln(k1, k2);
for var i := k1 to k2 do
writeln(s[i]);
end.
Пример 3.24.
Задать случайным образом два массива X и Y, содержащих по n чисел из отрезка [100; 300], и массив R, содержащий n чисел из отрезка [5; 100]. Построить на экране окружности, координаты центров которых хранятся в массивах X и Y, а радиусы в массиве R.
uses graphABC;
var X, Y, R: array[1..100]
of integer;
n: integer;
begin
SetWindowSize(400,400);
writeln('Введите количество чисел в массиве ');
readln(n);
writeln(n);
for var i := 1 to n do
begin
X[i]:= random(100,300);
Y[i]:= random(100,300);
R[i]:= random(5,100);
end;
SetBrushStyle(bsClear);
for var i := 1 to n do
circle(X[i],Y[i],R[i])
end.
Упражнения
Используя примеры, выполните следующие задания.
Введите 5 чисел и выведите их в одной строке.
Введите 7 чисел и выведите их в одной строке в обратном порядке.
Задайте 10 случайных чисел и выведите их по одному в строке.
Выведите на экран элементы массива (const c _ rgb: array of string = ('красный', 'синий', 'зеленый'); //массив из строковых констант).
Измените программу из примера 3.20 так, чтобы выводилось произведение первых трех элементов.
Используя программы из примера 3.20, задайте массив из n случайных чисел из отрезка [–10; 10]. Выведите: первый элемент; последний элемент; элемент, стоящий на среднем месте.
Введите массив из n строк с клавиатуры. Выведите элементы массива в обратном порядке.
Для массива, описанного в примере 3.2, введите данные с клавиатуры. Задайте номер учащегося. Выведите его фамилию.
*Введите рост учащихся своего класса, организовав ввод следующим образом:
Введите количество учащихся в классе: 15
Вводите рост учащихся
учащийся номер 1: 165
учащийся номер 2: 170
учащийся номер 3: 156
*Для массива, описанного в примере 3.3, задайте значения случайными вещественными числами из интервала (–20; 10). Выведите значения температур для указанного диапазона дат. Пример вывода для диапазона дат от 1 декабря до 8 декабря:
1 декабря температура была = 9.4
2 декабря температура была = –11.8
3 декабря температура была = –16.6
4 декабря температура была = 8
5 декабря температура была = 0.9
6 декабря температура была = –9.3
7 декабря температура была = –11.5
8 декабря температура была = 6.6
Измените программу из примера 3.24 так, чтобы окружности рисовались разными цветами.