Одномерные массивы

Формирование массива и вывод его элементов

Массив представляет собой совокупность данных одного типа с общим для всех элементов именем.
Элементы массива пронумерованы, и обращаться к каждому из них можно по номеру. Номера элементов массива иначе называются индексами, а сами элементы массива — индексированными переменными.

a[0]
a[1]
a[2]
a[3]
a[4]
a[n]
0.3
-0.5
0.77
0.01
-5.2
0.6

Вектор (линейный или одномерный массив) — это пример массива , в котором элементы нумеруются одним индексом.

  • В качестве номера (индекса) элемента массива, в общем случае, используется выражение порядкового типа (чаще всего — это целая константа или переменная целого типа: integer, word, byte или shortint)
  • При обращении к элементу массива индекс указывается в квадратных скобках. Например, a[10], mass[6].
  • Обработка элементов массива производится при изменении индексов элементов. Например, в случае использования выражения следующие переменные удобно применять для просмотра в цикле элементов массива:
    • a[i] — всех элементов;
    • a[2*i] — элементов, стоящих на четных местах;
    • a[2*i-1] — элементов, стоящих на нечетных местах

Описание массива

Определение переменной как массив без предварительного описания типа массива

var a,b,c: array[1..10] of integer;
var
   s : array[0..5] of integer;
   k : array[0..5] of integer;

Примечание

  • Описание массива требуется компилятору для выделения памяти под его элементы.
  • Переменная определяется как массив посредством служебного слова array (массив). В квадратных скобках указывается диапазон, т. е. нижняя и верхняя граница значения индекса массива. Значение верхней границы не может быть меньше нижней.
  • Здесь переменные s и k считаются разных типов. Для обеспечения совместимости необходимо применять описание переменных через предварительное описание типа.
  • Если типы массивов идентичны, то в программе один массив может быть присвоен другому. В этом случае значения всех переменных одного массива будет присвоены соответствующим элементам второго массива.
  • Над массивами не определены операции отношения. Сравнивать два массива можно только поэлементно.

Предварительное описание типа массива

const
   n = 5;
type
   mas = array[1..n] of integer;
var
   a : mas;

Примечание

  • Доступ к элементам массива будет осуществляться так: a[1], a[2], a[3], a[4], a[5] (т. е. массив содержит пять элементов).
  • Употребление констант (в данном примере n) при описании массива предпочтительно, т. к. в случае изменения размеров массива не нужно будет вносить исправления по всему тексту программы.

Задание массива типизированной константой

const
   x : array[0..5] of integer = (1, 2, 3, 4, 5, 6);

Примечание

  • В данном примере не только выделяется память под массив, но и происходит заполнение ячеек данными.
  • Элементы массива можно изменять в ходе программы (как и все типизированные константы).

Заполнение массива данными

  • Для заполнения массива данными (и его вывода) чаще всего используется цикл с параметром for
  • Для заполнения массива случайными числами используется функция random и процедура randomize (инициализации генератора случайных чисел). Формат записи такой: random(B — A) + A, где A и B берутся из интервала [A,B)

Ввод массива с клавиатуры

for i := 1 to n do
begin
	write('a[', i, '] = '); readln(a[i])
end;

На экране:

a[1] = 1
a[2] = 5
a[3] = 3
a[4] = 0
...

Заполнение массива случайными числами

randomize;
for i := 1 to n do
	a[i] := random(90)+10;
	{массив заполняется двузначными числами}

Вывод массива

Вывод в столбец

for i := 1 to n do
	writeln(a[i]);

Вывод в одну строку через пробел-разделитель

for i := 1 to n do
	write(a[i], ' ');

Вывод в одну строку c заданием формата

for i := 1 to n do
	write(a[i]:4);

Пример программы на ввод и вывод массива

program array1;
var
	i:word;
	a:array[0..100] of integer;
begin
randomize;
for i := 0 to 100 do
begin
	a[i] := random(100);
	{Заполняем массив случайными числами в интервале [0,100)}
	writeln('a[', i, '] = ', a[i])
end
end.

Пример программы работы с элементами массива

Постановка задачи. Получить сумму элементов массива, состоящего из 10 целочисленных элементов. Элементы массива вводятся с клавиатуры.

program array2;
var
	sum:integer;
	i:byte;
	a:array[0..9] of word;
begin
sum := 0;
for i := 0 to 9 do
begin
	write('a[', i, '] = '); 
	readln(a[i]);
	sum := sum + a[i]
end;
writeln('sum = ', sum)
end.

Пример программы работы с элементами массива

Постановка задачи. Получить среднее арифметическое элементов массива. Элементы массива заполняются случайными числами.

program array3;
const
	n = 100;
var
	sar:real;
	sum:integer;
	i:byte;
	a:array[0..n] of integer;
begin
sum := 0;
randomize;
for i := 0 to n do
begin
	a[i] := random(100);
	sum := sum + a[i]
end;
sar := sum/n;
writeln('sar = ', sar)
end.

Домашнее задание

  1. Введите с клавиатуры в массив пять целочисленных значений. Выведите их в одну строку через запятую.
  2. Введите с клавиатуры пять целочисленных элементов массива X. Выведите на экран значения корней и квадратов каждого из элементов массива.
  3. Дополнительно. Создайте массив А[0..8] с помощью генератора случайных чисел с элементами от –10 до 10 и выведите его на экран. Подсчитайте количество отрицательных элементов массива.
  4. Дополнительно. Найти сумму элементов массива вещественных чисел, имеющих нечетные номера. Размерность массива – 20. Заполнение массива осуществить случайными числами от 100 до 200.

Добавить комментарий