решение логических выражений принято записывать в виде таблиц истинности – таблиц, в которых по действиям показано, какие значения принимает логическое выражение при всех возможных наборах его переменных.
при составлении таблицы истинности для логического выражения необходимо учитывать порядок выполнения логических операций, а именно:
действия в скобках,
инверсия (отрицание),
& (конъюнкция),
v (дизъюнкция),
=> (импликация),
< => (эквивалентность).
алгоритм составления таблицы истинности:
1. выяснить количество строк в таблице (вычисляется как 2n, где n – количество переменных + строка заголовков столбцов).
2. выяснить количество столбцов (вычисляется как количество переменных + количество логических операций).
3. установить последовательность выполнения логических операций.
4. построить таблицу, указывая названия столбцов и возможные наборы значений исходных логических переменных.
5. заполнить таблицу истинности по столбцам.
6. записать ответ.
пример 6
построим таблицу истинности для выражения f=(avb)& (¬av¬b).
1. количество строк=22 (2 переменных+строка заголовков столбцов)=5.
2. количество столбцов=2 логические переменные (а, в)+ 5 логических операций (v,& ,¬,v,¬) = 7.
Что касается конкретной программы 1. Описываем нужные нам переменные - это будут стороны прямоугольника a и b. Поскольку нигде ничего о размерах сторон не сказано, придется предположить, что они не обязательно будут целыми , мы опишем эти переменные, как вещественные (real), что позволит работать и с нецелыми значениями. 2. Из геометрии нам известны формулы периметра прямоугольника P=2 x (a+b) и площади прямоугольника S=a x b. Можно описать переменные P, S (тоже real), но смысла в этом нет, поскольку значения P и S нужны только для вывода результатов, так что проще написать нужные выражения непосредственно в операторе вывода. 3. Итак, с описанием переменных закончили, можно начинать основную программу ключевым словом begin. И сразу же пишем к нему завершающий end с точкой на конце - таковы правила языка Паскаль. Вся программа размещается между двумя этими ключевыми словами. 4. Сначала организуем ввод. Это два оператора. Первый оператор выводит так называемое "приглашение" - сообщает о том, что нужно ввести. Второй оператор - это сам ввод. 5. А теперь, как было сказано выше, организуем вывод результатов. Все это сделает один оператор вывода. Программа готова!
var a, b: real;
begin Write('Введите стороны прямоугольника: '); Readln(a, b); Writeln('Периметр равен ', 2 * (a + b), ', площадь равна ', a * b) end.
Тестовое решение: Введите стороны прямоугольника: 4 3.16 Периметр равен 14.32, площадь равна 12.64
відповідь:
решение логических выражений принято записывать в виде таблиц истинности – таблиц, в которых по действиям показано, какие значения принимает логическое выражение при всех возможных наборах его переменных.
при составлении таблицы истинности для логического выражения необходимо учитывать порядок выполнения логических операций, а именно:
действия в скобках,
инверсия (отрицание),
& (конъюнкция),
v (дизъюнкция),
=> (импликация),
< => (эквивалентность).
алгоритм составления таблицы истинности:
1. выяснить количество строк в таблице (вычисляется как 2n, где n – количество переменных + строка заголовков столбцов).
2. выяснить количество столбцов (вычисляется как количество переменных + количество логических операций).
3. установить последовательность выполнения логических операций.
4. построить таблицу, указывая названия столбцов и возможные наборы значений исходных логических переменных.
5. заполнить таблицу истинности по столбцам.
6. записать ответ.
пример 6
построим таблицу истинности для выражения f=(avb)& (¬av¬b).
1. количество строк=22 (2 переменных+строка заголовков столбцов)=5.
2. количество столбцов=2 логические переменные (а, в)+ 5 логических операций (v,& ,¬,v,¬) = 7.
1. Описываем нужные нам переменные - это будут стороны прямоугольника a и b. Поскольку нигде ничего о размерах сторон не сказано, придется предположить, что они не обязательно будут целыми , мы опишем эти переменные, как вещественные (real), что позволит работать и с нецелыми значениями.
2. Из геометрии нам известны формулы периметра прямоугольника P=2 x (a+b) и площади прямоугольника S=a x b. Можно описать переменные P, S (тоже real), но смысла в этом нет, поскольку значения P и S нужны только для вывода результатов, так что проще написать нужные выражения непосредственно в операторе вывода.
3. Итак, с описанием переменных закончили, можно начинать основную программу ключевым словом begin. И сразу же пишем к нему завершающий end с точкой на конце - таковы правила языка Паскаль. Вся программа размещается между двумя этими ключевыми словами.
4. Сначала организуем ввод. Это два оператора. Первый оператор выводит так называемое "приглашение" - сообщает о том, что нужно ввести. Второй оператор - это сам ввод.
5. А теперь, как было сказано выше, организуем вывод результатов. Все это сделает один оператор вывода. Программа готова!
var
a, b: real;
begin
Write('Введите стороны прямоугольника: '); Readln(a, b);
Writeln('Периметр равен ', 2 * (a + b), ', площадь равна ', a * b)
end.
Тестовое решение:
Введите стороны прямоугольника: 4 3.16
Периметр равен 14.32, площадь равна 12.64