C语言程序设计谭浩强.ppt
合集下载
c语言程序设计第6章(谭浩强)PPT版本

for(i=1;i<10;i++) for(j=1;j<10;j++) printf((j==9)?"%4d\n":"%4d",i*j);
i=1 假(0) i<10 真(非0)
外循环
j=1 j<10 假(0)
内循环
真(非0) printf j++
i++
6.6 辅助控制语句
break语句
功能:在循环语句和switch语句中,终止并跳出循 环体或开关体 说明: break只能终止并跳出最近一层的结构 break不能用于循环语句和switch语句之外的 任何其它语句之中
goto语句及用goto构成循环
6.2 goto语句构成循环
goto语句一般格式:
goto 语句标号; ….….. 标号:语句; 功能:无条件转移语句 说明: 不能用整数作标号 只能出现在goto所在函数内,且唯一 只能加在可执行语句前面 限制使用goto语句
例 用if 和goto语句构成循环,求
…... } …... }while( ); ……. } …… while() { …… } …... 内循环
}
例 循环嵌套,输出九九表
Ch5_5.c
i
j /*ch5_5.c*/ #include2<stdio.h> 4 1 3 5 6 7 8 9 main() 1 2 3 4 5 6 7 8 9 { int i,j; 2 4 6 8 10 12 14 16 18 for(i=1;i<10;i++) 3 6 9 12 15 18 21 24 27 printf("%4d",i); …………….. printf("\n---------------------------------------\n"); for(i=1;i<10;i++) 9 18 27 36 45 54 63 72 81 for(j=1;j<10;j++) printf((j==9)?"%4d\n":"%4d",i*j); }
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

二.
实型数据
1. 实型数据类型标识符 实型数据有单精度型和双精度型两种。 单精度型:类型标识符为float。 双精度型:类型标识符为double。
类型 float double
占用字节数 4 8
有效数字 6-7 15-16
数值范围 3.4*10-383.4*1038 1.7*10-3081.7*10308
m;
unsigned
3、整型常量
C语言中整型常量可以用3种形式表示:
① 十进制数,如+123,-234,0,23;
② 八进制数,如 0234,0777; ③ 十六进制数,如0x234,0x9A。 整型数又分为基本整型、短整型、长整型(后加l或L) 和无符 号整型数(后加u或U) 。 前缀、后缀可同时使用以表示不同类型不同进制的整型数。 如03456LU表示八进制无符号长整型数。
int
short int long int unsigned int unsigned short unsigned long
2
2 4 2 2 4
-32768(-215)~32767(215-1)
-32768(-215)~32767(215-1)
-2147483648(231)~2147483647(231-1)
阶 符
指数部分
数 符
尾数部分
2. 实型变量的定义
float f,f1; double d; /* 定义f、f1为单精度实型变量 */ /* 定义d为双精度实型变量 */
0~65535(216-1) 0~65535(216-1) 0~4294967295(232-1)
任何一种数据类型都有常量和变量之分
2、整型变量的定义
例如:int long
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语言程序设计第四版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

人工输入
自动识别输入
键盘输入 联机手写输入 16
•优点:
–自然,流畅 –小型化,适合移动计算
•不足:
–识别速度和正确性还需提高 –书写要求还要降低
5.1 文本与文本处理
文字符号输入计算机的方法
字符信息的输入
人工输入
自动识别输入
键盘输入 联机手写输入 语音输入
•优点:
•自然,方便,适合移动计算
•不足:
ASCII字符集包含96个可打印字符和32个控制字符 采用7个二进位进行编码 计算机中使用1个字节存储1个ASCII 字符
存在问题:
7位代码空间太小(解决方案:8位的扩充ASCII码) 不同国家和地区使用不同的字符集及其编码,互不兼容 东亚地区使用的大字符集无法编码
8
5.1 文本与文本处理
汉字如何编码?
汉字是记录汉语(国语,华语)的文字,属于表意 文字,它用符号直接表达词或词素
汉字的特点
数量大;多个国家和地区使用;字形复杂,同音字 多,异体字多
如何编码?
确定收入多少字、哪些字? 汉字在字符集中的排序方式 确定使用的代码结构和代码空间
9
5.1 文本与文本处理
文本由一系列 “字符”(character)组成,每个字符均使用二 进制编码表示
文本在计算机中的处理过程是:
(3)
文本处理
文本准备
(文字与图 表
的输入)
文本编辑
(文本处理软件)
与排版
电子 (文本编辑器)格式化的 文本存储
文本
电子文本 与传输
文本 展现
(文本阅读器)
(1)
(2)
(4)
(5)
第1章-程序设计和C语言-谭浩强第五版PPT课件

2021
1.3 C语言的发展及其特点 15
15
C语言主要特点: 7、用C语言编写的程序可移植性好。 C的编译系统简洁,很容易移植到新系统 在新系统上运行时,可直接编译“标准链接库” 中的大部分功能,不需要修改源代码 几乎所有计算机系统都可以使用C语言
2021
1.3 C语言的发展及其特点 16
16
return 0;
else z = y;
}
return(z);
}
2021
35
#include <stdio.h>
int main( )
35
{
int max(int x,int y);
int a,b,c;
int max(int x,int y)
scanf(”%d,%d”,&a,&b); {
c = max(a,b);
2021
1.3 C语言的发展及其特点 12
12
C语言主要特点:
4、具有结构化的控制语句 如if…else语句、while语句、do…while语 句、switch语句、for语句 用函数作为程序的模块单位,便于实现程序的 模块化 C语言是完全模块化和结构化的语言
2021
1.3 C语言的发展及其特点 13
2021
1.3 C语言的发展及其特点 10
10
C语言主要特点: 2、运算符丰富。 有34种运算符 把括号、赋值、强制类型转换等都作为运算 符处理 表达式类型多样化
2021
1.3 C语言的发展及其特点 11
11
C语言主要特点: 3、数据类型丰富。 包括:整型、浮点型、字符型、数组类型、指针类型、 结构体类型、共用体类型 C99又扩充了复数浮点类型、超长整型(long long)、 布尔类型(bool) 指针类型数据,能用来实现各种复杂的数据结构(如 链表、树、栈等)的运算。
1.3 C语言的发展及其特点 15
15
C语言主要特点: 7、用C语言编写的程序可移植性好。 C的编译系统简洁,很容易移植到新系统 在新系统上运行时,可直接编译“标准链接库” 中的大部分功能,不需要修改源代码 几乎所有计算机系统都可以使用C语言
2021
1.3 C语言的发展及其特点 16
16
return 0;
else z = y;
}
return(z);
}
2021
35
#include <stdio.h>
int main( )
35
{
int max(int x,int y);
int a,b,c;
int max(int x,int y)
scanf(”%d,%d”,&a,&b); {
c = max(a,b);
2021
1.3 C语言的发展及其特点 12
12
C语言主要特点:
4、具有结构化的控制语句 如if…else语句、while语句、do…while语 句、switch语句、for语句 用函数作为程序的模块单位,便于实现程序的 模块化 C语言是完全模块化和结构化的语言
2021
1.3 C语言的发展及其特点 13
2021
1.3 C语言的发展及其特点 10
10
C语言主要特点: 2、运算符丰富。 有34种运算符 把括号、赋值、强制类型转换等都作为运算 符处理 表达式类型多样化
2021
1.3 C语言的发展及其特点 11
11
C语言主要特点: 3、数据类型丰富。 包括:整型、浮点型、字符型、数组类型、指针类型、 结构体类型、共用体类型 C99又扩充了复数浮点类型、超长整型(long long)、 布尔类型(bool) 指针类型数据,能用来实现各种复杂的数据结构(如 链表、树、栈等)的运算。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
梯形法
抛物线法
2. 非数值算法 包括排序,查找,图形操作等问题。 例如排序问题,N个整数排序。
§2.2 算法举例
1 简单算法
求和:1+2+3……+100 1:S=0 2:i=1 3:S+i的值给S 4:i+1的值给i 5: 判断i<=100,如果i<=100执行3,4,5,否则算
法结束。 6:打印S的值
输入n
1=>i
当i<=n
i=>xi 1+i=>i
B:
B1
将x1去掉( 使x1 =0)
B2
2=>i
当i<=sqrt(n)
B3
如xi未去掉,则将 xi+1到xn间全部是xi
倍数的数去掉
1+i=>i
F: Y xj=0
N
Y N xj能被 xi整除
xj=0
D:
xi=0
Y
N
将xi+1到xn间
D
E 是xi倍数的数
2次扫描 :1 3 7 4 9 5
3次扫描 :1 3 4 7 9 5 4次扫描 :1 3 4 5 9 7 5次扫描 :1 3 4 5 7 9
§2.3 算法的性质
1.有穷性 操作步骤是有限的,不能无限。
2.确定性 算法中每一个步骤都是明确的,不能是模糊的
3.有零个或多个输入 可以从外界输入必要的信息.
(2)单个模块易于编写,查错,调试和修改。
(3)一个模块可以在多个地方供多个程序用, 提高编程效率。
(4)整个程序功能的修改和差错,可局限在某 一模块内进行而不考虑其它模块。
(5)适于“自顶而下”的设计
2.分解模块的原则 (1)简明性(单功能度) 每一模块应简单易懂,易于实现,且模块仅执行一种功能。 (2)独立性
2.三种基本结构
1966年 Bohra Jacopini 提出三种结构: (1)顺序结构 (2)选择结构(选取结构,分支结构) (3)循环结构
A B
顺序结构
p Y
A
N B
选择结构
A
p
Y
N
A
p N
Y
“当型”循 环
While •只有一个入口
“直到型”循 环
Until
•只有一个出口
•结构的每一部分都可能被执行到
4.有一个或多个输出 输出解或结果,没有输出的算法是没有意义的。 5.有效性
每一步能有效执行,并得到确定的结果。
§2.4 算法的表示
2.4.1用自然语言表示算法 2.4.2用流程图表示 1.ANSI表示
起止框
输入输出框 判断框 处理框
↓ → 或
流程线
○ 连接点
[ ----
注释框
特点:直观形象,清晰易懂,易于找错,但必须限制 箭头的滥用
要求各模块相对独立,修改其中某一模块而不影响其它模块,减 少各模块间数据联系。
(3)完整性 每一个模块独立完整,不要求一个模块完成多种功能,也不要求
多个模块完成一个功能。 (4)一进一出原则
单个入口和单个出口。 (5)模块大小
100行左右(2页),分解基本功能即可。
例:将1到1000之间的素数打印出来。
•结构不存在“死”循环
开始
0=>s,1= Байду номын сангаасi
I<=100?
N 输出s
i+1=>i s+i=>s
Y
结束
s=1+2+……+100 算法流程图
2.4.3 N-S流程图
1973年,美国 I,Nassi.B.Shneiderman 提出了一种 新的流程图形式。
1.N-S流程图的流程图符号 ①顺序结构 ②选择结构 ③循环结构
第2章 算 法
烟台大学 机电汽车工程学院
刘鹏
程序=数据结构+算法
数据结构是指数据的类型和数 据的组成形式:诸如线性表, 集合,树,图。
算法是用计算机解决某一问题 的方法步骤。
§2.1算法的概念
算法是解决一个问题而采取的方法和步骤。这里仅限于计算机算 法,用计算机解决某一问题而用的方法和步骤。
2.1.1计算机算法分类 1. 数值运算算法 (《数值分析》《数值方法》) ①例如 数值积分: ②线性方程组的求解: 如果|A|≠0。
去掉
E:
i+1=>j
当j<=n
将能被 xi整除的
xj去掉
F
j+1=>j
C:
G:
1=> i
当i<=n
xi=0
Y
N
把未去掉的xi打印出来
G
1+i=>i
打印xi
例2.3 2.5 2.13 2.14 2.15 将例题吃透
作业:2.4 (3) (6) (8)
(1)问题分析。
算法采用 Eratosthenes(埃拉托色尼)筛法.就将 1-1000间的非素数挖掉。其余是素数。
(2)因此,选择数据结构,可以用数组,或不用数组, 未挖掉数立即打印出来;
(3)C 语言开发平台
(4)采用结构化编程; 算法:进行细化
A
输入1~n
B
把所有的非素数去掉
C
打印全部素数
A:
程序
子程序1
子程序 2 子程序3 子程序4
程序按功能模块划分为若干基本模块(子过程), 每个子过程具有一定的功能,这些过程通过参数传 递数据。数据和过程分离为相对独立的实体。
如下图:
数据1
数据2
过程1
数据3
数据4
过程3
结构化方法
过程2
模块化原则
1.模块化的优点:
(1)对于大型程序系统便于分工编写可缩短编 程时间。
这就是一个简单的算法,i,S各占用一个存储单元。
2 排序问题 将1 4 7 3 9 5从小到大排序
(1)冒泡排序 :从左向右,相邻两个数进 行比较,如果逆序则交换位置 1次扫描 :1 4 3 7 5 9 2次扫描 :1 3 4 5 7 9
(2)选择排序 :从左向右,依次取数与后 面的数进行比较,如果逆序则交换位置 1次扫描 :1 4 7 3 9 5
A B
当P成立
A
YPN AB
A
直到P成立
0=>s
1=>i
当P成立
s=s+i i=1+i
输出s
§2.5结构化程序设计方法
1自顶向下
2逐步细化
3模块化设计
4结构化编码。
“自顶向下,逐步细化”是一种系统分解的方法。根据 需要解决的问题,对问题根据功能进行系统的分类。将 一个大的复杂的系统解成若干子系统,每一个子系统完 成原系统的某一项或多项功能。同时每一子系统又可划 分若干子系统,就像树根,逐步细化,进入第二层,第 三层……设计。