Условие задачи : Найти номер наименьшего элемента в массиве, заданного датчиком случайных чисел на интервале [-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.