Var a,max,max2: real; i: integer; begin writeln('введите скорость'); for i: =1 to 7 do begin readln(a); if a> max then
if max> max2 then
max2: =a
else
max: =a;
end;
writeln(max: 4: 2,' ',max2: 4: 2);
end.
или через массив
в массив заносим 2 элемента. в цикле вводим остальные элементы. в массиве находим минимальный и, если введенный следующий элемент (b) больше минимального массива, то записываем b в массив на место наименьшего.
в результате в массиве два максимальных эл-та
var
a: array[1..2]of integer;
n,i,min,j,m,b: integer;
begin
readln(n);
readln(a[1],a[2]);
for i: =3 to n do
begin
readln(b); min: =a[1]; m: =1;
for j: =1 to 2 do
if a[j]< min then
begin
min: =a[j];
m: =j;
end;
if b> min then
a[m]: =b;
end;
for i: =1 to 2 do
writeln(a[i]);
end.
mzubenko6
16.09.2020
Рассмотрим, что делает эта программа. c : = 0; // начальное значение счётчика for i : = 1 to 9 do // цикл по i if a[i - 1] < a[i] then begin // если текущий элемент больше предыдущего c : = c + 1; // то увеличиваем счётчик на 1 t : = a[i]; // и меняем текущий элемент местами с предыдущим a[i] : = a[i - 1]; a[i - 1] : = t end; последние три строчки перед end - обычный алгоритм обмена значениями между двумя переменными (t = a; a = b; b = t). итак, моделируем, что делает программа и считаем число обменов. 0) 6 9 7 2 1 5 0 3 4 8 - исходный массив 1) 6 9 7 2 1 5 0 3 4 8 -> 9 6 7 2 1 5 0 3 4 8 обмен2) 9 6 7 2 1 5 0 3 4 8 -> 9 7 6 2 1 5 0 3 4 8 обмен3) 9 7 6 2 1 5 0 3 4 8 ок4) 9 7 6 2 1 5 0 3 4 8 ок5) 9 7 6 2 1 5 0 3 4 8 -> 9 7 6 2 5 1 0 3 4 8 обмен6) 9 7 6 2 5 1 0 3 4 8 ок7, 8, 9) ноль будет "всплывать" в конец, 3 обменавсего будет 6 обменов, c = 6.
if max> max2 then
max2: =a
else
max: =a;
end;
writeln(max: 4: 2,' ',max2: 4: 2);
end.
или через массивв массив заносим 2 элемента. в цикле вводим остальные элементы. в массиве находим минимальный и, если введенный следующий элемент (b) больше минимального массива, то записываем b в массив на место наименьшего.
в результате в массиве два максимальных эл-та
var
a: array[1..2]of integer;
n,i,min,j,m,b: integer;
begin
readln(n);
readln(a[1],a[2]);
for i: =3 to n do
begin
readln(b); min: =a[1]; m: =1;
for j: =1 to 2 do
if a[j]< min then
begin
min: =a[j];
m: =j;
end;
if b> min then
a[m]: =b;
end;
for i: =1 to 2 do
writeln(a[i]);
end.