Примеры задач на массивы

Массив представляет собой сложный тип данных, включающий список значений, принадлежащих одному типу. В Pascal можно задавать как одномерные, так и двумерные массивы.

Рассмотрим задачи различных уровней сложности на одномерные массивы.

Элементы массива, которые больше предыдущего

Задача

Вывести элементы числового массива, которые больше, чем элементы, стоящие перед ними.

Например, дан массив [3, 9, 8, 4, 5, 1]. Следует вывести числа 9 и 5, так как перед ними стоят соответственно числа 3 и 4, которые меньше их.

Решение

Для решения задачи нужно каждый элемент сравнить с последующим или предыдущим. Если перебор идет с первого элемента, то должен продолжаться до предпоследнего. В таком случае выводятся элементы с индексом i+1 (что реализовано в коде ниже) в случае совпадения условия. Если перебор идет со второго элемента до последнего, то выводится элемент под индексом i.

const

N = 20;

var

a: array[1..N] of integer;

i: byte;

begin

randomize;

for i:=1 to N do begin

a[i] := random(100);

write(a[i]:4);

end;

writeln;

writeln('Элементы больше предыдущего: ');

for i:=1 to N-1 do

if a[i] < a[i+1] then

write(a[i+1]:4);

writeln;

end.


Разделить элементы массива на максимальный

Задача

Все элементы массива поделить на значение наибольшего элемента этого массива.

Похожие задачи

Поменять местами минимальный и максимальный элементы массива

Решение

Задача состоит из двух подзадач:

  1. Поиск максимума.

  2. Деление на него элементов массива.

const

M = 10;

var

C: array[1..M] of word;

maxC: word;

i: byte;

begin

randomize;

maxC := 0;

write('Исходный массив: ');

for i := 1 to M do begin

C[i] := random(1000);

write (C[i]:4);

if maxC < C[i] then

maxC := C[i];

end;

writeln;

writeln('Максимум: ', maxC);

write('Частные: ');

for i := 1 to M do begin

write (C[i]/maxC:6:2);

end;

writeln;

end.


Первый положительный элемент массива

Задача

Найти номер и значение первого положительного элемента массива.

Решение

Данная задача решается просто, если использовать оператор break. Массив перебирается в цикле. Каждый элемент проверяется на условие "больше нуля". Как только оно будет выполнено, элемент следует вывести на экран, а цикл прервать.

const N = 20;

var

arr: array[1..N] of integer;

i: byte;

begin

randomize;

for i:=1 to N do begin

arr[i] := random(100) - 75;

write(arr[i]:4);

end;

writeln;

for i:=1 to N do

if arr[i] > 0 then begin

writeln(i, ' ', arr[i]);

break;

end;

end.


Есть и другие задачи на массивы самых разнообразных уровней сложности.

Подробнее о них можно узнать в этом видеоролике.