Program n_1;
var i, b, k:integer; a: array [1..2000] of integer;
begin
writeln('Введите числа');
for i:=1 to 2000 do read(a[i]);
writeln;
writeln ('Числа, состоящие из 2 разрядов:');
for i:=1 to 2000 do begin
b:=a[i];
k:=0;
while b>0 do
b:=b div 10;
k:=k+1;
end;
if k=2 then write(a[i], ' ');
writeln ('Числа, состоящие из 3 разрядов и кратные 3:');
if k=3 then begin
b:=(a[i] mod 10) + ((a[i] div 10) mod 10) + ((a[i] div 100) mod 10);
if (b mod 3) = 0 then write(a[i], ' ');
end.
Объяснение:
Не очень понятно, что подается на вход.
Один сигнал - 1, а второй обозначен & - логическое И.
Я их на всякий случай обозначу & = A, 1 = B.
Логичекое НЕ я буду обозначать ~. Черточки над буквой у меня нет.
Прямоугольник с 1 - это сумматор, логическое ИЛИ.
Прямоугольник с & - это мультипликатор, логическое И.
Прямоугольник с кружочком - это инвертор, логическое НЕ.
F = (A + B) & (~A) + ~(A + B)
Таблица истинности:
A | B | F
0 | 0 | 1
0 | 1 | 1
1 | 0 | 0
1 | 1 | 0
Можно формулу сократить:
F = A & (~A) + B & (~A) + (~A) & (~B) = 0 + B & (~A) + (~B) & (~A) =
= (~A) & (B + ~B) = (~A) & 1 = ~A
И таблица истинности это подтверждает.
Program n_1;
var i, b, k:integer; a: array [1..2000] of integer;
begin
writeln('Введите числа');
for i:=1 to 2000 do read(a[i]);
writeln;
writeln ('Числа, состоящие из 2 разрядов:');
for i:=1 to 2000 do begin
b:=a[i];
k:=0;
while b>0 do
begin
b:=b div 10;
k:=k+1;
end;
if k=2 then write(a[i], ' ');
end;
writeln;
writeln ('Числа, состоящие из 3 разрядов и кратные 3:');
for i:=1 to 2000 do begin
b:=a[i];
k:=0;
while b>0 do
begin
b:=b div 10;
k:=k+1;
end;
if k=3 then begin
b:=(a[i] mod 10) + ((a[i] div 10) mod 10) + ((a[i] div 100) mod 10);
if (b mod 3) = 0 then write(a[i], ' ');
end;
end;
end.
Объяснение:
Не очень понятно, что подается на вход.
Один сигнал - 1, а второй обозначен & - логическое И.
Я их на всякий случай обозначу & = A, 1 = B.
Логичекое НЕ я буду обозначать ~. Черточки над буквой у меня нет.
Прямоугольник с 1 - это сумматор, логическое ИЛИ.
Прямоугольник с & - это мультипликатор, логическое И.
Прямоугольник с кружочком - это инвертор, логическое НЕ.
F = (A + B) & (~A) + ~(A + B)
Таблица истинности:
A | B | F
0 | 0 | 1
0 | 1 | 1
1 | 0 | 0
1 | 1 | 0
Можно формулу сократить:
F = A & (~A) + B & (~A) + (~A) & (~B) = 0 + B & (~A) + (~B) & (~A) =
= (~A) & (B + ~B) = (~A) & 1 = ~A
И таблица истинности это подтверждает.