Задачи по Pascal. Найти номер наименьшего элемента в массиве.

Задачи по Pascal

Условие задачи : Найти номер наименьшего элемента в массиве, заданного датчиком случайных чисел на интервале [-20, 25]. Размер произвольный (Язык Pascal)

Сложность : легкая .

Решение задачи :

Для начала продумаем наше решение. Мы создадим массив, затем заполним его случайными числами.

Дальше присвоим переменной min, в которой у нас будет храниться наименьший элемент, значение первого элемента массива, а переменной number в которой у нас будет храниться номер наименьшего элемента, присвоим номер первого элемента, т.е. один , а потом уже во втором цикле будем эту переменную min будем сравнить со всеми остальными числами.

Нам понадобятся следующие переменные :

  1. Переменная mass — для массива
  2. Переменная min — для минимального элемента массива
  3. Переменная number — для номера минимального элемента массива
  4. Переменная i — для цикла for
  5. Переменная 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.

cyber
Оцените автора
CyberLesson | Быстро освоить программирование Pascal и C++. Решение задач Pascal и C++
Добавить комментарий