引用 | 编辑
a0910980869
2009-12-08 16:48 |
楼主
▼ |
||
x2
这两题我不知该怎么着手请大大帮帮我!!题目如下: 一、写一个程式显示如下的金字塔图案: 需要的物件有:Label *1 二、请用Light01.gif~Light03.gif( 、 、 ) 写一个灯 .. 访客只能看到部份内容,免费 加入会员 x0
|
引用 | 编辑
x09818
2009-12-11 11:08 |
1楼
▲ ▼ |
||||||||||
题目分析:
我把结果分成3段 1.填补空白:因为有15层所以第一行填补15-1=14个.第二行填补15-2=13个...以此类推~ 解:程式04-07行以一个回圈 由1到 (n-i) 来填补空白~ 2.产生顺向字串:第一行1个.第二行2个....~ 解:程式08行~利用行数取个位数~累加形成 3.产生反向字串:第一行0个.第二行1个....~ 解:利用顺向字串少取1位重复字[Mid(tempstr, 1, Len(Str(tempstr)) - 2)].再作字串反转[StrReverse]即可. 复制程式 01 Dim n As Integer = 15 02 Dim tempstr As String = "" 03 Label1.Text = "" 04 For i As Integer = 1 To n 05 For j As Integer = 1 To (n - i) 06 Label1.Text &= " " 07 Next 08 tempstr &= Mid(Str(i), Len(Str(i)), 1) 09 Label1.Text &= tempstr & StrReverse(Mid(tempstr, 1, Len(Str(tempstr)) - 2)) & vbCrLf 10 Next 如果Label1属性text预设为空白 则第3行可以省略 如果Label1属性textalign预设为topcenter 则第5~7行可以省略 如果预设只有15层 则第1行可以省略 变数n改为15 反之~要9层..则第1行=15改为=9 ps.大于15层.因为字串长度计算会出问题「字串长度计算因素」~至于为何~请高手详解吧~ 另依照题目分析.程式也可以用阵列下去写~请各位同学练习吧~ 个人解法~请先进指导~
x1 |
引用 | 编辑
x09818
2009-12-11 11:45 |
2楼
▲ ▼ |
||||||||||
依照你的题目解
直接一步一步驱动timer就好~ 程式原码有点长.不过可以设定到小时.分.秒.毫秒. 而且是倒数~ 复制程式 Dim hour, minisec, sec, min As Integer Private Sub Form3_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load hour = 0 min = 0 sec = 5 minisec = 0 Timer1.Enabled = True End Sub Private Sub Timer1_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Timer1.Tick Timer1.Enabled = True minisec -= 1 If minisec < 0 Then sec -= 1 : minisec = 60 If sec < 0 Then min -= 1 : sec = 59 If min < 0 Then hour -= 1 : min = 59 If hour < 0 Then hour = 0 End If End If End If Label1.Text = sec + 1 PictureBox1.Visible = True PictureBox2.Visible = False PictureBox3.Visible = False If hour = 0 And min = 0 And sec = 0 And minisec = 0 Then Timer1.Enabled = False sec = 3 Timer2.Enabled = True End If End Sub Private Sub Timer2_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Timer2.Tick Timer2.Enabled = True minisec -= 1 If minisec < 0 Then sec -= 1 : minisec = 60 If sec < 0 Then min -= 1 : sec = 59 If min < 0 Then hour -= 1 : min = 59 If hour < 0 Then hour = 0 End If End If End If Label1.Text = sec + 1 PictureBox1.Visible = False PictureBox2.Visible = True PictureBox3.Visible = False If hour = 0 And min = 0 And sec = 0 And minisec = 0 Then Timer2.Enabled = False sec = 6 Timer3.Enabled = True End If End Sub Private Sub Timer3_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Timer3.Tick Timer3.Enabled = True minisec -= 1 If minisec < 0 Then sec -= 1 : minisec = 60 If sec < 0 Then min -= 1 : sec = 59 If min < 0 Then hour -= 1 : min = 59 If hour < 0 Then hour = 0 End If End If End If Label1.Text = sec + 1 PictureBox1.Visible = False PictureBox2.Visible = False PictureBox3.Visible = True If hour = 0 And min = 0 And sec = 0 And minisec = 0 Then Timer3.Enabled = False sec = 5 Timer1.Enabled = True End If End Sub ps. timer属性interval设为1「如此才能动作到毫秒」 预设PictureBox1-3分别为红.黄.绿灯图片.属性Visible预设为False
x0 |
引用 | 编辑
saisai123321
2010-05-04 10:12 |
3楼
▲ |
有冇console ge 写
x0 |