При накапливании суммы переменную необходимо обнулить, а при накапливании произведения – присвоить 1.
Задача.
Дан массив a(n). Найти максимальный элемент массива и определить его номер.
Таблица идентификаторов
№
Наименование переменной
Обозначения в программе
Имя массива
a
Размер массива
n
Индекс массива
i
Максимальный элемент
max
Номер максимального элемента
nmax
program mas_2;
var
a: array [1…100] of real;
i,n,nmax: integer;
max: real;
begin
writeln ('введите размер массива n<=100');
readln (n);
writeln ('введите элементы массива');
for i:=1 to n do
readln (a[ i ] );
{за максимальный принимается первый элемент массива}
max:=a[1]; nmax:=1;
for i:=1 to n do
If a[i]>max then
begin
max:=a[i];
nmax:=i;
end;
writeln ('max =', max, ' N=', nmax);
readln;
end.
Задача.
Задан массив целых чисел. Отсортировать элементы одномерного массива по возрастанию.
Существует много способов сортировки элементов массива
Таблица идентификаторов
№
Наименование переменной
Обозначения в программе
Имя массива
a
Размер массива
n
Индекс массива
i
Флажок
flag
Дополнительная переменная для обмена местами сосодних элементов
p
program mas_3;
uses
crt;
var
a: array [1…100] of integer;
f, n, i,p : integer;
begin
clrscr;
writeln ('введите размер массива n<=100');
readln (n);
writeln ('введите элементы массива');
for i:=1 to n do
readln (a[i]);
repeat
f:=0;
for i:=1 to n-1 do
if a[ i ]>a[i+1] then
begin
p: =a[ i ];
a[ i ]:=a[i+1];
a[i+1]:=p; f:=1;
end;
until f=0;
for i:=1 to n do writeln (a[ i ]);
readln;
end.
В данном алгоритме используются вложенные циклы.
Внутренний цикл (for…to…do) – позволяет один раз пройтись по массиву, сравнивая соседние элементы. В случае, если предыдущий элемент (a[ i ]) окажется больше последующего (a[i+1]), элементы меняются местами через дополнительную переменную p.
Внешний цикл(repeat…until) – повторяется до тех пор, пока массив не будет упорядочен.
В программе применяется переменная – флажок.
f =1 – признак того, что два соседних элемента менялись местами, массив еще не упорядочен.
f =0 – признак того, что массив упорядочен.
Пример программы обработки одномерного массива
Задача.
Задан одномерный массив целых чисел. Найти количество нечетных чисел среди элементов массива
2. Таблица идентификаторов
№
Наименование переменной
Обозначения в программе
Имя массива
a
Размер массива
n
Индекс массива
i
Количество нечетных чисел
kol
3. Листинг программы
program lab5;
uses
crt;
var
a: array [1…100] of integer;
n, i,kol : integer;
begin
clrscr;
writeln ('Введите размер массива n<=100');
readln (n);
writeln ('Введите элементы массива');
for i:=1 to n do
readln (a[ i ]);
kol:=0;
for i:=1 to n do
if odd(a[ i ]) then kol:=kol+1;
writeln(‘Количество нечетных = ’, kol);
readln;
end.
Вопросы для самоконтроля
Что такое массив?
Будут ли сохранены данные массива в памяти компьютера после окончания работы программы?
Что такое индекс массива?
Какого типа должны быть переменные, являющиеся индексами массива?
Как можно задавать размер массива?
Может ли реальное количество элементов в массиве быть меньше, чем указано при описании?
Может ли реальное количество элементов в массиве быть больше, чем указано при описании?