Имеется код:var a: array[1..15] of integer; i,k,l,z,b,c,qu:integer;

Имеется код:

var a: array[1..15] of integer;
i,k,l,z,b,c,qu:integer;
min,max,u:byte;
begin
randomize;
l:= 0;
k:= 0;
for i:= 1 to 15 do
a[i]:=random(20,40);
writeln;
for i:= 1 to 15 do
write(a[i]:4);
writeln;
writeln;

for i:= 1 to 15 do
if a[i]lt;0 then l:= l+1
else if a[i]gt;0 then k:= k+1;
if lgt;k then writeln('а) Отрицательных чисел больше чем положительных')
else if l else writeln('а) Отрицательных и положительных чисел идиентично');
writeln;
writeln('б) Поставить малый элемент на первое место и максимальный элемента массива на заключительнее');
writeln;
min := 1;
max := 1;
for u:=1 to 15 do begin
if a[u] lt; a[min] then
min := u;
if a[u] gt; a[max] then
max := u;
end;
c:=a[1];
a[1]:=a[min];
a[min]:=c;
b:=a[15];
a[15]:=a[max];
a[max]:=b;
for i:= 1 to 15 do
write(a[i]:4);
writeln;
writeln;

end.

Здесь он сопоставляет положительные и отрицательные числа, ставит малый элемент массива на 1-ое место и наибольший элемент на последнее место.

Нужно реализовать вывод всех номеров частей, на которых встречается минимальное значение. (элемент - a[min], его номер в массиве - min).
Я уже запутался что-то мальца, помогите, пожалуйста, дописать теснее этот код.

Задать свой вопрос
Андрухненко Антон
Как-то всё очень длинно. Хотелось бы увидеть постановку задачи.
Василиса Гментухова
В общем, есть переменная с элементом массива a[min] - малое число в массиве, нужно добавить write(min), но у меня не выходит, или дублируются значения (одна и та же позиция несколько раз). Делать пробовал через for, но та же ситуация
Агата Чанба
В коде просто солянка полная, ибо несколько решений здесь делается.
Ангелина Таршахани
Напишите точную постановку задачи. Что нужно сделать.
Елизавета Ковшарова
Массив из 15 частей заполнен случайными числами в спектре [-20; 20]. Вывести все номера частей, на которых встречается малое значение
1 ответ
Const n=15;
var a: array[1..n] of integer;
i,k,l,c:integer;
min,max:byte;
begin
randomize;
for i:= 1 to n do
 begin
 a[i]:=random(-20,20);
 write(a[i]:4);
 end;
writeln;

l:=0; k:=0;
for i:= 1 to n do
 if a[i]lt;0 then l:=l+1 
 else if a[i]gt;0 then k:=k+1;
if lgt;k then writeln('а) Отрицательных чисел больше чем положительных')
 else if kgt;l then writeln('а) Положительных чисел больше чем отрицательных')
  else writeln('а) Отрицательных и положительных чисел идиентично');
writeln;
writeln('б) Поставить малый элемент на первое место и наибольший элемента массива на заключительное');
writeln;
min := 1; max := 1;
for i:=2 to n do begin
 if a[i] lt; a[min] then min := i;
 if a[i] gt; a[max] then max := i;
end;
c:=a[1]; a[1]:=a[min]; a[min]:=c;
c:=a[n]; a[n]:=a[max]; a[max]:=c;
for i:= 1 to n do write(a[i]:4);
writeln;
writeln; 
writeln('в) Номера частей с наименьшим значением:');
for i:= 1 to n do 
 if a[i]=a[1] then write(i,' '); // Малый элемент поставлен на первое место!
writeln; 
end.

Пример (для частей из спектра [-10; 10]):
   6  -6   6  -9  -9  -3  -7   9  -3   9   6  -8   7  -3   6
а) Отрицательных чисел больше чем положительных

б) Поставить малый элемент на 1-ое место и наибольший элемента массива на заключительнее

  -9  -6   6   6  -9  -3  -7   6  -3   9   6  -8   7  -3   9

в) Номера элементов с наименьшим значением:
1 5 
Игорь Бочтарев
Всё превосходно работает, спасибо! Только вопрос есть небольшой: почему в таких случаях лучше использовать const, когда array задаётся точно от 1 до 15?
Larisa Adamija
Чтоб в случае необходимости можно было легко поменять количество частей. Мастера делают, как верховодило, именно так. )
Аля Федунишина
Превосходно, сообразил. Многому ещё придётся выучиться) Благодарю за помощь
Владимир Бадер
На здоровье. Фурроров!
, оставишь ответ?
Имя:*
E-Mail:


Добро пожаловать!

Для того чтобы стать полноценным пользователем нашего портала, вам необходимо пройти регистрацию.
Зарегистрироваться
Создайте собственную учетную запить!

Пройти регистрацию
Авторизоваться
Уже зарегистрированны? А ну-ка живо авторизуйтесь!

Войти на сайт