const max_size = 100;
var a: array[1..max_size] of real;
i, n: integer;
f: boolean;
begin
read(n); {Во всех задачах считаю, что n <= max_size}
for i := 1 to n do
read(a[i]);
f := true;
for i := 2 to n do
f := f and (a[i] > a[i - 1]);
write(f)
end.
Пример ввода:
4
1 2 3 4
Пример вывода:
TRUE
i, n, imax, imin: integer;
temp: real;
read(n);
imax := 1;
imin := n;
if a[i] > a[imax] then
imax := i;
for i := n - 1 downto 1 do
if a[i] < a[imin] then
imin := i;
temp := a[imax];
a[imax] := a[imin];
a[imin] := temp;
write(a[i], ' ');
4 2 3 1
var x: array[1..max_size] of integer;
i, n, temp: integer;
read(x[i]);
for i := 1 to n div 2 do
temp := x[i];
x[i] := x[n - i + 1];
x[n - i + 1] := temp;
end;
write(x[i], ' ');
4 3 2 1
i, n, sum: integer;
if i = x[i] then
sum := sum + x[i];
write(sum)
10
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.
const max_size = 100;
var a: array[1..max_size] of real;
i, n: integer;
f: boolean;
begin
read(n); {Во всех задачах считаю, что n <= max_size}
for i := 1 to n do
read(a[i]);
f := true;
for i := 2 to n do
f := f and (a[i] > a[i - 1]);
write(f)
end.
Пример ввода:
4
1 2 3 4
Пример вывода:
TRUE
Задача 2const max_size = 100;
var a: array[1..max_size] of real;
i, n, imax, imin: integer;
temp: real;
begin
read(n);
for i := 1 to n do
read(a[i]);
imax := 1;
imin := n;
for i := 2 to n do
if a[i] > a[imax] then
imax := i;
for i := n - 1 downto 1 do
if a[i] < a[imin] then
imin := i;
temp := a[imax];
a[imax] := a[imin];
a[imin] := temp;
for i := 1 to n do
write(a[i], ' ');
end.
Пример ввода:
4
1 2 3 4
Пример вывода:
4 2 3 1
Задача 3const max_size = 100;
var x: array[1..max_size] of integer;
i, n, temp: integer;
begin
read(n);
for i := 1 to n do
read(x[i]);
for i := 1 to n div 2 do
begin
temp := x[i];
x[i] := x[n - i + 1];
x[n - i + 1] := temp;
end;
for i := 1 to n do
write(x[i], ' ');
end.
Пример ввода:
4
1 2 3 4
Пример вывода:
4 3 2 1
Задача 4const max_size = 100;
var x: array[1..max_size] of integer;
i, n, sum: integer;
begin
read(n);
for i := 1 to n do
read(x[i]);
for i := 1 to n do
if i = x[i] then
sum := sum + x[i];
write(sum)
end.
Пример ввода:
4
1 2 3 4
Пример вывода:
10