Найти наибольший элемент вектора, кратный трём и равный своему номеру, и его номер - Pascal
Формулировка задачи:
Задан вектор из N элементов. Найти наибольшее число и его координату среди кратных трем и совпадающих со своим номером элементов и поменять его с последним элементом.
Решение задачи: «Найти наибольший элемент вектора, кратный трём и равный своему номеру, и его номер»
textual
Листинг программы
{Задан вектор из N элементов. Найти наибольшее число и его координату среди
кратных трем и совпадающих со своим номером элементов и поменять его с
последним элементом. }
const
n = 10;
var
temp, i, ik, max: integer;
a: array [1..n] of integer;
begin
for i := 1 to n do
begin
a[i] := random(n);
write(a[i]:4);
end;
writeln;
ik := 0;
for i := 1 to n do
if (a[i] mod 3 = 0) and (a[i] = i) then
begin
ik := i;
max := a[i];
end;
if ik = 0 then
begin
write('Нет чисел, удовлетворящих условию.');
exit;
end
else
begin
for i := 1 to n do
if (a[i] mod 3 = 0) and (a[i] = i) and (a[i] > max) then
begin
ik := i;
max := a[i];
end;
writeln('Максимум: ', max, ' в позиции: ', ik);
temp := a[n];
a[n] := a[ik];
a[ik] := temp;
for i := 1 to n do
write(a[i]:4);
end;
end.
Объяснение кода листинга программы
- Создается константа
nи присваивается значение 10. - Создаются переменные
temp,i,ik,maxтипа целое число и массивaтипа целое число с размером от 1 доn. - В цикле от 1 до
nгенерируются случайные числа и записываются в массивa. - Выводятся значения массива
aчерез пробел. - Создается переменная
ikи устанавливается значение 0. - В цикле от 1 до
nпроверяется, удовлетворяют ли элементы массива условиям: кратны трем и равны своему номеру. Если да, то переменнойikприсваивается значениеi, а переменнойmaxприсваивается значение a[i]. - Если
ikравно 0, то выводится сообщениеНет чисел, удовлетворящих условию.и программа завершается. - Иначе, для каждого элемента в массиве проверяется, удовлетворяют ли они условиям: кратны трем и равны своему номеру, и больше ли они, чем
max. Если да, то переменнойikприсваивается значениеi, а переменнойmaxприсваивается значение a[i]. - Выводится сообщение с максимальным числом и его позицией.
- Переменной
tempприсваивается значение последнего элемента массиваa. - Последнему элементу массива
aприсваивается значение a[ik]. - Элементу массива
a[ik]присваивается значениеtemp. - Выводятся значения массива
a.