Рейтинг  

Яндекс.Метрика
Яндекс цитирования
 

   

Статистика  

Пользователи
7
Материалы
575
Кол-во просмотров материалов
2728409
   

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

Общий вид описания массива:

var <имя_массива>: array [<мин_знач_индекса> .. <макс_знач_индекса>] of <тип_элементов>;


Объявление массива производится директивой array of.

Статический массив:

const
  N = 100;
  M = 50;

var
  a: array[1..N] of integer;
  matrix: array[1..N, 1..M] of integer;

Динамический массив:

var
  a: array of integer;
  matrix: array of array of integer;

Динамический массив заполненный в секции var:

var
  a: array of int64 = (34, 54, 67, 89, 12, 23, 76);

Таблица "Методы списков"

Метод Что делает
Length(a) Получить длину (количество элементов) динамического массива a
SetLength(a, N) Установить размерность динамического массива a в N элементов
High(a) Получить наибольший индекс динамического массива a.

Примеры

Одномерный динамический массив:

program a1;

var
  i, N: integer;
  A: Array of integer;
begin
  read( N);
  SetLength( A, N);
  
  for i := 0 to N-1 do
    read( A[i]);
    
  for i := 0 to N-1 do    
    write( A[i], ' ');
    
  writeln;
  writeln( 'High( A ) = ', High( A ) );
 
end.


Чтение (цифры записаны через пробел) одномерного динамического массива в цикле Repeat .. until (окончание ввода - цифра ноль):

program a2;
var
  mas: array of integer;
  i, n: integer;
begin
  i := 0;
  SetLength(mas, i);
  repeat
    if Length(mas) = i then
      SetLength(mas, i+1);
    read(mas[i]);
    i := i + 1;
  until mas[i - 1] = 0;
  SetLength(mas, i - 1);
  writeln('Количество элементов: ', Length(mas));

  for i := 0 to High(mas) do  begin // Вывод всего массива
    write(mas[i], ' ');
  end;
end.


Двумерный динамический массив (динамическая матрица):

program a3;

var
  i, j, N: integer;
  A: Array of Array of integer;
begin
  read( N);
  SetLength( A, N);
  for i := 0 to N-1 do  
    SetLength( A[i], N);
  
  randomize;
  for i := 0 to N-1 do
    for j := 0 to N-1 do
      A[i,j] := random(100, 999);
    
  for i := 0 to N-1 do  begin
    for j := 0 to N-1 do    
      write( A[i,j], ' ');
    writeln;
  end;

end.


Удаление элемента динамического массива:

type
    intArray = array of int64;

var
    a: intArray = (34, 12, 99, 23, 54, 67, 12, 34, 89, 12, 23, 76, 123, 99);


procedure array_del_elem_by_index(var _a: intArray; _index: int64);
var i: int64;
begin
    for i := _index to High(_a) - 1 do 
        _a[i] := _a[i + 1];
    SetLength(_a, High(_a));
end;

Язык Паскаль с нуля | #7 Одномерные массивы в паскаль.
Полезно посмотреть: Объяснение работы с циклом и массивом.

Вложения:
Скачать этот файл (array_methods.pas)array_methods.pas[ ]42 Кб
   
   

Login Form