重庆普通专升本《计算机程序设计》中常用算法复习[推荐]由刀豆文库小编整理,希望给你工作、学习、生活带来方便,猜你可能喜欢“重庆专升本计算机复习”。
重庆普通专升本《计算机程序设计》中常用算法复习
一、常用算法有8个方面:
1、递推算法(级数、数列求和、二分法、梯形法、穷举法等)
2、排序算法(选择法排序、冒泡法)
3、查找算法(顺序查找、折半查找、统计、求和、计数)
4、有序数列的插入、删除操作
5、求解算法(最大数、最小数、素数、最大公约数、最小公倍数)
6、矩阵的处理(生成矩阵、交换和基本运算)
7、递归算法(求阶乘、最大公约数)
8、字符串处理(插入、删除、连接和比较)
二、常用算法的应用举例:(有21个程序)
1、计算S=1+2+„+100的值。(求和、统计)
2、找出100~999之间的所有“水仙花数”(穷举法、统计)
3、从键盘输入10个数,然后找出其中的最大值和最小值。(找最大数、最小数)
4、任意输入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和它本身之外不能被任何一个整数所整除的自然数叫质数,除去2之外,其它质数都是奇数,又称为素数。请设计一个程序,在屏幕上输出3——150之间的所有素数。
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
if 100=x1*10+x2*5+x3*1 and x3>0 then ?x1,x2,x3 endif next x2 next x1
12、求级数.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 i
14、生成矩阵.prg
程序如下:
*(4)生成矩阵.prg” clear dime a(5,5)for i=1 to 5 for j=1 to 5 do case case i
15、查找算法(顺序查找.prg)
程序如下:
*(1)顺序查找.prg“ clear dime a(10)for i=1 to 10
a(i)=int(rand()*100)??a(i)next i
input ”输入要查找的数:“ to x for i=1 to 10 if a(i)=x ?”找到:“,x,i return endif next i ?”没有找到!“
16、查找算法(折半查找.prg”)
程序如下:
*(2)折半查找.prg“(先排序,后查找)clear
dime a(10)n=10 for i=1 to 10
a(i)=int(rand()*100)??a(i)next *排序
for k=1 to n-1 for j=k+1 to n
if a(k)>a(j)
t=a(k)a(k)=a(j)a(j)=t
endif
endfor ? a(k)
endfor ?a(n)return *折半查找
input ”输入要查找的数:“to x l=1 h=10 do while l
if a(m)>x then h=m-1 else l=m+1 endif endif enddo if l
?”没有找到!“ endif
17、求解算法(最大公约数)
程序如下: *(1)最大公约数 input”输入M:“ to m input”输入N“ to n if n=0 then ?”数据有错!“ exit endif r=mod(m,n)do while r>0 m=n n=r r=mod(m,n)enddo
?”最大公约数是:“,n
18、求解算法(最小公倍数)
程序如下:
*(2)最小公倍数 input”输入M:“ to m input”输入N“ to n a=m b=n
if n=0 then ?”数据有错!“ exit endif r=mod(m,n)do while r>0 m=n n=r r=mod(m,n)enddo
?”最大公约数是:“,n ?”最小公倍数是:“,a*b/n
19、有序数列的插入操作
程序如下:
* 有序序列插入操作.prg” set talk off clear *定义数组
input '输入n=?' to n dime a(10)*给数组提供值 for k=1 to n
input '逐个输入数据'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(j)a(j)=t
endif endfor ? 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)
input ”输入要删除的位置数:“ to x if x>10 or xx then a(i)=a(i+1)else exit endif next i
?”删除一个元素后:" for i=1 to n-1 ?? a(i)next i 说明:字符串处理(插入、删除、连接和比较)与有序数列的插入、删除操作相似。