文档库 最新最全的文档下载
当前位置:文档库 › 数字电路的真值表写出逻辑函数表达式的方法

数字电路的真值表写出逻辑函数表达式的方法

数字电路的真值表写出逻辑函数表达式的方法
数字电路的真值表写出逻辑函数表达式的方法

逻辑命题公式计算

题号:第一题 题目:电梯模拟 1,需求分析: 计算命题演算公式的真值 所谓命题演算公式是指由逻辑变量(其值为TRUE或FALSE)和逻辑运算符∧(AND)、∨(OR)和┐(NOT)按一定规则所组成的公式(蕴含之类的运算可以用∧、∨和┐来表示)。公式运算的先后顺序为┐、∧、∨,而括号()可以改变优先次序。已知一个命题演算公式及各变量的值,要求设计一个程序来计算公式的真值。 要求: (1)利用二叉树来计算公式的真值。首先利用堆栈将中缀形式的公式变为后缀形式;然后根据后缀形式,从叶结点开始构造相应的二叉树;最后按后序遍历该树,求各子树之值,即每到达一个结点,其子树之值已经计算出来,当到达根结点时,求得的值就是公式之真值。 (2)逻辑变元的标识符不限于单字母,而可以是任意长的字母数字串。 (3)根据用户的要求显示表达式的真值表。 2,设计: 2.1 设计思想: <1>,数据结构设计: (1) 线性堆栈1的数据结构定义 typedef struct { DataType stack [MaxStackSize]; int top; /* 当前栈的表长*/ } SeqStack; 用线性堆栈主要是用来存储输入的字符,它的作用就是将中缀表达式变成后缀表达式。 (2) 线性堆栈2的数据结构定义 typedef struct { BiTreeNode *stack [MaxStackSize]; int top; /* 当前栈的表长*/ } TreeStack; 这个堆栈和上面的堆栈的唯一不同就是它们存储的数据的类型不同,此堆栈存储的是树节点,它的作用是将后缀表达式构成一棵二叉树。

(3)树节点数据结构定义 typedef struct Node { DataType data; struct Node *leftChild; struct Node *rightChild; }BiTreeNode; <2>算法设计详细思路如下: 首先实现将中缀表达式变成后缀表达式: 在将中缀表达式变成后缀表达式的时候会用到堆栈,因此首先需要初始化一个堆栈。又由于逻辑变元可能是字符也可能是字符串,所以它又不同于将单字符的逻辑变元的中缀表达式变成后缀表达式。我的设计是这样的,我将中缀表达式变成后缀表达式的过程分成了两部:化简(将一维的复杂的中缀表达式变成一维的简单的中缀表达式,并将字符串逻辑变元存放在二维数组中),转化(将化简后的中缀表达式变成后缀表达式)。 (1)化简:先用一个字符数组存放输入的中缀表达式(表达式以‘#’号结束),然后将一维的中缀表达式中的字符串逻辑变元用一个字符进行标识,这样我们就可以将原来复杂的中缀表达式变成熟悉而又简单的中缀表达式,同时用二维数组存放那些字符串逻辑变元。实现的过程就是首先扫描一维中缀表达式,如果遇到逻辑符号,那么记住这个逻辑符号在数组中的相对位置用一个变量存放,然后继续扫描中缀表达式直到再次遇到逻辑符号,再一次记住它在中缀表达式中的相对位置,这两个逻辑符号之间的部分就是一个完整的逻辑变元,将这个字符串逻辑变元用一个字符代替并将这个字符串逻辑变元保存在二维数组中。这个过程的实现我把它放在change()函数中。 (2)转化:在实现该功能时,首先需要定义各符号的优先级,即:'(' 和')' 的优先级最高;'!'(逻辑非号)的优先级次之;'&'(逻辑与号)的优先级又低一级,'|'(逻辑或号)的优先级跟低;'#' (他不是逻辑符号,只是为了方便使用堆栈而设置)的优先级最低,接着将'#'压入堆栈。在这之后就是正式的转化了,其过程为:当读到的是逻辑变元时直接输出,并保存到保存后缀表达式的数组中,当读到的单词为运算符时,令x1为当前栈顶运算符的变量,x2为当前扫描到的简单中缀表达式的运算符的变量,把当前读入的单词赋予变量x2,然后比较x1和x2的优先级。若x1的优先级高于x2的优先级,将x1退栈作为后缀表达式的一个单词输出,然后接着比较新的栈顶运算符x1的优先级与x2的优先级;若x1的优先级低于x2的优先级,将x2的值进栈,然后接着读下一个单词;若x1的优先级等于x2的优先级且x1为“(”,x2为“)”,将x1退栈,然后接着读下一个单词;若x1的优先级等于x2的优先级且x1为“#”,x2为“#”,算法结束。这个过程我把它放在InToPost()函数中。 然后用后缀表达式构造出二叉树: 在这个过程中,我用到了之前所定义的存放树的堆栈。具体实现为:扫描后缀表达式,如果遇到逻辑变元然后将这个变元变成一个树节点,它的实现就是将该逻辑变元赋给树的data域,然后将它的左右子树赋为NULL,然后将这个树节点压入相应的堆栈;接着继续扫描,如果遇到的是单目运算符(非号“!”)也将它构造成一个树节点然后从堆栈里面弹出一个树形节点,将弹出的元素的作为它的左子树,右子树设置为NULL,然后将这个树节点压入相应的堆栈;如果扫描到的是双目运算符(与号“&”或者或号“|”)将它也构造成一棵树,然后将这个树节点压入相应的堆栈,然后从栈中弹出两个元素,一个作为它的左子树,一个作为它的右子树,如此重复n(n为后缀表达式的长度)次。这个过程我把它放在Maketree()函数中。

逻辑判断推理中常用的逻辑公式

逻辑命题与推理 必然性推理(演绎推理):对当关系推理、三段论、复合命题推理、关系推理和模态推理 可能性推理:归纳推理(枚举归纳、科学归纳)、类比推理 命题 直言命题的种类:(AEIOae) ⑴全称肯定命题:所有S是P(SAP) ⑵全称否定命题:所有S不是P(SEP) ⑶特称肯定命题:有的S是P(SIP) ⑷特称否定命题:有的S不是P(SOP) ⑸单称肯定命题:某个S是P(SaP) ⑹单称否定命题:某个S不是P(SeP) 直言命题间的真假对当关系: 矛盾关系、(上)反对关系、(下)反对关系、从属关系 矛盾关系:具有矛盾关系的两个命题之间不能同真同假。主要有三组: SAP与SOP之间。“所有同学考试都几个了”与“有些同学考试不及格” SEP与SIP之间。“所有同学考试不及格”与“有些同学考试及格” SaP与SeP之间。“张三考试及格”与“张三考试不及格” 上反对关系:具有上反对关系的两个命题不能同真(必有一假),但是可以同假。即要么一个是假的,要么都是假的。存在于SAP与SEP、SAP与SeP、SEP与SaP之间。 下反对关系:具有下反对关系的两个命题不能同假(必有一真),但是可以同真。即要么一个是真的,要么两个都是真的。存在于SIP与SOP、SeP与SIP、SaP与SOP之间。 从属关系(可推出关系):存在于SAP与SIP、SEP与SOP、SAP与SaP、SEP与SeP、SaP与SIP、SeP与SOP 六种直言命题之间存在的对当关系可以用一个六角图形来表示,“逻辑方阵图” SAP SEP SaP SeP

SIP SOP 直言命题的真假包含关系 全同关系、真包含于关系、真包含关系、交叉关系、全异关系 复合命题:负命题、联言命题、选言命题、假言命题 负命题的一般公式:并非P 联言命题公式:p并且q “并且、…和…、既…又…、不但…而且、虽然…但是…” 选言命题:相容的选言命题、不相容的选言命题 相容的选言命题公式:p或者q“或、或者…或者…、也许…也许…、可能…可能…” 【一个相容的选言命题是真的,只有一个选言支是真的即可。只有当全部选言支都假时,相容的选言命题才是假的】不相容选言命题公式:要么p要么q “要么…要么…、不是…就是…、或者…或者…二者必居其一、或者…或者…二者不可兼得” 【一个不相容的选言命题是真的,有且只有一个选言支是真的。当选言支全真或全假时,此命题为假】 假言命题:充分条件假言命题、必要条件假言命题、充要条件假言命题 充分条件假言命题公式:如果p,那么q“如果…就…、有…就有…、倘若…就…、哪里有…哪里有…、一旦…就…、假若…、只要…就…” 【有前件必然有后件。如果有前件却没有后件,这个充分条件假言命题就是假的。因此,对于一个充分条件的假言命题来说,只有当其前件真而后件假时,命题才假。】 必要条件假言命题公式:只有p,才q “没有…就没有…、不…不…、除非…不…、除非…才…” 【没有前件必然没有后件。如果没有前件也有后件,这个必要假言命题为假。对于一个必要条件的假言命题来说,只有当其前件假而后件真时,命题才假。】 充要条件假言命题公式:当且仅当p,才q 【有前件必然有后件,没有前件必然没有后件。充要条件假言命题在前件与后件等值即前件真并且后件真,或者前件假并且后件假时,命题为真,在前件与后件不等值即前真后假,或前假后真时,命题为假】 充分条件与必要条件之间可以相互转化:

逻辑函数和逻辑表达式

逻辑函数和逻辑表达式 图1(a)所示为一个有n个输入信号,m个输出信号的多输出组合电路。 图1(a) 各输出变量和输入变量之间的关系可用含m个逻辑表达式的方程组 zi=fi(x1,x2,...,xn) i=1,2,...,m (1) 式(1)是图1(a)所示组合电路的逻辑功能的数学描述。该组合电路则是实现这些逻辑函数的电气装置。 描述组合电路的逻辑函数称为组合逻辑函数。逻辑表达式是描述逻辑函数的一种代数形式。

1.导出逻辑表达式与真值表 数字电路应实现的逻辑功能通常是由某种文字描述给出的。如欲用数字电路实现这些功能,首先要把这一文字描述变换成一种可以进行逻辑变换的描述。真值表和逻辑表达式就是其种的两种描述方法。真值表具体地给出了自变量的全部取值组合下的函数值,所以,真值表是唯一的。对于有n个自变量的函数,其真值表有2n行。对于相同的逻辑功能可以由不同的逻辑表达式来描述。 2.积之和表达式与最小项表达式 设函数z的逻辑表达式为 z(a,b,c)=ab+ac (2) a b和a c是由与(逻辑乘)运算连接的,称为与项(或乘积项,积项)。这两个与项又由或(逻辑 和)运算连接,所以,称这种类型的表达式为与--或表达式或积之和表达式。 式2真值表如下表所示

表2 真值表 z(a,b,c)= a b + a c = a b(c + c) + a (b + a) c = a b c + a b c + a b c + a b c(3) 上式也是积之和表达式。其真值表如表3所示。

表3 最小项是一种特殊类型的乘积项。在一个n个自变量的逻辑函数中,包含全部n个变量的积项称为最小项,均由最小项构成的积之和表达式称为最小项表达式或标准的积之和表达式。 在式(3)中,各最小项的标号由下法求得: 最小项名a b ca b c a b c a b c 取值组合 1 1 11 1 00 1 1 0 0 1

数字电路知识点汇总精华版

数字电路知识点汇总(东南大学) 第1章 数字逻辑概论 一、进位计数制 1.十进制与二进制数的转换 2.二进制数与十进制数的转换 3.二进制数与16进制数的转换 二、基本逻辑门电路 第2章 逻辑代数 表示逻辑函数的方法,归纳起来有:真值表,函数表达式,卡诺图,逻辑图及波形图等几种。 一、逻辑代数的基本公式和常用公式 1)常量与变量的关系A+0=A与A=?1A A+1=1与00=?A A A +=1与A A ?=0 2)与普通代数相运算规律 a.交换律:A+B=B+A A B B A ?=? b.结合律:(A+B)+C=A+(B+C) )()(C B A C B A ??=?? c.分配律:)(C B A ??=+?B A C A ? ))()(C A B A C B A ++=?+) 3)逻辑函数的特殊规律 a.同一律:A+A+A

b.摩根定律:B A B A ?=+,B A B A +=? b.关于否定的性质A=A 二、逻辑函数的基本规则 代入规则 在任何一个逻辑等式中,如果将等式两边同时出现某一变量A的地方,都用一个函数L表示,则等式仍然成立,这个规则称为代入规则 例如:C B A C B A ⊕?+⊕? 可令L=C B ⊕ 则上式变成L A L A ?+?=C B A L A ⊕⊕=⊕ 三、逻辑函数的:——公式化简法 公式化简法就是利用逻辑函数的基本公式和常用公式化简逻辑函数,通常,我们将逻辑函数化简为最简的与—或表达式 1)合并项法: 利用A+1=+A A 或A B A B A =?=?,将二项合并为一项,合并时可消去一个变量 例如:L=B A C C B A C B A C B A =+=+)( 2)吸收法 利用公式A B A A =?+,消去多余的积项,根据代入规则B A ?可以是任何一个复杂的逻辑式 例如 化简函数L=E B D A AB ++ 解:先用摩根定理展开:AB =B A + 再用吸收法 L=E B D A AB ++

计算命题演算公式的真值

四计算命题演算公式的真值 一.实验题目 所谓命题演算公式是指由逻辑变量(其值为TRUE或FALSE)和逻辑运算符∧(AND)、∨(OR)和┐(NOT)按一定规则所组成的公式(蕴含之类的运算可以用∧、∨和┐来表示)。公式运算的先后顺序为┐、∧、∨,而括号()可以改变优先次序。已知一个命题演算公式及各变量的值,要求设计一个程序来计算公式的真值。 要求: (1)利用二叉树来计算公式的真值。首先利用堆栈将中缀形式的公式变为后缀形式;然后根据后缀形式,从叶结点开始构造相应的二叉树;最后按后序遍历该树,求各子树之值,即每到达一个结点,其子树之值已经计算出来,当到达根结点时,求得的值就是公式之真值。 (2)逻辑变元的标识符不限于单字母,而可以是任意长的字母数字串。 (3)根据用户的要求显示表达式的真值表。 二.实验设计 1. 设计思想 (1)数据结构设计 a 建立一个链式堆栈,实现括号的匹配问题。 b建立一个顺序堆栈,来实现中缀转后缀并实现二叉树的打印。 (2)算法设计 a.括号匹配 b中缀转后缀 c打印二叉树和真值表 2. 设计表示 自定义和调用的函数如下所示: #include"" #include"" #include<> #include<>

#include<> #include<> #include<> 函数说明如下 SeqStack1; /*定义一个堆栈SeqStack1*/ void StackInitiate1(SeqStack1 *S) /*初始化堆栈1,栈底为‘#’*/ void StackPush1(SeqStack1 *S,DataType x) /*将元素压入堆栈1*/ void StackPop1(SeqStack1 *S,DataType *x) /*弹出堆栈1的栈顶元素*/ int StackTop1(SeqStack1 S,DataType *d) /*取堆栈1的栈顶元素*/ SeqStack2; /*定义一个顺序堆栈SeqStack2*/ void StackInitiate2(SeqStack2 *S) /*初始化堆栈2*/ BiTreeNode * StackPop2(SeqStack2 *S) /*从堆栈2中弹出栈顶元素*/ BiTreeNode; /*定义二叉树的结点*/ void Initiate(BiTreeNode **root) /*初始化树的根结点*/ void print(BiTreeNode *bt,int n) /*逆时针打印二叉树*/ void StackPush2(SeqStack2 *S,BiTreeNode *x) /*将二叉树结点压入堆栈2*/ int Convert(char a[500],char b[500][100],SeqStack1 *S,int n) /*将待求表达式转换为后缀形式*/ BiTreeNode * BuildTree(char b[500][100],int n)/*根据表达式的后缀形式,构造相应的二叉树*/ LSNode; /*定义了链式堆栈用于下面检测表达式的括号匹配*/ void StackInitiate(LSNode** head) /*初始化堆栈*/ int StackNotEmpty(LSNode* head) /*检测堆栈是否为空的函数*/ int StackPush(LSNode* head,DataType x) /*将元素入栈*/

命题逻辑复习题和答案

. 命题逻辑 一、选择题(每题3分) 1、下列句子中哪个是命题?(C) A、你的离散数学考试通过了 吗? B 、请系好安全带! C、是有理数 D 、本命题是假的 2、下列句子中哪个不是命 题?(C) A、你通过了离散数学考试 B 、我俩五百年前是一家 C、我说的是真话 D 、淮海工学院是一座工厂 3、下列联接词运算不可交换的 是(C) A、B、 C 、 D 、 4、命题公 式P Q不能表述为(B) A、P或Q B 、非P每当QC、非P仅当Q D、除非P,否则Q 5、永真式的否定是(B) A、永真式 B 、永假 式 C 、可满足式 D 、以上答案均有可能 6、下列哪组赋值使命题公 式P(P Q)的真值为假(D) A、P假Q真 B、P假Q假C 、P真Q真D、P真Q假 7、下列为命题公式P (Q R)成假指派的是(B) A、100 B 、101 C 、110 D 、111 8、下列公式中为永真式的是(C) A、P(PQ) B、P (PQ) C、(PQ) Q D、(PQ)Q 9、下列公式中为非永真式的是(B) A、(P P) Q B、(P P) Q C、P(P Q) D、P(PQ) 10、下列表达式错误的是(D) A、P(PQ) P B 、P(PQ) P C、P(PQ)PQ D 、P(PQ)PQ 11、下列表达式正确的是(D) A、PPQ B、PQP C、Q (P Q) D、(PQ)Q 12、下列四个命题中真值为真的命题为(B) (1)2 2 4当且仅当3是奇数(2)2 2 4 当且仅当3不是奇数; (3)2 2 4当且仅 当3是奇数(4)2 24当且仅当3不是奇数 A、(1)与(2) B 、(1)与(4)C、(2)与(4) D 、(3)与(4) 13、设P:龙凤呈祥是成语,Q:雪是黑的,R:太阳从东方升起,则下列假命题为(A) A、P Q R B 、Q P S C、P Q R D 、Q P S 14、设P:我累,Q:我去打球,则命题:“除非我累,否则我去打球”的符号化为( B ) A、PQ B 、P Q C、PQ D、P Q 15、设P:我听课,Q:我睡觉,则命题“我不能一边听课,一边睡觉”的符号化 为(B) A、PQ B 、P QC、PQ D、P Q 提示:(P Q) P Q 16、设P:停机;Q:语法错误;R:程序错误, 则命题“停机的原因在于语法错误或程序错误”的符号化为( D) A、PQR B、P QR C、QRP D、QRP 17、设P:你来了;Q:他唱歌;R:你伴奏 则命题“如果你来了,那末他唱不唱歌将看你是否伴奏而的符号化为(D )

逻辑判断推理中常用的逻辑公式

逻辑判断推理中常用的 逻辑公式 Document serial number【UU89WT-UU98YT-UU8CB-UUUT-UUT108】

逻辑命题与推理 必然性推理(演绎推理):对当关系推理、三段论、复合命题推理、关系推理和模态推理 可能性推理:归纳推理(枚举归纳、科学归纳)、类比推理 命题 直言命题的种类:(AEIOae) ⑴全称肯定命题:所有S是P(SAP) ⑵全称否定命题:所有S不是P(SEP) ⑶特称肯定命题:有的S是P(SIP) ⑷特称否定命题:有的S不是P(SOP) ⑸单称肯定命题:某个S是P(SaP) ⑹单称否定命题:某个S不是P(SeP) 直言命题间的真假对当关系: 矛盾关系、(上)反对关系、(下)反对关系、从属关系 矛盾关系:具有矛盾关系的两个命题之间不能同真同假。主要有三组: SAP与SOP之间。“所有同学考试都及格了”与“有些同学考试不及格” SEP与SIP之间。“所有同学考试不及格”与“有些同学考试及格” SaP与SeP之间。“张三考试及格”与“张三考试不及格” 上反对关系:具有上反对关系的两个命题不能同真(必有一假),但是可以同假。即要么一个是假的,要么都是假的。存在于SAP与SEP、SAP与SeP、SEP与SaP之间。 下反对关系:具有下反对关系的两个命题不能同假(必有一真),但是可以同真。即要么一个是真的,要么两个都是真的。存在于SIP与SOP、SeP与SIP、SaP与SOP之间。 从属关系(可推出关系):存在于SAP与SIP、SEP与SOP、SAP与SaP、SEP与SeP、SaP与SIP、SeP与SOP

六种直言命题之间存在的对当关系可以用一个六角图形来表示,“逻辑方阵图” SAP SEP SaP SeP SIP SOP 直言命题的真假包含关系 全同关系、真包含于关系、真包含关系、交叉关系、全异关系 复合命题:负命题、联言命题、选言命题、假言命题 负命题的一般公式:并非P 联言命题公式:p并且q “并且、…和…、既…又…、不但…而且、虽然…但是…” 选言命题:相容的选言命题、不相容的选言命题 相容的选言命题公式:p或者q“或、或者…或者…、也许…也许…、可能…可能…” 【一个相容的选言命题是真的,只有一个选言支是真的即可。只有当全部选言支都假时,相容的选言命题才是假的】 不相容选言命题公式:要么p要么q

数字电路逻辑设计--逻辑函数及其化简练习题

《数字电路逻辑设计》练习题 ---------- 逻辑函数及其化简 一. 用公式证明下列各等式。 1.()= D = +BC+BCD = +D= AB AC B C D AB AC D AB AC B CD AB AC AB AC +++=+++++++原式左边右边 2. A +BC (1+D)++BC =++BC=++BC =BC+BC=+BC=A C A B C D A BC A C A B A C A B A C B A A ?+?+??=+?????原式左边()右边 3. BCD BCD ACD+ABC +A BCD +BC +BCD BC +BD =BCD+A BCD BCD+BCD +ABC +BC +ACD =BCD+A BCD+BD+BC +ACD =BCD+ACD+BCD+BD+BC =BCD+ACD+BD+DC+BC =BCD+BD+DC+BC =C D+B + B D+C =BC+BD+BC= D D BC D D D D D D ++???=+?+???????原式左边()()右边 4. AB B+D CD+BC+A BD+A+CD=1=AB B+D CD BC+A BD A+C+D =AB+ B+D+CD)(B+C C D =(B+C +C D =BC+BD+CD+C+D=1=????????原式左边()++(B+D))+ 右边 二. 写出下列各逻辑函数的最小项表达式及其对偶式、 反演式 的最小项表达式 1. F=ABCD+ACD+BD =m m(0,1,2,3,5,7,8,9,10,13) F*=m(2,5,6,7,8,10,12,13,14,15) ∑=∑∑(4,6,11,12,14,15)F 2. F=AB+AB+BC =m m(0,1,6) F*=m(1,6,7) ∑=∑∑(2,3,4,5,7)F 3. F=AB+C BD+A D =m m(023******* ) F*=m(34511121315) B C +?++∑=∑∑(1,5,6,7,8,9,13,14,15) F ,,,,,,,,,,,, 三. 用公式法化简下列各式 1. F=ABC+A CD+AC =A(BC+C)+A CD=AC AB A CD =C(AD)AB=AC+CD+AB A ??++?++ 2. F=AC D+BC+BD+AB+AC+B C =AC D+BC+BD+AB+AC+BC+B C =AC D+BC+AC+B =AD+C+B ????? 3. F=(A+B)(A+B+C)(A+C)(B+C+D)F*= AB+ABC+AC+BCD = AB+AC+BCD=AB+AC F=(F*)*=(A+B)(A+C)=AC+AB ∴Q 4. F=AB+A B BC+B C AB+A B BC+B C AB+A B BC+B C A B C A A F C AB BC C AB B C C ???=?+?=?+?+=++?+=+?+ 5. F=AC+B ()()()()C B AC AC F A C B C ABC ABC AB A C BC C ABC ABC AB C A B C AC BC ++=++++=+?++++=+=+=+ 四. 用图解法化简下列各函数。 1. F=ABC+A CD+AC ?

逻辑式与真值表

课题:逻辑式与真值表 课时:两课时 教学目标:1、了解逻辑式的概念; 2、会填写逻辑式的真值表; 3、理解等值逻辑式的涵义; 4、能够判断逻辑式是否等值 教学重点:理解等值逻辑式的概念,并能判断逻辑式是否等值。 教学难点:填写逻辑式的真值表 教学过程: 一、创设情境,导入课题 A 、A ·(B+C )、[(A B)+C] + D 、1、0 有常量1、0以及逻辑变量经逻辑运算构成的式子叫做逻辑代数式,简称逻辑式。 逻辑运算的优先次序依次为“非运算”、“与运算”、“或运算”,如果有添加括号的逻辑式,首先要进行括号内的运算。 二、动脑思考,探索新知 列出逻辑变量的一切可能取值与相应的逻辑式的值的表,叫做逻辑式的真值表。 问题1:试写出AB B A +?的真值表。 A B AB B A +? 1 1 1 0 0 1 0 分析:可以先写出B A ?和AB ,再计算AB B A +? 问题2:试写出B A +与B A ?的真值表,并观察它们值的关系 A B A+B B A + A B B A ? 1 1 1 0 0 0 0 1 0 1 0 0 1 0 0 1 1 0 1 0 0 0 1 1 1 1

如果对于逻辑变量的任何一组取值,两个逻辑式的值都相等,这样的两个逻辑式叫做等值逻辑式,等值逻辑式可用“=”连接,并称为等式。需要注意,这种相等是状态的相同。 问题3:用真值表验证下列等式是否成立 A·(B+C)=A·B+A·C A B C B+C A·(B+C)A·B A·C A·B+A·C 1 1 1 1 1 1 1 1 1 1 0 1 1 1 0 1 1 0 1 1 1 0 1 1 1 0 0 0 0 0 0 0 0 1 1 1 0 0 0 0 0 1 0 1 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 可以看出对于逻辑变量的任何一组值,A·(B+C)与A·B+A·C的值都相同,所以A·(B+C)=A·B+A·C。 随堂练习 1.填写下列真值表,并判断有没有等值逻辑式 (1) A B A·B B A?B A+ (2) A B A+B B A? A+B

逻辑代数及逻辑函数化简.doc

第 2 章 逻辑代数和逻辑函数化简 基本概念:逻辑代数是有美国数学家 George Boole 在十九世纪提出 , 因此也称 布尔代数 , 是分析和设计数字逻辑电路的数学工具。 也叫开关代数, 是研究只用 0 和 1 构成的数字系统的数学。 基本逻辑运算和复合逻辑运算 基本逻辑运算:“与”、“或”、“非”。 复合逻辑运算:“与非”、“或非”、“与或非”、“异 或”、“同或”等。 A B 基本逻辑运算 ~ 220V F 1. “与”运算①逻辑含义:当决定事件成立的所有条件全部具 备时,事件才会发生。 ②运算电路:开关 A 、B 都闭合,灯 F 才亮。 ③表示逻辑功能的方法: 真值表 A B F 灯 F 的状态代表 开关 A 、B 的状态代 0 0 表输入: 0 1 0 输出: 1 0 0 “ 0”表示亮; “0”表示断开; 1 1 1 表达式: F A B = ? 逻辑符号: A & FA FA F B B B 国家标准 以前的符号 欧美符号 功能说明: 有 0 出 0,全 1 出 1。 在大规模集成电路可编程逻辑器件中的表示符号: A B A B A B & F F F

通过“ ?”接入到此线上的输入信号都是该与门的一个输入端。推广:当有 n 个变量时: F=A 1A 2 A 3 ? ? ? A n “与”运算的几个等式: 0?0=0,0?1=0, 1?1=1 A?0=0(0-1 律), A?1=A (自等律),A?A=A (同一律), A?A?A=A (同一律)。 2. “或”运算①逻辑含义:在决定事件成立的所有条件中,只 要具备一个,事件就会发生。 A ②运算电路: 开关 A 、B 只要闭合一个,灯 F 就亮。 B ~220V F ③表示逻辑功能的方法: 逻辑功能: 有 1 出 1,全 0 出 0。 真值表:(略) 表达式: F=A+B 逻辑符号: A ≥ 1 F A FA F B + B B 国家标准 以前的符号 欧美符号 推广:当有 n 个变量时: F=A 1+A 2+ A 3+? ? ? +A n “或”运算的几个等式: 0+0=0,0+1=1, 1+1=1 A+0=A (自等律) A+1=1( 0-1 律),A+A=A (同一律)。 上次课小结:与、或的功能、表达式等,几个等式。 3.“非”运算 ①逻辑含义:当决定事件的条件具备时, 事件不 发生;当条件不具备时,事件反而发生了。 R ②运算电路:开关 A 闭合,灯 F 不亮。 ~ 220V A F ③表示逻辑功能的方法: 逻辑功能: 入 0 出 1,入 1 出 0。 真值表:(略) 表达式: F= A

数字电路知识点汇总(精华版)

数字电路知识点汇总(东南大学) 第1章数字逻辑概论 一、进位计数制 1.十进制与二进制数的转换 2.二进制数与十进制数的转换 3.二进制数与16进制数的转换 二、基本逻辑门电路 第2章逻辑代数 表示逻辑函数的方法,归纳起来有:真值表,函数表达式,卡诺图,逻辑图及波形图等几种。 一、逻辑代数的基本公式和常用公式 1)常量与变量的关系A+0=A与A= ?1A A+1=1与0 ?A 0= A?=0 A A+=1与A 2)与普通代数相运算规律 a.交换律:A+B=B+A A? ? = A B B b.结合律:(A+B)+C=A+(B+C) ? A? B ? ? = (C ) C ( ) A B c.分配律:) ?=+ A? B (C A? ?B A C + A+ = +) B ? ) (C )() C A B A 3)逻辑函数的特殊规律 a.同一律:A+A+A

b.摩根定律:B B A+ = A ? A +,B B A? = b.关于否定的性质A=A 二、逻辑函数的基本规则 代入规则 在任何一个逻辑等式中,如果将等式两边同时出现某一变量A的地方,都用一个函数L表示,则等式仍然成立,这个规则称为代入规则例如:C ? + A⊕ ⊕ ? B A C B 可令L=C B⊕ 则上式变成L ?=C + A A? L ⊕ ⊕ = L A⊕ B A 三、逻辑函数的:——公式化简法 公式化简法就是利用逻辑函数的基本公式和常用公式化简逻辑函数,通常,我们将逻辑函数化简为最简的与—或表达式1)合并项法: 利用A+1 A= ? B ?,将二项合并为一项,合并时可消去 = +A = A或A B A 一个变量 例如:L=B + B A= ( C +) = A C A C B B C A 2)吸收法 利用公式A A?可以是? +,消去多余的积项,根据代入规则B A B A= 任何一个复杂的逻辑式 例如化简函数L=E AB+ + D A B 解:先用摩根定理展开:AB=B A+再用吸收法 L=E + AB+ A D B

化简下列逻辑函数要求表达式尽量简单-浙江大学

数字电路2014 :浙江大学信息与通信工程研究所 liupeng@https://www.wendangku.net/doc/b24260090.html, 作业1:(上交时间:2014年3月6日) 1.采用卡诺图法化简下列逻辑函数,要求表达式尽量简单。 1) F(A, B,C, D) = ∑m (1, 2, 4, 7, 8, 11, 13, 14) 2) F (A, B, C, D) = ∑m (0, 1, 4, 7, 9, 10, 13) + ∑d(2, 5, 8, 12, 14, 15) 其中d 为任意项 3) F(A,B,C,D)=Σm(1,2,4,12,14) + Σd(5,6,7,8,9,10),其中d 为任意项 4) Y A,B,C,D)=A BD+ABC+BCD+AB CD+A B CD ( 5) Y(A ,B,C,D) = ∑m(0, 2, 3, 4, 8) + ∑d (10, 11,12,13,14,15),其中d 为任意项 6) (,,,)()()()()()Y A B C D A B C D A B A B D B C B C D =+++++++++ 2.将下面函数化简为最简与或式,不必考虑冒险。 1) Y AD ABC ABD ABCD =+++, 约束条件为:ABC+ABD+ACD+BCD = 0 2) (1,3,4,6,7,9,11,12,14,15)Y M =∏ 3) ()()Y AB AC BD ABCD ACD BCD BC =+++++ 3.能实现任何逻辑函数的逻辑门的集合,被称为逻辑门的完全集。已知二输入与门、二输入或门和非门为一个完全集。试证明:二输入或门、异或门为逻辑门的完全集。 4.采用公式法将下面的逻辑函数化简成最简与或式,并用与非门实现。 ()()Y AB D AB B D ABE ADE =++++ 5.用权6,3,1,1将十进制表示为含权的二进制码。 6.列出真值表: 输入是3位二进制,输出为3位循环码 7.用最小项之和与最大项之积来表示下列函数 (,,,)F A B C D BD AD BD =++ 8.用异或门和与门实现下面的布尔表达式。 F ABCD ABCD ABCD ABCD =+++ 9. 和8421BCD 码(1010100)等值的二进制数为 。 10.一个有n 个变量的逻辑函数,如果它的最小项表达式由k 个最小项组成,则它的最大 项表达式将由 个最大项组成。 11.一个格雷码的前一个码是0101,后一个是1100,这个格雷码是 。 12.有函数 1F (A,B,C,D)=ABCD+BCD+AB D+ABCD+AD 2F (A,B,C,D)=CD+ABCD+BD+ACD+BCD 试求函数312F (A,B,C,D)=F F ⊕的最简与或表达式。

《数字电路逻辑设计》--逻辑函数及其化简练习题

《数字电路逻辑设计》练习题 ---------- 逻辑函数及其化简 一. 用公式证明下列各等式。 1.()= D = +BC+BCD = +D= AB AC B C D AB AC D AB AC B CD AB AC AB AC +++=+++++++原式左边右边 2. A +BC (1+D)++BC =++BC=++BC =BC+BC=+BC=A C A B C D A BC A C A B A C A B A C B A A ?+?+??=+?????原式左边()右边 3. BCD BCD ACD+ABC +A BCD +BC +BCD BC +BD =BCD+A BCD BCD+BCD +ABC +BC +ACD =BCD+A BCD+BD+BC +ACD =BCD+ACD+BCD+BD+BC =BCD+ACD+BD+DC+BC =BCD+BD+DC+BC =C D+B + B D+C =BC+BD+BC= D D BC D D D D D D ++???=+?+???????原式左边()()右边 4. AB B+D CD+BC+A BD+A+CD=1=AB B+D CD BC+A BD A+C+D =AB+ B+D+CD)(B+C C D =(B+C +C D =BC+BD+CD+C+D=1=????????原式左边()++(B+D))+ 右边 二. 写出下列各逻辑函数的最小项表达式及其对偶式、 反演式 的最小项表达式 1. F=ABCD+ACD+BD =m m(0,1,2,3,5,7,8,9,10,13) F*=m(2,5,6,7,8,10,12,13,14,15) ∑=∑∑(4,6,11,12,14,15)F 2. F=AB+AB+BC =m m(0,1,6) F*=m(1,6,7) ∑=∑∑(2,3,4,5,7)F 3. F=AB+C BD+A D =m m(023******* ) F*=m(34511121315) B C +?++∑=∑∑(1,5,6,7,8,9,13,14,15) F ,,,,,,,,,,,, 三. 用公式法化简下列各式 1. F=ABC+A CD+AC =A(BC+C)+A CD=AC AB A CD =C(AD)AB=AC+CD+AB A ??++?++ 2. F=AC D+BC+BD+AB+AC+ B C =AC D+BC+BD+AB+AC+BC+B C =AC D+BC+AC+B =AD+C+B ????? 3. F=(A+B)(A+B+C)(A+C)(B+C+D)F*= AB+ABC+AC+BCD = AB+AC+BCD=AB+AC F=(F*)*=(A+B)(A+C)=AC+AB ∴ 4. F=AB+A B BC+B C AB+A B BC+B C AB+A B BC+B C A B C A A F C AB BC C AB B C C ???=?+?=?+?+=++?+=+?+ 5. F=AC+B ()()()()C B AC AC F A C B C ABC ABC AB A C BC C ABC ABC AB C A B C AC BC ++=++++=+?++++=+=+=+ 四. 用图解法化简下列各函数。 1. F=ABC+A CD+AC ?

离散数学之逻辑运算和命题公式真值表

1、逻辑联接词的运算 从键盘输入两个命题变元P和Q的真值,输出它们的合取、析取、条件、双条件和P的否定的真值。 #include int main() { int a,b; int hequ(int P,int Q); int xiqu(int P,int Q); int tiaojian(int P,int Q); int shuangtiaojian(int P,int Q); int Pfaoding(int P); int show(int a,int b); cout<<"请输入P和Q的真值:\n"; cin>>a>>b; show(a,b); return 0; } int hequ(int P,int Q) { if(P==0) P=P; else P=1; if(Q==0) Q=Q; else Q=1; return(P&Q); } int xiqu(int P,int Q) { if(P==0) P=P; else P=1; if(Q==0) Q=Q; else Q=1; return(P|Q); } int tiaojian(int P,int Q)

{ if(P==0) P=P; else P=1; if(Q==0) Q=Q; else Q=1; if(P==1&&Q==0) return(0); else return(1); } int shuangtiaojian(int P,int Q) { if(P==0) P=P; else P=1; if(Q==0) Q=Q; else Q=1; return(!P^Q); } int Pfaoding(int P) { if(P==0) P=P; else P=1; return(!P); } int show(int a,int b) { cout<<"P Q P∧Q P∨Q P→Q P←→Q ┐P"<

离散数学,逻辑学,命题公式求真值表

离散逻辑学实验 班级:10电信实验班学号:Q 姓名:王彬彬 一、实验目的 熟悉掌握命题逻辑中的联接词、真值表、主范式等,进一步能用它们来解决实际问题。 二、实验内容 1. 从键盘输入两个命题变元P和Q的真值,求它们的合取、析取、条件和双条件的真值。(A) 2. 求任意一个命题公式的真值表(B,并根据真值表求主范式(C)) 三、实验环境 C或C++语言编程环境实现。 四、实验原理和实现过程(算法描述) 1.实验原理 (1)合取:二元命题联结词。将两个命题P、Q联结起来,构成一个新的命题P∧Q, 读作P、Q的合取, 也可读作P与Q。这个新命题的真值与构成它的命题P、Q的真值间的关系为只有当两个命题变项P = T, Q = T时方可P∧Q =T, 而P、Q只要有一为F则P∧Q = F。这样看来,P∧Q可用来表示日常用语P与Q, 或P并且Q。 (2)析取:二元命题联结词。将两个命题P、Q联结起来,构成一个新的命题P∨Q, 读作P、Q的析取, 也可读作P或Q。这个新命题的真值与构成它的命题P、Q的真值间的关系为只有当两个命题变项P = F, Q = F时方可P∨Q =F, 而P、Q只要有一为T则P∨Q = T。这样看来,P∨Q可用来表示日常用语P或者Q。 (3)条件:二元命题联结词。将两个命题P、Q联结起来,构成一个新的命题P→Q, 读作P条件Q, 也可读作如果P,那么Q。这个新命题的真值与构成它的命题P、Q的真值间的关系为只有当两个命题变项P = T, Q = F时方可P→Q =F,

其余均为T。 (4)双条件:二元命题联结词。将两个命题P、Q联结起来,构成一个新的命题P←→Q, 读作P双条件于Q。这个新命题的真值与构成它的命题P、Q的真值间的关系为当两个命题变项P = T, Q =T时方可P←→Q =T, 其余均为F。 (5)真值表:表征逻辑事件输入和输出之间全部可能状态的表格。列出命题公式真假值的表。通常以1表示真,0 表示假。命题公式的取值由组成命题公式的命题变元的取值和命题联结词决定,命题联结词的真值表给出了真假值的算法。真值表是在逻辑中使用的一类数学表,用来确定一个表达式是否为真或有效。 (6)主范式: 主析取范式:在含有n个命题变元的简单合取式中,若每个命题变元与其否定不同时存在,而两者之一出现一次且仅出现一次,称该简单合取式为小项。由若干个不同的小项组成的析取式称为主析取范式;与A等价的主析取范式称为A的主析取范式。任意含n个命题变元的非永假命题公式A都存在与其等价的主析取范式,并且是惟一的。 主合取范式:在含有n个命题变元的简单析取式中,若每个命题变元与其否定不同时存在,而两者之一出现一次且仅出现一次,称该简单析取式为大项。由若干个不同的大项组成的合取式称为主合取范式;与A等价的主合取范式称为A的主合取范式。任意含n个命题变元的非永真命题公式A都存在与其等价的主合取范式,并且是惟一的。 五、代码设计结果:

离散数学实验报告命题逻辑—构造命题公式的真值表

【实验目的】 使学生熟练掌握利用计算机语言实现逻辑运算的基本方法。 【实验内容】 对给出的任意一个命题公式(不超过四个命题变元),使学生会用C语言的程序编程表示出来,并且能够计算它在各组真值指派下所应有的真值,画出其真值表。 【实验原理】 给出任意一个命题公式,我们可以将它用C程序表示出来,并且能够计算它在各组真值指派下所应有的真值(或是逻辑运算的结果)。这有多种方法。上面我们已经给出了逻辑连结词的定义,根据这种定义方法,我们也可以把一个命题公式表示成为条件语句中的条件表达式,这样我们就可以得到该命题公式的逻辑运算结果了。 【程序代码】 #include using namespace std; int a[8][3]={{0,0,0},{0,0,1},{0,1,0},{0,1,1},{1,0,0},{1,0,1},{1,1,0},{1,1,1}}; int b[8]={0,0,0,0,0,0,0,0}; int xa[8]={0,0,0,0,0,0,0,0}; int s(char c,int as,int i){//1 true;0 false if(c=='|'){ if(a[i][as]==1||a[i][as+1]==1){ return 1; } else{ return 0; } } if(c=='&'){ if(a[i][as]==1&&a[i][as+1]==1){ return 1; } else{ return 0; } } if(c=='='){ if(a[i][as]==a[i][as+1]){ return 1; } else{ return 0; } } if(c=='!'){ if(a[i][as]==a[i][as+1]){ return 0;

相关文档
相关文档 最新文档