Лекция 9. Массивы. Обработка одномерных массивов.
Массив – конечная, именованная совокупность данных одного типа, расположенных в смежных ячейках памяти.
Обращение к элементу массива осуществляется по имени и по индексу (номеру элемента в массиве).
A
Массив описывается при помощи задания типа его элементов, указания количества и типа индексов.
Общий вид описания массива:
ARRAY [ t1 ] OF t2 ,
где ARRAY-зарезервированное слово,
t1-тип индекса,
t2- тип элементов массива.
Тип индекса - ограниченный порядковый тип, тип элементов – любой (кроме файлового ).
Если t2 – простой тип, то исходный массив называют одномерным, иначе - многомерным.
Примеры:
const n=15;
type mas=array[1..n] of integer;
T= array['A'.. 'D'] of char;
var Y, X:mas;
temp:T;
Определение типа и переменных можно совместить:
var Y, X: array[1..15] of integer;
или
var Y, X: array[1..n] of integer;
Примеры использования переменных с индексами:
X[1]:=Y[4];
X[n div 2]:=10;
На практике обработка массивов, как правило, сводится к выполнению одних и тех же действий с каждым элементом массива.
![]() |
Вводить и выводить массивы можно только поэлементно.
Над массивами в целом допустима только операция присваивания, но массивы должны быть одинакового типа, например,
const n=10;
type mas=array[1..n] of integer;
var Y, X: mas;
Z: array[1..10] of integer;
. . .
X:=Y; {правильно}
X:= Z ; {ошибка}
Ввод.
Пусть
const n=15;
var X: array[1.. n] of integer;
. . .
1вариант 2 вариант
for i:=1 to n do
readln(X[i]);
for i:=1 to n do
begin
writeln('X[' ,i, ']=');
readln(X[i]);
end;
Пример 1. Найти максимальный элемент массива из 20 вещественных чисел.
Введем переменные:
n - количество элементов массива;
i - индекс элементов массива;
max - максимальный элемент массива.
program max_elem;
const n = 20;
var a: array [1 .. n] of real;
i: integer; max: real;
begin
writeln('Введите ', n, ' эл. массива');
for i := 1 to n do read(a[i]); {ввод}
max := a[1];
for i:= 2 to n do
if a[i] > max then max:= a[i];
writeln('Макс. элемент:', max:6:2)
end.
Пример 2. Найти сумму всех и количество отрицательных элементов в массиве из 10 целых чисел.
program sum_num1;
const n = 10;
var mas : array [1 .. n] of integer;
i, sum, num :integer;
begin
writeln('Введите ', n, ' эл. массива');
for i := 1 to n do read(a[i]);
sum := 0; num := 0;
for i := 1 to n do begin
sum := sum + a[i];
if a[i] < 0 then num:= num+1;
end;
writeln( 'Сумма элементов: ', sum);
writeln('Отрицат. элементов.', num)
end.
program sum_num2;
const n = 10;
var mas : array [1 .. n] of integer;
i, sum, num :integer;
begin
sum := 0; num := 0;
writeln('Введите ', n, ' эл. массива');
for i := 1 to n do begin
read(a[i]);
sum := sum + a[i];
if a[i] < 0 then num:= num+1;
end;
writeln( 'Сумма элементов: ', sum);
writeln('Отрицат. элементов.', num)
end.
Скачать лекцию полностью - obrabotka-odnomernykh-massivov.doc