В одномерном массиве, состоящем из N целочисленных элементов, вычислить: 1)Произведение элементов массива с четными номерами. 2) Сумму элементов массива, расположенных между первым и последним нулевыми элементами. — Pascal(Паскаль)


3)Преобразовать массив таким образом, чтобы сначала располагались все положительные элементы, а потом — все отрицательные (элементы, равные нулю, считать положительными).

uses crt;
const
n=20;
var
m:array[1..n] of integer;
i,pro,sum,buf,a,z:integer;
ind:boolean;
Begin
     randomize;
     for i:=1 to n do m[i]:=random(10)-5;
     writeln('Your array is :');
     write('[ ');
     for i:=1 to n do write(m[i],' ');
     write(']');
     pro:=1;
     for i:=1 to n do
     Begin
     if i mod 2 = 0 then pro:=pro*m[i];
     end;
     a:=0;z:=0;sum:=0;
     for i:=1 to n do if m[i]=0 then
     Begin
          a:=i;
          break;
     end;
     for i:=n downto 1 do if m[i]=0 then
     Begin
          z:=i;
          break;
     end;
     for i:=a to z do if (a<>0) and (z<>0) then sum:=sum+m[i];
     repeat;
     ind:=true;
     for i:=1 to n-1 do if m[i]<m[i+1] then
     Begin
          buf:=m[i];
          m[i]:=m[i+1];
          m[i+1]:=buf;
          ind:=false;
     end;
     until ind;
     writeln;
     if a<>z then writeln('Proizvedenie parnih elementov =',pro,' Summa elementov massiva megdu 0 =',sum)
     else writeln('Proizvedenie parnih elementov =',pro,' Summu elementov massiva megdu 0 nevozmogno sos4itat tak kak v massive kolli4estvo 0 menshe 2x');
     writeln;
     writeln('After sorting array is :');
     write('[ ');
     for i:=1 to n do write(m[i],' ');
     write(']');
end.

Leave a Comment

68 + = 78