решение логических выражений принято записывать в виде таблиц истинности – таблиц, в которых по действиям показано, какие значения принимает логическое выражение при всех возможных наборах его переменных.
при составлении таблицы истинности для логического выражения необходимо учитывать порядок выполнения логических операций, а именно:
действия в скобках,
инверсия (отрицание),
& (конъюнкция),
v (дизъюнкция),
=> (импликация),
< => (эквивалентность).
алгоритм составления таблицы истинности:
1. выяснить количество строк в таблице (вычисляется как 2n, где n – количество переменных + строка заголовков столбцов).
2. выяснить количество столбцов (вычисляется как количество переменных + количество логических операций).
3. установить последовательность выполнения логических операций.
4. построить таблицу, указывая названия столбцов и возможные наборы значений исходных логических переменных.
5. заполнить таблицу истинности по столбцам.
6. записать ответ.
пример 6
построим таблицу истинности для выражения f=(avb)& (¬av¬b).
1. количество строк=22 (2 переменных+строка заголовков столбцов)=5.
2. количество столбцов=2 логические переменные (а, в)+ 5 логических операций (v,& ,¬,v,¬) = 7.
Type piece = record value: string[10]; count := 1; end;
var pieces: array[1..200]of piece; i, j, n, pieces_n: integer; s, p: string; found: boolean; imax:=1;
begin read(s); read(n); for i := 1 to length(s) - n + 1 do begin p := Copy(s, i, n); found := false; for j := 1 to pieces_n do if pieces[j].value = p then begin pieces[j].count := pieces[j].count + 1; found := true; if pieces[imax].count < pieces[j].count then imax := j; break; end; if not found then begin pieces_n := pieces_n + 1; pieces[pieces_n].value := p; end; end;
відповідь:
решение логических выражений принято записывать в виде таблиц истинности – таблиц, в которых по действиям показано, какие значения принимает логическое выражение при всех возможных наборах его переменных.
при составлении таблицы истинности для логического выражения необходимо учитывать порядок выполнения логических операций, а именно:
действия в скобках,
инверсия (отрицание),
& (конъюнкция),
v (дизъюнкция),
=> (импликация),
< => (эквивалентность).
алгоритм составления таблицы истинности:
1. выяснить количество строк в таблице (вычисляется как 2n, где n – количество переменных + строка заголовков столбцов).
2. выяснить количество столбцов (вычисляется как количество переменных + количество логических операций).
3. установить последовательность выполнения логических операций.
4. построить таблицу, указывая названия столбцов и возможные наборы значений исходных логических переменных.
5. заполнить таблицу истинности по столбцам.
6. записать ответ.
пример 6
построим таблицу истинности для выражения f=(avb)& (¬av¬b).
1. количество строк=22 (2 переменных+строка заголовков столбцов)=5.
2. количество столбцов=2 логические переменные (а, в)+ 5 логических операций (v,& ,¬,v,¬) = 7.
piece = record
value: string[10];
count := 1;
end;
var
pieces: array[1..200]of piece;
i, j, n, pieces_n: integer;
s, p: string;
found: boolean;
imax:=1;
begin
read(s);
read(n);
for i := 1 to length(s) - n + 1 do
begin
p := Copy(s, i, n);
found := false;
for j := 1 to pieces_n do
if pieces[j].value = p then begin
pieces[j].count := pieces[j].count + 1;
found := true;
if pieces[imax].count < pieces[j].count then
imax := j;
break;
end;
if not found then begin
pieces_n := pieces_n + 1;
pieces[pieces_n].value := p;
end;
end;
writeln(pieces[imax].value);
end.