单击此处编辑母版标题样式,*,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,第,3,章 基本程序设计语句,本章要点:,理解顺序结构、选择结构和循环结构程序设计的思想,理解双分支语句和多分支语句的含义,掌握利用双分支语句和多分支语句设计分支程序的方法,理解循环的概念,掌握循环程序设计的方法以及常用的算法,如累加求和、穷举法等,3.1,循序渐进学理论,3.1.1,基本的顺序结构语句及其应用,顺序结构是程序设计中最常用也是最简单的程序结构。所谓顺序结构就是其中的语句是按照先后顺序依次执行,程序执行的流程不会发生跳转。,【例3-1】设计一个程序,程序设计界面如图3-1所示。在程序设计时,编辑框显示“远方的朋友,欢迎您”文字,字号为12号,字体为宋体,字体颜色为红色。程序运行时,单击,【,改变,】,按钮,编辑框文本内容不变,但字号改为20号,字体变为隶书,颜色变为蓝色,如图3-2所示。,3.1.2,选择结构语句及其基本应用,1,关系表达式与逻辑表达式,(,1,),关系运算符和关系表达式,关系运算符就是用来对两个表达式进行大小比较的运算符。用关系运算符把两个运算对象连接起来表示它们大小关系的式子称为关系表达式。,关系表达式的一般格式及其功能如下。,格式,:表达式,1,关系运算符,表达式,2,功能,:比较两个表达式值的大小。,注意:,关系运算遵循以下规律。,关系表达式两边的数据类型必须一致。,9,个关系运算符的运算级别相同,而且都是所有运算符中级别最低的。在同级别运算符中,按从左到右的顺序运算,括号里的表达式最先运算。,当对字符进行大小比较时,,Delphi,对字母的大小写是有区别的,并按照每个字符的,ASCII,码值大小予以比较。,(,2,)逻辑运算符和逻辑表达式,逻辑表达式就是用逻辑运算符把若干个关系表达式或逻辑值(,True,或,False,),连接起来的式子。,逻辑表达式的运算步骤是:对双目运算符,先运算两个表达式的值,再进行逻辑比较;对单目运算符(,Not,),,先计算表达式的值,再进行取反操作。,注意:,逻辑运算遵循以下规律。,逻辑运算符与第二章讲解的位运算符符号相同,但含义不同。当逻辑运算符两边的数据为数值时,此时的逻辑运算符转化为位运算符,结果为整数而不是逻辑值。,逻辑运算符的优先级别是:,Not,为第一级,,And,为第二级,,Or,和,Xor,为第三级。先运算级别高的,后运算级别低的,同级别运算符,按从左到右的顺序运算。而括号里的表达式最先运算,不管其级别高低。,2,单分支与双分支,IF,语句,IF,语句常用来实现单分支或双分支,它的语法格式有两种,分别如下。,格式,1,:,IF,(,条件),Then,语句,1;,格式,2,:,IF,(,条件),Then,语句,1,Else/Else,之前(语句,1,之后)没有分号,语句,2;,注意:,(,1,)对语法格式,2,(双分支,IF,语句),语句,1,后面没有分号,因为,IFThenElse,语句是一个完整的语句。,(,2,)两种语法格式中的语句,1,和语句,2,都可以是简单语句或复合语句(复合语句必须包含在,begin,和,end,之间)。,【,例,3-2,】,编写一个做算术题的程序,程序的设计界面如图,3-3,所示。程序执行时,单击,【,出题,】,按钮,将随机产生,100,以内的非负加数和被加数,当在等号“,=,”,右边的方框里写出正确答案后,单击,【,结果,】,按钮,将显示“答案正确”;如果输入的答案不正确,将显示“答案错误”,如图,3-4,所示。,3,多分支,Case,语句,格式,:,Case,(,表达式),of,值,1:,语句,1;,值,2:,语句,2;,值,n:,语句,n;,Else /,这里的,Else,之前可以有分号,语句,n+1;,end;,注意:,(,1,)“表达式”的值必须是顺序类型,即整型、字符型、布尔型、子界型和枚举型。,(,2,)“值,1,”,到“值,n,”,应该是“表达式”可能出现的值,它们还应该各不相同。,(,3,)语句可以是简单语句,也可以是复合语句。,(,4,),Else,语句可以省略,省略时如果“表达式”的值与“值,1,”,“,值,n,”,中的任何一个值均不相等,则不执行任何分支,直接跳转到,end;,后面的语句执行。,(,5,),Case,语句可以用,IF,语句来实现,但,IF,语句不一定能用,Case,语句实现。,【,例,3-3,】,某个团体按如下规定交会费:收入在,0499,元之间的交,0.5%,,收入在,500999,元之间的交,1%,,收入在,10001999,元之间的交,1.5%,,收入在,2000,元及以上的交,2%,。请编写程序实现:根据输入的收入金额,计算出应该上交的会费。程序设计界面如图,3-5,所示,程序运行界面如图,3-6,所示。,3.1.3,循环结构语句及其基本应用,1,While,语句,格式,:,While,(,循环条件),do/,循环条件为关系或逻辑表达式,其值为,True,或,False,循环体,;/,“,循环体”可以是简单语句或复合语句,注意:,(,1,)可以在循环体的任何位置放置,Break,语句,用来强制终止整个循环。,(,2,)也可以在循环体的任何位置放置,Continue,语句,在该次循环执行完之前就结束本次循环,重新判断循环条件,根据循环条件的值,决定是否继续执行循环。显然,,Continue,语句和,Break,语句含义是不同的。,(,3,),Break,语句和,Continue,语句通常放置在循环体中的,IF,语句之后,即在满足某个条件的时候,结束循环或结束本次循环。,(,4,)注意循环条件,它决定了是否执行循环以及执行多少次循环。,【,例,3-4,】,利用,While,语句求,2+3+50,的和。程序设计界面如图,3-7,所示,程序运行界面如图,3-8,所示。,2,Repeat,语句,格式,:,Repeat,循环体,;,Until,(,循环条件),;,注意:,(,1,)循环体可以是简单语句,也可以是复合语句,对于复合语句,不需要用,beginend,括起来。,(,2,)也可以使用,Break,和,Continue,语句来终止循环或结束本次循环。,(,3,)是在“循环条件”为,False,时执行循环,为,True,时退出循环。,【,例,3-5,】,用,Repeat,语句实现,【,例,3-4,】,的功能,程序设计界面和程序运行界面分别如图,3-7,和,3-8,所示。,3,For,语句,格式,:,For,循环变量,:=,初值,To,(,DownTo,),终值,Do,循环体,;,注意:,(,1,)“循环变量”只能是顺序类型(一共,5,种类型,请查阅前面章节)。,(,2,)格式中的“初值”和“终值”就是循环变量的“初值”和“终值”。,(,3,)对递增循环,每循环一次,循环变量的值自动增加,1,;对递减循环,每循环一次,循环变量自动减少,1,。,(,4,)循环体可以是简单语句也可以是复合语句,若为复合语句,需要用,beginend,括起来。,(,5,)在循环体中可以使用,Continue,和,Break,语句,它们也通常位于,IF,语句之后。,【,例,3-6,】,用,For,语句实现,【,例,3-4,】,的功能,程序设计界面和程序运行界面仍然如图,3-7,和,3-8,所示。,3.2,典型实例练能力,3.2.1,典型实例一:邮箱登录程序,【,实例题目,】,在很多场合需要输入密码,例如使用银行卡、登录电子邮箱、,QQ,聊天等。下面利用,IF,语句编写一个类似登录服务的简单程序,程序的设计界面如图,3-9,所示。程序实现的功能如下:在编辑框中输入密码,单击,【,确定,】,按钮,如果输入的密码正确(假定正确密码是“,123abc,”,),,就在另一个编辑框显示“欢迎使用本系统”文本信息,文本的字号为,18,号,字体为隶书,字体颜色为蓝色,如图,3-10,所示。如果输入的密码不正确,就显示“警告,密码错!”文本,文本字号还是,18,号,字体为楷体,字体颜色为红色,如图,3-11,所示。,3.2.2,典型实例二:购物打折程序,【,实例题目,】,节日来临,商家为促销搞优惠活动,具体优惠办法如下:,(,1,)一次性购物金额少于,100,元的,不优惠;,(,2,)一次性购物金额大于等于,100,元但少于,300,元的,优惠,5%,;,(,3,)一次性购物金额大于等于,300,元但少于,500,元的,优惠,10%,;,(,4,)一次性购物金额大于等于,500,元但少于,1000,元的,优惠,15%,;,(,5,)一次性购物金额大于等于,1000,元的,优惠,20%,。,请编写程序实现上面的功能,当输入购物金额时,单击,【,付款,】,按钮,计算实际支付的金额。程序设计界面如图,3-12,所示,程序运行界面如图,3-13,所示。,图,3-12,程序设计界面,图,3-13,程序运行界面,3.2.3,典型实例三:计算数学中常量的值,【,实例题目,】,编一个程序按下列公式求,e,的值(要求精度达到,1e-5,)。,程序的设计界面如图,3-14,所示,程序运行时,单击,【,计算,】,按钮,将计算并显示符合给定精度的值,如图,3-15,所示。,图,3-14,程序设计界面,图,3-15,程序运行界面,3.2.4,典型实例四:素数判断程序,【,实例题目,】,编写一个判断某数是否为素数的应用程序,程序的设计界面如图,3-16,所示。程序运行时,在编辑框中输入任意一个正整数,单击,【,判断,】,按钮,在另一个编辑框显示该数是否为素数,如图,3-17,所示。要求:通过,For,语句来实现。,图,3-16,程序设计界面,图,3-17,程序运行界面,3.2.5,典型实例五:枚举法求百钱买百鸡问题,【,实例题目,】,我国古代有个著名的百钱买百鸡问题:用,100,元钱买,100,只鸡,公鸡每只,5,元,母鸡每只,3,元,小鸡每,3,只,1,元,问该如何买?买法有许多种,请找出其中的一种。程序设计界面如图,3-18,所示,程序运行界面如图,3-19,所示。,图,3-18,程序设计界面,图,3-19,程序运行界面,3.3,上机练习重应用,3.3.1,上机练习一:求阶乘,【,练习,题目,】,关于阶乘的问题数学上也经常遇到,请编写程序求的值。程序设计界面如图,3-20,所示,程序运行界面如图,3-21,所示。,图,3-20,程序设计界面,图,3-21,程序运行界面,3.3.2,上机练习二:求两数之间不能被,4,整除的数,【,练习题目,】,在两个编辑框中任意输入两个正整数,求它们之间所有不能被,4,整除的数,并显示出来。程序设计界面如图,3-22,所示,程序运行界面如图,3-23,所示。请编程实现上面的功能。,图,3-22,程序设计界面,图,3-23,程序运行界面,