上QQ阅读APP看书,第一时间看更新
上机实验题1
1.基础实验题
(1)有以下两个求1+2+…+n的算法:
现在需要计算1+(1+2)+(1+2+3)+…+(1+2+3+…+n)。编写一个程序分别调用上述两个算法求解,给出n=100000时两个算法的执行时间。
(2)编写一个程序求1!+2!+3!+…+n!,其中,n为正整数。请给出直接累计i!(1≤i≤n)的算法和改进算法。并采用相关数据测试(在上机实验时n比较大时结果会溢出,不必考虑结果溢出情况)。分析两个算法的时间复杂度。
2.应用实验题
(1)有一个整型数组a,其中含有n个元素,设计尽可能好的算法求其中的最大元素和次大元素,并采用相关数据测试。
(2)定义单个复数的抽象数据类型为AComplex,其中,复数的实部和虚部均为整数,包含创建一个复数和输出一个复数的基本运算。在此基础上再定义两个复数运算的抽象数据类型BComplex,包含两个复数的加法、减法和乘法运算。编写程序实现这两个抽象数据类型,并采用相关数据测试。
作者寄语
老师教给我们的是知识,而解决问题需要能力,能力是个性化的,只有通过自己的实训才能得到。对于一个计算机专业的学生,只有编写和调试非常多的程序,才会获得程序设计的能力,继而具备初步的软件设计和开发基础,别无他法。只想听几堂课而不经过大量课外研习和上机实践就想获取这种“能力”是不可能的。