C#第5章 控制结构与算法1 2H

上传人:woxinch****an2018 文档编号:45331063 上传时间:2018-06-15 格式:PPT 页数:46 大小:451KB
返回 下载 相关 举报
C#第5章 控制结构与算法1 2H_第1页
第1页 / 共46页
C#第5章 控制结构与算法1 2H_第2页
第2页 / 共46页
C#第5章 控制结构与算法1 2H_第3页
第3页 / 共46页
C#第5章 控制结构与算法1 2H_第4页
第4页 / 共46页
C#第5章 控制结构与算法1 2H_第5页
第5页 / 共46页
点击查看更多>>
资源描述

《C#第5章 控制结构与算法1 2H》由会员分享,可在线阅读,更多相关《C#第5章 控制结构与算法1 2H(46页珍藏版)》请在金锄头文库上搜索。

1、高级编程技术Visual C#.NET Programming聊城大学 理工学院 曹银杰曹银杰 第五章:控制结构与算法15.1 算法基础 5.2 顺序结构 5.3 选择结选择结 构程序设计设计 5.4 循环结环结 构5.1 算法基础5.1.1 算法定义及特征 5.1.2 ANSI流程图算法 5.1.3 结构化程序设计方法5.1.1 算法定义及特征 什么是算法:是为完成一项任务所应当遵循的一步一步的 规则的、精确的、无歧义的描述,它的总步数是有限的。 算法举例:例:辗转相除法写出求两个自然数的最大公约数 Step1: 输入两个自然数m,n Step2: rm mod n Step3: mn;nr

2、 Step4: 若r0 则重复Step2、Step3步(循 环)否则Step5 Step5:输出m,m即为m和n的最大公约数 算法的特征:确定性、可行性、有穷性、输入性、输出性 算法的描述方法很多: 自然语言(如英语、汉语等)、图形或符号等描 述。开始、结束点数据输入、输出处理判断流线连接点5.1.2 ANSI流程图描述算法ANSI规定的常用流程图 符号,具有直观,易懂 特点。例例1 1:辗转相除法写出求两个自然数的 最大公约数结束开始输入M、N求R=M mod NM=NN=R输出 MR 0是例2: Ax2+Bx+C=0的实根解FAx2+Bx+C=0的实根解 F分析: F如何求解 F求解步骤A

3、x2+Bx+C=0的实根解开始输入A、B、C的值B2-4*A*C0? 否是求方程根输出结果结束例3:求sum=n! F分析: F如何求解 F求解步骤求sum=n!StartInput nSum = 1I = 1Sum = sum*I I = I + 1I n ? noyesOut sum Exit可以看出,流程 图可很清楚的表 示出解决问题的 步骤,编程人员 按照流程图的思 路编写代码就可 以了。编程之前,先用 流程图表示算法 !5.1.3 结构化程序设计方法F结构化的基本思路是将问题进行有效分解,使大问题转化 为小问题(模块),自上而下、逐步细化,从而使问题简化 、便于解决。 F结构化程序的

4、每个模块内部必须由若干个基本的程序结构 组成,使程序的结构更加清晰,易读易改。模块A1模块A2模块A模块CC1C2C3C4模块BB1B2主模块(主功能)结构化程序设计方法F1966年Bohra和Jacopin提出了结构化算法的3种基本 结构单元:顺序结构 选择结构循环结构F由以上三种基本结构构成的程序,称为结构化程序。F结构化程序以及三种基本结构都具有以下特点:只有一个入口只有一个出口无死语句-每个框内语句均有可能执行无死循环F由三种基本结构组成的算法结构,可以解决任何复杂 问题。顺序结构F顺序结构是一种最简单、最基本的结构,在顺序结构内, 各块是按照它们出现的先后顺序依次执行。ABab顺序结

5、构示意图选择结构F选择结构中包含一个判断框,根据给定的条件p是否成立 而选择执行A框或B框(单分支无B)。条件PAabYN选择结构流程图条件PABabYN选择结构流程图循环结构F在一定条件下反复执行一个程序块的结构。根据先、后执行 循环体的方式分为两种循环。A条件PabYN循环结构流程图型循环结构流程图abYN条件PAwhile 循环:先执行条件,p成 立时执行循环体,否则退出循 环。dowhile 循环 :先执行 循环体,再执行条件,p 不成立时执行循环,否则 退出循环。5.1.4用N-S流程图表示算法FN-S结构化流程图:全部算法写在一个矩形框内,去掉了带 箭头的流程线。满足条件否满足不满

6、足执行a块执行b块当条件p满足时执行循环中指令直到条件p满足为止执行循环中的指令执行a块执行b块5.2 顺序结构F顺序结构是程序设计中最简单的结构,也是最基本的结构 ,它就是按照程序书写的顺序逐句执行程序中的指令。F如赋值语句、输入/输出等: 给变量赋值语法: 变量名表达式 设置对象的属性语法: 对象名.属性=表达 式 获取对象的属性语法: 变量名对象名.属 性private void button1_Click(object sender, EventArgs e) int r = 5;/圆的半径 double area = 3.14 * r * r;/计算圆的周长/显示圆的周长Messag

7、eBox.Show(area.ToString();5.3 选择结选择结 构程序设计设计F人们面临选择的时候精神会变得脆弱,这就是为什么我们 总是轻信偷看来的答案。因此,选择对于人类来说是一件 复杂的事情,而对于计算机来说,则非常简单。它头脑简 单,因而永远不会象人一样遇到棘手事情时犹豫不决。 F选择结构解决的是程序流向问题,即在某种条件满足时, 程序分别执行那些语句。包括多种格式的IF语句和switch 语句,可方便地实现各种程序分支。 5.3.1 单分支的IF语句 5.3.2 二分支的if 语句 5.3.3 多分支的if 语句 5.3.4 多分支switch语句 5.3.5 分支嵌套举例5

8、.3.1 单分支的if 语句F条件表达式“()”不能省略 ,结果必须是一个逻辑值,为 true时执行语句块A,为false 时直接执行该结构下面的语句 。 F语句块A只有一句时“ ”可 省略。if (条件表达式)条件PAabYN单分支选择结构流程图5.3.2 二分支的if 语句F条件表达式值为true时执行语句块A,否则执行语句块B, 然后继续执行该结构下面的语句。if (条件表达式) else条件PABabYN二分支选择结构流程图若语句块只有一句,大括号可省略。三元运算符等价二分支语句F例: s = x != 0.0 ? Math.Sin(x)/x : 1.0; 等价于private voi

9、d button1_Click(object sender, EventArgs e)double x=0.1, s=0;if (x != 0.0) s = Math.Sin(x) / x;else s = 1.0; MessageBox.Show(s.ToString(),“标题“);二分支举例:MessageBox应用消息框语法:MessageBoxIcon.Information 共9种消息提示图caption消息框的标题MessageBoxButtons.YesNotext显示的消息MessageBox.Show( text,caption, MessageBoxButtons, Me

10、ssageBoxIcon);共有8种按钮Abort、Cancel、Ignore、 No、None、 Ok、Retry 、Yes 的6种组合形 式。 F MessageBox.Show()方法 返回一个 MessageBoxResult 值,该值指定用户 单击了消息框上的哪个按钮。 F DialogResult有8个属性值对应的各个按钮,与Show方法返回值配合使用 即可。二分支的if 语句举例:private void button1_Click(object sender, EventArgs e)if (MessageBox.Show(“保存文件“, “保存“, MessageBoxBut

11、tons.YesNo, MessageBoxIcon.Information,MessageBoxDefaultButton.Button1) = = DialogResult.Yes)/保存文件所用的代码MessageBox.Show(“你按了Yes按钮!“);else/不保存文件所用的代码MessageBox.Show(“你按了No按钮!“);5.3.3 多分支的if 语句F即可做出多次判断,又保证计算机至少执行一些代码。if (条件表达式1) ; else if (条件表达式2) ; else if (条件表达式n) ; else ; 最后一个else子句没有if 。 多分支的if 语句

12、举例private void button1_Click(object sender, EventArgs e) int score = Convert.ToInt32(textBox1 .Text );if (score 100 | score 90) label3.Text = “A“; else if (score 80) label3.Text = “B“; else if (score 70) label3.Text = “C“; else if (score 60)label3.Text = “D“;elselabel3.Text = “E“; 成绩分级:5.3.4 多分支swit

13、ch 语句Fswitch 流程图:switch 语法switch (表达式) case :;break;case :;break;. . .default:;break; F表达式值可以是整型或 字符串。 F常量表达式值可以是直 接常量,也可是一个符 号常量。 Fcase子句必须用break 语句中断语句组的执行 。 F空case子句可不加 break 。 FDefault块是可以省略 。switch举例1:string grade = “良“; switch (grade) /空的 case 子句间不加 break: case “优“ : case “良“ : case “中“ :textB

14、ox1.Text = “通过“;break;case “差“ :textBox1.Text = “不通过“;break;default:textBox1.Text = “未知“ ;break; switch举例2:在 switch 语句中,可使用 goto case 的方 式控制 case 子句的执行。switch (grade) case “优“:goto case “通过“;case “良“:goto case “通过“;case “中“ : goto case “通过”;case “差“ : textBox1.Text = “不通过.“; break;case “通过“ : textBo

15、x1.Text = “通过.“; break;default: textBox1.Text = “未知.“; break; 5.3.5 选择嵌套F求一元二次方程的根 F一元二次方程的根有下列三种情况: F(1)当a=0、b=0时,方程无解; (2)当a=0、b0时,方程只有一个实根; (3)当a0时,方程有两个根(两个实根或两 个虚根)F在窗体上添加5个文本框分别为a、b、c的输入,x1、x2的 输出,再添加5个标签注释每个框,添加一个命令按钮, 在其Click事件过程中编写代码。求一元二次方程的根private void button1_Click(object sender, EventArgs e)int a = Int16.Parse(textBox1.Text);int b = Int16.Parse(textBox2.Text);int c= Int16.Parse(textBox3.Text); Single sing1 = b * b - 4 * a * c;double sing2 = Math.Sqrt(Mat

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 高等教育 > 其它相关文档

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号