Задача №1 "Обмен двух чисел в массиве"
Задание:
Заполните массив из 10 элементов случайными числами в диапазоне от 1 до 100. Найдите минимальное число. Поменяйте местами минимальный и первый элементы массива. Выведите на экран исходный массив и результат.
Заполните массив из 10 элементов случайными числами в диапазоне от 1 до 100. Найдите минимальное число. Поменяйте местами минимальный и первый элементы массива. Выведите на экран исходный массив и результат.
Program Obmen;
Var
J, MinJ : Integer;
MinX : Real;
MasX : Array[1..10] of Real;
begin
writeln('Задача 1');
for J := 1 to 10 do MasX[J] := Random(100)+1; { Так как функция Random с параметром 100 возвращает значения от 0 до 99, то к результату прибавляется 1 }
writeln('Исходный массив');
for J := 1 to 10 do write(MasX[J]:4);
MinX := MasX[1]; { Предположим, что в первой ячейке массива находится минимальное значение }
MinJ := 1; { Переменная содержит индекс ячейки, в которой находится минимальный элемент }
for J := 2 to 10 do { Пройти по массиву от 2-го и до последнего элемента }
if MinX > MasX[J] then begin { Если текущее значение минимума оказалось больше, чем значение в очередной ячейке массива, то следует обновить значение минимума и номера ячейки, содержащей минимум }
MinX := MasX[J];
MinJ := J;
end;
MasX[MinJ] := MasX[1]; { Поменять местами минимальный и первый элементы массива }
MasX[1] := MinX;
writeln;
writeln('Результат');
for J := 1 to 10 do write (MasX[J]:4);
end.
Var
J, MinJ : Integer;
MinX : Real;
MasX : Array[1..10] of Real;
begin
writeln('Задача 1');
for J := 1 to 10 do MasX[J] := Random(100)+1; { Так как функция Random с параметром 100 возвращает значения от 0 до 99, то к результату прибавляется 1 }
writeln('Исходный массив');
for J := 1 to 10 do write(MasX[J]:4);
MinX := MasX[1]; { Предположим, что в первой ячейке массива находится минимальное значение }
MinJ := 1; { Переменная содержит индекс ячейки, в которой находится минимальный элемент }
for J := 2 to 10 do { Пройти по массиву от 2-го и до последнего элемента }
if MinX > MasX[J] then begin { Если текущее значение минимума оказалось больше, чем значение в очередной ячейке массива, то следует обновить значение минимума и номера ячейки, содержащей минимум }
MinX := MasX[J];
MinJ := J;
end;
MasX[MinJ] := MasX[1]; { Поменять местами минимальный и первый элементы массива }
MasX[1] := MinX;
writeln;
writeln('Результат');
for J := 1 to 10 do write (MasX[J]:4);
end.
Замечание:
В процедуре вывода writeln используется форматированный вывод переменной. Например, MasX[J] обозначает, что для вывода значения переменной будет использоваться 4 позиции, т.е. в случае однозначного числа, перед ним будет добавлено три пробела, в случае двухзначного числа - добавлено два пробела. Таким образом, числа из одной строки находятся под соответствующими числами другой строки. При этом если число будет содержать 5 или больше цифр, то оно будет выведено полностью и тогда произойдёт сдвиг колонок.
В процедуре вывода writeln используется форматированный вывод переменной. Например, MasX[J] обозначает, что для вывода значения переменной будет использоваться 4 позиции, т.е. в случае однозначного числа, перед ним будет добавлено три пробела, в случае двухзначного числа - добавлено два пробела. Таким образом, числа из одной строки находятся под соответствующими числами другой строки. При этом если число будет содержать 5 или больше цифр, то оно будет выведено полностью и тогда произойдёт сдвиг колонок.