c程序设计第四版谭浩强ppt
合集下载
C语言程序设计(第四版) 谭浩强 课件 PPT 完整版

语句
printf语句中的“\n‖是换行
符
<
>
C语言程序设计
第/* example1.1 calculate the sum of a and b*/ #include <stdio.h> 预处理命令 /* This is the main program */ void main() 注释 { int a,b,sum; /*定义变量*/ 函数 a=10; b=24; 语句 sum=add(a,b); printf(”sum= %d\n",sum); } printf语句中的“ %d ‖是表
C语言程序设计
第一章 C语言概述
C语言结构特点
函数与主函数
程序由一个或多个函数组成 必须有且只能有一个主函数main(),可以放在程序中任一 位臵 程序执行从main开始,在main中结束,其它函数通过嵌 套调用得以执行。
程序语句
C程序由语句组成 用‚;‛作为语句终止符
注释
C语言程序设计
第一章 C语言概述
Turbo C集成开发环境
配臵要求
UNIX,PC-DOS,MS-DOS,UCDOS操作系统 硬盘容量约2M,448K RAM运行空间
安装Turbo C
创建子目录 Install 若不是可安装盘,将文件拷贝到对应的目录下
TC
*.* *.*
INCLUDE SYS
Alt +x Alt+F ,Q
帮助Help
F1 Ctrl+F1
<
>
C语言程序设计
第一章 C语言概述
常用热键 基本操作:
F10-----调用主菜单 F2------存盘 F3------打开 F1------帮助信息 Alt+F9------Compile Ctrl+F9------Run Alt+F5------User Screen Alt+X ------退出Tc
C语言程序设计第四版PPT 谭浩强

case '9' : y="A";
case '8' : y="B"; case '7' : y="C"; case '6' : y="D"; default : y="E"; } printf("Level:%c\n",y);
注意: 同前;case后的数据类型; 每个case后的break语句; 使用相同语句的分支合并。
printf("It's a positive number\n");
else
printf("less than zero\n");
关系运算符
< <= == !=
> >= 优先级高 优先级低
关系运算符
算术运算→关系运算→赋值运算
优
优
先
先
于
于
例:P.92 L.8
关系表达式
➢用关系运算符连接算术表达式(或 字符/关系/逻辑/赋值表达式)形成
选择结构(分支结构)流程
Y
语句组1
条件
N
语句组2
循环结构流程
条件
N
Y
语句组
第4章 选择结构
选择结构(分支结构)流程YΒιβλιοθήκη 语句组1条件N
语句组2
选择结构实例
P.66 例3.5 一元二次方程 程序存在的问题:用户输入的数据必 须保证b2-4ac≥0,否则调用sqrt函数 会出错。 改进:P.86 例4.1 是否还有不完善之处?
文件名
尽信书,则不如无书
算法在程序中的重要性
case '8' : y="B"; case '7' : y="C"; case '6' : y="D"; default : y="E"; } printf("Level:%c\n",y);
注意: 同前;case后的数据类型; 每个case后的break语句; 使用相同语句的分支合并。
printf("It's a positive number\n");
else
printf("less than zero\n");
关系运算符
< <= == !=
> >= 优先级高 优先级低
关系运算符
算术运算→关系运算→赋值运算
优
优
先
先
于
于
例:P.92 L.8
关系表达式
➢用关系运算符连接算术表达式(或 字符/关系/逻辑/赋值表达式)形成
选择结构(分支结构)流程
Y
语句组1
条件
N
语句组2
循环结构流程
条件
N
Y
语句组
第4章 选择结构
选择结构(分支结构)流程YΒιβλιοθήκη 语句组1条件N
语句组2
选择结构实例
P.66 例3.5 一元二次方程 程序存在的问题:用户输入的数据必 须保证b2-4ac≥0,否则调用sqrt函数 会出错。 改进:P.86 例4.1 是否还有不完善之处?
文件名
尽信书,则不如无书
算法在程序中的重要性
C语言程序设计第四版_谭浩强7章

➢函数的功能
return z; }
函数体
函数首部,不是语 句,行尾无分号
精选课件ppt
函数的返回值,类 型与首部定义一致14
函数的定义
关于函数类型的说明
无返回值的函数类型为void; 有返回值的函数,其类型根据返回值 类型决定;省略类型时默认为int(建议 不要省略)
精选课件ppt
15
函数的调用
int main( )
{ int max(int a[ ],int n);
int x[6],i;
for(i=0;i<=5;i++)
scanf("%d",&x[i]);
printf("max=%d",max(x,6));
return 0;
}
实参为数组名
精选课件ppt
int max(int a[ ],int n) { int m,i; m=a[0]; for (i=1;i<n;i++)
float fac; fac=1; for(i=1;i<=n;i++)
fac=fac*i; return fac;
printf("c="); scanf("%d",&c);
}
sum=factorial(a)+factorial(b)+factorial(c);
printf("%d!+%d!+%d!=%.0f",a,b,c,sum);
函数1 函数2 函数3
函数1 函数2
精选课件ppt
34
变量作用域——局部变量和全局变量
C语言程序设计第四版PPT-谭浩强

文件f2的 文件信息区
文件f3的 文件信息区
文件的基本知识——文件的操作 写文件:打开-写-关闭 读文件:打开-读-关闭
文件的打开
功能:为文件建立相应的信息区(存放 文件信息)和文件缓冲区(暂时存放输入 输出的数据) 函数: fopen(文件名,使用文件方式); 例: fopen("a1.dat","r");
第10章 文件
本章内容
10.1 文件的基本知识 10.2 打开与关闭文件 10.3 顺序读写数据文件 10.4 随机读写数据文件 10.5 文件读写的出错检测
文件的基本知识——输入输出
之前各章中处理的数据 ➢输入:键盘->内存 ➢输出:内存->显示器 实际上也可能是 ➢输入:外部设备->内存(读文件) ➢输出:内存->外部设备(写文件) 操作系统把各种设备都统一作为文件处理
文件
顺序文件的读写——读写字符串
例10.3 从键盘输入3个字符串,排序,把排
序后的字符串写入文件(P.342-343) 读上面写好的文件(P.344)
顺序文件的读写——格式化读写
fprintf(文件指针,格式字符串,输出表列); fscanf (文件指针,格式字符串,输入表列);
例: fprintf (fp,"%d,%6.2f",i,f); fscanf (fp,"%d,%f",&i,&f);
用文件扩展名”
文件的基本知识——流式文件
C语言把文件看作是字符(或字 节)的序列。
文件以“流”的形式在程序与操 作系统间流动。
文件的基本知识——数据的形式
根据数据的组织形式,数据文件可分为 ASCII文件:数据逐个字符的ASCII码 输出到外存,也称文本文件 二进制文件:内存中二进制形式的数据 直接输出到外存
C语言程序设计第四版谭浩强-PPT课件

例: printf("%d",sizeof(int));
浮点型数据(Floating point,即实型) 浮点型常量
两种表示形式 十进制小数:例如 3.14159 指数形式:例如 1.72e3
main( ) { float x; x=23456.789; printf("x=%e",x); }
25string26string字符串结束符占一个字节由系统自动加上源代码中china27字符常量字符串常量定界符非负整数存储要求单个字符的ascii码有效字符和结束标志0的ascii码2829整型intshortlong浮点型floatdoublelongdouble字符型char数据可混合运算运算前先自动转换成同一类型必定转换floatdoublecharint运算对象类型不同时由较低精度向较高精度转换成相同类型精度
常变量
C99新增 存储方式和用法都是变量,但只能在 定义时赋值一次
C语言的数据类型
1.基本类型 整型、浮点型、字符型 2.派生类型 数组,结构体,共用体 3.指针类型 4.空类型 5.枚举型
整型数据(Integer) 整型常量
三种数制的表示形式
十进制(Decimal):例如 八进制(Octal):例如
上周实验题讲解
P.6例1.1 P15习题5 教材例1.3
——增加输入提示,便于用户操作
——也可以不用函数
——多次运行,测试各种顺序的组合
P15习题6
——三个数比较:用max函数比较两次
第3章
顺序程序设计
3.1 最简单的程序结构——顺序结构
数据输入 运算处理
结果输出
顺序结构流程
步骤1 步骤2 步骤3
10 + 'a' – 10.1 * 'b'
浮点型数据(Floating point,即实型) 浮点型常量
两种表示形式 十进制小数:例如 3.14159 指数形式:例如 1.72e3
main( ) { float x; x=23456.789; printf("x=%e",x); }
25string26string字符串结束符占一个字节由系统自动加上源代码中china27字符常量字符串常量定界符非负整数存储要求单个字符的ascii码有效字符和结束标志0的ascii码2829整型intshortlong浮点型floatdoublelongdouble字符型char数据可混合运算运算前先自动转换成同一类型必定转换floatdoublecharint运算对象类型不同时由较低精度向较高精度转换成相同类型精度
常变量
C99新增 存储方式和用法都是变量,但只能在 定义时赋值一次
C语言的数据类型
1.基本类型 整型、浮点型、字符型 2.派生类型 数组,结构体,共用体 3.指针类型 4.空类型 5.枚举型
整型数据(Integer) 整型常量
三种数制的表示形式
十进制(Decimal):例如 八进制(Octal):例如
上周实验题讲解
P.6例1.1 P15习题5 教材例1.3
——增加输入提示,便于用户操作
——也可以不用函数
——多次运行,测试各种顺序的组合
P15习题6
——三个数比较:用max函数比较两次
第3章
顺序程序设计
3.1 最简单的程序结构——顺序结构
数据输入 运算处理
结果输出
顺序结构流程
步骤1 步骤2 步骤3
10 + 'a' – 10.1 * 'b'
谭浩强C程序设计四PPT课件

第四章 最简单的ห้องสมุดไป่ตู้程序设计 --顺序程序设计
教学要求: 1理解数据输入与输出操作和格式 2掌握输入与输出 3掌握用顺序结构来进行程序设计
教学内容: 4.1C语句概述 4.2赋值语句 4.3数据输出 4.4数据输入 4.5程序举例
高级语言程序设计
章顺序程序设计
第四
4.1 C语句概述
C语句作用:用来向计算机系统发出 操作指令
输出表:要输出的数据(可以没有,多个时以“,”分隔) 格式控制串:包含两种信息
格式说明: %[修饰符]格式字符 ,用于指定输出格式 普通字符或转义序列:原样输出 格式字符
高级语言程序设计
格式字符:
章顺序程序设计
第四
d,i 十进制整数
int a=-1;printf ( “%d”,a);
-1
x,X 十六进制无符号整数int a=255;printf(“%x”,a);
ff
o u c s e,E f g %%
指八小e不百字单和例数进数带分符一f中形制形符号串字较式无式号本符ipp短浮符浮十身nrr一tii点号点进nn种例输制小整小att例=ff整数数数出3((,““数结bfffmcill=a%iilphan果oonnop4=draiaatttar;%ir例ttntip:nd%aan(输arptadaa==atf)==ir==,\6-=f(6出3ni355515(n“m566,tn;;6“b”;a77pp结7bft%p=i..rr.%=(f4sr%,77nii7%”果i4“(88dann8”(输n{};“99tt9\,),t:;;%ff;)nb“f出pp((p;da()”rr““ruu=A“;ii结iBnp=%%ann,%%nC%sr-dd=ttouta果”cii1ff\3””f,”{}((gn(,n,)b:““,,“nt”;,)aaefabb%%;))%uu)d(=,=fe;;gnp=;”””%a4”sr-d,ii1,,,iub\aagnan=)n)))ntt%;”;;;efdd(\,5”una.55="6,6iu6676,15Ab77n=7A05B5u%)..8t%13C5);7795d3;880\995eun0+;0="0126,5u5)
教学要求: 1理解数据输入与输出操作和格式 2掌握输入与输出 3掌握用顺序结构来进行程序设计
教学内容: 4.1C语句概述 4.2赋值语句 4.3数据输出 4.4数据输入 4.5程序举例
高级语言程序设计
章顺序程序设计
第四
4.1 C语句概述
C语句作用:用来向计算机系统发出 操作指令
输出表:要输出的数据(可以没有,多个时以“,”分隔) 格式控制串:包含两种信息
格式说明: %[修饰符]格式字符 ,用于指定输出格式 普通字符或转义序列:原样输出 格式字符
高级语言程序设计
格式字符:
章顺序程序设计
第四
d,i 十进制整数
int a=-1;printf ( “%d”,a);
-1
x,X 十六进制无符号整数int a=255;printf(“%x”,a);
ff
o u c s e,E f g %%
指八小e不百字单和例数进数带分符一f中形制形符号串字较式无式号本符ipp短浮符浮十身nrr一tii点号点进nn种例输制小整小att例=ff整数数数出3((,““数结bfffmcill=a%iilphan果oonnop4=draiaatttar;%ir例ttntip:nd%aan(输arptadaa==atf)==ir==,\6-=f(6出3ni355515(n“m566,tn;;6“b”;a77pp结7bft%p=i..rr.%=(f4sr%,77nii7%”果i4“(88dann8”(输n{};“99tt9\,),t:;;%ff;)nb“f出pp((p;da()”rr““ruu=A“;ii结iBnp=%%ann,%%nC%sr-dd=ttouta果”cii1ff\3””f,”{}((gn(,n,)b:““,,“nt”;,)aaefabb%%;))%uu)d(=,=fe;;gnp=;”””%a4”sr-d,ii1,,,iub\aagnan=)n)))ntt%;”;;;efdd(\,5”una.55="6,6iu6676,15Ab77n=7A05B5u%)..8t%13C5);7795d3;880\995eun0+;0="0126,5u5)
C语言程序课件ppt第4章选择结构程序设计谭浩强C程序设计第四版

C★
A★
●B
4.2.1 用if语句处理选择结构举例
C★ A ●★ ● B
4.2.1 用if语句处理选择结构举例
C★ A ● ●★ B
#include <stdio.h> int main() { float a,b,t;
scanf("%f,%f",&a,&b);
if(a>b) 如果a>b
{ t=a;
a=b; 将a和b的值互换
b=t; } printf("%5.2f,%5.2f\n",a,b); return 0; }
#include <stdio.h>
int main()
{ float a,b,t;
scanf("%f,%f",&a,&b);
if(a>b)
{ t=a; a=b;
选择结构,用if语句实现的
a && b 真 假 假 假
a || b 真 真 真 假
4.4.1 逻辑运算符及其优先次序
➢逻辑运算符的优先次序
! → && → ||
(!为三者中最高)
➢与其他运算符的优先次序
! 算术运算符 关系运算符
&& 和 || 赋值运算符
(高) (低)
4.4.2 逻辑表达式
➢ 逻辑表达式的值应该是逻辑量“真”或“假” ➢ 编译系统在表示逻辑运算结果时
4.3.1关系运算符及其优先次序
c>a+b a>b==c a==b<c a=b>c
等效于 c>(a+b) 等效于 (a>b)==c 等效于 a==(b<c) 等效于 a=(b>c)
C语言程序设计第四版PPT 谭浩强

i 1 100
问题的扩展: (1) 求 1 ~ 100 间奇数的和
int i,sum=0; for (i=1;i<=100;i=i+2) sum=sum+i; printf("1+3+...+99=%d\n",sum); int i,sum=0; for (i=1;i<=100;i++) if(i%2==1)sum=sum+i; printf("1+3+...+99=%d\n",sum);
do-while语句
do 语句 while (表达式)
假(0)
语句
表达式
真(非0)
语句 表达式
N-S图
流程图
do-while语句
例1:求 n 1 2 3 ... 100
n 1
100
int i=1,sum=0;
do
{ sum=sum+i;
i++;
}while(i<=100);
例4:求
10
n ! 1! 2! 3! ... 10 !
n 1
int i,n, fac,sum=0; for (n=1;n<=10;n++) { fac=1; for (i=1;i<=n;i++) fac=fac*i; sum=sum+fac; } printf ("1!+2!+...+10!=%ld\n",sum);
例6:鸡兔问题
计算机的解决方法——将各种可能情 况逐个试算,找到符合要求的结果
鸡0只,兔H只,则脚有...只≠F 鸡1只,兔H-1只,则脚有...只≠F 鸡2只,兔H-2只,则脚有...只≠ F ...... 鸡C只,兔H-C只,则脚有...只=F,显示结果 ...... 鸡H只,兔0只,则脚有...只≠ F
问题的扩展: (1) 求 1 ~ 100 间奇数的和
int i,sum=0; for (i=1;i<=100;i=i+2) sum=sum+i; printf("1+3+...+99=%d\n",sum); int i,sum=0; for (i=1;i<=100;i++) if(i%2==1)sum=sum+i; printf("1+3+...+99=%d\n",sum);
do-while语句
do 语句 while (表达式)
假(0)
语句
表达式
真(非0)
语句 表达式
N-S图
流程图
do-while语句
例1:求 n 1 2 3 ... 100
n 1
100
int i=1,sum=0;
do
{ sum=sum+i;
i++;
}while(i<=100);
例4:求
10
n ! 1! 2! 3! ... 10 !
n 1
int i,n, fac,sum=0; for (n=1;n<=10;n++) { fac=1; for (i=1;i<=n;i++) fac=fac*i; sum=sum+fac; } printf ("1!+2!+...+10!=%ld\n",sum);
例6:鸡兔问题
计算机的解决方法——将各种可能情 况逐个试算,找到符合要求的结果
鸡0只,兔H只,则脚有...只≠F 鸡1只,兔H-1只,则脚有...只≠F 鸡2只,兔H-2只,则脚有...只≠ F ...... 鸡C只,兔H-C只,则脚有...只=F,显示结果 ...... 鸡H只,兔0只,则脚有...只≠ F
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
Y ABC DE
Y A BC D E
对偶规则的意义在于:如果两个函数相等,则它们的对偶函 数也相等。利用对偶规则,可以使要证明及要记忆的公式数目减少 一半。例如:
AB AB A
(A B) (A B) A
A(B C) AB AC
A BC (A B)(A C)
注意:在运用反演规则和对偶规则时,必须按照逻辑运算 的优先顺序进行:先算括号,接着与运算,然后或运算,最后非 运算,否则容易出错。
2.1.1 逻辑代数的基本运算
信息论的创始人香侬(Shannon)在 1940年首先建立了用电子线路来实现布 尔代数表达式,0,1分别代表电路的开、 关状态或高、低电平;命题为真,线路 建立连结;命题为假,线路断开连结。
1 、与运算 —— 所有条例都具备事件 才发生,与运算又叫逻辑乘。
•开关: “ 1” 闭合, “ 0” 断开 ; 灯: “ 1” 亮, “ 0” 灭 •真值表:这里若用1表示开关接通和灯亮、 用0表示开关断开和灯暗.则可列出真值表. 如图2. 1所示。把输入所有可能的组合与 输出取值对应列成表。 •逻辑表达式: L=A·B( 逻辑乘 ) •逻辑功能口决: 有 “ 0” 出 “ 0” , 全 “ 1” 出 “ 1” 。
2 、或运算 ——— 至少有一个条件具 备,事件就会发生。
•开关A与开关B只要有一个接通时,灯 L亮,否则暗。输人量A,B与输出量F存 在着或逻辑关系。 •真值表: •逻辑表达式: L=A+B(逻辑加) •逻辑功能口决:有 “ 1” 出 “ 1”, 全 “ 0” 出 “ 0”
3 、非运算: — 结果与条件相反。某事情发生 与否,仅取决于一个条件,而且是对该条件的否 定。即条件具备时事情不发生;条件不具备时事 情才发生。
如何验证公式的正确性
真值表 利用基本定理化简公式 例:真值表验证摩根定律
A B A B A+B A+B A B 00 1 1 1 1 01 1 1 0 0 10 1 1 0 0 11 0 0 0 0
__A______•__B______
__
A
__
__
B
__
A B A• B
如何验证公式的正确性
5.或非门
F AB
实现“或非”逻辑
(NOR——NOT-OR)
A+
B
F
A B C
真值表
AB 00 10 01 11
F
F 1 0 0 0
6.“与或非”门
7.异或门
8.同或门
2.2逻辑函数化简
(1)公式化简法 (2)图解化简法 (3)表格法
2.2.1 公式法化简逻辑函数
逻辑函数化简的目的: 省器件!用最少的门实现 相同的逻辑功能,每个门的输入也最少。
第2章 逻辑代数及 逻辑函数化简
2.1 逻辑代数的基本运算与公式 2.2 公式法化简逻辑函数 2.3 逻辑函数的标准形式
2.4 图解法(卡诺图)化简 (重点) 2.5 表格法化简(Q-M法 ) 2.6 逻辑函数的实现
2.1 逻辑代数的基本运算与公式
逻辑代数:二进制运算的基础。 应用代数方法研究逻辑问题。由英国数学家 布尔(Boole)和德.摩根于1847年提出,又叫 布尔代数,开关代数。 逻辑函数的表示:真值表,表达式,逻辑门 逻辑函数的生成:逻辑问题的描述,由文字叙 述的设计要求,抽象为逻辑表达式的过程。 然后才能化简、实现,逻辑设计的第一步。 逻辑代数的基本运算:与、或、非 (1) “与”运算,逻辑乘 (2) “或”运算,逻辑加 (3) “非”运算,取反
如果两个逻辑函数表达式相等,那么它 们的对偶式也一定相等。这就是对偶规 则。
(2) 对偶规则
即: “ ”, “+”, “0” , “1”, “变量”
“+” , “ ” , “1” , “0”, 不变
(2) 对偶规则
(2) 对偶规则
Y AB CDE
Y ( A B )(C D E)
=AB+AC+BC(1+D)
=AB+ AC+ BC
=AB+AC
A+B = A+C
B=C
AB = AC
B=C
2.
(1) 在逻辑代数中,常将逻辑函数F叫作原函数,将
F叫作F的反函数或补函数。将一个逻辑函数表 达式F中的“与”、 “或”运算符互换, 常量0、
1 互换,原变量与反变量互换,就可得到F的反函 数F。这就是反演规则。
真值表 利用基本定理化简公式 AB+AC+BC=AB+AC ( ? ) (包含律) 证明:AB+AC+BC
=AB(C+C)+AC(B+B)+BC(A+A) =ABC+ ABC+ ABC+ ABC+ ABC+ ABC =ABC+ ABC+ ABC+ ABC =AB+AC
如何验证公式的正确性
AB+AC+BC+BCD
2.1.2逻辑代数的基本公式、规则、 附加公式
基本公式
2.1.2逻辑代数的基本公式、规则、 附加公式
交换律 A• B B • A
A B B A
结合律
A•(B •C) (A• B) •C
A
(B
C)(ຫໍສະໝຸດ AB)CA•(B C) A• B A•C
分配律
A
B
•
C
(
A
B)
•
(
A
C)
基本公式(续)
(2) 对偶规则
3.附加公式
附加公式1
3.附加公式
3.附加公式
附加公式2
3.附加公式
3.附加公式
3.附加公式
2.1.3基本逻辑公式
4.与非门
例: F AB
实现“与非”逻辑
(NAND——NOT-AND)
A
B
F
与非门 (A、B是输入,F是输出)
A
B
F
C
真值表 F=AB
AB F 00 1 10 1 01 1 1 10
(1) 反演规则
反演规则
Y AB CDE
Y ABC DE
Y ( A B)(C D E ) Y AB CD E
练习
(2) 对偶规则
设F为一个逻辑函数表达式,若将F中的 “与”、 “或”运算符互换(即·变为+, +变为·),常量0、1互换(即0变为1, 1 变为0), 所得到的新表达式就叫做函数F 的对偶式
利用反演规则求反函数F时,不仅要注意运算的 优先顺序,而且还要注意只有单个变量的反变 量才变为原变量,而对于多个变量组合后的“非”
号 不能变反。
(1) 反演规则
即: “ ”, “+”, “0” , “1”, “原变 量”, “反变量”
“+” , “ ” , “1” , “0”, “反变量”, “原变量”