线上期刊服务咨询,发表咨询:400-808-1701 订阅咨询:400-808-1721

程序设计的结构8篇

时间:2023-07-19 09:28:52

程序设计的结构

程序设计的结构篇1

关键词:结构化程序设计;顺序结构;选择结构;循环结构;算法

当前, 计算 机技术飞速 发展 ,程序设计技术已从结构化程序设计技术向面向对象程序设计技术过渡,对一个规模较大的应用程序,总体框架是由面向对象程序设计构搭而成,而在局部实现时仍需采用结构化程序设计技术。c语言是一种很好的结构化程序设计语言,因此,笔者论述了c中的的结构化程序设计的方法。

结构化程序设计(structured programing,简称sp)的概念是由荷兰学者e·w.dukstra等人在20世纪60年代后期提出的,是以模块化设计为中心,将原来较为复杂的问题化简为一系列简单模块的设计,也就是将—个大的计算任务划分为一个个比较小的任务,这些小任务均由函数来完成。而函数既可以是c的标准库函数。也可以是自定义函数。在c中,一个具备一定规模的c程序往往是由多个函数组成,其中必有一个名为main的主函数,由main来调用其他函数,必要的话,其他函数还可以调用另外的函数。同一函数可以被一个或多个函数调用一次或多次。模块的独立性还为扩充已有的系统、建立新系统带来了不少的方便,因为我们可以充分利用现有的模块作积木式的扩展。

结构化程序设计的思想是一个程序的任何逻辑问题,均可用顺序结构、选择结构和循环结构这3种基本结构来描述。顺序结构的程序流程是按语句的书写顺序依次执行;选择结构是对给定条件进行判断,根据判断结果决定执行两分支中的一个分支或多分支中的一个分支;循环结构是在给定条件成立的情况下,反复执行某个程序段。实现这些程序流程的语句都是流程控制语句。流程控制语句在程序设计中起着重要的作用,通过3种基本控制结构使结构化程序具有唯一的人口和出口,没有死循环,而且程序的静态形式与动态执行形式之间具有良好的对应关系。在c语言中,有4种语句是顺序执行的:①空语句,光有一个分号“;”作为语句结束符,它表示什么也不做。②表达式语句,表达式后面加一个分号,表达式语句主要有赋值语句、自加减运算符构成的语句和逗号表达式语句。③函数调用语句,它是由一个函数调用加上一个分号组成的。④复合语句,由“{”和“}”把一些变量说明和语句组合放在一起,又称为语句块。选择语句有if语句和switch语句。循环语句有for,while和do-while语句以及一些辅助流程转向语句如continue,break,goto等。顺序结构,选择结构和循环结构共同作为各种复杂程序的基本构造单元,由这3种结构经过反复嵌套构成的程序称为结构化程序,也就是说,结构化程序是由上述3种基本结构组成的。但如果在编程过程中无限制地使用转移语句(goto),会使程序的控制流程强制性地向前或向后跳转而导致程序的流程无序可循,结构杂乱无章。结构化构造减少了程序的复杂性,提高了可靠性、可测试性和可维护性,使用少数的基本结构,就可使程序逻辑结构清晰,易读易懂,并且容易验证程序的正确性。对—个初学计算机语言的人来说。最重要的就是要有正确的程序流程概念,不仅要懂得而且要灵活应用。由此可见,用结构化方法设计的结构是清晰的,有利于编写出结构良好的程序。因此。结构化程序设计方法的主要原则可以概括为自顶向下,逐步求精,模块化,限制使用goto语句。将程序设计针对的问题进行分解,直到分解到对应于一个个功能更简单,又独立的模块,每个模块再分解到上述3种基本程序结构。

程序设计的结构篇2

关键词:结构化程序设计 数据结构 算法 设计技巧

近年来,计算机程序设计技术已从结构化程序设计技术逐步向对象程序设计技术过渡,特别是当设计一个较大规模的应用程序时,面向对象设计思路成为首选。纵观计算机软件技术的发展,在局部功能的实现上及功能模块的设计上,结构化程序设计仍然有其不可替代的独特魅力。在结构化程序设计中(以C语言为例),巧妙地运用一些设计技巧,对增强程序的稳定性和可靠性,简化程序操作步聚,提高程序的运行效率十分有效。

结构化程序设计的概念最初是由荷兰学者E・W・DUKSTRA等人在20世纪60年代提出的,它的基本思路是:以模块化设计为中心,将原来较为复杂的问题简化为一系列简单模块的设计,也就是将一个大的计算任务划分为若干个较小的任务,这些小任务均由函数来完成。函数既可以是C语言定义的标准库函数,也可以是自定义函数。在实际应用程序中,一个具备一定规模的C语言程序往往由多个函数组成,其中必有一个命名为main的主函数,由main来调用其他函数。必要时,其他函数还可以调用另外的函数,同一函数可以被一个或多个函数调用一次或多次。

结构化程序设计把程序归结为用顺序结构、选择结构和循环结构等三种基本结构来描述的逻辑问题。顺序结构的程序流程是按语句的书写顺序依次执行;在C语言中,有4种语句是顺序执行的:即空语句、表达式语句、函数调用语句及复合语句;选择结构是对给定条件进行判断,根据判断结果决定执行两分支中的一个分支或多分支中的一个分支,选择语句有if语句和switch语句;循环结构是在给定条件成立的情况下,反复执行某个程序段,循环语句有for,while和do-while语句以及一些辅助流程转向语句如continue,break,go to等等。以上三种结构通过流程控制语句来实现。流程控制语句在程序设计中起着十分重要的作用,通过三种基本控制结构的合理调配使结构化程序具有唯一的入口和出口,不会出现死循环,而且程序的静态形式与动态执行形式之间具有良好的对应关系。

从以上结构化程序的基本特点分析,结构化程序设计主要强调的是程序。程序=算法+数据结构+程序设计方法+语言工具和环境,其中算法是灵魂,是解决“做什么”和“怎么做”的问题;数据结构是加工对象;语言是工具;编程需要采用合适的方法。具体解决主要问题包含以下几个步骤:

分析问题,找出解决问题的模型根据模型设计出适合计算机特点的处理方法即算法进行编程程序,以实现算法上机编辑(.c)、编译(.obj)、连接(.exe)、运行所编制的程序,直到得出正确结果对结果进行分析,整理出文字材料。

程序设计的任务不只是编写出一个能得到正确结果的程序,还应考虑程序的质量,否则编写的程序就会出现质量低下、可靠性差、开发周期长、维护费用高等不良后果,即所谓的的“软件危机”,它会严重阻碍计算机应用的发展。由于大多高级语言都支持结构化程序设计方法,其语法上都含有表示三种基本结构的语句,所以用结构化程序设计方法设计的模块从结构到程序的实现是直接转换的,只需用相应的语句结构代替标准的控制结构即可。笔者在实际应用中,总结出以下几点实用技巧。

一、通过引申法廓清思路,选准目标

“引申法”就是通过对某一结论的合理引申,结合已经解决的问题,因势利导,在此基础上解决相关联的其他问题。“引申法”可以培养人们在程序设计方面的发散思维,提高程序设计的应变能力。问题是活的,但程序是有章可循的;语法是有限的,可解决的问题是无限的。程序设计相当一部分工作是分析问题,找到解决问题的方法,再以相应的语言写出代码。要熟练掌握一些简单的算法,根据不同的问题,再灵活应用。如用100元钱买100只鸡,公鸡、母鸡、小鸡分别是5元、3元、1元一只。在数学上解三元一次方程,三个未知数,两个方程好像解不出来。通过“穷举法”,我们要费好大一番工夫才能算出结果,但是通过计算机“引申”编程运算却不用一秒钟即可解决问题。只有在分析实际向题的基础上,以清晰的思路去设计算法,才能举一反三,以不变应万变。通过“引申”法,我们可使初学者对函数设计的关键问题有清晰的认识,利于从统筹全局的角度去考虑问题,体现了程序设计逐步求精的思路。

二、利用框架法培养全局思维和算法的整体设计能力

其具体体现在两方面。一是在有了一点编程基础后要利用伪代码或流程图,从算法设计的角度讲解编程思路,而不应拘泥于语法细节,不分主次、逐条语句地讲解代码。这样可以层次分明,突出算法设计的关键,利于培养编程思路。二是在学习重点章节函数时,由于新的算法已很少,主要是学习用函数调用的方法来重新编制以前所熟悉的程序,我们可以把着眼点放在函数的设计框架上,体现参数设计、返回值设计等关键问题,而无需细讲函数体的实现细节。结构化构造减小了程序的复杂性,提高了可靠性、可测试性和可维护性,使用少数的基本结构,就可使程序逻辑结构清晰,易读易懂,并且容易验证程序的正确性。

三、借助求异法引导新思路,启迪新思维

结构化程序设计方法的基本思路是:把一个复杂的问题的求解过程分阶段进行,每个阶段处理的问题都控制在人们容易理解和处理的范围内。一个固定的问题,解决的方法可能不唯一,如果能启发人们多角度、多侧面去寻求解决问题的办法,则可激发思考的积极性,提高其学习兴致。对一个初学计算机语言的人来说,最重要的就是要有正确的程序流程概念,不仅要懂得,而且要灵活应用。由此可见,用结构化方法设计的结构是清晰的,有利于编写出结构良好的程序。在C语言中一题多解的情况有很多,有意识地引导新思路,鼓励新方法,以培养人们在编程中的求异思维,而不是死记硬背,墨守成规。结构化程序设计强调程序设计风格和程序结构的规范化,提倡清晰的结构。

四、选准切入口,合理划分功能模块“分而治之”

结构化程序设计的关键在于功能模块的选定和划分。模块化设计的思想实际上是一种“分而治之”的思想,把一个大任务分为若干个子任务,每一个子任务的划分以相对简单为前提。划分子模块时我们应注意模块的独立性,即:使一个模块完成一项功能,耦合性愈少愈好。具体应用时从问题本身入手,自顶向下,逐步细化,精益求精,将解决问题的步骤分解为由基本程序结构模块组成的通过程序流程图、N-S图、PAD图表格等表示的结构化程序框图。在实践应用中往往会出现以下几个问题:一是用户要求难以在系统分析阶段准确定义,致使系统在交付使用时产生许多问题。二是用系统开发每个阶段的成果来进行控制,不能适应事物变化的要求。三是系统的开发周期较长。

为解决这些问题,我们要求模块的设计要简洁明了,语句的选用要直观,不要拖泥带水。下面是一段小程序,从中可以看出一些语句选用的技巧。

某淘宝商城为鼓励更多网友光临本店,对新老网友给出如下优惠:凡是购买10件以上者,打9折;20件以上者,8.5折优惠;30件以上者,8折优惠,40件以上者,7.5折优惠。如用习惯上的if嵌套语句编写程序如下:

Main()

{float x,y;

printf(“请输入优惠购额款X:\n”);

scanf(“%f”,&x);

if(x

y=x;

else if(x

y=0.9*x;

else if(x

y=0.85*x;

else if(x

y=0.8*x;

else

y=0.75*x;

printf(“网友应付优惠后款额Y为:y);}

显然,这段程序冗长,一旦情况有变化,难以扩展。转换为switch语句结构后,程序就变得相对简单:

Main()

{float x,y;

Int t;

Printf(“请输入优惠购额款X:\n”);

Scanf(“%f”,&x);

If(x>=40)

t =4;

elst

t=(in)(x/10);

switch(t)

{case 0:y=x;break;

case1:y=0.9*x;break;

case2:y=0.85*x;break;

case3:y=0.8*x;break;

case4:y=0.75*x;break;}

printf(“网友应付优惠后款额Y为:y);}

两种方法可谓异曲同工,但是对于程序的调试性和可维护性却有天壤之别。在结构化程序的编程实践中,我们要查找某些错误比较困难,所以要尽可能避免出现这些问题。编程技巧需要在编制和调试结构化程序时不断总结和完善,力求找出最简便、最直观的方法。

总之,结构化程序设计方法在实际应用中有许多技巧可以合理运用,这需要我们对算法和数据结构展开深入分析,寻找最佳结合点,有的放矢,对症下药;更需要在实践中不断总结和积累。在编写过程中我们觉得有些程序没什么问题,但是一上机调试,就出现这样或那样的问题,这说明程序还不完善,还需要调整或改进。当今,高效率和快节凑的生活与工作方式对程序的设计提出了更高的要求和更苛刻的标准,我们只有不断创新设计理念和方法,才能编制出更多高质量、高性能、低故障的优质程序。

参考文献:

[1]林锐等编著.高质量程序设计指南[M].北京:电子工业出版社,2002.

程序设计的结构篇3

关键词:教学设计;分支结构;IF语句

中图分类号:G633.67 文献标志码:A 文章编号:1674-9324(2012)03-0226-02

教材分析:

该课题的内容选自于《算法与程序设计》教材,该教材是上海市高中信息科技课程选修模块。学习本模块的内容,目的是进一步激发学生对计算机探索学习的兴趣,培养运用计算机解决具体问题的基础能力,养成良好的思维与程序设计基本习惯。

《分支结构的程序实现》是本模块第四章第一节的内容。分支结构的授课分为两课时,第一课时:分支结构的流程图绘制;第二课时:分支结构的程序实现。本课为第二课时,主要内容是用IF语句解决日常生活中涉及分支结构的实际问题。

通过本课的学习,有助于学生体会和理解程序设计的思想,提升学生解决问题的能力,而且也为之后循环结构、枚举算法的学习打下基础。

学情分析:

学生在学习本课内容前,需有两方面的知识储备:

1.通过分支结构第一课时“分支结构的流程图绘制”知识的学习,理解并掌握分支结构的特点、执行流程及其作用。

2.通过“顺序结构及其程序实现”知识的学习,基本掌握VB控件的设置、动作的实现等内容,对于VB程序的建立、运行、调试过程也有一定的实践经验。

对上述内容的学习和掌握为本节课的学习奠定了一定的基础。另外,高一的学生分析解决问题的能力、自我探究的能力也有了一定的水平。

教学资源:

根据教学内容和学生实际,在教学资源方面做如下准备:

1.技术准备:计算机网络机房、多媒体广播软件、Microsoft Visual Basic 6.0中文版

2.资源。①教师机:1个PPT课件,2个程序(1个“猜价格”的演示程序,1个“ATM机录入密码”半成品程序)②学生机:1个“半成品”程序(包含3个小任务)

教学目标分析:

1.知识与技能:①掌握分支选择中IF语句(块语句)的格式和功能。②学会用IF语句解决日常生活中的实际问题。

2.过程与方法:①通过依次学习单分支语句、双分支语句,再到分支嵌套语句,学生能循序渐进地掌握分支结构。②通过采用VB半成品加工策略来完善程序,学生能体验运用编写程序解决问题的基本过程。

3.情感态度与价值观:①培养学生严密的逻辑思维能力、自主探究能力。②加强学生利用本学科解决日常学习生活中问题的意识。

教学重点难点:

教学重点:掌握分支结构IF语句的格式。

教学难点:能根据实际分析问题,写出程序并调试成功。

教法与学法:

1.教法:半成品加工方法。采用半成品加工方法,可以淡化与分支结构无关的内容,例如可视化VB界面的设计,从而有效提高课堂效率,这种方式在巩固练习中使用非常合适。

2.学法:自主学习、小组讨论、组间交流。学生作为学习的个人主体,必须通过自主学习掌握本节课的学习内容,从而培养学生独立解决问题的能力。采用小组讨论、组间交流的方法,培养学生互助、团结协作的良好品质;增强学生协作学习、与人合作交流的意识;形成积极主动的学习和使用信息技术、参与信息活动的态度。

教学过程设计:

(一)创设情境,激发兴趣

1.教师演示猜价格的小程序。

2.提出问题:该程序是一种什么结构?顺序结构?还是分支结构?

3.举例:生活中有很多分支结构的问题。

4.引出分支结构的程序实现。

(设计意图:从生活中提取问题,让学生能有学习兴趣,并能及时了解本节课的学习任务。)

(二)合作探究,获得新知

以“银行ATM机录入密码”程序为例:

1.教师展示“密码判断”的单分支结构流程图,请同学用自然语言来描述。学生回答:如果(用户输入的密码为999)那么(程序提示密码正确)。

2.教师引出VB中单分支结构IF语句的基本用法。同时让同学们讨论IF…THEN…中省略号代表什么含义。学生回答:IF(条件)THEN(条件成立时执行的语句)。

3.师生共同共同编写代码,程序实现。

4.教师提出问题:如果密码是错误的,那么将会出现什么情况?如果要让程序在密码输入错误时,也要出现提示,该如何做。

5.教师展示双分支结构流程图,请同学用自然语言来描述算法。学生回答:如果(用户输入的密码为999)那么(程序提示密码正确)否则(程序提示密码错误)。

6.教师引出VB中双分支结构IF语句的基本用法,同时让学生讨论IF…THEN…ELSE…中省略号代表什么含义。学生回答:IF(条件)THEN(条件成立时执行的语句)ELSE(条件不成立时执行的语句)。

7.师生共同编写代码,程序实现。

8.教师讲解IF语句的两种格式:行IF语句和块IF语句的用法。

(设计意图:通过自然语言与程序设计语言的比对,加深学生对分支结构的认识。通过师生共同参与改写程序,使学生了解IF语句的书写格式,并感受程序语言的严谨性。)

(三)学生实践,解决问题

1.教师布置3个任务,学生选择其中一个进行操作,要求自主完成。①判断是否中奖,要求如下:程序设置初始中奖号码,若用户输入的号码为中奖号码,程序则显示“恭喜您,您中奖啦!”②判断是否打折,超市进行苹果促销,如果买5斤以内就按价格4.5元/斤计算,如果大于等于5斤,总价可打九折。要求如下:输入你买的苹果重量(单位:斤),程序显示总金额。③判断一元二次方程是否有解。要求:输入一元二次方程的系数a,b,c,判断该方程是否有解,如果有解,则输出解,如果没有解,则输出“该方程无解”。

2.任务分析:判断是单分支还是双分支结构?鼓励学生可多选任务来完成。

3.展示成果,教师强调IF语句的格式规范。

(设计意图:通过三道难易不同的题目进行分层训练,让不同知识基础和思维能力的学生都能够体验到成功的喜悦,提高学生分析问题、解决问题的能力,突出本课的重点。)

(四)交流提升,应用拓展

1.教师提出在任务2中,若要求如下:输入斤数,如果小于5斤,就按价格4.5元/斤计算,如果大于等于5斤,就打九折,如果大于等于10斤就打八折,程序显示总金额,该如何设计算法?学生回答:利用分支嵌套结构可以实现该算法。

2.教师展示分支嵌套流程图。

3.学生小组讨论,组间交流。

4.学生组内共同撰写程序。

5.教师展示学生的代码,再次强调语句撰写的规范。

(设计意图:通过对新任务的探讨、分析,加深学生对分支结构嵌套语句的理解。同时进一步养成良好的编程习惯。)

(五)总结回顾,布置作业

程序设计的结构篇4

关键词:程序设计基础;数据结构;计算思维;教学衔接

0、引言

程序设计基础与数据结构是计算机类专业的两门专业基础课,在计算机类专业教学中具有举足轻重的作用,都旨在培养学生的编程能力和计算思维能力,并为后续课程打下坚实的专业基础,但在这两门课程的教学过程中,存在一系列问题,严重影响课程的教学效果。笔者分析和研究产生这些实际问题的原因,对这两门课程的知识融合、内容衔接以及教学实践等进行探讨,提出切实可行的解决方案,更好地实现两门课程的教学目标。

1、课程教学内容和教学目标

程序设计基础课程是学生接触的第一门专业基础课,也是进行计算机编程的入门课程。课程的教学目标是使学生掌握程序设计的基本方法,培养其拥有良好的程序设计风格、较强的软件开发能力以及一定的计算思维能力,为后续课程打下良好的基础。

数据结构是继程序设计基础课程之后的一门综合专业基础课,是计算机类专业的核心课程之一,具有举足轻重的作用。它是程序设计基础课程所讲知识的自然延伸和具体应用。对数据结构的理解、掌握和应用拓展,将对学生解决具体实际问题时的数据分析、数据组织、数据处理和编程能力有着深远的影响。课程的教学目标是培养学生缜密的逻辑思维和数据抽象能力以及学生在软件设计领域中科学的计算思维能力,帮助学生将数据结构和算法与具体的编程实现相结合并灵活地应用到实践和工程实际中。

2、两门课程间的关系

从程序与数据结构本身的关系来说,一个好的程序离不开合适的数据结构,而数据结构中算法的实现离不开具体的程序设计。在计算机类专业的课程体系中,数据结构和程序设计基础课程虽然独立开设,但是它们之间的联系是紧密的。在课程设置上,程序设计基础是数据结构的前导课程,两门课程一脉相承,不可分割。

学生对程序设计基础课程的掌握程度、具备的计算思维和编程能力,直接关系到以程序设计语言实现算法的数据结构课程的教学效果。数据结构课程通过创造性思维的训练,重点突出数据抽象与程序抽象能力的培养,从而进一步提升学生的计算思维能力和编程能力,但两门课程在实际教学中存在一些问题,主要原因是课程设置、教学内容、教学方法和教学实践方式等多方面存在缺陷。经分析,对程序设计基础和数据结构课程进行知识整合和内容衔接,采用适当的教学方式,改进教学实践是探讨和研究的主要内容。

3、两门课程在实际教学中存在的衔接问题

3.1 两门课程教学内容的脱离

目前,在实际教学中,程序设计基础和数据结构课程虽然关系紧密,但是一直被设定为两门完全独立的课程,而且教师在制订教学大纲和教学目标时容易忽视两门课程问的联系,在教学过程中出现一些盲区,要么两门课程在教学内容上出现不同程度的交叉,要么出现知识衔接的断层,令学生对两门课程的内在联系没有整体概念和认识,从而导致不能深入系统地学习相关知识。尤其是先行课程序设计基础的教学内容和课程案例完全脱离了数据结构课程,使数据结构中最频繁使用的知识和内容在程序设计基础课程中甚少提及,不能为数据结构课程的讲解打下扎实的程序设计基础。

3.2 程序设计编程语言与数据结构实现语言不一致

程序设计基础课程所教授的编程语言与数据结构教材或实验所使用的实现语言不一致,如将C++语言作为程序设计基础的教授语言,而在数据结构的实现上选择c语言或Java语言,以至于数据结构的理论教学与具体上机编程实现脱节,严重影响了上机实验和课程设计环节。

3.3 程序设计方法与数据结构实现方法不一致

程序设计基础课程中或注重面向过程的程序设计方法,或注重面向对象的程序设计方法,但在数据结构课程中却很难利用前导课程中学到的程序设计方法实现相关的数据结构和算法,从而影响了学生对数据结构课程知识的应用与实现。另一方面,学生在学习过程中没有充分理解数据结构课程的作用和实际意义,以至于在实际项目和问题中不知使用什么方法(面向过程或面向对象)分析解决问题,不知如何运用数据结构知识解决实际问题。

3.4 前导课程对后续课程实践环节的影响

数据结构实验环节相对课堂理论环节较薄弱。此问题的存在多半是因为数据结构具体实现的关键技术在程序设计基础课中未被讲解或强调,在进行数据结构算法从理论到伪代码、再由伪代码到真代码转换的过程中难以真正编程实现,使学生对数据结构的理解和掌握仅停留在抽象层、概念层、理论层,难以上升到实现层,从而影响学生的学习兴趣和积极性。同时,课程中的实践项目过于单一且相对独立,使实践环节与实际项目的联系过于松散,学生运用所学知识解决实际问题的能力和实际工程能力很难得以锻炼。

3.5 缺少计算思维能力的培养,缺乏理论知识与实际应用的联系

提高学生计算思维能力是程序设计基础和数据结构课程共同的目标。计算思维是抽象的多个层次上的思维,而抽象是表达实际的方法。然而,现行教学方法过多关注程序设计和数据结构知识点的讲解,缺乏对学生思维能力的培养。

如果缺乏理论联系实际,那么将影响学生计算思维的培养。数据结构中的知识又太抽象,如果缺乏相应的实际案例对抽象知识加以应用,那么就会导致学生不知道怎样将所学的知识应用到实际中,缺乏具体问题具体分析和解决的能力。

3.6 教师本身知识结构欠缺,上机实践指导教师数量不足

授课教师知识结构的缺乏将导致一些现实问题:如果程序设计基础的教师不懂数据结构,那么其自然不会将相关知识引入课堂,同时也缺乏用所教授的语言具体实现数据结构中结构和算法的能力;如果数据结构的教师缺乏相关编程语言知识,那么就会给上机辅导带来困难。同时,两门课程具有很强的实践性,若上机实践辅导教师不足,将不利于学生编程能力的提升以及相关软件大赛学生的培养和辅导。

针对以上实际教学中存在的问题,可知为提高程序设计基础与数据结构课程的教学效果,根据计算机类专业这两门课程教学内容和目标,对两门课程进行知识整合和内容衔接的必要性,对课程衔接的方法和思路等进行探讨势在必行。同时,课程教学不仅要关注知识的传授,还要培养学生主动获取知识并综合已有知识创造新知识的能力。

4、程序设计基础和数据结构课程衔接的新方法和思路

4.1 做好两门课程教学内容的融合和衔接

教师需紧密结合计算机类专业的培养目标,精心设计程序设计基础和数据结构课程的教学内容,既要满足课程的专业基础性,又要满足后续课程学习的需要,严密制订教学大纲,做好程序设计基础与数据结构教学内容的衔接以及相关教材的选定。

在程序设计基础课程教学中,教师需要关注学生计算思维能力的培养,将重点放在讲解思路上,教学生如何对问题进行抽象,还要介绍一些简单的基础算法和数据结构。程序设计与数据结构的联系过程必须做到循序渐进,若引入的数据结构相关知识过难,会打击学生的学习积极性。例如,教师讲数组时可引入几种数据结构中简单的排序算法冒泡排序、选择排序等;讲完指针和结构体后可引入最基本的数据结构――链表;讲完嵌套函数调用后可引入“递归”,它是数据结构中解决问题的常见思想和算法,可以通过简单的递归函数帮助学生理解递归思想和递归调用过程,这些是理解数据结构中复杂递归函数的基础。在程序设计基础教学中,只讲递归函数的简单应用,而在数据结构教学中,需要介绍递归函数的复杂应用:栈、树、八皇后问题、N个数的全排列等。围绕“递归”这一重要知识点,从易到难并结合课程本身特点进行理论分析,将有益于整合课程教学内容,引导学生循序渐进地学习和思考。

针对在程序设计基础课程中不重要但在数据结构及算法中被广泛使用的知识点,教师需要在讲解程序设计课程时将其点出并告诉学生此知识在后续数据结构课中的重要性,引起学生对该知识点的兴趣和重视,如指针的灵活使用、结构体类型的复杂应用、类型重命名、类的拷贝构造函数(深拷贝)、函数模板、类模版等。

同时,教师要对程序设计基础课程内容进行适当补充和扩充,如增加c++函数模板、类模板的相关知识,为将泛型程序设计、c++的STL引人数据结构课程奠定知识基础,缩小教学知识与实际运用的距离,提高学生的动手编程能力和知识运用能力。

4.2 保证程序设计编程语言与数据结构实现语言的一致

程序设计基础课程所教授的编程语言要与数据结构教材或实验所使用的编程语言一致,这样不仅能大大提高学生的编程能力,还有利于数据结构课程的上机实现。

4.3 将面向对象思想引入程序设计与数据结构中

随着程序设计方法从传统的结构化程序设计演化到面向对象程序设计,数据结构在面向对象程序设计中也将成为面向对象的数据结构,且将随着程序设计理论和技术的发展而不断变化发展。在程序设计基础课程中讲授面向对象的编程语言如c++语言,既可以实现面向过程的数据结构,又能实现面向对象的数据结构。数据结构课程采用面向对象的观点讲授并以C++语言作为算法的描述工具,从而强化数据结构基本知识和面向对象高级程序设计基本能力的双基训练以及实际动手能力培养。在设计数据结构实践项目时,将面向对象的程序设计思想、面向对象的程序设计语言和数据结构课程教学内容恰当地融合,有效整合两门课程中的重叠部分,突出各自的侧重点,符合当前软件设计思想和软件开发趋势。

4.4 加强课程中计算思维能力的培养

在程序设计和数据结构的教学方法上,将面向语法为中心的教学逐渐转变为面向问题求解的教学,从问题出发采用适当的数据结构,将其抽象成解决问题的算法描述,用程序设计语言实现问题求解,使课程从过去的仅讲授孤立的知识点,转变为讲授计算思维和问题求解的过程,从而达到突出思维方法训练的目的。在程序设计基础和数据结构授课时尽量将理论联系实际,将知识点解释和应用为身边容易理解的真实案例。例如,讲“图”时,可以把现在流行的复杂网络、社交网络引入其中;讲解“队列”时,可将春节买票引入其中,让学生从身边的例子理解理论知识的具体应用。对有些案例可以提倡“一题多解”,不局限于一种数据结构、解题思路和实现方法,通过一题多问、一题多解带动学生探索、比较、寻求更好的解决途径,达到学生分析解决问题能力的提高和计算思维能力的培养。

4.5 提升教师能力,配备充足的上机辅导教师

学校要加强程序设计基础与数据结构课程相关授课教师整体能力的提升。教师不仅要掌握自己所教授课程的知识,还要对该课程的前续及后续课程内容有所了解,便于维护教学的整体秩序和融合学生的知识体系。同时,教师要积极参与各种软件大赛和企业培训,将教授的理论知识和实际项目相结合,达到应用知识解决复杂问题的目的。此外,两门课程的上机实践环节要配备足量的辅导教师,不让学生输在编程入门的起跑线上。

4.6 依托程序设计竞赛,提高学生的编程能力

依托全国软件大赛、ACM大赛等程序设计竞赛,将竞赛题目引入程序设计基础和数据结构课堂中。此类题目强调考查学生对各种算法的应用能力,综合性较强,非常适合辅助学生学习和体会数据结构的妙用,提升学生分析和解决实际问题的能力,引导学生将所学知识准确而灵活地运用到实际生活中,大大提高学生的实践动手和程序设计能力,促进其知识的融会贯通。另外,通过竞赛等多种活动可以为学生提供展现程序设计能力的舞台,激发学生学习的主动性,培养其计算思维能力。

例如,在教授程序设计基础时,讲完逻辑表达式和多重循环结构后,可以将大赛中的逻辑推理题目引入教学中并引出常见的解题方法和思路一枚举法,从而加深对枚举法的认识。通过采用数据结构中的双向链表和线性数组两种方式实现大赛中常见的约瑟夫环问题。

4.7 引入OJ平台。加强课程实践环节

引人在线判题(Online Judge,oJ)系统,提高学生的实践能力。能力需要以丰富的知识作为支撑,而实践是能力赖以生长的土壤。在OJ系统中,学生可以在线提交程序源代码,系统对源代码进行编译和执行并通过预先设计的测试数据检验程序源代码的正确性。引入0J系统不仅可以辅助教师批改作业,减轻教师工作压力,还可以促使学生加强平时上机编程练习,通过编程排名方式提高学生的学习兴趣。OJ系统中拥有大量题库,可以让学生进行上机实践,培养自身的计算思维能力,提高编程能力。0J系统不仅可以作为程序设计基础课程的实践平台,还可作为数据结构课程的实践平台。

程序设计的结构篇5

【关键词】 闸门 结构设计 计算 程序

1 前言

水电站金属结构中平面闸门的设计计算,由于受专业面窄,使用情况特殊等影响,目前尚无任何软件公司进行程序开发设计,设计单位要么按相近条件套用图纸,要么用传统的计算方式进行设计计算,一套平面闸门的结构设计,计算得费时十天半月甚至更多,且人工操作误按误删,计算错误难以避免,假如错误未被发现和纠正,其产成品有可能酿发严重事故。

有鉴于此,我们在早前的闸门设计工作中,业余花费大量时间和精力,开发了本“平面钢闸门结构设计计算程序(以下简称‘程序’)”,经过反复调试、修改,已成功完成多座水电站的工作闸门、尾水检修闸门等多套闸门的设计成果,每套闸门的程序计算,一个小时不到,即可完成。其产成品投运效果一直良好正常,可以说,本程序填补了水电站金属结构设计领域的一项空白,颇具商业价值。

2 程序开发

值得一提的是,我们研制开发的这套程序,仅限于冗繁复杂的门叶结构的设计计算。所谓门叶结构,系指平面闸门门叶除去面板、止水装置及零部件(行走装置、吊耳吊轴等)的框架梁系结构,一般包括水平次梁、竖直次梁、主梁、顶梁、底梁及边梁等。开发该程序,我们是按以下思路和原则进行的。

(1)确定该程序的使用范围或服务对象是计算水工(包括水利水电)平面钢闸门中相对冗繁复杂的门叶结构设计。内容包括各梁体的力学计算、截面特性计算、强度校核计算等。

(2)要求该程序在平面钢闸门设计中,具有实用性和通用性。如一般水平次粱梁体为槽钢梁或工字钢等型钢梁,其跨度作成3~5跨,就必须要求程序能进行各种跨数的力学计算,并根据使用者指令选择槽钢或工字钢的截面特性计算。又如,要求程序能进行各类主梁(包括组焊的实腹梁和箱型梁以及等截面、变截面梁等)的力学计算和截面特性计算。

(3)选择通俗易懂、人机对话丰富的BASIC语言作为本程序语言,当然,也可将该语言转换为更流行、更简洁的C语言等其他语言。并且选取的变量函数要满足使用者辨认理解和计算机辨识的要求。其实,丰富的人机对话功能在本程序中非常有用,如水压力输入、梁体截面参数输入,KN;=KN输入水平梁跨数,LN;=LN输入指定语句等。

(4)为使编程者思路清晰,程序操作者使用方便,该程序采用了模块化设计,程序共分六大功能模块,包括p0:通用校核;p1:水平次梁;p2:竖直次梁;p3:主(顶)梁;p4:底次梁;p5:边梁。因一般设计中,顶、主梁结构完全相同,差异只是是否承受梁顶水柱压力,故程序将主梁和顶梁合并在一个模块中。

每一模块的初始语句均为清除语句,模块相互独立,互不干扰,方便调试、使用和错误查找及修改。p1~p5任意模块程序运行、完成相关力学计算和截面特性计算后,都自动转入p0进行校核计算,直至结束。

文中给出p2和p0源程序以飨读者,“平面钢闸门结构设计计算程序”完整的源程序从略。

3 p2和p0源程序

(1)p2竖直次梁程序

205:CLEAR

210:INPUT“QQ=”;QQ,“PW=”;PW,“L0=”;L0,“N=”;N, “EX=”;EX, “EY=”;EY

212:LPRINT“q=”;QQ:LPRINT “L0=”;L0:PRINT “PW=”;PW

215:Z=QQ*L0:R1=(2*Z+PW)/2:LPRINT “R1=R2=”;R1

220:QA=R1:LPRINT“Qmax=”;QA

225:MA=R1*L0-Z*L0/2:LPRINT “Mmax=”;MA:MX=MA-N*EY

230:INPUT “BM=”;BM,“D9=”;D9,“H2=”;H2,“DF=”;DF,“H3=”;H3,“T3=”;T3

235:AJ=BM*D9+H2*DF+H3*T3,Y0=(BM*D9*(H2/2+D9/2)+H3*T3*(H2/2+T3/2))/AJ: LPRINT“y0=”;Y0

240:YI=H2/2-Y0+D9

245:YA=H2/2+Y0+T3

250:IX=BM*D9*(YI-D9/2)∧2+H2∧3*DF/12+H3*T3*(YA-T3/2)∧2+H2*DF*Y0∧2

252:LPRINT “I×=”;IX

253:X0=0,IY=(BM∧3*D9+DF∧3*H2+H3∧3*T3)/12

254:LPRINT “X0=”;X0:LPRINT “Iy=”;IY

255:S=DF*(YA-T3)∧2/2+H3*T3*(YA-T3/2):LPRINT“Sx=”;S

260:IM=IX

265:GA=(2*L0)∧3*(PW/48+10*Z/384)/(2.1E6)

270:GOTO 1000

(2)p0通用校核程序

1000:INPUT “LN=”;LN

1002:R9=ABS(N/AJ+(MA-N*EY)*YA/IX+N*EX*X1/IY)

1003:R8=ABS(N/AJ-(MA-N*EY)*YA/IX-N*EX*X2/IY)

1004:IF R9>R8THEN1007

1005:R9=R8

1007:IF R9>1600 THEN LN

1010:LPRINT“R9=”;R9

1015:T9=QA*S/(IX*DF)

1020:IF T9>950 THEN LN

1025:LPRINT “T9=”;T9

1030:S9=SQR(R9∧2+3*T9∧2)

1035:IF S9>1760 THEN LN

1040:LPRINT “S9=”;S9

1045:FA=GA/IM

1050:INPUT “K0=”;K0

1055:IF FA>K0*L0 THEN LN

1060:LPRINT “fmax=”;FA:END

4 程序运用(实际算例)

笔者已将本程序成功用于多处水库和水电站的各类平面闸门(工作闸门和检修闸门)的设计计算,参见图1、2下列截图。

5 结语及其他

(1)该程序是一套成熟的平面钢闸门门叶结构设计计算程序,可以大幅度提高设计精度和效率,并且让繁杂枯燥的设计计算变得轻松快捷。

程序设计的结构篇6

关键词:C语言;程序设计;循环结构;教学方法

中图分类号:G642文献标识码:A

1引言

“C语言程序设计”是计算机系各专业的必修课程,属专业主干课,是一门学位课程。也是各高校部分非计算机专业开设的程序设计课程之一。本课程开设的目的是使学生掌握面向过程的程序设计的基本概念,逐步形成正确的程序设计思想,理解结构化程序设计方法;掌握程序设计的基本技术,程序设计的基本组织方法即函数(模块)程序设计;具备调试程序的能力。因为C语言功能强大,程序编写灵活,具有较强的实践性,是一门高级语言中的“低级语言”,既可以用来编写系统软件,又可以用来开发应用软件,因此对学生以后参与专业领域的应用软件的开发和使用会有极大的帮助。C语言是结构化的语言,学好C语言程序设计,能为后续课程(数据结构、编译原理、操作系统、C++、Java等)及其他程序设计课程的学习打下基础。同时,C语言程序设计也是计算机类各种考试所要求的重点课程之一。

2循环结构程序设计

结构化程序设计中包含三种基本技术:顺序结构、选择结构和循环结构。循环结构的程序设计是学生学习了结构化程序设计的前两种基本技术之后的第三种基本技术,是结构化程序设计技术中最重要也是最难的部分。这门课程一般都是学生学习程序设计的入门课程,第一次学习循环,可能难于理解“循环”的含义,在设计程序时正确使用循环也就更困难了。针对这些特点,循环结构程序设计的教学方法和教学手段也就值得探讨。

3循环结构程序设计的教学方法

3.1教学重点和难点

要想学生能够轻松理解和掌握循环结构的程序设计,首先得确定本部分内容的重点和难点。

本部分的重点主要是:(1)循环控制结构及其设计。(2)循环控制语句的应用。教学重点是循环控制语句中的while语句,只要把while语句的使用讲解清楚了,后面的for语句和do-while语句就容易多了。

本部分的难点是循环控制结构及其设计。

3.2突出教学重点与分散难点的方法

为了突出教学中的重点并分散难点,可以从三方面入手:

(1) 从分析问题的重复性入手。学生在日常的生活、学习中能看到、体会到重复这种行为。精心设计实例,给学生一个比较实际的切入点,通过教师的引导,使学生能体查、归纳“重复行为”,从而理解和掌握循环的主要特点:有规律地重复操作。在教师的启发、引导下,使学生在课堂上真正地成为“主体”,教师扮演“主导”角色。在整个过程中,紧紧抓住循环程序设计的思想,采用“自顶向下,逐步求精”的结构化程序设计方法,把重点突出出来,并把难点进行分散,使学生容易理解和接受。

(2) 难点内容,提前做好铺垫。在前面内容适当的地方安排出现循环程序,但不讲它的功能,为讲解现在的内容做好铺垫,打下伏笔。这使得学生的每一步学习都有基础,是一个循序渐进的过程,使学生的学习是在“走台阶”,而不是“三级跳”,效果很好。

(3) 在循环程序设计的应用中,可以从简单公式化的循环入手到复杂非公式化的循环的处理。讲解过程中,通过黑板进行详细分析和讲解,使学生加深学习和理解。适当的地方进行提问,教师引导学生积极参与到分析问题,解决问题的过程中,写出程序后,放到实际的环境下运行,让学生来分析程序的正确性,改正程序的错误,有利于学生理解难点、掌握重点。

3.3教学过程的设计与组织

(1) 提出问题

本部分的内容是循环程序设计,体现在两个方面,一是循环结构程序设计的算法表示;二是循环结构程序的C语言表示。循环程序设计是结构化程序设计中最难、最复杂的部分,而授课对象是初次接触程序设计和循环结构,因此循环的引入就至关重要。例如:通过引入求5!这个简单的例子,运用已经学过的顺序结构程序设计就可以实现;但是求复杂的阶乘,比如20!,任意自然数n!,用已经学过的顺序结构程序设计和选择结构程序设计就难于解决,要用简单的方法解决这样的问题,就必须使用结构化程序设计中的第三种基本技术:循环结构的程序设计。这样就轻松地引入了循环结构程序设计。在引入的过程中,要注重调动学生的积极性,采用互动教学法带动学生的积极性。

(2) 解决问题的方法及讲授新内容

在用问题引入了循环后,第一步,分析用循环控制结构求20!的算法的自然语言和流程图表示。第二步,为了实现这种循环控制行为,C语言提供了多种循环控制语句,while语句就是其中的一种,介绍while语句的一般形式和功能。第三步,讲解while循环语句的应用。在讲解的过程中,为了提高学生的学习效果,达到预期的目标,除了采用常用的教学方法和手段外,还可以采用以下一些教学方法和手段:

① 注重启发、引导学生。教师在讲解分析时,注重启发、引导学生主动分析问题、解决问题。

② 注重采用任务驱动的教学模式。通过提出问题,分析问题,引入新知识,解决问题,总结提高,一步步实现教学的目标。

③ 采用国际上惯用的解析教学法。

④ 把编写的程序放到实际环境下运行。让学生来分析程序的正确性,改正程序的错误,有利于学生掌握好重点、难点知识。

⑤ 应用现代化多媒体教学手段,有利于提高教学效率,便于学生理解。充分利用黑板和投影相结合的方式;分析过程用黑板进行教学,以便体现思维过程。

4结束语

要使学生轻松容易地理解和掌握C语言中的循环结构程序设计方法和技巧,必须在教学的所有环节上都进行认真研究和精心设计。通过对循环结构程序设计的教学,使学生提高综合应用的能力,为今后的后续课程及软件的设计和开发打下坚实的基础。

参考文献:

[1] 徐庆生.C语言程序设计[M].北京:科学普及出版社,2007.

[2] 高牧,杨志强,许兰兰,等. C/C++教学改革的探索与实践[J]. 计算机时代,2005(11).

The Design and Discussion of Programming Course of Iteration Structure Pedagogical

in C Programming Language

SUN Ying, XU Shun-qiong, LI Xing-mei

(Department of Computer Science, Chuxiong Normal University, Chuxiong 675000, China)

程序设计的结构篇7

1.在《C程序设计》与《数据结构》教学中对课程整合概念的理解

理论上,课程整合是指对课程设置、各课程教育教学目标、教学设计、评价等诸要素作系统的考察与操作。在实际教学中,课程整合是指考虑到各门相互分裂的课程之间的有机联系,将这些课程综合化。

在传统的教学模式中,《C程序设计》是先行课程,《数据结构》是后续课程,它们都是学习操作系统、数据库原理和应用、面向对象程序设计等课程的基础。《C语言程序设计》是学生最先接触的结构化程序设计语言,其教学目的主要是使学生了解结构化程序设计的算法和思路,掌握程序设计和调试的基本技巧,培养良好的软件设计基础。《数据结构》主要是研究非数值应用问题中数据之间的逻辑关系和对数据的操作,同时还研究如何将具有逻辑关系的数据按一定的存储方式存放在计算机内。其教学目的主要是使学生掌握数据的逻辑结构、存储结构及其相应的算法,培养学生解决实际问题的能力,即能够把现实世界中的客观问题,变换为在计算机内的表示形式,学会组织数据、选择算法、养成良好的程序设计风格。

《数据结构》课程中分析数据之间的逻辑关系和确定数据在计算机内的存储结构是所有程序设计过程中必须完成的两大任务,且《数据结构》中算法描述的语言又多采用C语言,两门课程之间存在着紧密而内在联系,为两门课程的整合提供了可能性。

2.《C程序设计》与《数据结构》的教学现状

在传统的教学模式中,《C程序设计》是先行课程,《数据结构》是后续课程,将两门课程分开来教学,人为地割断了它们之间的内在联系,导致学生在学习《C程序设计》时,仅局限于C语言的语法层面上,不能把C语言的程序设计思路和语法知识具体运用到数据结构的算法中去,使理论知识与实践运用脱钩。而在学习《数据结构》时,由于教师的更换和教材的多样化,任课教师又不得不花掉一、两周的时间来复习C语言的相关知识,造成了课时的浪费和学生反感。在具体运用时,又出现学生能理解数据结构中的算法和读懂算法,却不能运用C语言去实现算法等程序设计能力较差的现象。笔者长期从事这两门课程的教学工作,一直在探索如何提高这两门课程的教学效果,培养学生运用C语言这个工具去解决实际问题的能力。

3.《C程序设计》与《数据结构》课程整合的思路

在高职院校计算机应用专业的课程体系中,实现《C程序设计》和《数据结构》这两门课程的整合,要结合职业教育培养实用型人才的目标,根据后续专业课程的需要来确定。《C程序设计》和《数据结构》课程整合化的思路以C语言为工具,以实践为中心,重视基础知识,注重能力培养,对两门课程教学内容和教学模式进行优化和整合。

在实施过程中,将这两门课程整合为一门课程,课程名称为《C程序设计与数据结构》,在一个学期内完成授课内容。坚持理论联系实践的教学模式,突出实践教学的重要性,去掉繁琐的理论推导,重新设计教学、实训大纲,处理教材,合理分配学时。在具体教学中,以C语言为主线,将数据结构的内容溶入到C语言的教学中,对数据结构的内容以“适度够用”为原则,适当地进行删减,以满足高职教育培养应用型人才的教学需要。

4.《C程序设计》与《数据结构》课程整合的具体实施

(1)整合后理论课教学的内容和学时分配

整合后周学时为6节,总学时为102节(按17个教学周计),其中理论课时为68节,上机实践课时为34节。

(2)课程整合后的实践教学设计

在实践教学中,要进一步巩固对理论知识的理解,提高学生灵活运用数据结构和算法的能力,使学生在编程、上机操作、程序调试与正确性验证等基本技能方面得到训练和提高。实验可分两部分,一是验证性实验,主要结合课堂理论教学内容展开,学生可以对在课堂上学到的基本算法进行验证;二是运用性实验,组织学生以小组为单位设计一些实用程序,要求学生从实际出发,在具体、真实的环境中分析研究数据对象的特性,构造合理的数据结构以及相应的算法。

(3)课程整合后的考试要求

整合后的课程培养目标是提高学生的计算机应用能力,计算机应用能力包括了三个层次:操作使用能力、应用开发能力和创新能力。因此整合后的课程考核,应采取理论基础闭卷和上机操作开卷相结合的方式进行,综合评价应从以下三个方面来着手。

①笔试。笔试主要是考察学生对理论知识的系统性的理解,可由客观题型(如选择、填空题等)和主观题型组成,客观题型要立足于基础知识,小而全,避免死记硬背。主观题型要灵活多样,如问题解决分析、程序编写等。占整个评价的30%。

②上机实践。上机实践贯穿于整个教学当中,所以要注重过程考核,结合实训计划,在各单元模块结束时,进行随堂考核,并认真检查和记录学生考核情况,作为期末上机实践成绩的一部分。实行各单元过关,有了各单元模块的考核,到期末上机操作综合考核时就不成问题了。通过对上机操作实践的评价,可以考察学生应用计算机解决实际问题的能力。占整个评价的40%。

③学生的平时表现。学生的平时表现是指是否认真上课、听课,上机练习的任务是否独立完成,上机设计的任务是否有创意,作业是否按时上交等等,这些资料的积累,有利于对学生学习情况的全面认识。学生在整个授课过程中的表现,占整个评价的30%。

在课程整合中,合理的考核方案能促进学生知识的积累,避免学生考前突击和死记硬背现象,使学生真正学到知识。

程序设计的结构篇8

关键词:循环结构;C语言程序设计;非计算机专业

中图分类号:TP393文献标识码:A文章编号:1009-3044(2012)26-6323-05

Discussion on Loop Structure Teaching in C Language Programming of Non-computer Specialty

XIA Yun

(College of Mathematics and Computer Science, Anhui Normal University , Wuhu 241000 , China)

Abstract: The teaching of loop structure is an important component in C language programming. This paper designed 5 teach? ing examples for the students of non-computer specialty. This paper analyzes the teaching progress in detail and emphasizes the teaching points of the loop structure teaching. And it produces a good effect in the actual teaching progress.

Key words: loop structure; C Language programming; non-computer specialty

大学计算机应用基础作为一门课程大约于20世纪90年代中期开设,现在已成为大学里的计算机学习基础课程,是所有非计算机专业大一新生的必修公共基础课,也是培养学生基本素质的一门重要课程[1]。作为大学计算机应用基础课程,理工类专业大部分会开设程序设计课程,有部分专业会开设C程序设计课程。C语言是一种语法灵活、适用范围广的高级程序设计语言。结构化程序设计方法有三种基本结构:顺序结构、分支结构和循环结构。顺序结构和分支结构比较简单,循环结构从教学上来说是重点也是难点。本文主要对C语言循环结构教学进行探讨。

1教学内容的分析

C语言循环结构编程主要涉及到三种循环结构语句while、do-while和for。本文作者认为非计算机专业开设这门课程,主要是讲解程序设计的方法,培养学生的编程能力和思维能力,因此,在教学中上述的三种语句可以以while语句为重点,讲解循环结构编程的思想,do-while和for语句可以简单举例说明它们的流程。在讲解循环结构编程分析时,可以以流程图或者用自然语言逐步描述操作步骤的形式,指出循环结构编程关键是找到在什么情况下需要反复执行某些操作,并找到这些反复执行的操作是什么。

2教学用例的分析

在课程教学过程中,需要用一些例子来配合讲解循环结构的编程。在教学时,选取一些比较合适的例子,可以很好地帮助学生理解所教授的内容。教师在教学过程中除了要加强课堂启发外,尽可能结合课程自身的特点,注重学生现场演练,并采用任务驱动、师生互动、鼓励学生等教学手段来提高其学习的主动性和积极性[2]。

2.1导入的例子

在教学活动中,讲授后面知识内容时要与前面知识相互呼应[3],因此,在上课时,可以以这样的问题开始,例题1:用户输入正整数n值的大小后,要求计算1+2+3+…+n,将所得出的结果输出。这个例题主要是复习前面的内容,复习输入、输出函数和分支结构的编程。该问题提出后,可以让同学们思考一下,然后再进行提问,提问时可以让学生说出编程思路,若课堂时间比较多也可以请学生直接编写源代码并运行。

提问时,有的同学可能给出如下的顺序结构编程的解答:

步骤1:输入整数n

步骤2:求s=(1+n)*n/2

步骤3:输出s

while (j

{输出i*j

j++;}

由此,得出在循环while (i

循环结构是结构化程序设计的一种重要结构,在教学中不仅需要学生掌握这种结构的语法,更重要的是培养学生的设计思维和思考方法,本文主要是从教学的角度,对循环结构的整个教学过程设计了5个教学用例,并对其进行展开分析,重点是让学生掌握循环结构编程的思想,实际上就是在问题分析过程中找循环条件和循环操作,在实际教学中取得了较好的效果。

[1]何文海,吴明珠,谢剑刚.情商与智商相结合的教学模式[J].现代计算机,2007(8):73-75.

[2]郭海花,陈允芳,王健.非计算机专业中“VB程序设计”教学方法初探[J].计算机教育,2009(18):98-100.

推荐期刊