Примеры программ на Borland Pascal, ABC Pascal и др.
Компьютерные Технологии в Обучении
  256ПрограммированиеPascalОбмен двух чисел в массиве
Информационный блок
Рекламный блок

Тема "Циклы и массивы". Программа на языке Pascal "Обмен двух чисел в массиве"

Задачи по информатике и основам программирования на языке Паскаль. Два варианта задачи - нахождение минимального или максимального значения. Также во второй задаче есть дополнительная проверка условия (оператор if).

Задача №1 "Обмен двух чисел в массиве"

Задание:
Заполните массив из 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.
Замечание:
В процедуре вывода writeln используется форматированный вывод переменной. Например, MasX[J] обозначает, что для вывода значения переменной будет использоваться 4 позиции, т.е. в случае однозначного числа, перед ним будет добавлено три пробела, в случае двухзначного числа - добавлено два пробела. Таким образом, числа из одной строки находятся под соответствующими числами другой строки. При этом если число будет содержать 5 или больше цифр, то оно будет выведено полностью и тогда произойдёт сдвиг колонок.

Задача №2 "Обмен двух чисел в массиве"

Задание:
Введите количество элементов массива в диапазоне от 5 до 20. Если введено не допустимое значение, прекратите выполнение программы. Заполните массив случайными числами в диапазоне от -50 до 50. Найдите максимальное число. Поменяйте местами максимальный и первый элементы массива. Выведите на экран исходный массив и результат.
Program Obmen2;
Var
J, N, MaxJ : Integer;
MaxX : Real;
MasX : Array[1..20] of Real;
begin
writeln('Задача 2');
write('Введите количество элементов массива (от 5 до 20) ');
readln(N);
if (5>N) OR (N>20) then begin { Проверить правильность ввода количества элементов массива }
writeln('Количество элементов массива должно быть от 5 до 20');
exit; { Завершить выполнение программы }
end;
writeln('Исходный массив');
for J := 1 to N do begin
MasX[J] := Random(101)-50; { Так как функция Random с параметром 101 возвращает значения от 0 до 100, то вычитая 50, получим диапазон от -50 до 50 }
write(MasX[J]:4);
end;
MaxX := MasX[1]; { Предположим, что в первой ячейке массива находится максимальное значение }
MaxJ := 1; { Переменная содержит индекс ячейки, в которой находится максимальный элемент }
for J := 2 to N do
if MaxX < MasX[J] then begin { Если текущее значение максимума оказалось меньше, чем значение в очередной ячейке массива, то следует обновить значение максимума и номера ячейки, содержащей максимум }
MaxX := MasX[J];
MaxJ := J;
end;
MasX[MaxJ] := MasX[1]; { Поменять местами максимальный и первый элементы массива }
MasX[1] := MaxX;
writeln;
writeln('Результат');
for J := 1 to N do write (MasX[J]:4);
end.
Рекламный блок