Другие языки программирования и технологии

помогите решить программу на паскале

в одномерном массиве состоящие из n вещественных элементов вычислить: 1)количество элементов массива,равных нулю; 2)сумму элементов массива,расположенных после минимального элемента.упорядочить элементы по возрастанию модулей
program N58204092;
var a:array[1..100] of real;
n,i,j,imin,nzero:integer;
s,tmp:real;
begin
write('Введите размер массива: ');
readln(n);
writeln('Исходный массив: ');
randomize;
nzero := 0;
for i := 1 to n do
begin
a[ i ] := (random(201) - 100) / 10;
write(a[ i ]:8:1);
if (i = 1) or (a[ i ] < a[ imin ]) then imin := i;
if a[ i ] = 0 then inc(nzero); {или nzero := nzero + 1;}
end;
writeln;
writeln('Количество нулевых элементов ',nzero);
s := 0;
for i := imin + 1 to n do
s := s + a[ i ];
writeln('Сумма элементов после минимального ',s:0:1);
{Сортировка массива методом выбора}
for i := 1 to n-1 do
begin
for j := i to n do
if (j = i) or (abs(a[ j ]) < abs(a[ imin ])) then imin := j;
tmp := a[ i ];
a[ i ] := a[ imin ];
a[ imin ] := tmp;
end;
writeln('Упорядоченный массив: ');
for i := 1 to n do
write(a[ i ]:8:1);
readln
end.

Но при использовании генератора псевдослучайных чисел, вероятность появления нулевого элемента мала и чаще всего их количество будет равно нулю.
Если вас это не устраивает, сделайте ввод элементов массива с клавиатуры:
write('Введите размер массива: ');
readln(n);
nzero := 0;
writeln('Введите элементы массива: ');
for i := 1 to n do
begin
write('A[',i,']: ');
readln(a[ i ]);
if (i = 1) or (a[ i ] < a[ imin ]) then imin := i;
if a[ i ] = 0 then inc(nzero); {или nzero := nzero + 1;}
end;

P.S. Мне интересно, на каком это курсе так массово повалили однотипные задачи на обработку одномерных массивов?
Владимир Субботин
Владимир Субботин
51 590
Лучший ответ
1)
count:=0;
for I;=1 to n do
if mas[ i] = 0 then inc(count);
дальше сама) нашла мин элемент. с его номера до конца просумировала. потом уорядочивание