Дан линейный(одномерный) массив чисел, заданный случайным образом... Задание ** фото

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

Дан линейный(одномерный) массив чисел, заданный случайным образом...

Задание на фото


image

Информатика (170 баллов) | 28 просмотров
Дан 1 ответ
0 голосов
Правильный ответ
sp - сумма положительных элементов
so - сумма отрицательных элементов
kp -  количество положительных элементов
ko - количество отрицательных элементов
fo - первый отрицательный элемент
lo - последний отрицательный элемент
max,min - номера макс и мин эл массива
a[max],a[min] - макс и мин эл массива
sum - сумма эл массива
proiz - произведение эл массива
m1,m2 - два макс эл
maxo - макс среди отрицательных
s1 - сумма эл не превышающих maxo
minp - мин среди положительных
s2 - сумма эл,превышающих minp
s3 - сумма эл от a до b
cn - количество эл от a до b
-----------------------------------------------------------------------------------------------------
const n = 10;
var a:array [1..n] of integer;
     i,sp,so,kp,ko,max,min,fo,lo,m1,m2,maxo,s1,minp,s2,aa,bb,s3,cn:integer;
     sum,proiz:longint;      
     f:boolean; 
begin
  randomize;
  so:=0;
  sp:=0;
  kp:=0;
  ko:=0;
  f:=false;
  for i:=1 to n do
   begin
    a[i]:=random(21)-10;
    if (not f) and (a[i]>1) then f:=true; 
    write (a[i]:3);
    if a[i]>0 then
     begin 
       sp:=sp+a[i];
       inc(kp); 
     end else if a[i]<0 then </strong>
     begin 
      so:=so+a[i];
      inc(ko); 
     end; 
   end;
  writeln;
  max:=1;
  min:=1;
  for i:=2 to n do
   if a[i]>a[max] then max:=i else
    if a[i]
  for i:=1 to n do
   if a[i]<0 then</strong>
    begin
     fo:=i;
     break; 
    end;
  for i:=n downto 1 do
   if a[i]<0 then</strong>
    begin
     lo:=i;
     break;
    end;
  proiz:=1;
  if f then
   sum:=so+sp
  else for i:=1 to n do proiz:=proiz*a[i];
  m1:=-100;
  m2:=-100;
  for i:=1 to n do
   if a[i]>m1 then
    begin
     m2:=m1;
     m1:=a[i];
    end else if (a[i]>m2) and (a[i]<>m1) then m2:=a[i];
  maxo:=-100;
  for i:=1 to n do
   if (a[i]<0) and (a[i]>maxo) then maxo:=a[i];
  s1:=0;
  for i:=1 to n do
   if a[i]
  minp:=100;
  for i:=1 to n do
   if (a[i]>0) and (a[i]
  s2:=0;
  for i:=1 to n do
   if a[i]>minp then s2:=s2+a[i];
  write ('A = ');
  readln (aa);
  write ('B = ');
  readln (bb);
  s3:=0;
  cn:=0;
  for i:=aa to bb do
   begin
    inc(s3,a[i]);
    inc(cn);
   end;
end.
(2.8k баллов)