Найти наименьший среди тех элементов одномерного массива, что лежит вне интервала (c,d); - Pascal ABC
Формулировка задачи:
Задача: ''Составьте программу отыскания наименьшего среди тех элементов одномерного массива A(N), что лежит все интервала (c,d);'' Листинг для ТП 7.0 просто пишу в ABC вот мой листинг
Заранее спасибо!
Листинг программы
- program z1;
- var
- a:array [1..100] of integer;
- c,b,d,n,min,k,i:integer;
- begin
- write('Vvedite interval c,d:');
- readln(c,d);
- write('Vvedite razmernost massiva n=');
- readln(n);
- if c>d then
- b:=c;
- c:=d;
- d:=b;
- For i:=1 to n do
- begin
- write('a[',i,']=');
- readln(a[i]);
- end;
- min:=a[1];
- For i:=1 to n do
- begin
- if a[i]>=c then
- begin
- if a[i]>d then {При значении интервала 4 8 и указании 4 элем массива 4 8 8 8 пишет мин элем 4 хотя токого быть не должно 8>8 не должен пo then идти}
- k:=1;
- end
- else
- if a[i]<d then
- k:=1;
- if k=1 then
- if a[i]<min then
- min:=a[i];
- end;
- if k=1 then
- write('min elem=',min)
- else
- write('ne vhod');
- readln;
- end.
Решение задачи: «Найти наименьший среди тех элементов одномерного массива, что лежит вне интервала (c,d);»
textual
Листинг программы
- program z1;
- uses crt; {Подключение модуля экрана}
- var
- a:array [1..100] of integer;
- c,b,d,n,min,s,k,i:integer;
- begin
- clrscr;{Очистка экрана}
- write('Введите интервал c:');
- readln(c); {Вводится интервал c}
- write('Введите интервал d:');
- readln(d);{Вводится интервал d}
- write('Введите размерность массива n=');
- readln(n); {Вводится размерность массива}
- if c>d then
- begin {Проверка интервала с>d и смена значений с=d и d=c}
- b:=c;
- c:=d;
- d:=b;
- end;
- s:=0;{Присваивание начального значения min}
- For i:=1 to n do
- begin
- write('a[',i,']=');
- readln(a[i]); {Ввод массива}
- end;
- For i:=1 to n do
- begin
- if (a[i]<c) or (a[i]>d) then {Выполнение определенного логического условия}
- begin
- k:=1;
- s:=s+1;{Счетчик для нахождения первого элемента не входящего в интервал(c,d)}
- if s=1 then
- min:=a[i];{Присваивание min значение первого элемента массива}
- if a[i]<min then {Поиск min значения}
- min:=a[i];
- end;
- end;
- if k=1 then {Выполнение определенного логического условия для вывода решения}
- write('Минимальный элемент не входящий в интервал(',c,',',d,'):',min)
- else
- write('Все элементы входят в интервал');
- readln; {Пауза по завершению задачи}
- end.
Объяснение кода листинга программы
- В программе объявлены переменные a, c, b, d, n, min, s, k, i, которые будут использоваться для выполнения поставленной задачи.
- Пользователю предлагается ввести интервал c: и d:, а также размерность массива n=.
- Проверяется, что c>d. Если это условие выполняется, то значения переменных c, d и b меняются местами.
- Переменной s присваивается начальное значение 0.
- Циклом for перебираются все элементы массива a[1..n].
- Внутри цикла выполняется проверка: если a[i] меньше c или больше d, то переменная k получает значение 1, счетчик s увеличивается на 1, и минимальное значение присваивается a[i].
- Если a[i] меньше текущего min, то min обновляется.
- По завершении внутреннего цикла проверяется, было ли найдено минимальное значение, не входящее в интервал (c,d). Если да, то выводится сообщение с этим значением.
- Если k=1, то выводится сообщение
Все элементы входят в интервал
. - Программа завершается после ввода данных и выполнения всех операций.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д