Условие задачи : Найти номер наименьшего элемента в массиве, заданного датчиком случайных чисел на интервале [-20, 25]. Размер произвольный (Язык Pascal)
Сложность : легкая .
Решение задачи :
Для начала продумаем наше решение. Мы создадим массив, затем заполним его случайными числами.
Дальше присвоим переменной min, в которой у нас будет храниться наименьший элемент, значение первого элемента массива, а переменной number в которой у нас будет храниться номер наименьшего элемента, присвоим номер первого элемента, т.е. один , а потом уже во втором цикле будем эту переменную min будем сравнить со всеми остальными числами.
Нам понадобятся следующие переменные :
- Переменная mass — для массива
- Переменная min — для минимального элемента массива
- Переменная number — для номера минимального элемента массива
- Переменная i — для цикла for
- Переменная n — для количества элементов массива
До решения задачи нам надо создать свой тип данных для массива , зачем читайте ( тут )
Начнем мы с каркаса нашей программы :
type
massiv = array[1..100] of integer;
var
mass : massiv;
n , i , number , min : integer;
begin
clrscr;
randomize;
write('Введите количество элементов : '); readln(n);
end.
Тут мы создали свой тип данных объявили переменные, включили генератор случайных чисел, зачем читайте ( тут ) и попросили пользователя ввести кол-во элементов.
Дальше давайте заполним наш массив случайными числами и выведем их на экран:
for i:=1 to n do
begin
mass[i] := random(46) - 20;
write(mass[i], ' | ');
end;
Теперь как я и говорил переменным min и number присвоим значения первого элемента, т.е. само число и номер :
min := mass[1]; number := 1 ;
В переменной min у нас число первого элемента массива, а в number единица, т.е. номер первого элемента массива.
Дальше второй цикл, он у нас будет от 2 до n , т.к. сравнивать первое число с первым смысла нет, но если поставить один, то нечего не измениться :
for i:=2 to n do
begin
if (mass[i] < min) then
begin
min := mass[i];
number := i;
end;
end;
Т.е. мы берем сначала второй элемент массива, и сравниваем его с переменной min и если min больше , то меняем значение, и номер элемента, и так пока цикл не кончится.
Всё решение задачи Pascal :
uses crt;
type
massiv = array[1..100] of integer;
var
mass : massiv;
n , i , number , min : integer;
begin
clrscr;
randomize;
write('Введите количество элементов : '); readln(n);
for i:=1 to n do
begin
mass[i] := random(46) - 20;
write(mass[i], ' | ');
end;
min := mass[1];
number := 1 ;
for i:=2 to n do
begin
if (mass[i] < min) then
begin
min := mass[i];
number := i;
end;
end;
writeln('Наименьший номер : ', number);
readln;
end.
