Решение:
const M = 10;
var a : array [1..M] of integer;
i,max, odd : integer;
begin
odd := 0;
{Заполнение массива}
for i := 1 to M do
begin
write('Input a[',i,']:' );
readln(a[i]);
end;
{Вывод массива на экран}
for i := 1 to M do
write(a[i]:2,' ');
writeln;
{Поиск максимального в массиве}
max := a[1];
for i := 2 to M do
if (a[i] > max) then
max := a[i];
writeln('Максимальный элемент массива: ',max);
{Поиск всех нечетных чисел в массиве и замена их на 1}
for i := 1 to M do
if (a[i] mod 2 = 1) then
begin
a[i] := 1;
odd := 666;
end;
{Вывод сообщения об отсутствии нечетных чисел}
if (odd = 0) then
writeln('В массиве нечетных чисел нет');
{Вывод преобразованного массива}
for i := 1 to M do
write(a[i]:2,' ');
writeln;
readln;
end.
В фигурных скобках - комментарии, из программы можно удалять безболезненно. M - количество элементов в массиве.
Контрольные примеры для массива из 10 элементов:
1) Массив "1 2 3 4 5 6 7 8 9 10" будет преобразован в "1 2 1 4 1 6 1 8 1 10", максимальный элемент (до преобразования) 10
2) Массив " 2 2 2 2 2 2 2 2 2 2" будет преобразован в " 2 2 2 2 2 2 2 2 2 2", на экран будет выведено сообщение "в массиве нечетных чисел нет", максимальный элемент 2
// PascalABC.NET 3.3, сборка 1611 от 06.01.2018
// Внимание! Если программа не работает, обновите версию!
begin
var k:= ReadInteger('k =');
var (a,b) :=(1,1);
for var i := 3 to k do
(a,b):= (b,a+b);
Writeln('a) ', b);
(a,b) :=(1,1);
var sum:= 2;
var n:= ReadInteger('n =');
Write('б) 1, 1');
for var i:= 3 to n do
begin
(a,b):= (b,a+b);
Write(', ', b);
sum+= b;
end;
Writeln;
Writeln('в) ', sum.IsEven?'YES':'NO');
end.
Смотря что Вы называете циклом. По установившейся терминологии любой цикл состоит из заголовка цикла (по строению которого циклы часто и именуют) и тела цикла. В языке паскаль в заголовке цикла с предусловием стоит ключевое слово while и ключевое слово цикла с параметром for стоять уже не может. Но в теле цикла, которое может иметь любое содержимое, цикл for, конечно же, может встречаться.
А вот язык Алгол, на базе которого Н.Вирт сконструировал свой Паскаль, мог в заголовке цикла содержать очень много всего и, в том числе, смесь while с for:
for x:=p0 step h1 until q-1, q+1 step h2 until t, t+0.17 step h3 while cos(x/2)<0.85 do ...
Но Н.Вирт решил, что такой цикл неэффективен и... оставил от него жалкие ошметки. Возможно, компилятору "стало проще жить", но зато программисты в Паскале лишились возможности не только писать в цикле вещественные значения, но и вынуждены менять целочисленные только на 1 или -1.
Вес одной секунды стерео-файла: 48000*24*2 бит
Вес одной секунды моно-файла: 24000*16*1 бит
(48000*24*2):(24000*16*1) = (2*24*2) : 16 = 6.
Исходный файл больше в 6 раз.