Uses crt; const max=15; var a : array[1..max] of integer; i,k0,k1,k3 : integer; k:boolean; begin randomize; k0:=0; k1:=0; writeln('исходные:'); for i:=1 to max do begin a[i]:=random(2); write(a[i]:4); end; for i:=1 to 15 do begin if a[i]=0 then inc(k0) else inc(k1); if a[i]<>0 then k:=true; if k=false then inc(k3); end; writeln; writeln('количество нулей = ',k0); writeln('количество единиц = ',k1); writeln('количество нулей до первой единицы = ',k3); End.
---
Решение
Для начала определим значение переменных
А=1 (высказывание истинно)
B=1 (высказывание истинно)
C=1 (высказывание истинно)
D=0 (высказывание ложно)
E=0 (высказывание ложно)
Перейдем к выражениям.
¬ - логическое отрицание (не)
˅ - логическое сложение (или)
˄ - логическое умножение (и)
Как это выглядит в формулах привычными для нас символами (кроме "не". отрицание остается), замени сразу же переменные известными нам значениями:
1. A˄B˅¬C = A*B+ ¬C =1*1+ ¬1=1*1+0 = 1+0 = 1
2. A˄D˅¬E = A*D+ ¬E = 1*0+ ¬0=1*0+1 = 0+1 = 1
3. A˄B˅¬D = A*B+ ¬D = 1*1+ ¬0=1*1+1 = 1+1 = 1 (у нас же логическое выражение)
4. D˄E˅A = D*E+A = 0*0+1 = 0+1 = 1
Таким образом, получаем 1111
const max=15;
var a : array[1..max] of integer;
i,k0,k1,k3 : integer;
k:boolean;
begin
randomize;
k0:=0;
k1:=0;
writeln('исходные:');
for i:=1 to max do
begin
a[i]:=random(2);
write(a[i]:4);
end;
for i:=1 to 15 do
begin
if a[i]=0 then inc(k0) else inc(k1);
if a[i]<>0 then k:=true;
if k=false then inc(k3);
end;
writeln;
writeln('количество нулей = ',k0);
writeln('количество единиц = ',k1);
writeln('количество нулей до первой единицы = ',k3);
End.