C#程序设计教程(第2版) 第4章 结构化程序设计ppt课件.ppt
《C#程序设计教程(第2版) 第4章 结构化程序设计ppt课件.ppt》由会员分享,可在线阅读,更多相关《C#程序设计教程(第2版) 第4章 结构化程序设计ppt课件.ppt(74页珍藏版)》请在三一办公上搜索。
1、第4章 结构化程序设计,内容提要: 结构化程序的三种基本结构 算法、流程图、 if语句、 分支语句 循环语句、跳转语句 异常处理的概念 try/catch语句、throw语句和finally语句目的要求: 理解算法的概念 掌握 if语句、switch分支语句、循环语句和异常处理语句的含义重点难点: if语句、循环语句和异常处理语句,4.1 结构化程序设计的概念4.1.1结构化程序设计的概念及算法的概念 结构化程序设计方法,是比较广泛使用的程序设计方法。 用这种方法编制的程序具有结构清晰,可读性强,易查错等特点。 结构化程序设计有三种基本结构,即:顺序结构、选择结构、循环结构。每种基本结构可以包
2、含若干条语句。,程序设计的主要步骤:分析问题。 确定算法。(3) 画出程序流程图。(4) 编写程序。 (5) 调试程序。 (6) 建立健全的文档资料。 最关键的是第2个步骤,即“算法设计”。 所谓“算法”,粗略地讲,是为解决一个特定问题而采取的确定的有限的步骤。,4.1.2 流程图 流程图(Flowchart),亦称框图,它是用一些几何框图、流向线和文字说明表示各种类型的操作。 计算机算法可以用流程图来表示。,4.2 顺序结构 4.2.1 顺序结构的概念: 有些简单的程序是按程序语句的编写顺序依次执行的,这种结构称为顺序结构。,例:编写程序计算圆的周长和面积。,using System;cla
3、ss Circle static void Main( ) const double PI= 3.141;double R, L, S; Console.Write(请输入圆的半径值:); R=double.Parse(Console.ReadLine( ); L=2*PI*R; S=PI*R*R; Console.WriteLine(圆的周长为:0,L); Console.WriteLine(圆的面积为:0 ,S); ,4.2.2 顺序结构的实例,Parse( )方法: 主要用于将数字的字符串表示形式转换为它的等效的其他基本数字类型。 例:string s=“18”; int a=int.P
4、arse(s)-10; /a=8 int b=a+int.Parse(Console.ReadLine();,练习:1.下列程序运行后,输出的结果是( )。 double x=17.9; int y=3; y=(int)x%5; Console.WriteLine(y);2. 若x=10, y=20, z=0,则表达式 “(m=(xy)?x:y)z)?m:z”的值为( )。,4.3 选择结构4.3.1 选择结构的概念 选择结构,是一种常用的主要基本结构,是计算机根据所给定选择条件为真与否,而决定从各实际可能的不同操作分支中执行某一分支的相应操作。,4.3.2 条件语句1if语句 语法形式: i
5、f (表达式) 语句; 说明:如果表达式的值为true,则执行后面if语句所控制的语句;如果表达式的值为false,则不执行if语句控制的语句,而直接跳转执行后面的语句。 注意:如果if语句块中只有一条语句,则大括号“ ”可以省略。,编程:计算下面公式中的b的值。 2a+1 (a 100) b= a (a 100),using System;class value static void Main( ) Console.Write(请输入a的值:); int a=int.Parse(Console.ReadLine(); int b=a; if(a=100) b=2*a+1; Console.
6、WriteLine(b=0,b); ,编程:输入三个数,将它们从大到小排序 int a, b, c, t=0; Console.Write(“请输入第一个数:”); a= int.Parse(Console.ReadLine(); Console.Write(“请输入第二个数:”); b= int.Parse(Console.ReadLine(); Console.Write(“请输入第三个数:”); c= int.Parse(Console.ReadLine(); if (a =b t = a; a = b; b = t; if (a =c t = a; a = c; c = t; if (
7、b =c t = b; b = c; c = t; Console.WriteLine(“排序结果为: 0,1,2”,a,b,c);,2ifelse语句语法:if (表达式) 语句块1; else 语句块2; 说明:如果表达式的值为true,则执行if语句所控制的语句块1;如果表达式的值为false,则执行else语句所控制的语句块2。,例:输入一个数,对该数进行四舍五入。using System;class Value static void Main( ) Console.WriteLine(“请输入a的值:”); double a=double.Parse(Console.ReadLin
8、e( ); int b; if(a-(int)a=0.5) b=(int)a+1; else b=(int)a; Console.WriteLine(0进行四舍五入后的值为:1 ,a,b); ,在ifelse语句中可以嵌套使用多层ifelse语句,如: if (表达式1) if(表达式2) if(表达式3) 语句1; else 语句2; else 语句3; else 语句4; 在使用这种结构时,要注意else和if的配对关系,其原则是:从第1个else开始,一个else总和它上面离它最近的可配对的if配对。,例:int a=int.Parse(Console.ReadLine( ); if (
9、a0) if (a100) a=a-50; else a=a+10; /这个else与if (a100)相配 else a=-a; / 这个else与if (a0)相配Console.WriteLine(“a=”,a);,练习:1.若int m, n, r; 则以下正确的是( ) Aif (mn) r-; Bif (m= =n) r-; Cif (!m) r-; Dif (m=n) r-;2. 程序改错。 if(x=1) y+=5; else; y+=10;,思考与练习 1.为铁路编写计算运费的程序。假设铁路托运行李,规定每张客票托运费的计算方法是: 行李重量不超过 50 kg时,每千克0.2
10、5元;超过 50 kg而不超过 100 kg时,其超过部分每千克0.35元;超过 100 kg时,其超过部分每千克0.45元。 (编写完整的程序,上机实现)分析:托运费的分段函数是什么?,答:设行李重量为w公斤,应付托运费为x元,则托运费的分段函数是:(1)w100时,x=0.25*50+0.35*50+0.45*(w-100),double w,x=0;Console.Write(“请输入重量”);w = double.Parse(Console.ReadLine()if (w 50 ,/不能写成: 50w=100,3else if语句else if语句是if语句和ifelse语句的组合,其
11、一般形式如下: if (表达式1) 语句1; else if (表达式2) 语句2; else if (表达式n-1) 语句n-1; else 语句n;,例:编写一个实现如下函数值的程序 -1, x0,using System;class Test static void Main( ) Console.Write(“请输入x的值: ); double x=double.Parse(Console.ReadLine( ); int y; if (x0) y=1; else if (x=0) y=0; else y=-1; Console.WrteLine(“Y=0“,y); ,4.3.3 分支
12、语句格式:switch(表达式) case 常量表达式1: 语句1; break; case 常量表达式2: 语句2; break; default: 语句n; break; ,注意: C#要求每个case后使用break语句或跳转语句goto。所有常量表达式的值不能相同。,编程:查询学生姓名,输入一个字符,如输入“k”时,显示Kate;输入“m”时,显示Mary;输入“r”时,显示Rose;输入“T”时,显示Tom ;输入其他字符时,显示Other Students。,Console.Write(“Enter a character:); char Name=(char)Console.Re
13、ad(); switch(Name) case k: Console.WriteLine(Kate.); break; case m: Console. WriteLine(Mary.); break; case r: Console. WriteLine(Rose.); break; case T: Console. WriteLine(Tom.); break; default: Console.WriteLine(Other students. ); break; ,例: using System; class Demo public static void Main() Console
14、.Write(enter i=); int i=int.Parse(Console.ReadLine(); switch(i) case 1:case 2: case 3: Console.WriteLine(“i is 1,2 or 3.);break;case 4: Console.WriteLine( i is 4. );break; ,注意:在C#中,两个或更多的case语句可以共用同一程序代码:,思考与练习1. 以下程序运行时,输出结果是什么? int y = 1,x; if (y!=0) x = 5; else if y 0 x = 4; else x = 3; Console.W
15、riteLine(x=0“, x);,x=3,4.4 循环结构 循环是指在指定的条件下多次重复执行一组语句。被重复执行的一组语句称为循环体。 采用循环结构可以解决一些按一定规则重复执行的问题。例如,统计一个班几十名学生,甚至全校几千名学生的学期成绩,如求平均分、不及格人数等。4.4.1 循环结构的概念 循环结构按其循环体是否嵌套从属的子循环结构,可分为单循环结构和多重循环结构。,4.4.2 while语句和dowhile语句1while语句语法格式: while (条件表达式) 循环体 ,using System; class Sumw static void Main( ) int n=1;
16、 while (n6) Console.WriteLine(“n=0”, n); n+; ,例:写出下列程序的运行结果。,结果:,例:使用while语句,编程计算1+2+1000。,using System;class Sumw static void Main( ) int i=1, sum=0; while (i=1000) sum+=i; i+; Console.WriteLine(“1+2+1000=0”,sum); ,思考与练习(1)如果要实现 sum=1+2+3+10 , 怎样修改程序?(2)如果要实现 sum=30+31+32+50 , 怎样修改程序?,while(i=10),i
17、nt i = 30;While(i=50),using System; class Value static void Main( ) int i=10; long x=1; while (i0) x*=i; i-; Console.WriteLine(“10!=0”, x); ,例:使用while语句,编程计算10的阶乘值。,1. 下列程序所计算的数学式是( ) int a=0, i=2; while(i100) a+=i; i+=2; A. a=1+2+4+98 B. a=1+2+4+100 C. a=2+4+6+98 D. a=2+4+6+100,练习:,例:写出下列程序的运行结果。 u
18、sing System; class example static void Main( ) int i=1,j,s=0; while(i=3) j=1; while(j=2) s+; j+; i+; Console.WriteLine(“s=0”, s); ,循环语句允许嵌套,即while语句里面还可以再套while语句。,1.以下程序段的循环次数为( ) int i=0, j=0; while(i3) while(j2) j+; i+; ,练习:,2do-while语句 语法格式: do 循环体; while(条件表达式);,dowhile执行过程 while执行过程,例:写出下列程序的运
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- C#程序设计教程第2版 第4章 结构化程序设计ppt课件 C# 程序设计 教程 结构 ppt 课件
![提示](https://www.31ppt.com/images/bang_tan.gif)
链接地址:https://www.31ppt.com/p-1375488.html