已阅读5页,还剩85页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1,湖南省计算机等级考试辅导,2006年11月计算机系刘永逸,2,内容提要,概括性指导重点结构、常用标准函数、自定义函数、基本处理、逻辑表达式常用算法:穷举法、递推分类练习十多种常见类型,3,FoxPro程序的基本结构,顺序结构选择(分支)结构IF.ELSE.ENDIF多选择(分支)结构DOCASE.ENDCASE,4,循环结构DOWHILE.ENDDOFOR.ENDFOR/NEXT嵌套分支与分支循环与循环循环与分支,5,程序中可省代码,settalkonclear&此句一般保留settalkoffreturn,6,FoxPro程序设计重点结构,给出两种常用结构可作“模板”使用学会填空!,7,FOR.ENDFOR|NEXT结构fori=tostepif(loop、exit)endifendfor计数循环!,8,DOWHILE.ENDDO结构s=.i=.dowhileenddo?.一般的当型循环!,9,FoxPro程序中常用函数,系统内部标准函数取整:int(x)求余数:mod(a,b)求平方根:sqrt(x)绝对值:abs(x)其它.,10,用户自定义函数逻辑函数判定:prime(x)外部函数的方法(不讲)内部函数的方法(程序的一部分)见:有关素数程序设计部分注:二级必备!,11,程序中最基本的处理,计数初值:n=0或.循环处理:n=n+1连加初值:s=0或.循环处理:s=s+i或.,12,连乘初值:t=1或.循环处理:t=t*i或.,13,最常用的判断,a被b整除(倍数、因子)mod(a,b)=0a是整数int(a)=a应用:求不定方程的整数解,14,多条件组合为逻辑表达式,x能被3整除但不能被4整除mod(x,3)=0andmod(x,4)#0 x是能被3或5整除的偶数mod(x,2)=0and(or),15,精确与非精确编程思路,精确编程:只输出所需结果。非精确编程:输出相关的数据,从中容易得出所需要的结果。,16,例:设s=2+4+6+,求s的最大值,使s=1000。#992(下两页有程序),17,精确编程(不细讲),clearn=0s=0dowhiles=123andx0anda=dandb=c)?xn=n+1endifendforendforendforendfor?n,44,5、因子问题-因子个数、和,问100,200之间有奇数个不同因子的整数共有多少个?#5基本算法:二重循环外循环:forx=100to200穷举!内循环模块一:求x之因子个数内循环模块二:判断处理,45,clearn=0forx=100to200k=0fori=1toxifmod(x,i)=0k=k+1endifendforifmod(k,2)=1?xn=n+1endifendfor?n,46,完数,求在10,1000之间的所有完数之和。各真因子之和(不包括自身)等于其本身的正整数称为完数。例如:6=1+2+3,6是完数。#524,47,settalkoffcleark=0forn=10to1000s=0fori=1ton/2ifmod(n,i)=0s=s+iendifendforifs=nk=k+nendifendfor?ksettalkonreturn,48,完备数,已知24有8个正整数因子(即:1,2,3,4,6,8,12,24),而24正好能被其因子数8整除,求10,100之间有多少个正整数能被其因子的个数整除。#12,49,多因子完备数的概念,若某整数N的所有因子之和等于N的倍数,则N称为多因子完备数,如数28,其因子1、2、4、7、14、28之和是56=2*28,28是多因子完备数。,50,求1,200之间有多少个多因子完备数。#4基本算法:二重循环外循环:forx=1to200穷举!内循环功能一:求x的因子之和内循环功能二:判断处理,51,最大公约数,求出583573和559399的最大公约数。#79基本算法:单循环求出所有因子,52,最小公倍数,求出9269和8671的最小公倍数。#268801a和b最大公约数d与最小公倍数k具有关系:a*b=d*k,53,6、组合问题:不定方程求解,大、中、小学生共36人消费,每大4元,每中2元,每小1元,共120元,问大、中、小学生人数组合有多少种可能?(每类学生学生的人数均不为0。)基本算法:三重(或二重循环),54,程序(三重循环),clearn=0forx=1to36fory=1to36forz=1to36ifx+y+z=36and4*x+2*y+z=120n=n+1?x,y,zendifendforendforendfor?n,55,求方程3x-7y=1在条件|x|100且|y|40下的整数解的个数。#26基本算法:二重或单循环,56,已知正整数A,B(假定AB),满足A*B=5432,求S=A+B的最小值。#153数学结论:A与B相差小其和就小基本算法:二重或单循环求因子,57,(勾、股、)弦数,勾、股、弦(正整数)a2+b2=c2(求组数:abc)基本算法(多重循环)(1)c:(有固定值或循环给出)(2)b:2c-1(3)a:1b-1,58,求121,140之间的弦数的个数。(如5是弦数:32+42=52)#8,59,clearforc=121to140forb=2toc-1fora=1tob-1ifa*a+b*b=c*c?a,b,cendifendfendfendf,60,一个特殊考题,今有5羊4犬3鸡2兔值钱1496,4羊2犬6鸡3兔值钱1175,3羊1犬7鸡5兔值钱958,,2羊3犬5鸡1兔值钱861。求羊价。#177(、121、23、29)5x+4y+3z+2w=14964x+2y+6z+3w=11753x+y+7z+5w=9582x+3y+5z+w=861,61,7、高精度计算除法,令a=113,b=355,不考虑四舍五入,求a/b的结果中:(1)小数点后第30位数字是几?(2)小数点后前30位数字之和是多少?答案:(1)4(2)160(算法见下页)计算器可得32位小数!,62,由a、b求q、r使10*a=b*q+r,基本算法循环:fori=1to30基本处理:模拟手工计算方法每做一次除法,得一位商和余数a=a*10q=int(a/10)a=mod(a,b)r就是下一次的a,63,程序,a=113b=355s=0fori=1to30a=a*10q=int(a/b),*?str(q,1)s=s+qa=mod(a,b)endfor?q,sreturn,64,8、同构数,所谓“同构数”:一个数,它出现在它的平方数的右侧。记住10000以内的:1、5、6、25、76、376、625、9376特点:mod(x*x,m)=xm=10、100、1000,65,clearn=0forx=1to9999docasecasex10m=10casex100m=100casex1000m=1000casex0r=mod(x,p)ifr=1n=n+1endif?p,x,rx=int(x/p)enddo?str(x,20)?n,70,求出将十进制小数0.5432等值转换为二进制形式表示后,其中小数点后第15位数字。#1算法提示:单循环(2乘取整法)循环处理:r=int(2*x),x=x-r计算器:0.5432*215二进制,71,程序,clearx=0.5432p=2?xforn=1to15y=p*x?yz=int(y)x=y-zendfor?z,72,11、素数(质数)问题,一般算法(略)使用自定义函数,73,使用自定义内部逻辑函数prime(x),functionprimeparametersxprivateiifx2return.f.endif,fori=2tox-1ifmod(x,i)=0return.f.endifendforreturn.t.,牢记在心,74,举例,求100以内素数个数。#25求100,999内素数和。#75067求500,2500内第25个素数#659求3,1000内最大的五个素数之和。#4919(题1的程序见下页),75,clearn=0forx=1to100ifprime(x)?xn=n+1endifendfor?nreturnfunctionprimeparametersxprivateiifx2return.f.endiffori=2tox-1ifmod(x,i)=0return.f.endifendforreturn.t.,76,哥德巴赫猜测,德国数学家哥德巴赫曾猜测:任何大于4的偶数都可以分解成两个奇素数的和。有些偶数有多个分解式,如:10=3+7,10=5+5。,77,试求6744可以分解成多少个不同的分解式:6744=A+B(A=B)#144基本算法:主程序用单循环,78,解答,c=6744n=0fora=3toc/2step2b=c-aifprime(a)andprime(b)n=n+1endifendfor?n&后接函数,79,双胞胎素数,若两个素数之差为2,则称此两数为双胞胎数。求出200,1000之间的最大一对双胞胎数的和。#1764基本算法:主程序用单循环fora=200to1000-2,80,fora=200to1000-2ifprime(a)andprime(a+2)s=2*a+2?a,a+2,sendifnext?s&后接函数,81,友素数,若两个连续的自然数的乘积减1后是素数,则称此两数为友数对,该素数称为友素数。例如,由于8*9-1=71,因此,8与9是友数对,71是友素数。求100,200之间的友数对的数目。#40,82,k=0forn=100to200-1ifprime(n*(n+1)-1)k=k+1endifnext?k&后接函数,83,第一类超级素数,(不含0的)素数,且去掉前面一位或多位后仍是素数。如1223基本算法:单循环循环处理:求有关数、判断素数对三位数x:y=x-int(x/100)*100对四位数x:y=x-int(x/1000)*1000,84,求100,9999内第一类超级素数个数。可分别求出100,999和1000,9999的个数下面求1000,9999内的个数。#99。,85,程序,clearn=0forx=1000to9999y=x-int(x/1000)*1000z=x-int(x/100)*100w=x-int(x/10)*10ifnot(0$str(x)andprime(x)andprime(y)andprime(z)andprime(w)?xn=n+1endifendf?n&后接函数,86,第二类超级素数,(不含0的)素数,且去掉后面一位或多位后仍是素数。如2333基本算法:单循环循环处理:求有关数、判断素数y=int(x/10)z=mod(y/10),87,求100,9999内第二类超级素数个数。可分别求出100,999和1000,9999的个数下面求1000,9999内的个数。#16,88,程序,clear
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2024年环境监测信息化技术应用考核试卷
- 岗位变更合同(标准版)
- 内蒙古统一招聘城镇社区工作者考试真题2024
- 江苏省商务厅直属事业单位招聘考试真题2025
- 服务进度方案服务控制措施方案
- 2025建筑施工企业安管人员考试(专职安全生产管理人员C1机械类)冲刺试题及答案
- 难点解析人教版八年级物理上册第5章透镜及其应用同步练习试题(含答案及解析)
- 考点攻克人教版八年级物理上册第5章透镜及其应用-透镜专项测试试卷(含答案详解)
- 服务质量保证及措施方案
- 难点解析人教版八年级物理上册第4章光现象专项测试试卷(解析版含答案)
- 公司员工反腐倡廉管理制度
- 如愿音乐课件
- 华为fgOTN(细颗粒光传送网)技术白皮书
- 金融营销-试题及答案
- 人教版英语2024七年级上册全册单元知识清单(背诵版)
- 第4课 化解冲突有办法 (教学设计)-苏教版心理健康四年级上册
- SBT 11215-2018 商品交易市场建设与经营管理术语
- 2024春苏教版《亮点给力大试卷》 数学四年级下册(全册有答案)
- GB/T 35594-2023医药包装用纸和纸板
- 2021变电站端子箱
- 职业健康安全管理手册+程序文件(ISO45001-2018)
评论
0/150
提交评论