Предмет: Информатика, автор: NaightMar

Имеется код:

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]<0 then l:= l+1
else if a[i]>0 then k:= k+1;
if l>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] < a[min] then
min := u;
if a[u] > 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.

Здесь он сравнивает положительные и отрицательные числа, ставит минимальный элемент массива на первое место и максимальный элемент на последнее место.

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


petyaGavrikov: Как-то всё очень длинно. Хотелось бы увидеть постановку задачи.
NaightMar: В общем, есть переменная с элементом массива a[min] - минимальное число в массиве, нужно добавить write(min), но у меня не выходит, либо дублируются значения (одна и та же позиция несколько раз). Делать пытался через for, но та же ситуация
NaightMar: В коде просто солянка полная, ибо несколько решений тут делается.
petyaGavrikov: Напишите точную постановку задачи. Что требуется сделать.
NaightMar: Массив из 15 элементов заполнен случайными числами в диапазоне [-20; 20]. Вывести все номера элементов, на которых встречается минимальное значение

Ответы

Автор ответа: petyaGavrikov
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]<0 then l:=l+1 
 else if a[i]>0 then k:=k+1;
if l>k then writeln('а) Отрицательных чисел больше чем положительных')
 else if k>l then writeln('а) Положительных чисел больше чем отрицательных')
  else writeln('а) Отрицательных и положительных чисел одинаково');
writeln;
writeln('б) Поставить минимальный элемент на первое место и максимальный элемента массива на последнее');
writeln;
min := 1; max := 1;
for i:=2 to n do begin
 if a[i] < a[min] then min := i;
 if a[i] > 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
а) Отрицательных чисел больше чем положительных

б) Поставить минимальный элемент на первое место и максимальный элемента массива на последнее

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

в) Номера элементов с минимальным значением:
1 5 

NaightMar: Всё хорошо работает, спасибо! Только вопрос есть небольшой: почему в таких случаях лучше использовать const, когда array задаётся точно от 1 до 15?
petyaGavrikov: Чтобы в случае необходимости можно было легко изменить количество элементов. Профессионалы делают, как правило, именно так. )
NaightMar: Хорошо, понял. Многому ещё придётся научиться) Благодарю за помощь
petyaGavrikov: На здоровье. Успехов!
Похожие вопросы
Предмет: Литература, автор: annababij701
Предмет: Литература, автор: artemonoffic
Помогите пожалуйста
Тест по повести В. О. Богомолова «Иван». 7 класс.



1.Назовите настоящую фамилию героя: 1) Бондарев 2) Буслаев 3) Буслов.

2.Сколько раз Иван ходил на задания ( при рассказчике):
1) 1
2) 2
3) много раз

3.Почему он не хотел отправки в тыл:
1) не любил учиться
2)из-за ненависти к фашистам
3) из-за мести фашистам

4.О каком подарке просил рассказчика мальчик:
1) о бинокле
2) о ноже
3) о блокноте

5.Почему Маслов рассказчика не принимал всерьез:
1) тот был временным – по обязанностям
2)был молод
3) и то, и другое верно

6.Почему Катасонов не проводил на задание Ивана
1) погиб
2)исполнял другой приказ
3) вместо него рассказчик попросился в дозор

7.Какова судьба Холина?
1) остался служить в армии,
2) геройски погиб при исполнении
3) отправился в тыл.

8.Где произошла «последняя встреча» рассказчика с Иваном:
1) во время просмотра архивных документов СС
2) когда мальчик уходил на задание?

9.Почему повесть называется «Иван»:
1)из-за взрослости героя
2)герой сам так себя называет
3) таких, как Иван было много.
Предмет: Химия, автор: dimashhdh