var
a:array[1..100]of integer;
i,s,n,f:integer;
begin
writeln('vvedite n');
readln(n);
randomize;
for i:=1 to n do
begin
a[i]:=random(10);
if a[i]=0 then f:=1;
end;
writeln('massiv');
for i:=1 to n do
write(a[i],' ');
writeln;
i:=1;
while (a[i]<>0)and(i<=n) do
begin
s:=s+a[i];
inc(i);
end;
i:=n;
while (a[i]<>0)and(i>0) do
begin
s:=s+a[i];
dec(i);
end;
if f=0 then writeln('nuley net')else
writeln('s=',s);
readln;
end.
Следующий вариант
uses crt;
const nmax=100;
var a:array[1..nmax] of real;
n,i,i1,ip,k:byte;
s:real;
begin
clrscr;
repeat
write('Размер массива до ',nmax,' n=');
readln(n);
until n in [1..nmax];
writeln('Введите элементы массива:');
for i:=1 to n do
begin
write('a[',i,']=');
readln(a[i]);
end;
clrscr;
writeln('Массив:');
for i:=1 to n do
write(a[i]:0:2,' ');
writeln;
writeln;
if a[1]=0 then i1:=1
else
begin
i:=1;
while (a[i]<>0)and(i<n) do
i:=i+1;
if i=n then
begin
write('В массиве нет двух нолей');
readln;
exit;
end
else i1:=i;
end;
if a[n]=0 then ip:=n
else
begin
i:=n;
while (a[i]<>0)and(i>i1) do
i:=i-1;
if i=i1 then
begin
write('В массиве нет двух нолей');
readln;
exit;
end
else ip:=i;
end;
writeln('Первый ноль имеет индекс=',i1);
writeln('Последний ноль имеет индекс=',ip);
s:=0;
i:=1;
while i<i1 do
begin
s:=s+a[i];
i:=i+1;
end;
i:=n;
while i>ip do
begin
s:=s+a[i];
i:=i-1;
end;
writeln('Сумма до первго ноля и после последнего=',s:0:2);
readln
end.