С одномерным массивом, состоящим из n вещественных элементов, произвести следующие...

0 голосов
47 просмотров

С одномерным массивом, состоящим из n вещественных элементов, произвести следующие операции:
1) найти номер минимального элемента массива;
2) вычислить сумму элементов массива, расположенных между первым и вторым отрицательными элементами;
3) преобразовать массив таким образом, чтобы сначала располагались, все элементы, модуль которых не превышает 1, а потом – все остальные.
Примечание: Размеры массивов задаются именованными константами. Все операции над массивами выполняются отдельными процедурами и функциями в том порядке, в котором они описаны в задании. Элементы массивов задаются одним из двух способов: генерация случайным образом или ввод с клавиатуры. Способ заполнения массива выбирается пользователем. Реальную размерность массива программа должна спрашивать у пользователя (в диапазоне от единицы до значения, определяемое константой).


Информатика (392 баллов) | 47 просмотров
Дан 1 ответ
0 голосов
Правильный ответ

//Pascal ABC.NET 3.1 сборка 1219

Const
 nc=10000;

Type
 ty=array[1..nc] of real;

 function minind(ar:ty;n:integer):integer;
Var
 i,mini:integer;
 min:real;
begin
min:=11;
  for i:=1 to n do
   if ar[i]    begin
     min:=ar[i];
     mini:=i;
    end;
minind:=mini;
end;

function sum1to2(ar:ty;n:integer):real;
 Var
 i,t1,t2:integer;
 r:real;
begin
 for i:=1 to n do
  if ar[i]<0 then<br>    begin
    t1:=i;
    break;
   end;
 for i:=t1+1 to n do
  if ar[i]<0 then<br>   begin
    t2:=i;
    break;
   end;
for i:=t1+1 to t2-1 do
r:=r+ar[i];
sum1to2:=r;
end;

procedure stransort(var ar:ty;n:integer);
Var i,j,nd:integer;
begin
nd:=0;
 for i:=1 to n do
  if abs(ar[i])<=1 then<br>   begin
    inc(nd);
    swap(ar[i],ar[nd]);
   end;
end; 

Var
 ar:ty;
 i,n:integer;
begin
randomize;
 readln(n);
writeln('Array:');
for i:=1 to n do
 begin
  ar[i]:=random(-3,3);
  write(ar[i]:4);
 end;
writeln;
writeln('Index of minimum:',minind(ar,n));
writeln('Sum=',sum1to2(ar,n));
stransort(ar,n);
writeln('Final array:');
for i:=1 to n do
write(ar[i]:4);
end.
Пример ввода:
5
Пример вывода:
Array:
   3   2   1   2   1
Index of minimum:3
Sum=0
Final array:
   1   1   3   2   2

(38.6k баллов)