Сформировать очередь, элементами которого являются целые числа. написать процедуру add, которая вставляет элемент в очередь и процедуру delete, которая удаляет элемент из очереди.
Массив – это упорядоченный набор данных одного типа, снабженных индексами.
Индексы предназначены для нахождения определенного элемента массива, т.е. положение каждого элемента в массиве определяется его индексом. В этом и заключается упорядоченность. Тип компонент называется базовым типом массива.
В VBA массив рассматривается как переменная структурированного типа. Массиву присваивается имя, посредством которого можно ссылаться на него, как на единое целое, так и на любую из его компонент. Переменная с индексом — идентификатор компоненты массива. Формат записи:
<имя массива> (<индекс>), где индекс может быть выражением порядкового типа.
Видим, что индексы принято указывать в круглых скобках после имени массива. По умолчанию нумерация элементов массива начинается с 0. Говорят, что 0 – базовый индекс.
Например, если А – массив из пяти чисел: 2, 3, 7, 9, 6, то А (0) = 2 – первый элемент массива, А (4) = 6 – последний.
Описание массива определяет имя, размер массива, базовый тип и производится в разделе переменных. В VBA имеются следующие описания массивов:
1. <имя массива> (<номер последнего элемента>) [As <тип>]
2. <имя массива> (<начальный индекс> To <конечный индекс>) [As <тип>]
Отметим, что второй позволяет изменить базовый индекс. Другим изменения базового индекса является использование оператора Option Base, который имеет следующий синтаксис:
Option Base <базовый индекс>
<базовый индекс> – единица или ноль.
Этот оператор применяется перед процедурой, аналогично оператору Option Explicit.
Например, для изменения базового индекса с 0 на 1 используется оператор Option Base 1.
Массив A, который был рассмотрен, требует одного индекса для указания любого элемента. Такой массив называется одномерным (или линейным) В одномерных массивах хранятся значения линейных таблиц. Примеры описания одномерных массивов:
1. Dim A (12) As Byte
2. Dim A (1 To 12) As Byte
3. Dim Bin (5) As Integer
4. Dim Str_mass (4) As String
5. Dim K (7)
6. Dim L (0 To 3)
Заполнение массива в программе производится поэлементно. Чаще всего для этого используется цикл с параметром, где в качестве параметра применяется индексная переменная. Возможно заполнение массива путем простого присвоения значения элементам:
Dim B (1 To 3) As Integer
B (1) = 2
B (2) = 18
B (3) = 6
Удобным определения одномерных массивов является функция Array, преобразующая список элементов, разделенных запятыми, в вектор из этих значений, и присваивающая их переменной типа Variant.
Dim A As Variant
A = Array (10, 20, 35, 70)
Иногда в процессе выполнения программы требуется изменять размер массива. В этом случае первоначально массив объявляют как динамический. Для этого при объявлении массива не указывают его размерность. Например,
Dim R () As Single
В программе следует вычислить необходимый размер массива и связать его с некоторой переменной, например, n; затем изменить размер динамического массива с оператора ReDim:
ReDim [Preserve] Имя (<номер последнего элемента>) [As <тип>]
ReDim [Preserve] Имя (<начальный индекс> To <конечный индекс>) [As <тип>]
Preserve – ключевое слово, используемое для сохранения данных в существующем массиве при изменении значения последней размерности.
Program aaa; var A: array[1..100,1..100] of integer; n,k,r,c,x: integer; i,j: byte; begin randomize; writeln ('Введите N, K, R, C'); readln (n,k,c,r); x:=0; for i:=1 to n do begin for j:=1 to n do begin writeln ('Введите ',j,'-е число ',i,'-ой строки'); readln (A[i,j]); //или можно ввести рандомно: A[i,j]:=random(0,1); if ((i>(r-k)) and (i<=r) and (j>(c-k)) and (j<=c) and (A[i,j]=1)) then x:=x+1 end end; writeln; // в следующем цикле выводится весь массив для наглядности // его можно просто убрать если не нужен for i:=1 to n do begin for j:=1 to n do begin write (A[i,j]:3); end; writeln end; writeln; writeln (x) end.
Лабораторная работа № 8. Работа с массивами
Теоретические сведения
Массив – это упорядоченный набор данных одного типа, снабженных индексами.
Индексы предназначены для нахождения определенного элемента массива, т.е. положение каждого элемента в массиве определяется его индексом. В этом и заключается упорядоченность. Тип компонент называется базовым типом массива.
В VBA массив рассматривается как переменная структурированного типа. Массиву присваивается имя, посредством которого можно ссылаться на него, как на единое целое, так и на любую из его компонент. Переменная с индексом — идентификатор компоненты массива. Формат записи:
<имя массива> (<индекс>), где индекс может быть выражением порядкового типа.
Видим, что индексы принято указывать в круглых скобках после имени массива. По умолчанию нумерация элементов массива начинается с 0. Говорят, что 0 – базовый индекс.
Например, если А – массив из пяти чисел: 2, 3, 7, 9, 6, то А (0) = 2 – первый элемент массива, А (4) = 6 – последний.
Описание массива определяет имя, размер массива, базовый тип и производится в разделе переменных. В VBA имеются следующие описания массивов:
1. <имя массива> (<номер последнего элемента>) [As <тип>]
2. <имя массива> (<начальный индекс> To <конечный индекс>) [As <тип>]
Отметим, что второй позволяет изменить базовый индекс. Другим изменения базового индекса является использование оператора Option Base, который имеет следующий синтаксис:
Option Base <базовый индекс>
<базовый индекс> – единица или ноль.
Этот оператор применяется перед процедурой, аналогично оператору Option Explicit.
Например, для изменения базового индекса с 0 на 1 используется оператор Option Base 1.
Массив A, который был рассмотрен, требует одного индекса для указания любого элемента. Такой массив называется одномерным (или линейным) В одномерных массивах хранятся значения линейных таблиц. Примеры описания одномерных массивов:
1. Dim A (12) As Byte
2. Dim A (1 To 12) As Byte
3. Dim Bin (5) As Integer
4. Dim Str_mass (4) As String
5. Dim K (7)
6. Dim L (0 To 3)
Заполнение массива в программе производится поэлементно. Чаще всего для этого используется цикл с параметром, где в качестве параметра применяется индексная переменная. Возможно заполнение массива путем простого присвоения значения элементам:
Dim B (1 To 3) As Integer
B (1) = 2
B (2) = 18
B (3) = 6
Удобным определения одномерных массивов является функция Array, преобразующая список элементов, разделенных запятыми, в вектор из этих значений, и присваивающая их переменной типа Variant.
Dim A As Variant
A = Array (10, 20, 35, 70)
Иногда в процессе выполнения программы требуется изменять размер массива. В этом случае первоначально массив объявляют как динамический. Для этого при объявлении массива не указывают его размерность. Например,
Dim R () As Single
В программе следует вычислить необходимый размер массива и связать его с некоторой переменной, например, n; затем изменить размер динамического массива с оператора ReDim:
ReDim [Preserve] Имя (<номер последнего элемента>) [As <тип>]
ReDim [Preserve] Имя (<начальный индекс> To <конечный индекс>) [As <тип>]
Preserve – ключевое слово, используемое для сохранения данных в существующем массиве при изменении значения последней размерности.
var A: array[1..100,1..100] of integer; n,k,r,c,x: integer; i,j: byte;
begin
randomize;
writeln ('Введите N, K, R, C');
readln (n,k,c,r);
x:=0;
for i:=1 to n do begin
for j:=1 to n do begin
writeln ('Введите ',j,'-е число ',i,'-ой строки');
readln (A[i,j]);
//или можно ввести рандомно: A[i,j]:=random(0,1);
if ((i>(r-k)) and (i<=r) and (j>(c-k)) and (j<=c) and (A[i,j]=1))
then x:=x+1
end
end;
writeln;
// в следующем цикле выводится весь массив для наглядности
// его можно просто убрать если не нужен
for i:=1 to n do begin
for j:=1 to n do begin
write (A[i,j]:3);
end;
writeln
end;
writeln;
writeln (x)
end.