文档详情

过程和子过程的定义和调用方法.doc

发布:2017-04-18约1.98千字共3页下载文档
文本预览下载声明
实习六过程和子过程的定义和调用方法地点:计算机实验室。每名学生一台计算机。 实习时间:90分钟 指导教师:任课教师,实习指导教师 学生分组:每三人为一组。每名教师负责七个组的指导。实习目的: 掌握自定义函数过程和子过程的定义和调用方法. 掌握形参和实参的对应关系. 掌握值传递和地址的传递方式. 掌握变量、函娄和过程的作用域. 掌握递归概念和使用方法. 熟悉程序设计中的常用算法.实验6.1 编一子过程ProcMin,求一维数组a中的最不值,子过程的形参自己确定.主调程序随机产生10个-300~-400之间的整数,调用ProcMin子过程,显示最小值. 实验6.2 编一函数Max(a( )),求一维数组a中的最大值.主调程序随机产生10个100~200之间的数,调用Max函数,显示最大值. 实验6.3 编一个函数过程MySin(x),求 MySin(x)= 当第n项的精度小于时结束计算,x为弧度.主要程序同时调用MySin和内部函数Sin,进行验证. 【提示】 关键是找部分级数和的通项,通项表示如下: 实验6.4编一个函数过程HtoD(H),将十六进制字符串H转换成十进制数.主调程序调用HorD函数,再调用内部函数Hex(number)进行逆向验证. 实验6.5 参阅教篇例6.2,编一个子过程DeleStr(s1,s2),将字符串s1中出现s2子字符串删去,结果还是存放在s1中. 例如:s1=AABBDFG12345” s2=”234” 结果:s1=”15678AAABBDFG15” 【提示】 解决此题的方法有以下要点: 在s1字符串中找s2的子字符串,可利用lnStr()函数,要考虑到s1中可能存在多个或不存在s2字符串,用Do While Instr(s1,s2)﹥0循环结构来实现. 若在s1中找到s2的子字符串,首先要确定s1字符串的长度,因s1字符串在进行多次删除时,长度在变化..然后通过Left() 、Mid() 或Rigth()函数的调用达到删除s1中存在的s2字符串. 实验6.6 编一函数过程MaxLength(s),在已知的字符串s中,找出最长的单词.假定字符s内只含有字母和空格,空格发隔不同的单词.程序运行界面如图2.6.1所示 【提示】 程序中有到当前单词当前单词长度最长单词最长单词长度等变量. 首先求出输入的字符串长度,然后从字符串中分离出单词,即对每个字符判断:若不为空格,将每个字符连接到当前单词的字符串变量,当前单词长度计数器加1;若为空格,表示一个单词结束,将每个字符连接到当前单词长度与最长单词长度比较,若长,当前单词替代最长单词.当前单词置空,当前单词计数器清除为0. 实验6.7编一函数过程IsH(n),对于已知正整数n判断该数是否是回文数,函数的返回值类型为布尔型.主调程序每输入一个数,调用IsH函数过程,然后在图形框显示输入的数,对于是回文数显示一个”★"见图2.6.2。    图2.6.2 实验6.7回文数程序运行界面 【提示】 所谓回文数是指顺读与倒读数字相同,即指最高位与最低们相同,次高位与次低位相同,依次类推.当只有一位数时,也认为是回文数. 回文数的求法,只要对输入的数(按字符串类型处理),利用MID函数从两边往中间比较,若不相同,就不是回文数. 实验6.8编一函数过程 IsZ(n),对于已知正整数n,判断该数是否是质数,函数的返回值类型为布尔型.方调程序每输入一个数,调用IsZ函数过程,然后在图形框显示输入的数,对于是质数显示一个"★",界面见上题. 实验6.9编一函数过程,用矩形法求定积数f(x)dx.矩形法的第i块小面积的公式为: =h*f() h 为小面积 的宽度主调程序调用函数过程,求的定积分. 实验6.10用迭代法编一个函数过程f(a),求x=求立方根的迭代公式为: =(2/3)+a/3 精度为ε=.主调程序调用该函数过程,a的值分别为3、9和12,显示计算结果.同时,利用幂运算符“^”检验函数过程的正确性.迭代法求高次方程根的算法见教学篇例6.18. 实验 6.11 用递归方法,编写求的函数. 对于有如下递归形式: 递归条件: 实验 6.12 类似第10题,将迭代法改为递归法编函数过程f2(x0,a),求,求立方根的迭代公式为: 精度为. 主调程序分别调用函数过程,a的值分别为3、9和12,显示计算结果.同时,利用运算符“”检验数时程的正确性. 【提示】 递归法求根时,形参要有两个,x0为每次递归调用时的初值,假定x0的初值为a. 
显示全部
相似文档