分校C课件第6讲语句和算法30
合集下载
c语言第六次课2PPT教学课件
2020/12/10
11
例4-3
写出满足下;= 'a' && ch <= 'z' ⑵ x 为零
关系表达式 x == 0 等价 或 逻辑表达式 !x
验证: x取0 !x 真
x取非0 !x 假
⑶ x 不为零
x != 0 或 x
2020/12/10
x取0 x取非0
5
逻辑运算符
与 X&&Y
XY
或 X||Y
XY
!X X
非
2020/12/10
6
逻辑运算符
逻辑与 && 逻辑或 || 逻辑非 ! (x>1)&&(y>1) (x>1)||(y>1) (x>1)
!(x>1) 即 x<=1
2020/12/10
7
逻辑运算的规则-真值表
逻辑与 && 逻辑或 || 逻辑非 ! 真值表
2020/12/10
3
关系表达式
3<x<5 x=1时 x=4时 ( 3<x ) < 5 恒为 1
2020/12/10
4
4.1.2 逻辑运算符和逻辑表达式
3<x<5
0
3
5
x
x > 3 并且 x < 5
3 < x && x < 5 逻辑表达式
用逻辑运算符将关系表达式或逻辑量连接起来
2020/12/10
}
2020/12/10
max max max
18
4.2.2 嵌套的if语句
C语言算法讲课课件
程序的灵魂:算法
单 位:信息工程系 授 课 人:焦峰亮 授课时间: 2015.11
【复习引入】
●什么叫做程序? ●C语言程序的主要特点有哪些?
●简述运行C程序的步骤和方法。
●我们使用的程序是如何编写出来
算 法
的?写程序的第一步是什么?
引例——
高斯的故事 德国著名数学家高斯幼年时代聪明过人, 上学时,有一天老师出了一道题让同学 们计算: 1+2+3+4+„+99+100=? 老师出完题后,全班同学都在埋头计算。
开始
a1=1,a100=S, n=100
S100=(1+100)*100/2
输出S=5050
结束
例1.N-S流程图 (计算机累加算法)
S=0,i=1 S=S+i
i=i+1
直到i>100
输出S=5050
C程序设计 (4) 伪代码表示算法
程序的灵魂:算法
E1. 求累加和1+2+3+…+100
AlgorithmSTEP1:input let S=0;i=1; STEP2:S=S+i;i=i+1; STEP3:if i≤100 then do STEP2; STEP4:output S. (5)计算机语言表示的算法。 main() {int i,p; p=1; i=2; while(i<=5) {p=p*i; i=i+1; } printf(“%d”,p); } < >
自然语言、传统流程图、N-S图、伪代码、PAD图等。
E1. 求累加和1+2+3+…+100 (1)用自然语言描述
自然语言就是人们日常使用的语言,可以是中文、英文等 。用自然语言表示的算法通俗易懂,但一般篇幅较冗长,表达 上不易准确,易引起理解上的“歧义性”。 (2)用传统流程图描述
单 位:信息工程系 授 课 人:焦峰亮 授课时间: 2015.11
【复习引入】
●什么叫做程序? ●C语言程序的主要特点有哪些?
●简述运行C程序的步骤和方法。
●我们使用的程序是如何编写出来
算 法
的?写程序的第一步是什么?
引例——
高斯的故事 德国著名数学家高斯幼年时代聪明过人, 上学时,有一天老师出了一道题让同学 们计算: 1+2+3+4+„+99+100=? 老师出完题后,全班同学都在埋头计算。
开始
a1=1,a100=S, n=100
S100=(1+100)*100/2
输出S=5050
结束
例1.N-S流程图 (计算机累加算法)
S=0,i=1 S=S+i
i=i+1
直到i>100
输出S=5050
C程序设计 (4) 伪代码表示算法
程序的灵魂:算法
E1. 求累加和1+2+3+…+100
AlgorithmSTEP1:input let S=0;i=1; STEP2:S=S+i;i=i+1; STEP3:if i≤100 then do STEP2; STEP4:output S. (5)计算机语言表示的算法。 main() {int i,p; p=1; i=2; while(i<=5) {p=p*i; i=i+1; } printf(“%d”,p); } < >
自然语言、传统流程图、N-S图、伪代码、PAD图等。
E1. 求累加和1+2+3+…+100 (1)用自然语言描述
自然语言就是人们日常使用的语言,可以是中文、英文等 。用自然语言表示的算法通俗易懂,但一般篇幅较冗长,表达 上不易准确,易引起理解上的“歧义性”。 (2)用传统流程图描述
C++课件 第六章 数组讲课稿
• 定义内容: ·数组名 :必须是合法标示符 ·类型(存储属性/数据类型) ·大小(维数/元素个数)
• 定义的一般形式: 存储属性 数据类型 数组名[常量表达式][常量
表达式]… 常量表达式:常量或符号常量,其值必须为正,
不能为变量 !如:int n=5;int a[n];这样定义是错 误的,如下为正确的:int a[10],b[5][4]; char name[8], ch[2][3]; static float x[8*2+1], table[2][3][4];
f[i] = f[i-1] + f[i-2]; for(i=0; i<20; i++)
{ if (i%5 == 0) cout<<endl;
cout<<setw(12)<<f[i]; } }
【例】以下程序的运行结果 是什么?
#include <iostream.h> void main() {int a[][3]={{1,2,3},{4,5},{6},{0}};
Байду номын сангаас 【例】void main()
{int a[]={1,2,3,4,5,6}; static int b[6]={2,3,0,4}; int i;
结果: a=1,b=2
sum(int,int,int);
a=2,b=3
for (i=0;i<6;i++) {sum(a[i],b[i],i);
a=3,b=0
C++课件 第六章 数组
问题的引入
例:输入10个学生某门学科的成绩,求平均成绩。
开始
1、当读入下一分数时,前一分数值是否还能找到? 2、如何将低记于数平器均i=成1、绩总的分分z数f=打0 印出来?
• 定义的一般形式: 存储属性 数据类型 数组名[常量表达式][常量
表达式]… 常量表达式:常量或符号常量,其值必须为正,
不能为变量 !如:int n=5;int a[n];这样定义是错 误的,如下为正确的:int a[10],b[5][4]; char name[8], ch[2][3]; static float x[8*2+1], table[2][3][4];
f[i] = f[i-1] + f[i-2]; for(i=0; i<20; i++)
{ if (i%5 == 0) cout<<endl;
cout<<setw(12)<<f[i]; } }
【例】以下程序的运行结果 是什么?
#include <iostream.h> void main() {int a[][3]={{1,2,3},{4,5},{6},{0}};
Байду номын сангаас 【例】void main()
{int a[]={1,2,3,4,5,6}; static int b[6]={2,3,0,4}; int i;
结果: a=1,b=2
sum(int,int,int);
a=2,b=3
for (i=0;i<6;i++) {sum(a[i],b[i],i);
a=3,b=0
C++课件 第六章 数组
问题的引入
例:输入10个学生某门学科的成绩,求平均成绩。
开始
1、当读入下一分数时,前一分数值是否还能找到? 2、如何将低记于数平器均i=成1、绩总的分分z数f=打0 印出来?
C语言程序设计PPT课件 第6章
§6.4 do-while语句 语句
一般形式: 一般形式: do 语句 while (表达式 表达式) 表达式 直到型”循环结构。 特点:“直到型”循环结构。
先执行一次“语句” 后判“表达式” 先执行一次“语句”,后判“表达式”,当“表 达式” 达式 ” 非 0, 再执行 “ 语句 ” , 直到 “ 表达式 ” , 再执行“ 语句” 直到“ 表达式” 为0,循环结束。 ,循环结束。
100
i
。
i=1,sum=0 假 i<=100 真 sum=sum+i i=i+1
i = 1
main() { int i,sum=0; i = 1; loop: if (i <= 100) /*标号表示程序指令的地址 当i≤100时,执行加法 */ 标号表示程序指令的地址,当 标号表示程序指令的地址 时 { sum = sum + i; i++; goto loop; /*无条件转向标号 无条件转向标号loop处的指令 */ 无条件转向标号 处的指令 } printf("%d",sum); }
goto语句有两种用途,一是与if语句一起构成 goto语句有两种用途,一是与if 语句有两种用途 if语句一起构成
循环结构,另一是从循环体中跳转到循环体外。 循环结构,另一是从循环体中跳转到循环体外。
[例6.1] 用if语句和 例 语句和goto语句构成循环, 语句构成循环, 语句和 语句构成循环 求∑
§6.3 while语句 语句
一般形式: 表达式) 一般形式:while (表达式 语句 表达式 作用:实现“当型”循环。 作用:实现“当型”循环。
假 当P为真 为真 A
表达式” 当“表达式”非0(真)时, 执行while语句中的内嵌“语句”。语句 ”
C++语言程序设计第6讲
cin>>a109; sum=a1+a2+ +a109; aver=sum/109; cout<<sum<<endl<<aver; }
程序: #include <iostream.h>
void main( )
{
float a, sum, aver; sum=0; p10: cin>>a; sum=sum+a; goto p10; 输入下一个人的成绩
举 例
例2: 输入一个不超过4位数的密码,利用计算机破解此密码。
输入password i=0 #include <iostream.h> int main() { int password, i; cout<<"请设置不超过4位数的密码:"; cin>>password; i=0; while(i!=password) i++; cout<<"破解成功!密码是"<<i; return 0; }
1, 2, 3,
退出循环:4
举 例
例1:编程序,计算 s=1+2+3+……+100 如何实现累加? #include <stdio.h> 初始:s=0 void main() 1 s=s+1 { s=s+2 1+2 int s, i; s=s+3 1+2+3 s=0; i=1; s=s+100 1+2+...+100 while(i<=100) for(i=1; i<=100; i++) { 如何得到加数?1、2、……100 s+=i; s=0 i=1 初始:i=1 i++; 当 i<=100时 s=s+i; } s+=i i++; printf("s=%d", s); i++ } 输出s ...
程序: #include <iostream.h>
void main( )
{
float a, sum, aver; sum=0; p10: cin>>a; sum=sum+a; goto p10; 输入下一个人的成绩
举 例
例2: 输入一个不超过4位数的密码,利用计算机破解此密码。
输入password i=0 #include <iostream.h> int main() { int password, i; cout<<"请设置不超过4位数的密码:"; cin>>password; i=0; while(i!=password) i++; cout<<"破解成功!密码是"<<i; return 0; }
1, 2, 3,
退出循环:4
举 例
例1:编程序,计算 s=1+2+3+……+100 如何实现累加? #include <stdio.h> 初始:s=0 void main() 1 s=s+1 { s=s+2 1+2 int s, i; s=s+3 1+2+3 s=0; i=1; s=s+100 1+2+...+100 while(i<=100) for(i=1; i<=100; i++) { 如何得到加数?1、2、……100 s+=i; s=0 i=1 初始:i=1 i++; 当 i<=100时 s=s+i; } s+=i i++; printf("s=%d", s); i++ } 输出s ...
高中数学第一章算法初步12基本算法语句第6课时输入语句输出语句和赋值语句课件新人教A版必修3
6.下列程序运行后的结果为( C )
a=2 b=3 c=4 a=b b=c+3 c=b+4 d=a+b+c/3 PRINT ”d=”;d
END
A.d=3
B.d=5
C.d=7
D.d=9
解析:因为 a=2,b=3,c=4,所以 a=3,b=7,c=11.所 以 d=(3+7+11)/3=7,所以输出 d=7.
复习课件
高中数学第一章算法初步1.2基本算法语句第6课时输入语句输出语句和赋 值语句课件新人教A版必修3
2021/4/17
高中数学第一章算法初步12基本算法语句第6课时输入语句 输出语句和赋值语句课件新人教A版必修3
第一章 算法初步
1.2 基本算法语句 第6课时 输入语句、输出语句和赋值语句
课时作业基设础训计练(45分钟)
——作业目标——
1.能用三种基本算法语句完成程序框图与程序语言的转化. 2.三种基本算法语句的理解及应用.
——基础巩固—— 一、选择题(每小题 5 分,共 35 分) 1.下列选项哪个是正确的( D ) A.INPUT A B B.INPUT B=3 C.PRINT y=2* x+1
解析:A 中,INPUT 输入的两个数据之间应该有“,”,故 A 不正确;
程序如下:
S=20 000 S=S+400*1-0.01 S=S+400*1-0.01 S=S+400*1-0.01 PRINT “2020年年底总绿化面积为:”;S END
——能力提升——
14.(本小题 5 分)给出下列程序:
a=1 b=2 c=3 m=a+b+c n=a*b*c p=a-b-c END
7.给出下列程序:
INPUT “实数:”;x1,y1,x2,y2 a=x1-x2 m=a^2 b=y1-y2 n=b^2 s=m+n d=SQRs PRINT d END
C语言教学之算法PPT学习教案
第27页/共35页
例如, “打印x的绝对值”的算法可以用伪代码表示 如下:
IF x is pos itive T HEN print x
ELSE print –x
若 x为正
打印 x否 则 打印 –x
IF x 为正
print x
ELSE
print –x
第28页/共35页
2.4.6 用计算机语言表示算法
第33页/共35页
第二次作业:
习题(36页) 用流程图表示以下问题的算法
(1)有两个瓶子A和B,分别盛放醋和酱油,要求将它们互换(即 A瓶原来盛醋,现改盛酱油,B瓶则相反)。
(4) 求1+2+3+…+100。
模仿是一种最好的学习方法
第34页/共35页
第14页/共35页
2. 三种基本结构
1966年, Bohra和Jaco pini提 出的
(1) 顺序结构,如图2.14所示,虚线框内是一个顺序结 构。
图2.14
第15页/共35页
(2) 选择结构(选取结构,分支结构)如图2.15所示。
无论 p 条 件是否 成立, 只能执 行A框 或B框之 一
A或B两个 框中可 以有一 个是空 的
IF x is positive THEN print x ELSE print –x
1.直观易懂
2.画起来比较 费事
3.流程图适宜 表示一 个算法
1.伪代码 (pseudo code)是用介 于自然语言和计算机语言之间的 文字和符号来描述算法。 2.不用图形符号,书写方便 、 格式紧凑 3.适于设计算法 4.比较好懂,便于向计算机语言 算法(即程序)过渡
图2.15
在执行完 A或B之 后,都 经过b 点,然 后脱离 本选择 结构
例如, “打印x的绝对值”的算法可以用伪代码表示 如下:
IF x is pos itive T HEN print x
ELSE print –x
若 x为正
打印 x否 则 打印 –x
IF x 为正
print x
ELSE
print –x
第28页/共35页
2.4.6 用计算机语言表示算法
第33页/共35页
第二次作业:
习题(36页) 用流程图表示以下问题的算法
(1)有两个瓶子A和B,分别盛放醋和酱油,要求将它们互换(即 A瓶原来盛醋,现改盛酱油,B瓶则相反)。
(4) 求1+2+3+…+100。
模仿是一种最好的学习方法
第34页/共35页
第14页/共35页
2. 三种基本结构
1966年, Bohra和Jaco pini提 出的
(1) 顺序结构,如图2.14所示,虚线框内是一个顺序结 构。
图2.14
第15页/共35页
(2) 选择结构(选取结构,分支结构)如图2.15所示。
无论 p 条 件是否 成立, 只能执 行A框 或B框之 一
A或B两个 框中可 以有一 个是空 的
IF x is positive THEN print x ELSE print –x
1.直观易懂
2.画起来比较 费事
3.流程图适宜 表示一 个算法
1.伪代码 (pseudo code)是用介 于自然语言和计算机语言之间的 文字和符号来描述算法。 2.不用图形符号,书写方便 、 格式紧凑 3.适于设计算法 4.比较好懂,便于向计算机语言 算法(即程序)过渡
图2.15
在执行完 A或B之 后,都 经过b 点,然 后脱离 本选择 结构
C语言算法和基本程序设计PPT学习教案
顺序结构是C语言的基本结构, 除非指示转移第2,4页/共否43页 则计算机自动 以语句编写的顺序一句一句地执
3.5 数据的输入与输出
C语言无I/O语句,I/O操作由函数实现 #include <stdio.h>
★字符输出函数
格 式 : p u tc har( c ) 参 数 : c 为 字 符常量 、变量 或表达 式 功 能 : 把 字 符c输出 到显示 器上
第27页/共43页
【例3.4】 单个字符的输入和输出。
#include <stdio.h>
main()
{ char ch; /*从键盘上读入字符直到“回车”结束*/
ch= getchar();
/*显示输入的第一个字符*/
putchar(ch);
putchar(′\n′);
/*换行*/
}
运行时,输入xxx<回车> ,在屏幕上显示:x
A
B
A
传统流程 图
第16页/共43页
选择结构的流程图符号 (续)
p
成立
不成立
A
B
N-S流程图
第17页/共43页
循环结构的流程图符号
a a
A A
不成立
p1 成立
b
While型
成立
p2 不成立
b
传统流程 图 第18页/共43页
Until 型
循环结构的流程图符号 (续)
当p1成立 A
A 直到p1成立
» 格式字符与输出项个数应相同,按先后顺序一一对 应
» 输出转换:格式字符与输出项类型不一致,自动按指 定格式输出第33页/共43页
格式输入函数
格 式 : s c an f(“格式 控制串 ”,地 址表) 功 能 : 按 指 定格式 从键盘 读入数 据,存 入地址 表指定 的
3.5 数据的输入与输出
C语言无I/O语句,I/O操作由函数实现 #include <stdio.h>
★字符输出函数
格 式 : p u tc har( c ) 参 数 : c 为 字 符常量 、变量 或表达 式 功 能 : 把 字 符c输出 到显示 器上
第27页/共43页
【例3.4】 单个字符的输入和输出。
#include <stdio.h>
main()
{ char ch; /*从键盘上读入字符直到“回车”结束*/
ch= getchar();
/*显示输入的第一个字符*/
putchar(ch);
putchar(′\n′);
/*换行*/
}
运行时,输入xxx<回车> ,在屏幕上显示:x
A
B
A
传统流程 图
第16页/共43页
选择结构的流程图符号 (续)
p
成立
不成立
A
B
N-S流程图
第17页/共43页
循环结构的流程图符号
a a
A A
不成立
p1 成立
b
While型
成立
p2 不成立
b
传统流程 图 第18页/共43页
Until 型
循环结构的流程图符号 (续)
当p1成立 A
A 直到p1成立
» 格式字符与输出项个数应相同,按先后顺序一一对 应
» 输出转换:格式字符与输出项类型不一致,自动按指 定格式输出第33页/共43页
格式输入函数
格 式 : s c an f(“格式 控制串 ”,地 址表) 功 能 : 按 指 定格式 从键盘 读入数 据,存 入地址 表指定 的
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
(二)函数调用语句 有一个函数调用加一个分号构成一个语句 Printf("This is a C statement."); <函数名>(<参数表>);
4/18
C语句概述
(三)表达式语句 有一个表达式加一个分号构成一个语句
表达式语句 赋值表达式 分号
a =3 ; <表达式>;
(四)复合语句 用一对{}括起来的语句 { z=x+y; t=z/100; printf(“%f”,t); } (五)空语句 只有一个分号的语句
}
407 = 0627
28/18
语句和算法
小结
语句是组成程序的基本成分。 C语言的常用语句 算法 概念 与程序设计的关系 表示方法 结构化程序设计
29/18
本章到此结束,谢谢您的光临! 预 习 下 一 章 的 内 容 与 实 验 请 自 学 本 章 教 材 内 容 并 请 自 己 做 本 章 的 习 题 与 实 验 体 验
规则1和2
规则 1:从一个最简单的流程图开始。
规则 2
规则 2
规则 2
规则 2:任何一个矩形框 都可以被两个顺序相连的 矩形框替换。
22/18
循环结构
结构化程序设计的规则
规则3:任何一个矩形框都可以被任何控制结构替换。
Rule 3
Rule 3 Rule 3
23/18
循环结构
非结构化程序
非结构化的程序
25/18
结构化程序设计方法
结构化程序设计方法是学习程序设计必须掌握的基础。 1)结构程序设计是避免用goto语句的一种程序设计; 2)结构程序设计是自顶向下的程序设计; 3)结构程序设计是一种组织和编制程序的方法,利用它编制的
程序是容易理解和容易修改的; 4)程序结构化的一个主要功能是使得正确性的证明容易实现; 5)结构程序设计允许在设计过程中的每一步验证其正确性,即 自动导致自我说明与自我捍卫的程序风格; 6)结构程序设计讨论了如何将任何大规模的和复杂的流程图转 换成一种标准的形式,使得它们能够用几种标准的控制结构 (通常是顺序、分支和循环)通过重复和嵌套来表示。
声明语句
5类
控制语句 函数调用语句 表达式语句 复合语句 空语句
声明语句(可以说是表达式语句的一种) <类型说明符> <变量名>; <类型说明符> <函数名>(<参数表>);
3/18
C语句概述
(一)控制语句 完成一定的控制功能 1 if() ~else 条件语句 6 break 间断语句 2 for()~ 循环语句 7 switch() 开关语句 3 while()~循环语句 8 goto 转向语句 4 do ~while();循环语句 9 return 返回语句 5 continue 继续语句
15/18
4、伪代码表示
用传统的流程图和N-S图表示算法,直观易 懂,但画起来比较费事。由于在设计一个算法时, 不可能一挥而就,常常需要反复修改,且修改流 程图又比较麻烦。因此,为了表示算法的简便, 常常采用伪代码。伪代码是用介于自然语言和计 算机语言之间的文字(可以是中文)和符号来描 述算法。
16/18
步骤5:变量sum中的值就是要得到的结果;输出结果,算法结束。
9/18
语句和算法
算法的伪代码表示
问题
计算1+2+3+…+100
1、伪代码表示
i=1 sum=0
while i<=100 do sum=sum+i i=i+1 end while print sum •人为的、非正式的语言 •与日常用语类似
程序结构不清晰、可读性差、不利于维护。
18/18
语句和算法
结构化程序
3种控制结构都是单入/单出控制结构。 结构化程序由3种结构通过以下方式组合而成:
堆叠(stacking) 嵌套(nesting)
stacking
A sum=sum+i
B
i=i+1
sequence structure
nesting
8 407 8 50 8 6 0
7 2 6
int main() { int n1, n2, n3;
printf(“407 = “);
n1 = 407%8; n2 = 407/8%8; //对n1的商再求余 n3 = 407/8/8%8; //对n2的商再求余
printf(“0%d%d%d\n”, n3, n2, n1);
第六讲 语句和算法
常用语句 算法及其表示 结构化程序设计 程序设计举例
C语句概述
C程序
源程序文件1
源程序文件2
源程序文件n
预处理命令
数据声明
函数1
函数n
函数首部
函数体
数据声明
执行语句
2/18
C语句概述
一个c程序可以有若干个源程序文件组成 一个源文件可以有若干个函数和预处理命令以及全局变量声明 部分组成 一个函数有函数首部和函数体组成 函数体由数据声明和执行语句组成 C语句分为
语句和算法
5、算法的计算机语言表示
C语言表示
int main() { int i, sum; i=1; sum=0; while (i<=100) { sum=sum+i; i=i+1; }
return 0; (cw0501.c)
#include <stdio.h>
//定义变量,函数所有变量必须在首部定义 //变量赋初值 //循环累加100次
8/18
语句和算法
算法的自然语言表示
问题
计算1+2+3+…+100
算法的自然语言表示
步骤1:i=1,sum=0。 步骤2:如果i不大于100,顺序执行步骤3;否则,执行步骤5。 步骤3: sum加上i,相加后的值仍放在sum中,即:sum = sum+i。
步骤4:使 i 的值增 1 得到下一个加数,即i=i+1; 执行步骤2。
3、N-S图表示
1973年,美国学者I.Nassi 和 B.Shneiderman提出了一种 新的流程图形,并以他们的名字命名为N-S结构化流程 图。在这种流程图中,完全去掉了带箭头的流程线。全部 算法写在一个矩形框内,在该框内还可以包含其他从属于 它的框,利用N-S图表示算法就像堆积木一样,它十分适合 结构化程序设计,因而很受欢迎。N-S图相比流程图方法来 说主要特点是去掉了流程线,从而避免了设计出无规则任 意转向的算法,更容易让学习的人养成利用结构化方法构 造算法的习惯。
Algorithm is the spirit of a program.
6/18
算法应具有下面五个特性:
1)有穷性:算法中的每个步骤由计算机执行的次数及时 间是有限的。 2)确定性:算法中的每个步骤含义明确,无二义性。 3)可行性:算法中描述的操作都可通过有限次的基本运 算来实现。 4)输入:一个算法应具有零个或多个输入。 5)输出:一个算法应具有一个或多个输出。
•帮助程序员在写程序之前“设 想出”程序
•很容易被转换成C程序 •一般只包括可执行语句
10/18
语句和算法
算法的流程图表示
2、流程图表示
start
程序的开始和结 束 动作
i=1 sum=0
i<=100 Y sum=sum+i i=i+1 N
流向线
判断 输入/输出 连接
Out: sum
end
注释框
11/18
printf(“1+2+3+...+100=%d”,sum);//输出结果 }
17/18
语句和算法
流程图与算法的结构化描述
程序控制
计算机程序中指定语句执行的顺序。
顺序执行
程序中的语句按照它们的书写顺序一句接一句地执行。
控制转移
把待执行的下一个语句指定为不是书写顺序中的下一个语 句。 goto语句带来很多问题。C语言中限制使用。
19/18
循环结构
C语言的结构
顺序结构
T
选择结构
T F
if-else
A B C
if
F
A
A
B
switch
T F T F T break break break
F
20/18
循环结构
C语言的控制结构
循环结构
do-while
while
T
条件
F
T
条件
F
for
条件
F
T
21/18
循环结构
结构化程序设o overlaping
24/18
结构化程序设计方法
一般来说,只要在程序中能正确的使用“三种基本 结构(顺序、分支和循环)”表示解题步骤(算法); 使用“模块”来封装功能的思想,进而设计的程序, 可以被界定为结构化程序设计。 其特点是: • 自顶向下; • 逐步细化; • 模块化设计; • 结构化编码。
THANK YOU VERY MUCH !
7/18
算法的表示方法
算法的描述方法常用的有自然语言、流程图、N-S图、 伪代码等。 1)自然语言
例: 编程求1+2+3+┄+100。 算法为: S1:设置一个累和变量sum和一个计数变量n; 并设它们的初值都为0; S2:判断n<=100,若成立转S3,否则转S5; S3:sum+n==>sum,n+1==>n; S4:转S2; S5:输出sum.。
12/18
用N-S流程图表示算法