《C语言程序的设计书的》上机实验的指导手册本

上传人:夏** 文档编号:479549069 上传时间:2023-05-12 格式:DOC 页数:12 大小:76.50KB
返回 下载 相关 举报
《C语言程序的设计书的》上机实验的指导手册本_第1页
第1页 / 共12页
《C语言程序的设计书的》上机实验的指导手册本_第2页
第2页 / 共12页
《C语言程序的设计书的》上机实验的指导手册本_第3页
第3页 / 共12页
《C语言程序的设计书的》上机实验的指导手册本_第4页
第4页 / 共12页
《C语言程序的设计书的》上机实验的指导手册本_第5页
第5页 / 共12页
点击查看更多>>
资源描述

《《C语言程序的设计书的》上机实验的指导手册本》由会员分享,可在线阅读,更多相关《《C语言程序的设计书的》上机实验的指导手册本(12页珍藏版)》请在金锄头文库上搜索。

1、wordC语言程序设计上机实验指导手册电子与信息工程学院计算机科学系 / 第一局部 上机实验的指导思想和要求一、上机实验的目的学习C语言程序设计课程不能满足于“懂得了,满足于了解了语法和能看懂书上的程序,而应当掌握程序设计的全过程,即能独立编写出源程序,独立上机调试程序,独立运行程序和分析结果。“程序设计是一门实践性很强的课程,必须十分重视实践环节。许多实际的知识不是靠听课和看书学到手的,而是通过长时间的实践积累的。要提倡通过实践去掌握知识的方法。必须保证有足够的上机实验时间,学习本课程应该至少有30 小时的上机时间,最好能做到与授课时间之比为1:1 。除了学校规定的上机实验以外,应当提倡学生

2、自己课余抽时间多上机实践。上机实验的目的,绝不仅是为了验证教材和讲课的内容,或者验证自己所编的程序正确与否。学习程序设计,上机实验的目的是:1加深对讲授内容的理解,尤其是一些语法规定,光靠课堂讲授,既枯燥无味又难以记住,但它们是很重要的,初学者的程序出错往往错在语法上。通过屡次上机,就能自然地、熟练地掌握。通过上机来掌握语法规如此是行之有效的方法。2熟悉所用的计算机系统的操作方法,也就是了解和熟悉C语言程序开发的环境。一个程序必须在一定的外部环境下才能运行,所谓“环境,就是指所用的计算机系统的硬件和软件条件,或者说是工作平台。使用者应该了解为了运行一个C程序需要哪些必要的外部条件例如硬件配置、

3、软件配置,可以利用哪些系统的功能来帮助自己开发程序。每一种计算机系统的功能和操作方法不完全一样,但只要熟练掌握一两种计算机系统的使用,再遇到其他系统时便会触类旁通,很快就能学会。3学会上机调试程序。也就是善于发现程序中的错误,并且能很快地排除这些错误,使程序能正确运行。经验丰富的人,在编译连接过程中出现“出错信息时,一般能很快地判断出错误所在,并改正之。而缺乏经验的人即使在明确的“出错提示下也往往找不出错误而求助于别人。要真正掌握计算机应用技术,就不仅应当了解和熟悉有关理论和方法,还要求自己动手实现。对程序设计来说,如此要求会编程序并上机调试通过。因此调试程序不仅是得到正确程序的一种手段,而且

4、它本身就是程序设计课程的一个重要的内容和根本要求,应给予充分的重视。调试程序固然可以借鉴他人的现成经验,但更重要的是通过自己的直接实践来累积经验,而且有些经验是只能“会意难以“言传。别人的经验不能代替自己的经验。调试程序的能力是每个程序设计人员应当掌握的一项根本功。因此,在做实验时千万不要在程序通过后就认为万事大吉、完成任务了,而应当在己通过的程序根底上作一些改动例如修改一些参数、增加程序的一些功能、改变某些语句、改变输入数据的方法等,再进展编译、连接和运行。甚至于“自设障碍,即把正确的程序改为有错的例如语句漏写分号;用scanf函数输入变量时,漏写“&符号;比拟符“= =错写为赋值号“=;使

5、数组下标出界;使整数溢出等,观察和分析所出现的情况。这样的学习才会有真正的收获,是灵活主动的学习而不是呆板被动的学习。二、上机实验前的准备工作在上机实验前应事先做好准备工作,以提高上机实验的效率,准备工作至少应包括:1了解所用的计算机系统包括C编译系统和工作平台的性能和使用方法;2复习和掌握与本实验有关的教学内容;3准备好上机所需的程序。由于计算机实验室给每个学生安排的时间是有限的,要珍惜时间,充分利用。应当在上机前按指定的题目编写好程序。手编程序应书写整齐,并经人工检查无误后才能上机,以提高上机效率。初学者切忌不编程序或抄别人程序去上机,应从一开始就养成严谨的科学作风;4对运行中可能出现的问

6、题事先作出估计,对程序中自己有疑问的地方,应作出记号,以便在上机时给予注意;5准备好调试和运行时所需的数据。三、上机实验的步骤上机实验时一人一组,独立上机,复杂分组进展,相互讨论完成任务。上机过程中出现的问题,除了是系统的问题以外,一般应自己独立处理,不要轻易举手问教师。尤其对“出错信息,应善于自己分析判断。这是学习调试程序的良好机会。上机实验一般应包括以下几个步骤:1进入C工作环境。2输入自己所编好的程序。3检查一遍已输入的程序是否有错包括输入时打错的和编程中的错误,如发现有错,与时改正。4进展编译和连接。如果在编译和连接过程中发现错误,屏幕上会出现“出错信息,根据提示找到出错位置和原因,加

7、以改正。再进展编译,如此反复直到顺利通过编译和连接为止。5运行程序并分析运行结果是否合理和正确。在运行时要注意当输入不同数据时所得到的结果是否正确。6输出程序清单和运行结果。四、实验验收1现场验收,学生讲解、提问、辩论的方式,通过三方面的表现给出实验成绩;2提交程序清单电子版。第二局部 关于程序的调试和测试一、程序错误的类型为了帮助各位同学调试程序和分析程序,下面简单介绍程序出错的种类。1语法错误即不符合C语言的语法规定,例如将main 错写为naim ,括号不匹配,语句最后漏了分号等,这些都会在编译时被发现并指出。这些都属于“致命错误,不改正是不能通过编译的。对一些在语法上有轻微毛病但不影响

8、程序运行的错误如定义了变量但始终未使用,编译时会发出“警告,虽然程序能通过编译,但不应当使程序“带病工作,应该将程序中所有导致“错误error和“警告warning的因素都消除,再使程序投入运行。2逻辑错误这是指程序无语法错误,也能正常运行,但是结果不对。例如求s=l+2+3+100,有人写出以下语句:fors=0, i=1; i100; i+ s=s + i;语法没有错,但求出的结果是l+2+3+99之和,而不是l+2+3+100之和,原因是少执行了一次循环。这类错误可能是设计算法时的错误,也可能是算法正确而在编写程序时出现疏忽所致。这种错误计算机是无法检查出来的。如果是算法有错,如此应先修

9、改算法,再改程序。如果是算法正确而程序写得不对,如此直接修改程序。3运行错误有时程序既无语法错误,又无逻辑错误,但程序不能正常运行或结果不对。多数情况是数据不对,包括数据木身不适宜以与数据类型不匹配。如有以下程序:void main ( ) int a, b, c ; scanf(“%d, %d, &a, &b);c=a/b;printf(“%dn,c);当输入的b为非零值时,运行无问题。当输入的b为零时,运行时出现“溢出overflow的错误。如果在执行上面的scanf语句时输入456.78,如此输出c的值为2,显然是不对的。这是由一于输入的数据类型与输入格式符%d不匹配而引起的。二、程序的

10、测试程序调试的任务是排除程序中的错误,使程序能顺利地运行并得到预期的效果。程序的调试阶段不仅要发现和消除语法上的错误,还要发现和消除逻辑错误和运行错误。除了可以利用编译时提示的“出错信息来发现和改正语法错误外,还可以通过程序的测试来发现逻辑错误和运行错误。程序的测试的任务是尽力寻找程序中可能存在的错误。在测试时要设想到程序运行时的各种情况,测试在各种情况下的运行结果是否正确。程序测试是程序调试的一个组成局部。有时程序在某些情况下能正常运行,而在另外一些情况下不能正常运行或得不到正确的结果,因此,一个程序即使通过编译并正常运行而且结果正确,还不能认为程序没有问题了。要考虑是否在任何情况下都能正常

11、运行并且得到正确的结果。测试的任务就是要找出那些不能正常运行的情况和原因。下而通过一个典型的和容易理解的例子来说明测试的概念。求一元二次方程ax2+bx+c=0的根。有人根据求根公式x1, 2=(-bsqrt(b2-4ac)/2a编写出以下程序:# include # includevoid main( ) float a, b, c, disc, x1, x2; scanf(“%f, %f, %f, &a, &b, &c); disc=b*b-4*a*c; x1=(-b + sqrt(disc)/(2*a); x2=(-b - sqrt(disc)/(2*a);printf(x1=%6.2f

12、, x2=%6.2fn, x1, x2);当输入a,b,c的值为1,-2,-15 时,输出xl 的值为5,x2的值为-3。结果是正确无误的。但是假如输入a,b,c的值为3,2,4 时,屏幕上出现了出错信息,程序停止运行,原因是此时b2-4ac小于0,出现了对负数求平方根的运算,故出错。因此,此程序只适用b2-4ac0的情况。我们不能说上面的程序是错的,而只能说程序对可能出现的情况“考虑不周,所以不能保证在任何情况下都是正确的。使用这个程序必须满足一定的前提b2-4ac0,这样,就给使用程序的人带来不便。人们在输入数据前,必须先算一下,看b2-4ac是否大于或等于0。一个程序应能适应各种不同的情

13、况,并且都能正常运行并得到相应的结果。下面分析一下求方程ax2+bx+c=0的根,有几种情况:1a0时b2-4ac0有两个不等的实根:x1, 2=(-bsqrt(b2-4ac)/2ab2-4ac=0有两个相等的实根:x1= x 2=-b/2ab2-4ac0a0,b2-4ac=0a0,b2-4ac0a=0,b0a=0,b= 0,c = 0a=0,b= 0,c0应当分别测试程序在以上6 种情况下的运行情况,观察它们是否符合要求。为此,应准备6 组数据。用这6 组数据去测试程序的“健壮性。在使用上面这个程序时,显然只有满足情况的数据才能使程序正确运行,而输入满足情况的数据时,程序出错。这说明程序不“

14、健壮。为此,应当修改程序,使之能适应以上6 种情况。可将程序改为:#include#includevoid main( ) float a, b, c, disc, x1, x2, p, q;printf(input a, b, c:);scanf(“%f, %f, %f, &a, &b, &c); if(a= =0) if(b= =0) if(c= =0) printf(It is trivial.n); else printf(It is impossible.n); else printf(It has one solution:n);pirntf(x=%6.2fn,-c/b); else disc= b*b-4*a*c; if(disc=0) if(disc0) print

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 建筑/环境 > 施工组织

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号