Delphi-Help

Главная Статьи Массивы Одномерные массивы. Формирование массива и вывод его элементов

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

Оцените материал
(3 голосов)


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

Определение понятия

Массив представляет собой совокупность данных одного типа с общим для всех элементов именем.

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

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)

  1. Ввод массива с клавиатуры
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
...
  1. Заполнение массива случайными числами
randomize;
for i := 1 to n do
      a[i] := random(90)+10;
      {массив заполняется двузначными числами}

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

  1. Вывод в столбец
for i := 1 to n do
      writeln(a[i]);
  1. Вывод в одну строку через пробел-разделитель
for i := 1 to n do
      write(a[i], ' ');
  1. Вывод в одну строку 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);
      {Заполняем массив случайными числами}
      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.
Прочитано 17515 раз

Авторизация



Счетчики