论文部分内容阅读
高中新课标引入了算法,目的是培养同学们的逻辑思维能力,提高解决问题的程序化能力.但在学习算法基本语句时常会犯一些共性的错误,本文仅以初学者常犯得几种错误为例作简要地剖析.
一、语句选择不当导致错误
例1 输入3个数[a,b,c],如果这三个数能作为三角形的三边长,那么输出[12a+b+c],否则提示重新输入. 试用算法基本语句表示上述过程.
错解 如图1
图1
分析 错解中用的是条件语句,仅仅执行满足条件的那一次,不能反复执行,而题目条件的意思是:只要不满足条件,就要反复执行,因此应该用循环语句.
正解 如图2
图2
反思 在条件成立时,IF语句仅仅执行了一次,而WHILE语句则根据条件反复执行,直到条件不再成立为止,也有可能一次也不执行.
二、条件语句解读不当导致错误
条件语句的格式是“IF…THEN…ELSE”,翻译为文字语言,就是“如果……那么……否则……”. 这样的语句告诉我们:执行与否是有选择性的,是视情况而言的,每一语句可执行或可不执行.
例2 给出下面的程序段(图3)
图3
图4
分析 答案错选B是将该程序段误读为图4的程序段,如果认真审题,发现“[y=a∗a]”是必执行语句. 在进入这个语句时,[a]的值为3,经该语句后,[y]的值为9.
答案 A
反思 无论是条件结构,还是循环结构,都有判断框. 判断框是“视情况而定”的预兆,是“可执行”的代言,但经END叫停,跳出这个结构后,其他的语句,都是必执行语句,因此读题时要句句关心.
三、循环语句中变量处理不当导致错误
在应用循环结语句解决问题时,应特别注意累加变量和计数变量的初始值,以及计数变量到底是什么?它递加的值是多大?还要特别注意语句中计数变量的取值限制,不等式含等号还是不含等号等等.
例3 写出一个计算[1+2+22+23+⋯+263]的值的程序语句.
错解 如图5
图5
分析 错解中程序语句的功能是计算式子[2+22+23+⋯+263+264]的值,比题目中要求的式子少了一项“1”,多了一项“[264]”. 将循环体中的两步操作对换,可以实现题目的要求.
正解 如图6
图6
反思 在含有循环语句的程序中,变量的初始值、语句的顺序和循环条件是关键,它们直接影响程序语句的输出结果.
四、循环语句中理解不当导致错误
例4 观察图7的程序段,
图7
输出的结果是: .
错答 5
分析 由[1+2+3+4=10]可知,第四次循环结束后[S=10,i=5],此时依然满足循环条件,所以还要进行第五次循环.第五次循环结束后,得到[S=15,i=6].此时不满足循环条件,结束循环,输出[i],因此输出的[i]应是[6].
正解 6
一、语句选择不当导致错误
例1 输入3个数[a,b,c],如果这三个数能作为三角形的三边长,那么输出[12a+b+c],否则提示重新输入. 试用算法基本语句表示上述过程.
错解 如图1
图1
分析 错解中用的是条件语句,仅仅执行满足条件的那一次,不能反复执行,而题目条件的意思是:只要不满足条件,就要反复执行,因此应该用循环语句.
正解 如图2
图2
反思 在条件成立时,IF语句仅仅执行了一次,而WHILE语句则根据条件反复执行,直到条件不再成立为止,也有可能一次也不执行.
二、条件语句解读不当导致错误
条件语句的格式是“IF…THEN…ELSE”,翻译为文字语言,就是“如果……那么……否则……”. 这样的语句告诉我们:执行与否是有选择性的,是视情况而言的,每一语句可执行或可不执行.
例2 给出下面的程序段(图3)
图3
图4
分析 答案错选B是将该程序段误读为图4的程序段,如果认真审题,发现“[y=a∗a]”是必执行语句. 在进入这个语句时,[a]的值为3,经该语句后,[y]的值为9.
答案 A
反思 无论是条件结构,还是循环结构,都有判断框. 判断框是“视情况而定”的预兆,是“可执行”的代言,但经END叫停,跳出这个结构后,其他的语句,都是必执行语句,因此读题时要句句关心.
三、循环语句中变量处理不当导致错误
在应用循环结语句解决问题时,应特别注意累加变量和计数变量的初始值,以及计数变量到底是什么?它递加的值是多大?还要特别注意语句中计数变量的取值限制,不等式含等号还是不含等号等等.
例3 写出一个计算[1+2+22+23+⋯+263]的值的程序语句.
错解 如图5
图5
分析 错解中程序语句的功能是计算式子[2+22+23+⋯+263+264]的值,比题目中要求的式子少了一项“1”,多了一项“[264]”. 将循环体中的两步操作对换,可以实现题目的要求.
正解 如图6
图6
反思 在含有循环语句的程序中,变量的初始值、语句的顺序和循环条件是关键,它们直接影响程序语句的输出结果.
四、循环语句中理解不当导致错误
例4 观察图7的程序段,
图7
输出的结果是: .
错答 5
分析 由[1+2+3+4=10]可知,第四次循环结束后[S=10,i=5],此时依然满足循环条件,所以还要进行第五次循环.第五次循环结束后,得到[S=15,i=6].此时不满足循环条件,结束循环,输出[i],因此输出的[i]应是[6].
正解 6