欢迎来到淘文阁 - 分享文档赚钱的网站! | 帮助中心 好文档才是您的得力助手!
淘文阁 - 分享文档赚钱的网站
全部分类
  • 研究报告>
  • 管理文献>
  • 标准材料>
  • 技术资料>
  • 教育专区>
  • 应用文书>
  • 生活休闲>
  • 考试试题>
  • pptx模板>
  • 工商注册>
  • 期刊短文>
  • 图片设计>
  • ImageVerifierCode 换一换

    结构化程序设计应用举例.ppt

    • 资源ID:66864478       资源大小:620KB        全文页数:97页
    • 资源格式: PPT        下载积分:16金币
    快捷下载 游客一键下载
    会员登录下载
    微信登录下载
    三方登录下载: 微信开放平台登录   QQ登录  
    二维码
    微信扫一扫登录
    下载资源需要16金币
    邮箱/手机:
    温馨提示:
    快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。
    如填写123,账号就是123,密码也是123。
    支付方式: 支付宝    微信支付   
    验证码:   换一换

     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    结构化程序设计应用举例.ppt

    湖南师范大学计算机教学部湖南师范大学计算机教学部数据库技术及应用课程数据库技术及应用课程VFP程序设计1第八讲第八讲 (六)程序调试(六)程序调试 (七)结构化程序设计综合实例(七)结构化程序设计综合实例第3章 结构化程序设计湖南师范大学计算机教学部湖南师范大学计算机教学部数据库技术及应用课程数据库技术及应用课程VFP程序设计2VFP程序的构成程序的构成VFP程序设计语言的特点程序设计语言的特点VFP程序设计的概念程序设计的概念递推法递推法选择排序法选择排序法冒泡排序法冒泡排序法算法算法程序的建立与运行程序的建立与运行穷举法穷举法基本基本概念概念与操与操作方作方法法典型典型算法算法迭加迭加(累加累加)法法湖南师范大学计算机教学部湖南师范大学计算机教学部数据库技术及应用课程数据库技术及应用课程VFP程序设计3 Visual FoxPo程序设计的概念程序设计的概念一、什么是程序一、什么是程序 Visual FoxPro提提供供了了一一种种程程序序执执行行方方式式,这这种种方方式式就就是是预预选选把把需需要要执执行行的的多多条条命命令令按按一一定定的的结结构构组组成成一一个个有有机机序序列列以以文文件件的的形形式式存存储储在在磁磁盘盘上上,这这个个文文件就称为程序文件或命令文件。件就称为程序文件或命令文件。湖南师范大学计算机教学部湖南师范大学计算机教学部数据库技术及应用课程数据库技术及应用课程VFP程序设计4 其中,把其中,把Visual FoxPro提供的命令、函数和控提供的命令、函数和控制语句有机的组成一个计算机可执行的序列,这个制语句有机的组成一个计算机可执行的序列,这个序列的设计、编码和调试的过程序列的设计、编码和调试的过程编写调试程序。编写调试程序。使用计算机解决实际问题,通常是使用计算机解决实际问题,通常是先要对问题进行分先要对问题进行分析并建立数学模型,然后考虑数据的组织方式和算法,并析并建立数学模型,然后考虑数据的组织方式和算法,并用某一种程序设计语言编写程序,最后调试程序,使之运用某一种程序设计语言编写程序,最后调试程序,使之运行后能产生预期的结果。行后能产生预期的结果。这个过程称为程序设计。这个过程称为程序设计。湖南师范大学计算机教学部湖南师范大学计算机教学部数据库技术及应用课程数据库技术及应用课程VFP程序设计5二、二、Visual FoxPro程序设计语言的特点程序设计语言的特点1、语言丰富、自成体系、语言丰富、自成体系2、人机对话功能、人机对话功能3、高效的结构化程序设计功能、高效的结构化程序设计功能 Visual FoxPro程程序序具具有有顺顺序序、分分支支、循循环环三三种种基基本本结结构构。Visual FoxPro的的语语句句没没有有标标号号,程程序序的的走走向向完完全全靠靠控控制制块块控控制制。一一般般来来讲讲,Visual FoxPro程程序序由由一一主主控控程程序序和和若若干干子子控控程程序序组组成成。任任何何一一个个程程序序的的逻逻辑辑结结构构均均可可由由顺顺序序结结构构、分分支支结构、循环结构组合而成。结构、循环结构组合而成。湖南师范大学计算机教学部湖南师范大学计算机教学部数据库技术及应用课程数据库技术及应用课程VFP程序设计6 顺序结构顺序结构 分支选择结构(选择结构)分支选择结构(选择结构)循环结构1.当型循环结构:当条件成立时反复执行,直到条件当型循环结构:当条件成立时反复执行,直到条件不成立;不成立;2.直到型循环结构:先执行,直到型循环结构:先执行,再判断条件是否成立,再判断条件是否成立,若为假(不若为假(不成立),继续执行,直到条件为真(成立)成立),继续执行,直到条件为真(成立)用循环结构编程时,要注意出现死循环。用循环结构编程时,要注意出现死循环。死循环:一种永远也跳不出循环体的循环。死循环:一种永远也跳不出循环体的循环。湖南师范大学计算机教学部湖南师范大学计算机教学部数据库技术及应用课程数据库技术及应用课程VFP程序设计7!注意:注意:程程序序的的每每一一行行只只能能书书写写一一条条语语句句,并并且且一一行行最最多多只只能能有有255个个字字符符(包包括括空空格格)。如如果果一一条条语语句句一一行行写写不不完完,可可以以用用“;”续续行行,每每一一个个语语句句用回车键结束。用回车键结束。湖南师范大学计算机教学部湖南师范大学计算机教学部数据库技术及应用课程数据库技术及应用课程VFP程序设计8三、三、Visual FoxPro程序的构成程序的构成*程序名:程序名:AREA.PRG*功能:功能:求圆的面积求圆的面积*设计人设计人 张大民张大民*设计日期设计日期 1998年年3月月SET TALK OFFSET COLOR TO GR+/B+CLEARINPUT“圆半径圆半径R=”TO RS=3.1415926*R*R?“圆面积圆面积S=”,SCLEAR ALLSET TALK ON RETURN程序的前程序的前文文程序的设程序的设置部份置部份程序的主体部份程序的主体部份程序的关闭部份程序的关闭部份程序的退出部份程序的退出部份湖南师范大学计算机教学部湖南师范大学计算机教学部数据库技术及应用课程数据库技术及应用课程VFP程序设计9程序的前程序的前文文程序的设程序的设置部份置部份程序的主体部份程序的主体部份程序的关闭部份程序的关闭部份程序的退出部份程序的退出部份 提供数据提供数据运算处理运算处理输出结果输出结果INPUT“圆半径圆半径R=”TO RS=3.1415926*R*R?“圆面积圆面积S=”,S湖南师范大学计算机教学部湖南师范大学计算机教学部数据库技术及应用课程数据库技术及应用课程VFP程序设计10算法算法如如果果需需要要解解决决一一个个实实际际问问题题,从从拿拿到到任任务务到到得得到到结果,要经过以下几个阶段:结果,要经过以下几个阶段:1、分析问题;、分析问题;2、确定处理方案;、确定处理方案;3、确定操作步骤;、确定操作步骤;4、根据操作步骤编写源程序;、根据操作步骤编写源程序;5、将程序输入计算机并使之运行;、将程序输入计算机并使之运行;6、整理输出结果,写出有关文档资料。、整理输出结果,写出有关文档资料。一、利用计算机处理问题的过程一、利用计算机处理问题的过程湖南师范大学计算机教学部湖南师范大学计算机教学部数据库技术及应用课程数据库技术及应用课程VFP程序设计11计算机处理一个实际问题的主要过程计算机处理一个实际问题的主要过程分析问题分析问题确定处理方案确定处理方案(算法设计)(算法设计)确定操作确定操作步骤步骤编写程序编写程序上机运行上机运行程序程序整理结果整理结果湖南师范大学计算机教学部湖南师范大学计算机教学部数据库技术及应用课程数据库技术及应用课程VFP程序设计12二、算法的概念二、算法的概念 在在上上述述六六个个步步骤骤中中,第第1、2步步一一般般与与实实际际问问题题的的专专业业有有关关,第第36步步则则是是程程序序人人员员的的职职责责。其其中中最最关关键键的的是是第第3步步,即即“算算法法设设计计”,只只要要算算法法是是正正确确的的,写写程程序序就就不不会会有有太太多多困困难难。所所谓谓“算算法法”,粗粗略略地地说说,是是为为解解决决一一个个特特定定问问题题而而采采取取的的确确定定的的、有限的步骤。有限的步骤。三、算法的表示三、算法的表示流程图流程图例例2 求求一一个个班班学学生生的的平平均均成成绩绩。设设A等等(85)12人人,B等等(70分)分)16人,人,C等(等(60分)分)6人,人,D等(等(50分)分)5人。人。例例3 输入一个数输入一个数x,如果它的值为正,则打印,如果它的值为正,则打印x的值。的值。例例4 输入输入10个数,把其中的正数打印出来。个数,把其中的正数打印出来。湖南师范大学计算机教学部湖南师范大学计算机教学部数据库技术及应用课程数据库技术及应用课程VFP程序设计13开始开始A=85B=70C=60D=50PJF=(A*12+B*16+C*6+D*5)/(12+16+6+5)结束结束输出平均成绩输出平均成绩PJF开始输入A、B、C、D的值结束结束输出平均成绩输出平均成绩计算平均成绩计算平均成绩湖南师范大学计算机教学部湖南师范大学计算机教学部数据库技术及应用课程数据库技术及应用课程VFP程序设计14NY开始开始输入输入X的值的值结束结束输出输出XX0输入一个数给输入一个数给XX0是是否否输出输出X湖南师范大学计算机教学部湖南师范大学计算机教学部数据库技术及应用课程数据库技术及应用课程VFP程序设计15开始开始输入输入X的值的值结束结束输出输出XX0输入一个数给输入一个数给XX0是是否否输出输出XN=1N=10YNNYN=N+1N=1当当N=10N=N+1湖南师范大学计算机教学部湖南师范大学计算机教学部数据库技术及应用课程数据库技术及应用课程VFP程序设计16程序的建立与运行程序的建立与运行一、一、Visual FoxPro程序的建立程序的建立1、用用Visual FoxPro本本身身提提供供的的文文本本编编辑辑器器来来建建立立和和编辑编辑命令窗口方式:命令窗口方式:MODIFY COMMAND 菜单窗口方式:菜单窗口方式:文件的保存:文件的保存:2、用、用WPS建立和编辑建立和编辑VFP程序文件程序文件3、用、用DOS的的EDIT编辑器来建立和编辑编辑器来建立和编辑VFP程序文件程序文件湖南师范大学计算机教学部湖南师范大学计算机教学部数据库技术及应用课程数据库技术及应用课程VFP程序设计17二、二、Visual FoxPro程序文件的执行程序文件的执行1、命令窗口方式:、命令窗口方式:DO 2、菜单窗口方式、菜单窗口方式3、直接单击工具栏中的红色惊叹号。直接单击工具栏中的红色惊叹号。4、右击程序编辑窗口标题栏,弹出快捷菜单,右击程序编辑窗口标题栏,弹出快捷菜单,选择执行命令。选择执行命令。湖南师范大学计算机教学部湖南师范大学计算机教学部数据库技术及应用课程数据库技术及应用课程VFP程序设计18一、迭加一、迭加(累加累加)法法 典型算法典型算法 P=0P=P+1累加累加统计统计S=0S=S+X湖南师范大学计算机教学部湖南师范大学计算机教学部数据库技术及应用课程数据库技术及应用课程VFP程序设计19和积综合计算和积综合计算1、有限个符合条件的整数的和积计算;、有限个符合条件的整数的和积计算;2、有特殊规律的分数的和的计算;、有特殊规律的分数的和的计算;3、逆积式的计算。、逆积式的计算。这类计算要注意两个要点:一是用来表这类计算要注意两个要点:一是用来表示计算结果的初始化值。二是计算的过程是示计算结果的初始化值。二是计算的过程是否正确。这类问题出现在填空题和改错题中否正确。这类问题出现在填空题和改错题中的可能性非常大。主要考核程序设计的基本的可能性非常大。主要考核程序设计的基本功。功。湖南师范大学计算机教学部湖南师范大学计算机教学部数据库技术及应用课程数据库技术及应用课程VFP程序设计20举例:举例:例例1 1 利用循环结构求利用循环结构求1 1100100之和。之和。MODI COMM EX121.PRGMODI COMM EX121.PRG SET TALK OFF CLEAR S=0 I=1方方法法一一湖南师范大学计算机教学部湖南师范大学计算机教学部数据库技术及应用课程数据库技术及应用课程VFP程序设计21DO WHILEDO WHILE I=100I720 IF S720 EXIT EXIT ENDIF ENDIF ENDDOENDDOI=I-1&I=I-1&最后一个乘数最后一个乘数方方法法一一湖南师范大学计算机教学部湖南师范大学计算机教学部数据库技术及应用课程数据库技术及应用课程VFP程序设计2610,10 SAY 10,10 SAY 连乘数的积连乘数的积S=;S=;FONT FONT 魏碑体魏碑体,28 STYLE B;,28 STYLE B;GET S FONT GET S FONT 魏碑体魏碑体,28;,28;STYLE B FUNCTION B STYLE B FUNCTION B 14,10 SAY 14,10 SAY“最后一个乘数是最后一个乘数是”;FONT FONT 魏碑体魏碑体,28 STYLE B;,28 STYLE B;GET I FONT GET I FONT 魏碑体魏碑体,28;,28;STYLE B FUNCTION B STYLE B FUNCTION B SET TALK ONSET TALK ONRETURNRETURN湖南师范大学计算机教学部湖南师范大学计算机教学部数据库技术及应用课程数据库技术及应用课程VFP程序设计27SET TALK OFFCLEARS=1FOR I=1 TO 800 S=S*IIF S720 EXIT ENDIF ENDFOR?”最后一个乘数是最后一个乘数是”FONT 魏碑体魏碑体,28 STYLE B,I FONT“”,28?连乘数的积连乘数的积S=“FONT“”,28,S FONT“”,28SET TALK ONRETURN方方法法二二湖南师范大学计算机教学部湖南师范大学计算机教学部数据库技术及应用课程数据库技术及应用课程VFP程序设计28例例3已知已知 S1=1,S2=1+2,S3=1+2+3,Sn=1+2+3,+n,编写一程序求编写一程序求 S1+S2+S100的和。的和。MODI COMM EX738PRG湖南师范大学计算机教学部湖南师范大学计算机教学部数据库技术及应用课程数据库技术及应用课程VFP程序设计29SET TALK OFFCLEARN=1S=0DO WHILE N=100 I=1 SUB=0DO WHILE I=N SUB=SUB+I 湖南师范大学计算机教学部湖南师范大学计算机教学部数据库技术及应用课程数据库技术及应用课程VFP程序设计30 I=I+1 ENDDO S=S+SUB N=N+1ENDDO?S1+S2+S100=,SSET TALK ONRETURN 湖南师范大学计算机教学部湖南师范大学计算机教学部数据库技术及应用课程数据库技术及应用课程VFP程序设计31SET TALK OFFDO WHILE.T.CLEAR ACCEPT 请选择代码:请选择代码:1问候;问候;2 循环循环 3 退出退出 TO CHOICE DO CASE CASE CHOICE=1?例例4 根据输入代码执行相应操作根据输入代码执行相应操作湖南师范大学计算机教学部湖南师范大学计算机教学部数据库技术及应用课程数据库技术及应用课程VFP程序设计32?Good!您好!您好!WAIT“请按任一键继续请按任一键继续”WINDOW;TIMEOUT 15 CASE CHOICE=2 I=1 S=0 DO WHILE I=100 S=S+I I=I+1 ENDDO湖南师范大学计算机教学部湖南师范大学计算机教学部数据库技术及应用课程数据库技术及应用课程VFP程序设计33?1+2+3+100=,S WAIT“请按任一键继续请按任一键继续”WINDOW;TIMEOUT 15 CASE CHOICE=3 EXIT ENDCASE ENDDOSET TALK ONRETURN 湖南师范大学计算机教学部湖南师范大学计算机教学部数据库技术及应用课程数据库技术及应用课程VFP程序设计 S=0FOR n=1 TO 100?S【例例3.15】求和:求和:,当n=100时的S值 S=S+1/nS=S-1/nYNn%3=1湖南师范大学计算机教学部湖南师范大学计算机教学部数据库技术及应用课程数据库技术及应用课程VFP程序设计*prog3_15.prg,求和SSET TALK OFFCLEARS=0FOR n=1 TO 100 IF n%3=1 S=S+1/n ELSE S=S-1/nENDIFENDFOR?”S=”,SSET TALK ON湖南师范大学计算机教学部湖南师范大学计算机教学部数据库技术及应用课程数据库技术及应用课程VFP程序设计【例3.16】已知一个数列的前三项为0,0,1,以后各项都是其相邻的前三项之和,求该数列前30项之和。*prog3_16.prg,求,求SET TALK OFFCLEARS=1&因为数列前三项的计算不包含在循环体中因为数列前三项的计算不包含在循环体中f1=0f2=0f3=1湖南师范大学计算机教学部湖南师范大学计算机教学部数据库技术及应用课程数据库技术及应用课程VFP程序设计FOR n=4 TO 30 ff=f1+f2+f3 S=S+ff f1=f2 f2=f3 f3=ffENDFOR?”S=”,SSET TALK ON湖南师范大学计算机教学部湖南师范大学计算机教学部数据库技术及应用课程数据库技术及应用课程VFP程序设计38二、穷举法二、穷举法 所谓穷举法是从有限个对象中一个一个的进行所谓穷举法是从有限个对象中一个一个的进行判断,选择符合要求的对象进行处理。主要有两种判断,选择符合要求的对象进行处理。主要有两种处理类型:一是符合要求的对象的统计计算,如个处理类型:一是符合要求的对象的统计计算,如个数的计算、累加和的计算、连乘积的计算;二是寻数的计算、累加和的计算、连乘积的计算;二是寻找最大(或最小)对象。穷举法必须使用循环及选找最大(或最小)对象。穷举法必须使用循环及选择分支结构才能实现其功能。择分支结构才能实现其功能。湖南师范大学计算机教学部湖南师范大学计算机教学部数据库技术及应用课程数据库技术及应用课程VFP程序设计39 例例3.17:我国古代数学家在我国古代数学家在算经算经中中出了一道题:出了一道题:“鸡翁一,值钱五;鸡母一,鸡翁一,值钱五;鸡母一,值钱三;鸡雏三,值钱一。百钱买百鸡,值钱三;鸡雏三,值钱一。百钱买百鸡,问鸡翁、母、鸡雏各几何?问鸡翁、母、鸡雏各几何?”X+Y+Z=100X*5+Y*3+Z/3=100湖南师范大学计算机教学部湖南师范大学计算机教学部数据库技术及应用课程数据库技术及应用课程VFP程序设计40SET TALK OFFCLEAR?公鸡公鸡 母鸡母鸡 小鸡小鸡FOR X=0 TO 19 FOR Y=0 TO 33 Z=100-X-Y 湖南师范大学计算机教学部湖南师范大学计算机教学部数据库技术及应用课程数据库技术及应用课程VFP程序设计41 IF 5*X+3*Y+Z/3=100?X,Y,Z ENDIF NEXTNEXT SET TALK ONRETURN湖南师范大学计算机教学部湖南师范大学计算机教学部数据库技术及应用课程数据库技术及应用课程VFP程序设计42例例8:从键盘上输入一个整数,判断其是否为素从键盘上输入一个整数,判断其是否为素数(质数)。数(质数)。SET TALK OFFCLEARN=010,30 SAY“请输入一个整数:请输入一个整数:”;GET NREADFLAG=0湖南师范大学计算机教学部湖南师范大学计算机教学部数据库技术及应用课程数据库技术及应用课程VFP程序设计43FOR I=2 TO SQRT(N)IF N/I=INT(N/I)FLAG=1 ENDIF NEXTIF FLAG=1 湖南师范大学计算机教学部湖南师范大学计算机教学部数据库技术及应用课程数据库技术及应用课程VFP程序设计44 12,30 SAY LTRIM(STR(N);+不是一个素数不是一个素数ELSE 12,30 SAY LTRIM(STR(N);+是一个素数是一个素数ENDIFSET TALK ONRETURN湖南师范大学计算机教学部湖南师范大学计算机教学部数据库技术及应用课程数据库技术及应用课程VFP程序设计45*例题例题9:求出:求出3100之间的全部素之间的全部素数。数。SET TALK OFFCLEARFOR M=3 TO 99 FLAG=0 FOR N=2 TO M-1 IF INT(M/N)=M/N FLAG=1 EXIT ENDIF ENDFOR方方法法一一湖南师范大学计算机教学部湖南师范大学计算机教学部数据库技术及应用课程数据库技术及应用课程VFP程序设计46IF FLAG=0?M ENDIFENDFOR SET TALK ONRETURN湖南师范大学计算机教学部湖南师范大学计算机教学部数据库技术及应用课程数据库技术及应用课程VFP程序设计47SET TALK OFFCLEARM=3DO WHILE M100 N=2 DO WHILE N=M-1 IF M/N=INT(M/N)EXIT ENDIF IF N=M-1?M ENDIF 方方法法二二湖南师范大学计算机教学部湖南师范大学计算机教学部数据库技术及应用课程数据库技术及应用课程VFP程序设计48N=N+1 ENDDO M=M+1ENDDOSET TALK ONRETURN湖南师范大学计算机教学部湖南师范大学计算机教学部数据库技术及应用课程数据库技术及应用课程VFP程序设计49【例例3.19】“水仙花数水仙花数”是指这样的数,其各位数字的立方和是指这样的数,其各位数字的立方和等于该数本身,如等于该数本身,如153=13+53+33。编写程序求。编写程序求100至至999范围范围内的第二大水仙花数。内的第二大水仙花数。MODI COMM EX129.PRGSET TALK OFFCLEAR湖南师范大学计算机教学部湖南师范大学计算机教学部数据库技术及应用课程数据库技术及应用课程VFP程序设计50SET TALK OFFCLEARmycount=0&计数计数FOR I=999 TO 100 STEP-1 A=INT(I/100)B=INT(I-100*A)/10)C=I-INT(I/10)*10 IF I=A3+B3+C3 mycount=mycount+1 if mycount=2 exit endif ENDIFNEXT?”100至至999范围内的第二大水仙花数为:范围内的第二大水仙花数为:”,I SET TALK ONRETURN方法一方法一湖南师范大学计算机教学部湖南师范大学计算机教学部数据库技术及应用课程数据库技术及应用课程VFP程序设计51SET TALK OFFCLEARmycount=0&计数计数 FOR I=999 TO 100 STEP-1 A=INT(I/100)B=MOD(INT(X/10),10)C=MOD(X,10)IF I=A3+B3+C3 mycount=mycount+1 if mycount=2 exit endif ENDIFNEXT?”100至至999范围内的第二大水仙花数为:范围内的第二大水仙花数为:”,ISET TALK ONRETURN方法二方法二湖南师范大学计算机教学部湖南师范大学计算机教学部数据库技术及应用课程数据库技术及应用课程VFP程序设计52方法三方法三SET TALK OFFCLEARmycount=0&计数计数 FOR I=999 TO 100 STEP-1 s=ALLTRIM(STR(n)&去掉前后导空格的对应于该数值的字符串,以免取到空格去掉前后导空格的对应于该数值的字符串,以免取到空格 a=RIGHT(s,1)&百位百位 b=SUBSTR(s,2,1)&十位十位 c=LEFT(s,1)&个位个位 IF I=A3+B3+C3 mycount=mycount+1 if mycount=2 exit endifENDIFNEXT?”100至至999范围内的第二大水仙花数为:范围内的第二大水仙花数为:”,I SET TALK ON湖南师范大学计算机教学部湖南师范大学计算机教学部数据库技术及应用课程数据库技术及应用课程VFP程序设计53例例14.9:韩信有一队兵,他想知道有多少人,便让士兵排队报数:韩信有一队兵,他想知道有多少人,便让士兵排队报数:按从按从1 至至5报数,记下最后一个士兵报的数为报数,记下最后一个士兵报的数为1;按从;按从1 至至6报数,报数,记下最后一个士兵报的数为记下最后一个士兵报的数为5;按从;按从1 至至7报数,记下最后一个士报数,记下最后一个士兵报的数为兵报的数为4;按从;按从1 至至11报数,记下最后一个士兵报的数为报数,记下最后一个士兵报的数为10。设计程序求至少有多少兵?设计程序求至少有多少兵?解:设兵数为解:设兵数为X,则,则X满足下列不定方程组:满足下列不定方程组:X=5Y+1 即即 mod(x,5)=1 X=1(MOD 5)X=6Z+5 mod(x,6)=5 X=7U+4 mod(x,7)=4 X=11V+10 mod(x,11)=101、注意到、注意到X除除11余余10,于是可设置,于是可设置X从从21以步长以步长11开始递增,开始递增,只要判断前三个条件(方程);只要判断前三个条件(方程);2、注意到、注意到X+1为为11的倍数也为的倍数也为6的倍数,而的倍数,而11与与6 互素,因而互素,因而X+1必为必为66的倍数。于是取的倍数。于是取X=65开始以步长开始以步长66递增,只要判断递增,只要判断另两个条件(方程)。另两个条件(方程)。3、方程有无穷个解,只要得到第一个解便可退出循环。、方程有无穷个解,只要得到第一个解便可退出循环。湖南师范大学计算机教学部湖南师范大学计算机教学部数据库技术及应用课程数据库技术及应用课程VFP程序设计54SET TALK OFFFOR X=21 TO 10000 STEP 11 IF MOD(X,5)=1 AND MOD(X,6)=5 AND MOD(X,7)=4?至少有兵至少有兵+LTRIM(STR(X)+个个 EXIT ENDIFENDFORSET TALK ONRETURN方法一方法一:湖南师范大学计算机教学部湖南师范大学计算机教学部数据库技术及应用课程数据库技术及应用课程VFP程序设计55方法二:方法二:SET TALK OFFX=65DO WHILE X10000 X=X+66 IF MOD(X,5)=1 AND MOD(X,7)=4?至少有兵至少有兵+LTRIM(STR(X)+个个 EXIT ENDIFENDDORETURN湖南师范大学计算机教学部湖南师范大学计算机教学部数据库技术及应用课程数据库技术及应用课程VFP程序设计方法三:方法三:?湖南师范大学计算机教学部湖南师范大学计算机教学部数据库技术及应用课程数据库技术及应用课程VFP程序设计57set talk offclearP=0for n=100 to 999 step 2 A=INT(n/100)B=INT(n-100*A)/10)C=N-INT(n/10)*10 if MOD(B+C,10)=A?N P=P+1 ENDIFENDFOR?P=,PSET TALK ONRETURN5求求三三位位数数中中,个个位位数数字字与与十十位位数数字字之之和和除除以以10所所得得的的余余数数是是百百位位数数字字的的所所有有偶偶数数的的个个数数。湖南师范大学计算机教学部湖南师范大学计算机教学部数据库技术及应用课程数据库技术及应用课程VFP程序设计58三、递推法三、递推法 递推递推:指在前一个(或几个)结果的基础上推出下一指在前一个(或几个)结果的基础上推出下一个结果。个结果。递推法主要是对数列、数序集进行处理。使用数组是递推法主要是对数列、数序集进行处理。使用数组是实现递推法的主要手段。实现递推法的主要手段。例例12.11:编程求编程求Fibonacci数列:数列:1,1,2,3,5,8的前的前30个数。即个数。即 F1=1 F2=1 Fn=Fn-1+Fn-2湖南师范大学计算机教学部湖南师范大学计算机教学部数据库技术及应用课程数据库技术及应用课程VFP程序设计59SET TALK OFFCLEARF1=1F2=1I=1湖南师范大学计算机教学部湖南师范大学计算机教学部数据库技术及应用课程数据库技术及应用课程VFP程序设计60DO WHILE(I=15)?F1,F2 F1=F1+F2 F2=F1+F2 IF I/3=INT(I/3)?ENDIF湖南师范大学计算机教学部湖南师范大学计算机教学部数据库技术及应用课程数据库技术及应用课程VFP程序设计61I=I+1ENDDOSET TALK ONRETURN湖南师范大学计算机教学部湖南师范大学计算机教学部数据库技术及应用课程数据库技术及应用课程VFP程序设计62湖南师范大学计算机教学部湖南师范大学计算机教学部数据库技术及应用课程数据库技术及应用课程VFP程序设计63*P85二、程序题二、程序题1.一个素数,若将其数字位置任意对换一个素数,若将其数字位置任意对换后仍为素数,则称为绝对素数。求两位数的绝对素数的和后仍为素数,则称为绝对素数。求两位数的绝对素数的和及个数。程序中有两个错误及个数。程序中有两个错误,请改正。请改正。&prog21.prg湖南师范大学计算机教学部湖南师范大学计算机教学部数据库技术及应用课程数据库技术及应用课程VFP程序设计64SET TALK OFFSET TALK OFFCLEACLEAT=0T=0 S=0S=0FOR I=10 TO 99FOR I=10 TO 99 P=.T.P=.T.FOR J=2 TO SQRT(I)FOR J=2 TO SQRT(I)IF MOD(I,J)=0 IF MOD(I,J)=0 P=.F.P=.F.LOOP&LOOP&正确语句为正确语句为 EXITEXITENDIFENDIFENDFORENDFORIF PIF PA=INT(I/10)A=INT(I/10)B=MOD(I,10)B=MOD(I,10)K=B*10+AK=B*10+A方方法法一一湖南师范大学计算机教学部湖南师范大学计算机教学部数据库技术及应用课程数据库技术及应用课程VFP程序设计65W=.T.W=.T.FOR J=2 TO SQRT(K)FOR J=2 TO SQRT(K)IF MOD(K,J)=0 IF MOD(K,J)=0W=.F.W=.F.EXITEXIT ENDIF ENDIFENDFORENDFOR IF W=.F.&IF W=.F.&正确语句为正确语句为 IF W IF W 或者或者 IF W=.T.IF W=.T.?I?I S=S+I S=S+I T=T+1 T=T+1 ENDIF ENDIF ENDIF ENDIFENDFORENDFOR?“S=S=“,S,T=,T,S,T=,Tset talk onset talk onreturnreturn湖南师范大学计算机教学部湖南师范大学计算机教学部数据库技术及应用课程数据库技术及应用课程VFP程序设计66SET TALK OFFCLEARP=0S=0for m=11 to 99 if prime(m)n=10*mod(m,10)+int(m/10)if prime(n)?m P=P+1 S=S+Mendifendifendfor?“S=+ALLT(STR(S)FONT,46?P=+ALLT(STR(P)FONT,46CAncel方方法法二二湖南师范大学计算机教学部湖南师范大学计算机教学部数据库技术及应用课程数据库技术及应用课程VFP程序设计67func primepara nflag=.t.k=int(sqrt(n)j=2do while j6000的的S的最小值的最小值CLEARDIME SUM2(10000)S=0SUM1=0FOR N=1 TO 10000 SUM1=SUM1+2N S=S+SUM1 SUM2(N)=S?SUM2(N)IF S6000 EXIT ENDIFENDFOR?S=,SUM2(N-1)RETURN湖南师范大学计算机教学部湖南师范大学计算机教学部数据库技术及应用课程数据库技术及应用课程VFP程序设计71*2求求S=1+1/1!+1/2!+1/3!+1/n!SET TALK OFFCLEARS=1T=1FOR N=1 TO 25 T=T*N S=S+1/TENDFOR?S=,ROUND(S,4)SET TALK ONRETURN湖南师范大学计算机教学部湖南师范大学计算机教学部数据库技术及应用课程数据库技术及应用课程VFP程序设计72*3求求100,900之间相差为之间相差为12 的素数对的个数的素数对的个数SET TALK OFFCLEARdime a(400)k=0p=0FOR M=100 TO 900 IF PRI(M)k=k+1 a(k)=m*?A(“+allt(str(K)+)=,A(K)ENDIFENDFOR *?K湖南师范大学计算机教学部湖南师范大学计算机教学部数据库技术及应用课程数据库技术及应用课程VFP程序设计73for i=2 to K if a(i)-a(i-1)=12 *?a(i),a(i-1)p=p+1 endifendfor?p=,pSET TALK ONRETURN湖南师范大学计算机教学部湖南师范大学计算机教学部数据库技术及应用课程数据库技术及应用课程VFP程序设计74FUNC PRIPARA NJ=2FL=.T.X=INT(SQRT(N)DO WHILE J=X AND FLIF MOD(N,J)=0FL=.F.EXITENDIFJ=J+1ENDDRETURN FL湖南师范大学计算机教学部湖南师范大学计算机教学部数据库技术及应用课程数据库技术及应用课程VFP程序设计75SET TALK OFFCLEARX=0s=0for n=9 to 499 flag=.t.&假设假设N为素数为素数 for j=2 to sqrt(n)if mod(n,j)=0&N不为素数不为素数 flag=.f.endif endfor if flag=.f.and mod(n,2)0&判断判断N不是素数且不为偶数不是素数且不为偶数?N s=s+n X=X+1 endifendfor?X=,X?s=,sSET TALK ONRETURN*4-求求9-499之间非偶非素数的数之和及个数之间非偶非素数的数之和及个数湖南师范大学计算机教学部湖南师范大学计算机教学部数据库技术及应用课程数据库技术及应用课程VFP程序设计76*5 输出字母金字塔输出字母金字塔SET TALK OFFCLEARFOR X=1 TO 5?SPACE(40-X)FOR Y=65 TO 64+X*2-1?CHR(Y+X-1)ENDFORENDFORSET TALK ONRETURN湖南师范大学计算机教学部湖南师范大学计算机教学部数据库技术及应用课程数据库技术及应用课程VFP程序设计77set talk offcleark=0for m=700 to 899 for i=2 to m-1 if mod(m,i)=0 exit endif endfor if i=m and 1$str(m)=.T.k=k+1 b=m endif endfor?k,bset talk on return 求求(-)素素数数且且至至少少有有一一位位为为1的的素素数数*改错改错湖南师范大学计算机教学部湖南师范大学计算机教学部数据库技术及应用课程数据库技术及应用课程VFP程序设计781*主程序主程序:T1.PRGSET TALK OFFCLEARSTORE AB TO K1,K2DO T2?K1+K2SET TALK ONRETURN*写出程序运行结果写出程序运行结果湖南师范大学计算机教学部湖南师范大学计算机教学部数据库技术及应用课程数据库技术及应用课程VFP程序设计79*子程序子程序:T2.PRGPRIVATE K1K1=K2+250?K1RETURN湖南师范大学计算机教学部湖南师范大学计算机教学部数据库技术及应用课程数据库技术及应用课程VFP程序设计80*2SET TALK OFFCLEARSTORE 1 TO XSTORE 2 TO YDO WHILE X=Y IF INT(X/2)X/2 X=1+X2 Y=Y+1湖南师范大学计算机教学部湖南师范大学计算机教学部数据库技术及应用课程数据库技术及应用课程VFP程序设计81 LOOP ELSE X=X+1 ENDIFENDDO?X,YSET TALK ONRETURN湖南师范大学计算机教学部湖南师范大学计算机教学部数据库技术及应用课程数据库技术及应用课程VFP程序设计8

    注意事项

    本文(结构化程序设计应用举例.ppt)为本站会员(s****8)主动上传,淘文阁 - 分享文档赚钱的网站仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知淘文阁 - 分享文档赚钱的网站(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    关于淘文阁 - 版权申诉 - 用户使用规则 - 积分规则 - 联系我们

    本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

    工信部备案号:黑ICP备15003705号 © 2020-2023 www.taowenge.com 淘文阁 

    收起
    展开