高中算法与算法的描述_第1页
高中算法与算法的描述_第2页
高中算法与算法的描述_第3页
高中算法与算法的描述_第4页
高中算法与算法的描述_第5页
已阅读5页,还剩9页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

.例1:求圆的周长和面积inputrc=2*π*rs=π*r*rprintc,s练习:求三个数中的最大数。〔用伪代码描述4.程序与程序语言〔1程序的定义:程序实际上是一组及其操作的指令或语句的序列,是算法的一种描述〔2程序的基本特征:程序一共有七个基本特征1、程序中,每一个算法的步骤对应着程序设计语言的一个或多个语句,每个语句对应一个或者多个操作。每个操作都要求有执行对象,并且根据对象状态变化形成动作的效果,同事可变的对象用变量来表示,变量的值的变化则可通过操作赋值来完成。2、除非特殊索命程序都是从第一条语句开始顺序开始向下执行。3、程序总是施行与操作与某些对象,这些对象通常称为数据。4、这些数据一般应该有属性和取值范围,即类型说明。5、有时语句要求执行者作出判断,即在某种条件成立情况下执行一条或一组语句,否则执行另一条或一组语句。6、一条或一组语句可能需要执行一次以上,当一条或一组语句要重复时,必须指明重复的次数或重复的条件。7、程序本身是一个静态的实体,而执行语句的进程是动态的。〔3程序的基本结构:顺序结构、选择结构、循环结构。〔4程序设计语言的的产生和发展1、机器语言:二进制代码指令2、汇编语言:类似英语缩略词且带有助记性符号的语言,每条汇编指令和一条机器指令相对应,只是指令码和操作数都采用符号形式。而这种语言是不能被机器直接接受,必须用一种语言翻译器将程序中的每条语句翻译成机器语言才能执行。3、高级语言:高级语言本身不是一种语言,只是一类语言的分类。用高级语言编写的程序必须经过翻译器将其翻译成机器语言,才能在计算机上执行。常见的高级语言:C语言、C++、pascal、java、C#、VB、Basic〔5程序的编辑和翻译1、程序的编辑:以汇编语言或者高级语言所编写的程序被称为"源代码",这些代码需要我们逐一的输入到计算机中。并把他们以文件的形式保存起来,这个过程称为程序的编辑2、程序的翻译:前面的学习中使我们知道,计算机只能识别和执行二进制的机器语言代码,而我们用级语言或汇编语言编写的程序要想被计算机执行,必须翻译成机器语言程序,最终才能被计算机执行。高级语言的翻译程序一般则有两种类型:编译程序和解释程序。练习题:1下面对算法描述正确的一项是:〔A、算法只能用自然语言来描述B、算法只能用图形方式来表示C、同一问题可以有不同的算法D、同一问题的算法不同,结果必然不同2.下面关于算法描述正确的是〔<A>算法不可以用自然语言表示<B>算法只能用框图来表示<C>一个算法必须保证它的执行步骤是有限的<D>算法的框图表示法有0个或多个输入,但只能有一个输出3、图形符号""在算法流程图描述中表示<>.A处理或运算的功能B输入输出操作C用来判断条件是否满足需求D算法的开始或结束4、以下哪个是算法的描述方法?<>A流程图描述法B枚举法C顺序法D列表法5、下面的语句是一个计算机程序的操作说明:〔1初始值为x=1,y=1,z=0,n=0;〔2n=n+1〔将当前n+1的值赋予新的n;〔3x=x+2〔将当前x+2的值赋予新的x;〔4y=2y〔将当前2y的值赋予新的y;〔5z=z+xy〔将当前z+xy的值赋予新的z;〔6如果z>7,则执行语句〔7,否则返回语句〔2继续进行;〔7打印n,z;〔8程序终止.由语句〔7打印出的数值为______,_______.6、以下属于计算机程序语言的有〔A、汇编语言B、高级语言C、机器语言D、低级语言7、执行程序时,程序中的每一条语句至少要运行一次〔8、最早的程序设计语言是汇编语言〔9、程序设计语言是指人们编制程序所使用的计算机语言,VB是低级语言〔10、高级语言翻译程序有两种类型:解释程序和编译程序〔第二章程序设计基础第一节常量、变量的定义VB程序的一般包括如下部分:〔1数据类型说明部分〔2数据的输入部分〔3数据的处理部分〔4数据的输出部分例:求圆的周长和面积PrivateSubCommand1_Click<>DimrAsSingle//定义r为单精度型DimcAsSingle//'定义c为单精度型DimsAsSingle//定义s为单精度型r=inputbox<"输入半径r">//输入半径rc=2*3.14159*r//计算周长s=3.14159*r*r//计算面积printc//输出周长prints//输出面积EndSub一、常量:在程序进行过程中不变的量,在VB中一般分数值常量与字符常量两种。数值常量:就是数学中说的常数,分整型常量和实型常量两种整型常量:即整数,指不带小数点的数值如1、0、-10、+35等都是合法的整数实型常量:即实数,指带小数点的数值。实型常量又分为定点数和浮点数两种。例:定点数:3.14159和-6.8,1.99浮点数:2E6、1E5例:1.2345×103可表示为1.2345E3,字母E表示底数10浮点数就是数学上的科学计数法。字符串常量:被一对双引号括起来的若干个合法的字符称为字符串常量。例如:"China"、"VisualBasic"、"18”、"3.1415符号常量:如果多次用到同一个常量,则可用一个有意义的名字表示这个常量。二、变量:在程序执行过程中,其值可以改变的量称为变量变量命名注意要点:1、必须以字母开头,不能以数字或其他字符开头。2、只能由字母、汉字、数字学或下划线组成,不能含有小数点、空格等字符。3、最长不超过255个字符4、不能以VB保留字作变量名,如语句定义符、函数名等。5、VB不区分变量名中字母大小写。如HELLO和Hello是同一个变量。表2-1常用数据类型整型Integer从-32768到32767长整型Long从-2147483648到2147483647单精度实型Single负数-3.402823E+38到-1.401298E-45正数1.40129E-45到3.402823E38但它只有7位有效数字双精度实型Double绝对值小于10308的数,它有15位有效数字日期型Date<Time>如:#2008-01-31##01/31/2008#字符型String如:"中国","zhongguo"布尔型BooleanTrue或False三、常量和变量的定义符号常量的声明:Const常量名[As常量类型]=常量值如:ConstpiAsSingle=3.14159常量名为pi变量的声明:Dim<变量名>As<变量类型>如:DimaAsInteger定义一个整型变量,变量名为a变量的赋值:变量=表达式例:PrivateSubForm_Click<>DimaAsInteger,bAsInteger,cAsIntegerDimstrAsStringa=54b=114c=a+bstr="HelloWorld"Print"a=";a,"b=";b,"c=";cPrintstrEndSub四、运算符算术运算:+-*^/\mod加减乘乘方除整除取余^指数例:2^2=4/〔浮点除例:5/2=2.5\整除例:5\2=2Mod求余数例:5Mod2=12、关系运算=><>=<=<>等于大于小于大于等于小于等于不等于注意:关系表达式的运算结果为布尔值True或False例:3>2结果为True<真或是>3、逻辑运算Not〔取反And〔与Or〔或运算结果为布尔型〔BooleanTrue或False逻辑运算符的优先级为:No>And>Or4、日期运算符与日期表达式日期表达式是用日期运算符"+"或"-"将算式表达式、日期型常量、日期型变量、日期函数等连接起来的式子,如表达式"#2003/09/01#+30”的运算结果是"2003-10-1";表达式"#2003/10/20#-#2003/10/105、字符运算字符串连接符为"+"和"&""123”+"45”="12345”"123”&"45”="12345”123+"45”=168"123”+45=168运算符的执行顺序:在VB中,当一个表达式中同时出现多种运算符时,运算次序由运算符的优先级决定,优先级高的运算符先运算,优先级相同的从左向右进行运算。不同性质的运算符优先级如下。算术运算符>字符串运算符>关系运算符>逻辑运算符6、常用函数函数名说明示例结果Sin〔XX弧度的正弦Sin〔00Cos<X>X弧度的余弦Cos<0>1Tan〔XX弧度的正切Tan〔00Atn〔XX用弧度表示的反正切值Atn〔00Abs〔XX的绝对值Abs〔-3.53.5Exp〔Xe的指定次幂,即exExp〔320.086Log〔X一个数值X的自然对数Log〔102.3Sqr〔XX的平方根Sqr〔93Sgn〔X符号函数:X>0,得到1,X<0,得到-1,X=0得到0Sgn〔-3.5-1Int〔X不大于给定数X的最大整数Int〔-1.6-2Fix〔XX的整数部分Fix〔-1.6-1Cint〔X类型为:Integer-322768~32767小数部分四舍五入CLng〔X类型为:Long-2147483648~2147483647小数部分四舍五入Mid〔C,N1,N2从C中N1位开始取出长度为N2的子串Mid<"ABCDEFG",3,2>"CD"Right<C,N>返回字符串右边N个字符Right<"ABCDEFG",3>"EFG"Left<C,N>返回字符串左边N个字符Left<"ABCDEFG",3>"ABC"Len<C,N>测量字符串的长度Len<"VB学习的开始">7Space<N>产生N个空格组成的字符串"ABC"&"Space<N>"&"113"ABC123Date<>返回当前系统日期〔yy-mm-ddDate<>或Date04-12-18Time<>返回系统时间Time<>或Time10:36:08练习题:1、下列变量名写法错误的是<>A、abc_123B、123abcC、abc123D、abc2、下列语句中定义了一个实型变量的是<>A、DimendasIntegerB、DimsumAsSingleC、DimNameAsStringD、其它三项都不对3、在VB中,以下关于符号常量的声明,声明正确的是:<>A、DimTAGasStringB、ConstTAGasString"Visual"+"Basic"C、ConstTAGasString="VisualBasic"D、ConstTAGasString4、下面<>不是字符串常量A、"True"B、#False#C、""D、"你好"5、分析s=11\3+11Mod3,s的值是<>.A、5B、6C、4D、36、下面表达式的值是false的有<>.A、"969"<"n97"B、Int<4.99><>len<"basic">C、str<2000><"1997"D、3>27、设a=2,b=3,在VB中,表达式a>bOrb>3值是:<>A、FalseB、TrueC、-1D、18、VisualBasic中,下列<>函数是求绝对值的。A、ABS〔XB、SQR<XC、INT〔XD、GN〔X>9、表达式Abs<-3.6>*sqr<100>的值是<>。A、-36B、360C、36D、-36010、下列<>数据类型不是数值型。A、DateB、SingleC、DoubleD、Integer11、下列函数中,返回值是字符串的是<>.A、MidB、InstrC、ValD、Len12、代数表达式表达式后错误的是<>A、g*t*t/2B、1/2*g*t^2C、g*t^2/2D、gt^2/213、数学式子在VB中的正确写法是:〔A、<2*a+b>/4*aB、<2*a+b>/<4ab>C、<2a+b><4ab>D、<2*a+b>/<4*a*b>14、判断x是否在区间[a,b]上,在VB中以哪个逻辑表达式是正确的?<>A、a<xandx<=bB、a<x<=bC、a<xandx≤bD、a>xandx<=b15、向n变量存入1个2位整数,要使此2位数十位和个位上的值分别存入x,y变量。正确的算法是<>。选项:x、①x=Left<n,1>②y=n-x*10③Printx:PrintyB、①x=Left<n,1>②y=Right<n,1>③Printx:PrintyC、①x=n/10②y=n-x*10③Printx:PrintyD、①x=Int<n/10>②y=n-x*10③Printx:Printy16、向x变量中输入任意一个小写字母,再将x变量中的小写字母转成大写字母。正确的算法是<>.选项:A、①输人字母到x②a=Asc<x>-32③x=chr<x>④PrintxB、①输人字母到x②a=Asc<x>+32③x=chr<x>④PrintxC、①输人字母到x②a=Val<x>一32③x=Chr<x>④PrintxD、①输人字母到x②a=Val<x>+32③x=Chr<x>④Printx第二节程序的顺序结构一、赋值语句1.格式:变量名=表达式功能:将右边的表达式的值赋给左边的变量〔1"变量"可以是简单变量,也可以是字符变量;〔2"="是赋值符号,它的含义将表达式的值赋给左边的变量。〔3表达式代表一个数值或一个字符串。例1:A=123;A=B;B=2*3;A=A+10;C$="CHINA"2.赋值语句的功能:计算功能和赋值功能3.注意事项〔1赋值语句不是代数等式,赋值号与等号形同而意不同;〔2赋值语句类型必须匹配;〔3把字符串赋给串变量时,该字符串必须用双引号括起来;〔4变量单元每次只能存一个数据,但可以多次赋值。如:C$="COMPUTER"注意:"$"是区分字符串变量的的标志,即要在变量名后加"$"构成字符串变量,同时,字符串用双引号括起来,然后才赋给字符串变量。二、输入数据的函数InputBox〔是提供从键盘输入数据的函数。利用它可产生一个对话框,提示用户输入数据并单击命令按钮。该函数返回值是字符串类型〔string。InputBox〔的语法格式为:InputBox〔提示信息,标题,默认值,位置提示信息:指对输入数据的提示,显示在对话框中,不能省略标题:指运行此函数后弹出的对话框的标题。默认值:指默认的输入数据值位置:指运行此函数后弹出的对话框的左上角在屏幕上的位置注意:提示信息和标题是用引号引起来的字符串三、输出数据的方法1、基本格式:Print输出内容注意:1、输出内容可以是数、变量、表达式,也可以是用引号括起来的字符串;2、如果输出内容是数,变量,表达式,则输出的是数,变量,表达式,如果是用引号引起来的字符串,则原样输出;3、多个输出内容,可以用逗号或分号分隔;如果用分号,则后面一个输出紧跟前一个输出;如果是逗号,则分区格式输出;4、如果输出内容后面没有符号,则表示下一个Print换行输出,如果print中没有输出内容,则表示输出一个空行。程序设计的顺序结构:代码按照由上到下的顺序一行一行地执行。程序执行过程中没有分支、没有重复,这种结构称为顺序结构。例1:交换两个变量中的数据。PrivateSubcmdSwap_Click<>DimxAsSingle,yAsSingleDimmAsSinglex=inputbox<"请输入X的值">y=inputbox<"请输入Y的值">m=xx=yy=m//交换数据printx,yEndSub例2:从键盘上输入一个三位数,然后将它反向输出,如:输入456,输出654。分析问题设X为输入的三位整数,Y为X的方向输出。因为X的百位、十位、个位分别为:X1=X\100X2=<X-X1*100>\10X3=X-X1*100-X2*10所以Y=X3*100+X2*10+X1<2>设计算法①输入X的值②计算:X1=X\100③计算:X2=<X-X1*100>\10④计算:X3=X-X1*100-X2*10⑤计算:Y=X3*100+X2*10+X1⑥输出Y的值〔3编写程序Privatesubcommand_click<>Dimxasinteger,x1asinteger,x2asinteger,x3asinteger,yasintegerX=inputbox<"x=","输入">X1=X\100X2=<X-X1*100>\10X3=X-X1*100-X2*10Y=X3*100+X2*10+X1Print"y=";yEndsub〔4调试程序练习题:1、以下是一段VB程序:a=1b=a+1c=a+b它的基本结构属于〔A、顺序结构B、选择结构C、循环结构D、树型结构2、下列VB程序运行后,变量x的值为<>.x=2Printx+lPrintx+23、执行以下程序,在弹出的第1个输入框输入"10",第2个输入框输入"15",则输出的结果为〔。

DimaAsInteger,bAsInteger

a=InputBox<"输入","a=">

b=InputBox<"输入","b=">

Printa;"+";b;"=",a+b

A.b+a=25B.10+15=25C.a+b=25D.15+10=254、已知A,B,C,D是整型变量,且都已有互不相同的值,执行语句"B=8:A=C:D=A:D=B"后,其值相等的变量是〔。

A.A,DB.A,CC.C,BD.B,A5、要交换变量A和B之值,应使用的语句组是〔。

A.A=B:B=C:C=AB.C=A:A=B:B=C

C.A=B:B=AD.C=A:B=A:B=C6、有如下VisualBasic程序段:

m="VB"

n="is"

t="easy"

t=m+n+t

该程序段运行后,变量t的值为。7、试编写一个程序,实现输入一个四位数的数,然后将它倒序输出。第三节程序设计的分支结构一、行If语句行If是指在一行中写完的If语句。其一般格式为:格式一:If条件Then语句功能:执行这种形式的If语句时,首先对条件进行判断。若条件成立,则执行Then后面的语句;若条件不成立,则执行If语句后继程序行的语句格式二:If条件Then语句1Else语句2功能:执行这种形式的语句时,先进行判断。若条件成立,则执行语句1;否则执行语句2。例1:输入三个不相同的数,求出其中最小数。PrivateSubForm_Click<>DimaAsSingle,bAsSingle,cAsSingleDimMinAsSinglea=InputBox<"输入a","输入框">b=InputBox<"输入b","输入框">c=InputBox<"输入c","输入框">Ifa<bThenMin=aElseMin=bIfc<MinThenMin=cPrint"最小数=";MinEndSub二、块If语句行If-then语句只能根据条件的真假是否执行一条语句,当Then部分和Else部分包含的内容较多时,则可选用"块If语句"结构。格式一:If条件Then语句块EndIf例2:当从输入一个数时,当该数大于或等于60时显示"及格",该数小于60时显示"不及格"。PrivateSubCommand1_Click<>DimaAsSinglea=InputBox<"输入a">Ifa>=60ThenPrint"及格"EndIfIfa<60ThenPrint"不及格"EndIfEndSub格式二:If条件Then语句块1Else语句块2EndIf例3:编写一程序,求一个一元二次方程ax2+bx+c=0的两个根。PrivateSubForm_Click<>DimaAsSingle,bAsSingle,cAsSingleDimdAsSingle,x1AsSingle,x2AsSinglea=InputBox<"输入a","输入框">b=InputBox<"输入b","输入框">c=InputBox<"输入c","输入框">d=b2-4*a*cIFd>=0thenx1=<-b+sqr<d>>/2elsex1=<-b-sqr<d>>/2endifprint"x1=";x1,"x2=";x2EndSub练习题:1、以下是一段VisualBasic程序:IfI=1ThenX=X+1ElseX=X*2EndIf它的基本结构属于<>.A、选择结构B、循环结构C、顺序结构D、树型结构2、下列程序段运行后,变量Value的值是〔x=20Ifx>=10ThenValue=5*xElseValue=4*xEndIfA、100B、80C、90D、703、如要完成:从键盘输入一个正整数,判断是否是奇数,如是就在屏幕上显示。比较好的算法是<>选项:A、①输人的数存人n变量②f=<n/2=Int<n/2>>③如果f中的值为True就显示n中值B、①输人的数存人n变量②f=<n/2=Int<n/2>>③如果f中的值为False就显示n中值C、①输人的数存人n变量②如果n/2=Int<n/2>成立,就显示n中值D、①输人的数存人n变量②如果n/2=Int<n/2>不成立,就显示n中值4、下面是判断变量x是不是能被5整除的偶数的程序,横线上的逻辑表达式应为<>PrivateSubcommandl_Click<>DimxAsIntegerx=Val<Text1.Text>If____=0ThenPrint"这个数是能被5整除的偶数"ElsePrint"这个数不是能被5整除的偶数"EndIf选项:A、<xMod5>=0And<xMod2>=0B、xMod10=0C、xMod5=0D、xMod2=05、如要完成:从键盘输入一个正整数,判断是否是偶数,如是就在屏幕上显示。比较好的算法是<>。选项:A、①输入的数存人n变量②f=<n/2=Int<n/2>>③如果f中的值为True就显示n中值B、①输入的数存人n变量②f=<n/2=Int<n/2>>③如果f中的值为False就显示n中值C、①输入的数存人n变量②如果n/2=Int<n/2>成立,就显示n中值D、①输入的数存人n变量②如果n/2=Int<n/2>不成立,就显示n中值6、下列程序段运行后,m的值为<>A=2:b=1:c=5IfA<bThenm=AElsem=bIfc<mThenm=c选项:A、1B、2C、5D、提示错误,无答案第四节程序设计的循环结构一、For-Next循环For循环变量一般形式是:For循环变量=初值To终值Step循环变量增量循环体Nxt循环变量例1:求s=1+2+3+4+100PrivateSubForm_Click<>DimiAsIntegerDimsumAsIntegersum=0Fori=1To100step1sum=sum+i'循环体NextiPrint"sum=";sumEndSub循环变量的初值、终值、循环变量增量都是数值型。其中要重复执行的操作称为循环体,增量可正可负,如果没有设置Step,则增量的缺省值为1循环变量取初值;循环变量与终值比较,没有超过终值转3,否则循结束,接着执行循环语句的后继语句;执行一次循环体循环变量增加一个增量重复步骤2~4。以上可以看出,For-Next循环变量是一种当型循环。说明For语句与Next语句必须成对出现,而且它们当中的"循环变量"必须是同一个变量,如上例中均为I。当循环变量为正时,循环变量超过终值,是指循环变量的值大于终值时;若为负,则是指循环变量的值小于终值。AAP入口出口例2:编写程序,使能打印下面所示的图案。程序:PrivateSubForm_Click<>DimiAsIntegerDimjAsIntegerFori=1To6Forj=1ToiPrint"";NextjPrintNextiEndSub一个FOR循环里包含了另一个FOR,我们称它为嵌套循环。练习题:1、阅读如下程序,跟踪程序的执行过程,观察变量A的值的变化,写出循环结束时变量A的值、循环次数和程序的运行结果。privaatesubcommand1_click<>forA=1TO10printANextAEndSubprivaatesubcommand1_click<>ForA=1To100S=S+ANextAPint"S=";SEndSubprivaatesubcommand1_click<>ForA=100To1step-1S=S+ANextAPrint"s=";sEndSubprivaatesubcommand1_click<>ForA=1To10A=A+1PrintANextAEndSub2、阅读下面程序,输出结果是<>PrivateSubForm_Click<>DimiAsInteger:DimsAsIntegers=0Fori=1To5s=s+iNextiPrints,iEndSub选项:A、15 6B、s=15i=6C、65D、s=6i=53、试编写一个程序,求出100以内能被3整除的所有正整数。4、试编写一个程序,求出1*2*3……*100积。二、Do-Loop循环For-Next循环的次数是确定的,但是有的问题只知道循环结束的条件,重复执行的次数事先并不知道,这是需要Do-Loop循环格式一:DoWhile条件循环体Loop例3:求最大公约数PrivateSubCommand1_Click<>DimaAsIntegerDimbAsIntegerDimrAsIntegera=InputBox<"输入a">b=InputBox<"输入b">r=aModbDoWhiler<>0a=bb=rr=aModbLoopPrintbEndSub当VB执行DoWhile-Loop循环时,先判断指定的条件是否为真,若条件为真,执行循环体,条件为假时退出循环。格式二:Do循环体LoopUntil条件这种循环的执行过程如图所示。进入循环体后,先执行一次循环体A,然后再检查条件P是否成立。如果不成立,就重复执行循环体A,直到条件P成立退出循环体。AAPN例4:如果我国人口每年以平均1.5%的速度增长,问多少年后我国人口达到或超过15亿?设现在人口为12.3亿。PrivateSubForm_Click<>DimpAsSingleDimrAsSingleDimnAsIntegerp=1230000000r=0.015n=0Dop=p*<1+r>n=n+1LoopUntilp>=1500000000Printn;"年后","人口=";pEndSub练习题:1、在VB中,以下程序段:x=0DoWhilex<50x=<x+2>*<x+3>Loop执行后,x的值为:<>.A、168B、50C、

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论