《计算机程序设计.doc》由会员分享,可在线阅读,更多相关《计算机程序设计.doc(10页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、一、常用算法有8个方面:1、递推算法(级数、数列求和、二分法、梯形法、穷举法等)2、排序算法(选择法排序、冒泡法)3、查找算法(顺序查找 、折半查找、统计、求和、计数)4、有序数列的插入、删除操作5、求解算法(最大数、最小数、素数、最大公约数、最小公倍数)6、矩阵的处理(生成矩阵、交换和基本运算)7、递归算法(求阶乘、最大公约数)8、字符串处理(插入、删除、连接和比较)二、常用算法的应用举例:(有21个程序)1、计算S=1+2+100的值。(求和、统计)2、找出100999之间的所有“水仙花数”(穷举法、统计)3、从键盘输入10个数,然后找出其中的最大值和最小值。(找最大数、最小数)4、任意输
2、入n个数,按由小到大的顺序排列并显示输出。(排序算法-选择法排序)5、(对字符串排序处理)有5个英文单词,分别为:Word,Excel,Powerpoint,Type,Angle,要求设计出如下程序:(1)在键盘上输入数N(本例输入5),把英文单词放入名为X大小为N的数组中(2)显示出X数组中的英文单词(3)对数组中的英文单词从小到大排序(4)显示出排序后X数组中英文单词6、求5的阶乘值(5!=?)7、计算 t=1!+2!+10! (即求阶乘之和)。计算 t=1!+2!+10! 即求阶乘之和(双循环)。8、多项式S=1+2+22+23+232,请设计一个程序,求S的值。9、除了1和它本身之外不
3、能被任何一个整数所整除的自然数叫质数,除去2之外,其它质数都是奇数,又称为素数。请设计一个程序,在屏幕上输出3150之间的所有素数。10、设计1个程序,要求是:(查找算法、统计、求和、找素数或质数)(1)在键盘上输入1个不小于3的自然数N(例输入10),求出其不到第N个自然数中奇数之和,并输出结果(2)输出1到第N自然数中所有质数的个数11、穷举法,整钱找零.prg 程序如下: *(1)穷举法整钱找零.prg、 *整钱找零:100=x1*10+x2*5+x3*1 *x1,x2,x3=1,x1+x2+x3=20 for x1=1 to 10 for x2=1 to 20 x3=20-x1-x2
4、if 100=x1*10+x2*5+x3*1 and x30 then ?x1,x2,x3 endif next x2 next x112、求级数.prg 程序如下: *求级数1.prg *s=1+1/2-1/3+1/4+. s=1 d=1 clear input 输入N:to n for i=2 to n s=s+d*1/i d=-d ?S next i ?s=,s13、求数列.prg 程序如下: *求数列2.prg fibnocsi数列 f1=1 f2=1 ?f1,f2 for i=1 to 20 f2=f2+f1 f1=f2-f1 ?f2 next i14、生成矩阵.prg程序如下: *
5、(4)生成矩阵.prg clear dime a(5,5) for i=1 to 5 for j=1 to 5 do case case ia(j)t=a(k)a(k)=a(j)a(j)=t endifendfor? a(k)endfor?a(n)return *折半查找 input 输入要查找的数:to x l=1 h=10 do while lx then h=m-1 else l=m+1 endif endif enddo if l0 m=n n=r r=mod(m,n)enddo?最大公约数是:,n18、求解算法(最小公倍数) 程序如下:*(2)最小公倍数input输入M: to mi
6、nput输入N to na=mb=nif n=0 then ?数据有错! exitendif r=mod(m,n)do while r0 m=n n=r r=mod(m,n)enddo?最大公约数是:,n?最小公倍数是:,a*b/n19、有序数列的插入操作程序如下: * 有序序列插入操作.prg set talk off clear*定义数组input 输入n=? to ndime a(10)*给数组提供值for k=1 to ninput 逐个输入数据to a(k)endfor*排序开始for k=1 to n-1 for j=k+1 to n if a(k)a(j)t=a(k)a(k)=a
7、(j)a(j)=t endifendfor? a(k)endfor?a(n) *插入数据 input 输入要插入的数: to x a(7)=x for i=n to 1 step -1 if a(i)x then a(i+1)=a(i) else exit endif next i a(i+1)=x ?插入一个元素后: for i=1 to n+1 ? a(i) next i20、有序数列的删除操作程序如下:* 有序序列删除操作.prg clear dime a(11) n=10 for i=1 to 10 a(i)=int(rand()*100) ?a(i) next for i=1 to n-1 for j=n to i+1 step -1 if a(j)10 or xx then a(i)=a(i+1) else exit endif next i ?删除一个元素后: for i=1 to n-1 ? a(i) next i