夏季学期算法与程序设计复习提纲.docx

上传人:b****1 文档编号:23304309 上传时间:2023-05-16 格式:DOCX 页数:20 大小:123.83KB
下载 相关 举报
夏季学期算法与程序设计复习提纲.docx_第1页
第1页 / 共20页
夏季学期算法与程序设计复习提纲.docx_第2页
第2页 / 共20页
夏季学期算法与程序设计复习提纲.docx_第3页
第3页 / 共20页
夏季学期算法与程序设计复习提纲.docx_第4页
第4页 / 共20页
夏季学期算法与程序设计复习提纲.docx_第5页
第5页 / 共20页
点击查看更多>>
下载资源
资源描述

夏季学期算法与程序设计复习提纲.docx

《夏季学期算法与程序设计复习提纲.docx》由会员分享,可在线阅读,更多相关《夏季学期算法与程序设计复习提纲.docx(20页珍藏版)》请在冰豆网上搜索。

夏季学期算法与程序设计复习提纲.docx

夏季学期算法与程序设计复习提纲

2010-2011年夏季学期算法与程序设计复习提纲

目录:

一、VB开发流程

二、VB相关文件

三、VB编程相关概念

四、VB语言

五、程序结构

六、常用算法

七、经典实例

一、VB开发流程

二、VB的相关文件类型

1、窗体文件:

*.frm

2、工程文件:

*.vbp

3、可执行文件:

*.exe

4、二进制文件:

*.frx(当在窗体上设置了图标图片等)

三、VB编程的相关概念

1、对象:

可以看作一个整体,具有一定属性和方法的事物。

VB的对象包括窗体和控件。

对象名称是代码中对它的称呼,VB靠它来识别对象,每一个对象都有一个唯一的名字。

2、常见对象:

窗体(form)

标签(label)

按钮(commandbutton)

文本框(textbox)

计时器(timer)

图像(Image)

3、容器对象:

可以在其中放置其他对象的对象。

Vb中的容器有:

窗体、框架、PictureBox。

4、对象方法:

方法:

对象具有的功能。

它是对象提供的是特定的函数或过程。

但方法与函数不同,方法属于对象,而函数不属于对象。

常见方法:

Print

作用:

窗体上输出,可接变量,表达式,提示语言。

应用实例:

Printa

Printx^2

Print“请输入一个数”

Print“请输入第”&n&“个数”

Pset

作用:

画点

语法1:

pset(x,y)[,color]

▲语法2:

pset[Step](x,y),[color]

Line

作用:

画线

语法1:

line(x1,y1)-(x2,y2)[,color][,b][f]

▲语法2:

line-(x,y)表示上一条直线的终点坐标作为本次的起点坐标

应用实例:

Line(0,0)-(2000,2000)

Line(0,0)-(2000,2000),vbred

Line(0,0)-(2000,2000),vbred,b

Line(0,0)-(2000,2000),vbred,bf

Circle

作用:

窗体上画圆

语法1:

Circle(x,y),r,[color]

▲语法2:

Circle[Step](x,y),r,[color,start,end,aspect]

Step:

不是必须的项目,是相对于当前点的坐标。

例:

CurrentX=1000·

CurrentY=2000

CircleStep(1000,500),400,vbRed

Start,end:

分别表示开始和结束的弧度。

范围是-2π~2π,逆时针画圆,弧度为正,画圆,弧度为负,画扇形。

例:

Circle(1000,500),400,vbRed,-2,-3

Circle(1000,500),400,vbRed,2,3

Circle(1000,500),400,vbRed,-2,3

Aspect:

画圆的纵横比。

应用实例:

Circle(scalewidth/2,scaleheight/2),1000,vbred

Cls:

作用:

清除当前窗体上的文字和线条

▲Show,hide窗体显示和隐藏

Form1.Show

Form1.Hide

VB窗体坐标系示意图

Y轴

X轴

(0,0)

 

▲变换坐标系:

Scale(x1,y1)-(x2,y2)

(x1,y1):

新坐标系左上角坐标

(x2,y2):

新坐标系右下角坐标

Scale(-1000,1000)-(1000,-1000)变换坐标系后,新坐标系原点坐标是在窗体中心,宽度为2000单位,高度为2000单位。

如下图所示,例:

Scale(-1000,1000)-(1000,-1000)

Circle(0,0),500,vbred

4、事件:

事件:

是指能被对象所识别的消息(动作)。

如单击Click、载入load、激活Activate等

事件过程的框架为:

Sub对象名字_事件名称(参数…)

……

EndSub

常用事件:

鼠标事件:

Click

窗体事件:

Activate,Load

时钟事件:

Timer

改变事件:

Change(滚动条,文本框)

5、常见属性:

标志对象的一些性质。

Caption:

显示标题,在对象表面显示。

Name:

是标识,VB靠它来识别对象,只能在设计状态下用

Visible:

确定是否可见。

取值True/False默认为True,表示可用。

Enabled:

确定是否可操作,取值True/False,False为禁止操作。

Forecolor:

确定前景颜色

Top:

确定对象离顶部距离

Left:

确定对象离左边距离

Height:

对象的高度,单位是twip缇,即:

1/1440inch

Width:

确定对象的宽度。

单位是twip,即:

1/1440inch

Scaleheight:

对象内部高度,不包括窗体边缘

Scalewidth:

对象内部宽度,不包括窗体边缘

Autosize:

对象的大小是否随标题的大小自动调整,取值True/False

AutoRedraw:

让窗体上的图形和打印字符持久输出,取值True/False

Picture:

放置图片的属性,记录图片路径

Interval:

时间间隔,以1/1000秒为单位

四、VB语言

1、Print:

在窗体上输出文字信息

2、End:

结束程序

3、Cls:

清除窗口内容

4、=:

赋值语句

5、Msgbox:

消息框语句语法:

msgbox(“要显示的内容”)

6、inputbox:

输入框语句语法:

a=inputbox(“提示的内容”)

7、常用函数:

Time:

取系统时间

Abs:

绝对值

Rnd:

产生到0到1的随机小数

Randomize:

随机函数初始化

Sqr:

求平方根a=sqr(5)a=5^(1/2)

Rgb(r,g,b):

由三原色合成一个颜色:

r,g,b的取值都是0~255

Qbcolor(a):

颜色函数:

a的取值是0~15

Val:

把字符串转化为数值

Int:

去掉数字的小数部分

▲Str:

把数字串转化为字符串

▲Chr:

把ASCII码转化为对应的字符

▲Asc:

字符的相应ASCII码值

8、常用运算符

⏹+

⏹-

⏹()

⏹*(乘)

⏹/(除)

⏹\(整除)

⏹mod(求余数)5mod3结果为2

⏹^(求幂)

⏹&(字符串连接):

"123"&"456"结果"123456"

9、关系运算符

⏹关系运算符

⏹等于=

⏹大于等于>=

⏹大于>

⏹小于等于<=

⏹小于<

⏹不等于<>

10、逻辑运算符

⏹非(NOT)

⏹与(AND)

⏹或(OR)

五、三大程序结构:

1、顺序结构:

按从上到下,从左到右的顺序运行

例子1:

顺序结构画多个圆

Circle(1500,1500),100

Circle(1500,1500),200

Circle(1500,1500),300

Circle(1500,1500),400

2、分支结构:

格式1:

If条件then

语句1

Endif

格式2:

If条件then

语句1

else

语句2

Endif

格式3:

If条件1then

命令语句1

Elseif条件2then

命令语句2

Elseif条件3then

命令语句3

Else

命令语句4……

Endif

例子2:

从键盘上输入一个数,判断这个数是奇数还是偶数

a=InputBox("请输入一个数",a)

IfaMod2=0Then

Print"这个数是偶数"

Else

Print"这个数是奇数"

EndIf

3、循环结构:

格式1:

While条件

循环体

Wend

格式2:

For(循环控制变量)=(初值)To(终值)[Step(步长)]

(循环体——即需要多次执行的语句)

Next(循环控制变量)

例子3:

计算1+2+3+4+……+20的值,将结果输出

n=1

s=0

whilen<=20

 s=s+n

n=n+1

wend

prints

例子4:

Fori=1To20

Circle(ScaleWidth/2,ScaleHeight/2),100*i,vbred

Nexti

六、常见算法:

1、累加:

求1~100的和

Sum=0

Fori=1To100

Sum=Sum+i

EndIf

Nexti

PrintSum

2、累乘

求3~10的乘积

s=1

Fori=3To10

s=s*i

Nexti

Printt

3、穷举法:

穷举法的思路:

列举出所有可能的情况,逐个判断有哪些是符合问题所要求的条件,从而得到问题的解答。

用于解决“是否存在”和“有多少可能性”等类型问题。

假设密码是一个5位数。

只记得密码为67□□8,其中百位和十位的数字记不清了,但知道该数能够被78整除,也能被67整除。

同学们能不能设计一个算法帮找出这个密码。

DimdAsLong

Dima1,a2AsInteger

Fora1=0To9

Fora2=0To9

d=67000+a1*100+a2*10+8

If(dMod78=0)And(dMod67=0)ThenPrintd

Nexta2

Nexta1

穷举法经典案例:

百元买百鸡问题。

假定小鸡每只5角,公鸡每只2元,母鸡每只3元。

现在有100元钱要求买100只鸡,编程列出所有可能的购鸡方案。

设母鸡、公鸡、小鸡各为x、y、z只,根据题目要求,列出方程为:

x+y+z=100

3x+2y+0.5z=100

三个未知数,两个方程,此题有若干个解。

解决此类问题采用“试凑法”,把每一种情况都考虑到。

方法一:

最简单三个未知数利用三重循环来实现。

方法二:

从三个未知数的关系,利用两重循环来实现。

参考代码:

Forx=0To33

Fory=0To50

z=100-x-y

Ifx*3+y*2+z/2=100Then

Printx,y,z

EndIf

Nexty

Nextx

4、冒泡法:

冒泡法的思路:

从最下面一个元素起,依次比较相邻的两个元素中的数据,将较小的数据调换到上面,小元素像气泡一样上浮。

冒泡法对5个数排序

Dima(5)AsInteger

DimiAsInteger

DimjAsInteger

PrivateSubForm_Activate()

Fori=1To5

a(i)=InputBox("")

Nexti

Fori=1To4

Forj=5Toi+1Step-1

Ifa(j)

t=a(j)

a(j)=a(j-1)

a(j-1)=t

EndIf

Nextj

Nexti

Fori=1To5

Printa(i)

Nexti

EndSub

七、

经典实例:

1、从键盘上输入x的值,输出分段函数y的值。

x=InputBox("请输入x的数值",a)

ifx<-2then

y=2*x

elseifx>=-2Andx<=2then

y=3

elseifx>2then

y=-3*x+1

endif

printy

2、绘制双色圆:

x=ScaleWidth/2

y=ScaleHeight/2

DrawWidth=5

Fori=1To10

IfiMod2=0Then

Circle(x,y),i*200,vbRed

Else

Circle(x,y),i*200,vbGreen

EndIf

Nexti

3、100个下降圆

Dimx(100)AsInteger

Dimy(100)AsInteger

Dimr(100)AsInteger

Dimd(100)AsInteger

Dimcolor(100)AsLong'color是长整型

PrivateSubForm_Load()

Randomize

Fori=1To100

x(i)=Rnd*Form1.ScaleWidth

y(i)=Rnd*Form1.ScaleHeight

r(i)=Rnd*500

d(i)=Rnd*100+20

color(i)=RGB(Fix(Rnd*256),Fix(Rnd*256),Fix(Rnd*256))

Nexti

EndSub

PrivateSubTimer1_Timer()

Fori=1To100

Circle(x(i),y(i)),r(i),BackColor

Ify(i)>=Form1.ScaleHeightThen

y(i)=0

EndIf

y(i)=y(i)+d(i)

Circle(x(i),y(i)),r(i),color(i)

Nexti

EndSub

4、模仿Windows登陆,对密码进行判断。

PrivateSubCommand1_Click()

IfText1.Text="student"AndText2.Text="123"Then

Label4.Caption="用户名和密码正确!

"

Else

Label4.Caption="用户名和密码错误!

"

EndIf

n=n+1

Ifn=3AndLabel4.Caption<>"用户名和密码正确!

"Then

Form1.Enabled=False

Label4.Caption="你已经输入错误3次,系统被锁定"

EndIf

EndSub

PrivateSubCommand2_Click()

Text1.Text=""

Text2.Text=""

Label4.Caption=""

EndSub

PrivateSubCommand3_Click()

End

EndSub

5、输入一个三位数,反向输出

PrivateSubCommand1_Click()

a=Val(Text1.Text)

X1=a\100

X2=(a-X1*100)\10

x3=a-X1*100-X2*10

Text2.Text=x3*100+X2*10+X1

EndSub

PrivateSubCommand2_Click()

Text1.Text=""

Text2.Text=""

EndSub

 

6自动升旗

PrivateSubCommand1_Click()

Timer1.Enabled=True

Timer2.Enabled=False

Command2.Enabled=False

EndSub

PrivateSubCommand2_Click()

Timer2.Enabled=True

Timer1.Enabled=False

Command1.Enabled=False

EndSub

PrivateSubTimer1_Timer()

IfImage2.Top>Image1.TopThen

Image2.Top=Image2.Top-200

Else

Command2.Enabled=True

EndIf

EndSub

PrivateSubTimer2_Timer()

IfImage2.Top+Image2.Height

Image2.Top=Image2.Top+200

Else

Command1.Enabled=True

EndIf

EndSub

7、图片放缩与移动

PrivateSubCommand1_Click()

Image1.Left=Image1.Left+10

EndSub

PrivateSubCommand2_Click()

Image1.Left=Image1.Left-10

EndSub

PrivateSubCommand3_Click()

Image1.Top=Image1.Top-10

EndSub

PrivateSubCommand4_Click()

Image1.Top=Image1.Top+10

EndSub

PrivateSubCommand5_Click()

Image1.Width=Image1.Width+10

EndSub

PrivateSubCommand6_Click()

Image1.Width=Image1.Width-10

EndSub

PrivateSubCommand7_Click()

Image1.Height=Image1.Height+10

EndSub

PrivateSubCommand8_Click()

Image1.Height=Image1.Height-10

EndSub

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 高中教育 > 理化生

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1