1.2.2-1.2.3条件语句和循环语句 (一)条件语句 思维指导:
思考:在程序中如何表达某一个条件?如何表达一个条件语句? 算法中的条件结构是由条件语句来表达的。 第一,它的一般格式是:(IF-THEN-ELSE格式)
当计算机执行上述语句时,首先对IF后的条件进行判断,如果条件符合,就执行THEN后的语句1,否则执行ELSE后的语句2。其对应的程序框图为:(如上右图)
第二,在某些情况下,也可以只使用IF-THEN语句:(即IF-THEN格式)
思考:为什么可以不需要“ELSE”?
计算机执行这种形式的条件语句时,也是首先对IF后的条件进行判断,如果条件符合,就执行THEN后的语句,如果条件不符合,则直接结束该条件语句,转而执行其他语句。其对应的程序框图为:(如上右图) 第三,条件语句的作用
在程序执行过程中,根据判断是否满足约定的条件而决定是否需要转换到何处去。需要计算机按条件进行分析、比较、判断,并按判断后的不同情况进行不同的处理。
【课堂探究】 1.教材P27例6
编写程序,输入一元二次方程ax?bx?c?0的系数,输出它的实数根。 思维指导:
①把解决问题的思路用程序框图表示出来 第一,已知条件
包括:一元二次方程ax?bx?c?0,系数分别为a、b、c; 第二,求根的方法
先判断是否有根。判断及求根方法:
22??b2?4ac?0原方程有两个不相等的实数根x1??b???b??、x2?; 2a2a??0,原方程有两个相等的实数根x1?x2????0,原方程没有实数根。
第三,如何用程序框图表示出来
A.需要引入多少变量?
b; 2a?bq?除了上述变量外,为了避免重复计算,可以在计算x1和x2之前,先计算p??,
2a 2a
②根据程序框图给出的算法步骤
程序框图:(参照课本P17)
程序:
2.教材P27例7
编写程序,使得任意输入的3个整数按从大到小的顺序输出。 思维指导:
①把解决问题的思路用程序框图表示出来 第一,已知条件
任意顺序的3个整数 a、b、c;
第二,按从大到小的顺序排列的方法 先找最大者:
将a与b比较,并把小者赋给b,大者赋给a. 将a与c比较. 并把小者赋给c,大者赋给a; 这样a为最大者。
再找最小者:将b与c比较,并把小者赋给c,大者赋给b; 此时a,b,c已按从大到小的顺序排列好。(为什么?) 第三,如何用程序框图表示出来
A.需要引入多少变量?(四个a、b、c,及为了交换变量引入的新变量t) 程序框图:(参照课本P19) ②根据程序框图给出的算法步骤 程序:
(二)循环语句
(1)循环语句是什么
算法中的循环结构是由循环语句来实现的。
对应于程序框图中的两种循环结构,一般程序设计语言中也有当型(WHILE型)和直到型(UNTIL型)两种语句结构。即WHILE语句和UNTIL语句。 (2)循环语句的格式
第一,WHILE语句的一般格式是:
其中循环体是由计算机反复执行的一组语句构成的。WHLIE后面的“条件”是用于控制计算机执行循环体或跳出循环体的。
当计算机遇到WHILE语句时,先判断条件的真假,如果条件符合,就执行WHILE与WEND之间的循环体;然后再检查上述条件,如果条件仍符合,再次执行循环体,这个过程反复进
行,直到某一次条件不符合为止。这时,计算机将不执行循环体,直接跳到WEND语句后,接着执行WEND之后的语句。因此,当型循环有时也称为“前测试型”循环。其对应的程序结构框图为:(如上图)
第二,UNTIL语句的一般格式是:
其对应的程序结构框图为:(如上图)
【课堂探究】 1.教材P30例8 思维指导:
①本题的问题是如何输出11个函数值 解决方法:一个一个输出。 ②问题转化为如何输出一个? 见课本例1
③如何连续输出11个
第一,思考:11个如何表示?
解决方法:引入一个变量n,并且必须先赋值n=1(为什么?),并且,每计算一次n增加1. 思考:分析程序,在程序中如何体现n? 第二,采用什么语句描述n?
【巩固练习】
1、条件语句属于算法中的哪个基本逻辑结构( )
(A)顺序结构 (B)条件结构 (C)循环结构 (D)以上都不对 2、下列关于条件语句的说法正确的是( ) (A)条件语句中必须有ELSE和END IF