<em>// PascalABC.NET 3.3, сборка 1625 от 17.01.2018</em>
<em>// Внимание! Если программа не работает, обновите версию!</em>
begin
var a:=ArrRandom(10,-50,50); a.Println;
var p:integer:=0;
for var i:=0 to 9 do
if a[i]=0 then begin p:=i+1; break end;
if p>0 then Writeln('Номер первого нулевого элемента ',p)
else Writeln('В массиве нет нулевых элементов')
end.
<u>Пример</u>
30 22 29 -47 11 39 13 0 46 22
Номер первого нулевого элемента 8
Существуют три основных типа величин<span>, с которыми работает компьютер: </span>числовой, символьный<span> и </span>логический.
Составьте таблицу истинности для выражения неА*неВ: 3 столбика - А, В, неА*неВ и 32 строки/не обязательно все чертить/. Мы знаем, что 8 строк в А и 8 строк в В - единицы, но их распорядок в таблице мы можем задать сами. Минимальное число единиц = максимально число нулей. Выражение неА*неВ=0, когда А=0 и В=1 ИЛИ А=1 и В=0. Значит, напротив 8 единиц в первом столбце А должны находиться нули в столбце В, а напротив единиц в В должны быть <span> быть нули в столбце А/это лучше нарисовать/. Тогда получается 8 строк, где А=1 и В=0, и 8 строк, где А=0, а В=1. В этих строчках неА*неВ=0. Всего их 16, это максимальное количество нулей. В остальных строчках, где А=0 и В=0, неА*неВ = 1. Таких строк 32-16=16. </span>
<span>Минимальное число единиц - 16</span>
Var b,c:real;
<span>begin </span>
<span>b:=1; </span>
<span>c:=2; </span>
<span>repeat </span>
<span>b:=b+1; </span>
<span>c:=c*b; </span>
<span>until b=4; </span>
<span>writeln('Да'); </span>
<span>end. </span>
Program gt;
var b:array[1..100]of integer;
r,i,n,q,min,t:integer;
begin
read(N);
q:=0;
for i:=1 to n do
begin
read(b[i]);
if(b[i]>0)then begin
q:=q+1;
if(q=1)then begin
r:=i;
t:=b[i];
end;
end;
end;
min:=b[1];
for i:=2 to n do
if(b[i]<min)then min:=b[i];
for i:=1 to n do
begin
if(b[i]=min)then b[i]:=t;
if(i=r)then b[i]:=min;
write(b[i],' ');
end;
end.