double arrow

Запись логических выражений

Определение двух аргументных часто используемых логических операций – ике аргументлы еш кулланылган мантыйк гамәлләр.

А B A®B A V B A&B AÅB A≡B A│B
               
               
               
               

Логические операции языка ПАСКАЛЬ.

А ┐А   &       V       Å     ┐ – not – не & – and – и V – or – или Å – xor
                           
                           

Одноаргументные выражения и их таблицы истинности

А ┐┐A AÅA A→A AÅ ┐A A→┐A A→1 A→0
               
               

 

А A&A A&ùA AVA AVùA A&0 AV0 A&1 AV1
                 
                 

Отсюда следует, что

A=AVA=A&A=A&1=AV0=┐┐А=AÅ0

┐A= A→┐A= A→0= AÅ1

1=AV1=AVùA= A→1

0=A&ùA=A&0.

Двух аргументные выражения и их таблицы истинности

А B ùAVB =A®B A&ùB ùA&ùB=ù(AVB) ùAVùB =ù(A&B) =A|B
           
           
           
           

 

А B A&BVùA&ùB = A≡B ùA&BVA&ùB = A≠B = AÅB
       
       
       
       

 

А B A&BVùB AVùB
       
       
       
       

Трех аргументные выражения и их таблицы истинности

А B С A&BVA&C = A&(BVC) (AVB)&(AVC) = AVB&C
             
             
             
             
             
             
             
             

ДНФ. Построение совершенной дизъюнктивно нормальной формы по таблице истинности (СДНФ).

А B С F(A,B,C)= A&B&C V A&B&C V A&B&C - СДНФ
         
         
        A&B&C V
         
         
         
        A&B&C V
        A&B&C

Проведем преобразования СДНФ данной функции F(A,B,C).

A&B&C V A&B&C V A&B&C = A& B&C V A& B&C V A&B &C V A&B &C = (AVA)& B&C V A&B &(C V C) = 1&B&C V A&B&1 = B &C V A& B = B &(C V A)

F(A,B,C)= B&(C V A)

Примеры: запись логических выражений на языке ПАСКАЛЬ

А&В —® А and В

ù А V B —® not А or В

A Å B —® A xor B

1. Написать следующие выражения на языке ПАСКАЛЬ и построить их таблицы истинности:

А) ùA & B Б)A & ùB

В) ùA V ùB Г)A V ùB

Д) ù (A & B) Е) ù (ùA & ùB)

Ж) (A & B) V (ùA & ùB) З) ù (A & B) V C & ù B

И) ù (A & B) V ù C & ù B К) (ù A & B) V (A & ù B)

Л) В Å B Å B М) A Å B Å B

Н) A ® B ® B О) ùA ® (ùB & C V (A ® B))

П) ù(A ® ùB) & C V (A ® B) Р) ù(A ® ù(B & C) V (A ® B)

2. Какие из приведенных записей ошибочны и почему

а) NOT A; б) NOT_ABC; в) NOT NOT B; г) C NOT V;

д) A NOT OR B; е) NOT A XOR B; ж) A XOR B ANDC.

3. По заданным булевским выражениям на языке ПАСКАЛЬ написать соответствующие выражения математической логики:

А) not not A and (B xor C) Б)A or true and ùB

В) not A and not B or A and B Г)not (A or not (B or not C))

4. Чему равно значение выражения

А) (A<B) AND (C<=D) AND not E, где A=2, B=3, C=5, D=4, E=FALSE

Б) A DIV TRUNC(B/(2*C)), если A=9, B=26, C=3

В) (X*9)-A, где X=3.2, A=8.7

Г) B OR FALSE, где B=TRUE

Д) X MOD 10 + 1, если X=11

5. С помощью эквивалентных преобразований показать, что
B V A&ùB = B V A.

6. Какие из следущих выражений равны между собой?

А) A|A; A|A|A; A|A|A|A; A|A|A|A|A; A|B; B|A.

Б) A|B|C; A|(B|C); A|A|B|B|C|C.

В) (A ® B) ® С; A ® (B ® С); A ® B; B ® A;

7. Верны ли следующие равенства?

А) (A&ùB V C)&(ùA V B) = B V A;

Б) (A V B V C)&(ùA V B) = B V A

8. Написать следующие выражения на языке ПАСКАЛЬ, которые для точек с координатами (Х,Ү), находящихся в заштрихованной области,[1] принимают значение true, а за пределами принимают значение false.

А)       Б)       В)    
                     
                     
                     

Г) Д)

                   
                   
                   
                   
                   

 

Е) Ж)

                   
                   
                   
                   
                   

9. Для заданных множеств А и В написать следующие логическое выражения на языке ПАСКАЛЬ, которое для эелемента Х принимает значение 1, если она находится в заштрихованной области А[2], иначе принимает значение 0.

10. Написать логические выражения, принимающие значение true, когда точка (Х,Ү) находится в заштрихованной на рисунке области

11. Написать логические выражения, принимающие значение true, когда точка (Х,Ү) находится в заштрихованной на рисунке области, где окружность радиуса 1 и кривая соответствует Ү=X2.

1)

2)

3)

4)

12. Записать следующие высказывания в виде логических выражений.

А) Если А верно, то В верно;

В) Если из истинности А следует истинность В, то и С истинно

13. Записать функцию из трех переменных F(x1,x2,x3), которое принимает значение 1(истина) в следующих случаях:

А) Если среди значений аргументов есть значение 0(ложь);

Б) Если среди значений аргументов есть значение 1(истина);

В) Если среди значений аргументов значение 1(истина) больше;

Г) Если среди значений аргументов значение 0(ложь) больше;

Д) Если все значения аргументов 0(ложь);

Е) Если все значения аргументов 1(истина);

14. Написать логические выражения для следующих таблиц истинности.

A B С F1 F2 F3 F4 F5 F6 F7 F8
                     
                     
                     
                     
                     
                     
                     
                     

15. Написать логические выражения двоичного сумматора на языке ПАСКАЛЬ.

C=A+B, где i-тый разряд суммы определяется следующей таблицей

Ai Bi Pi Ci Pi+1
         
         
         
         
         
         
         
         

16. Через таблицы истинности определить значения А и В после выполнения следующих трех операторов: A:=АÅB; B:=АÅB; A:=АÅB?

По аналогии с языками программирования Паскаль, С++ можно использовать конструкции похожие на условный оператор или использовать конструкции, используемые только в PYTHON

 

if If-else If-elif If-elif-else
if <условие>: <инструкция> if <условие>: <инструкция1> else: <инструкция2>    
  if <условие1>: <инструкция1> else: if <условие2>: <инструкция2> if <условие1>: <инструкция1> elif <условие2>: <инструкция2>  
  if <условие1>: <инструкция1> else: if <условие2>: <инструкция2> else: <инструкция3>   if <условие1>: <инструкция1> elif <условие2>: <инструкция2> else: <инструкция3>

 

Для вычисления c=max(a,b) можно применить следующие фрагменты программ:

if a>b then c:=a else c:=b; // – на языке Pascal

if (a>b) c=a; else c=b; // – на языке С++

Данная конструкция на языке Python может быть записана следующим образом:

if a>b: c=a

else: c=b

В виде условного выражения можно записать следующим образом:

с= (a if a>b else b)

Задача. Во входной строке записаны три натуральных числа через пробел. Каждое из чисел не превышает 10100. Нужно вывести максимальное целое число.

По аналогии с языком Паскаль было бы следующее решение[3]:

x,y,z=map(int,input().split()

if x>=y and y>=z: print(x)

elif y>=z: print(y)

else: print(z)

 

Используя условные выражения можно написать следующую программу:

x,y,z=map(int,input().split()

print(x if x>=y and y>=z else y if y>=z else z)

Используя потоковые функции, можно написать следующую программу:

print(max(map(int,input().split())))

Ввод-вывод


Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



Сейчас читают про: