VB6

2/29複習

admin2 | 29 二月, 2008 18:01

複習:求 1~100的質數‧(先做到N的因數個數這一步,配合For..Next語法)

 

預習:10進位轉2進位。(利用短除法求得餘數配合Do..Loop語法)

 R=N mod 2

 N=int(N/2)

2/22 複習

admin2 | 25 二月, 2008 16:08

1.利用重複迴圈do..loop語法,解決最大公因數GCD、最小公倍數LCM問題

 

2.利用重複迴圈for..next語法,解決因數、質數判斷問題?

寒假過完,交作業了

admin2 | 12 二月, 2008 12:48

請同學將你的練習作業進度報告一下!

1/18 自行動腦練習

admin2 | 17 元月, 2008 17:30

聽了那麼多,還是要寫出來才算會!請寫好存檔,拿來檢查! (閱讀全文)

1/11 巴斯卡三角形

admin2 | 11 元月, 2008 15:51

1.講了太多沒有實做,效果不佳,測試看看同學的程度

2.于玄缺席,說要來竟然沒來,食言而肥

3.寒假大家多用email連絡 & BLOG

 

             1
           1  1
         1  2  1
       1  3  3  1
     1   4  6  4   1
  1   5  10 10  5   1
1  6  15  20  15  6  1

 (閱讀全文)

12/31 踩地雷

admin2 | 24 十二月, 2007 14:10

簡易程式 ï¼Œè«‹æ”¹å¯«ã€‚

 

Option Explicit
Const Rows = 5  '列
Const Cols = 9  '欄
Const Bombs = 3 '地雷數量

Private Sub Form_Load()
    Dim i As Integer
   
    For i = 1 To Cols * Rows - 1
        Load Label1(i)                                          '載入控制項陣列第i個
        Label1(i).Visible = True                                '顯現此控制項
        Label1(i).Left = Label1(0).Left + Label1(0).Width * (i Mod Cols)  '調整X位置
        Label1(i).Top = Label1(0).Top + Label1(0).Height * (i Cols)     '調整Y位置
    Next i

       
        '§è¦åŠƒä¸€ï¼šäº‹å…ˆ 佈置地雷記號所在、計算周圍數字。可以用亂數指定位置
    Label1(0).Tag = "*"
    Label1(1).Tag = "*"
    Label1(2).Tag = "1"
    Label1(6).Tag = "*"
End Sub

       
'§è¦åŠƒäºŒï¼šæŒ‰åˆ°åœ°é›·å€åŸŸçš„處理(翻出地雷記號Tag到標題Caption、變底色)
'============物件陣列事件有分第幾Index個(注意:所有Label1陣列共用此段程式)==========

Private Sub Label1_Click(Index As Integer)      '第 Index 個Label1被按下
    If Label1(Index).Appearance = 0 Then           '如果已經按過了的地方
        Exit Sub                                            '就執行到此結束
    End If

    Label1(Index).Caption = Label1(Index).Tag   '●1.將屬性Caption設定成屬性Tag(地雷記號)
    Label1(Index).Appearance = 0                     '改成立體顯現方式
    Label1(Index).BackColor = RGB(255, 255, 0)  '●2.底色=黃色
   
    If Label1(Index).Tag = "*" Then             '●3.踩到地雷的處理(如果所按的這個物件是地雷記號)
        MsgBox ("你踩到地雷了")                     '對話方塊
        Label1(Index).ForeColor = RGB(0, 0, 255)    '色彩=紅色
        MsgBox ("遊戲即將結束")
        End                                         '程式結束
    End If

    Label3.Caption = Val(Label3.Caption) + 1    '●4.得分:分數增加1
   
    If Val(Label3.Caption) >= Rows * Cols - Bombs Then     '●5.如果地雷都翻遍了(得分>=16個無地雷的扣掉2個地雷記號)
        MsgBox ("恭喜過第1é—œ")                          '這裡沒有判斷重複得分狀況
        MsgBox ("遊戲即將結束,因為我沒有做第2é—œ")
        End
    End If
   
    '可以用搜尋方式,做到自動空白擴散
End Sub
 

 

12/31 控制項陣列

admin2 | 24 十二月, 2007 13:53

使用到控制項目陣列:Index編號

1.控制項名稱相同,編號不同

2.可以用複製/貼上

----控制項陣列 Command1--------

Option Explicit

Private Sub Command1_Click(Index As Integer)        '滑鼠按,輸入數字
    Text1.Text = Text1.Text & Index
End Sub

Private Sub Command2_Click()                        '相加
    If Label1.Caption <> "" Then                        '如果不是首次輸入
        If Label2.Caption = "+" Then                        '累加狀態:+之前的資料
            Text1.Text = Val(Label1.Caption) + Val(Text1.Text)
        End If
        If Label2.Caption = "-" Then                        ''累減狀態:-之前的資料
            Text1.Text = Val(Label1.Caption) - Val(Text1.Text)
        End If
    End If
   
    Label1.Caption = Text1.Text                         '將運算資料送至第1運算元
    Label2.Caption = "+"                                '紀錄狀態為 +
    Text1.Text = ""                                     '清除目前輸入的輸入框
End Sub

Private Sub Command3_Click()
    If Label1.Caption <> "" Then
        If Label2.Caption = "+" Then
            Text1.Text = Val(Label1.Caption) + Val(Text1.Text)
        End If
        If Label2.Caption = "-" Then
            Text1.Text = Val(Label1.Caption) - Val(Text1.Text)
        End If
    End If
   
    Label1.Caption = Text1.Text
    Label2.Caption = "-"
    Text1.Text = ""
End Sub

12/21 選擇排序(Selection Sort)

admin2 | 21 十二月, 2007 11:02

 
選擇排序(Selection Sort)
N個資料
找出第1小值(從1~N中找)
找出第2小值(從2~N中找)
找出第i小值(從i~N中找)
排序前:70 80 31 37 10 1 48 60 33 80
[1] 80 31 37 10 70 48 60 33 80 選出最小值1
[1 10] 31 37 80 70 48 60 33 80 選出最小值10
[1 10 31] 37 80 70 48 60 33 80 選出最小值31
[1 10 31 33] 80 70 48 60 37 80 ......
[1 10 31 33 37] 70 48 60 80 80 ......
[1 10 31 33 37 48] 70 60 80 80 ......
[1 10 31 33 37 48 60] 70 80 80 ......
[1 10 31 33 37 48 60 70] 80 80 ......
[1 10 31 33 37 48 60 70 80] 80 ......
'使用VB寫的程式 ,上週練習中,你能否找出最高分、最低分
'歸納:副程式、偵錯F8、中斷用滑鼠或F9 
Option Explicit
Private Sub Command1_Click()
    Dim a(5) As Integer '資料陣列
    Dim i As Integer
    Dim j As Integer
    Dim t As Integer    '暫時用
   
    '預設資料
    a(1) = 3
    a(2) = 5
    a(3) = 2
    a(4) = 7
    a(5) = 1
   
    '秀出排序前資料
    For i = 1 To 5
        Print a(i);
    Next i
    Print
   
    For i = 1 To 5 - 1              '找第 i 個小值
        For j = i + 1 To 5
            If a(i) > a(j) Then
                Call MySwap(i, j, a())  '用副程式,給參數,可重複呼叫,使用參數傳送對照:傳值、傳參考位址
                t = a(i)
                a(i) = a(j)
                a(j) = t
            End If
        Next j
    Next i
       
    '秀出排序後資料
    For i = 1 To 5
        Print a(i);
    Next i
    Print
       
End Sub

'資料交換可以另外自訂副程式
Private Sub MySwap(ByVal m As Integer, ByVal n As Integer, ByRef b() As Integer)
    Dim t As Integer
    t = b(m)
    b(m) = b(n)
    b(n) = t
End Sub

12/14陣列(Array)

admin2 | 14 十二月, 2007 13:33

12/14陣列(Array)

  • 將變數依序排列,共同取一個名稱

  • Dim 變數名稱(元素大小) As 資料型態
    陣列範圍:  0~元素大小   ,數量:元素大小+1

  • Dim 變數名稱(低序 To 高序) As 資料型態
    陣列範圍:  低序~高序     ,數量:高序-低序+1

  • 相關指令
    LBound(變數陣列):取得低序值
    UBound(變數陣列):取得高序值

例如:連續輸入班上同學姓名、年齡
Dim  A(42)  As String
Dim  T(0 To 42)  As  Integer

‘不用迴圈
A(0) =“林美美”
A(1) =InputBox(“姓名”)
T(0) =17
T(1) =Val(InputBox(“年齡”))

‘使用迴圈
For  i=1 To 42
   A(i)=InputBox(i & “號,姓名”)
   T(i)=Val(InputBox(I & “號,年齡”))
Next i



ç·´ç¿’1
a.寫一個程式可輸入N個學生成績,統計其總分、平均
b.寫一個程式可輸入N個學生成績,若發現輸入成績小於0,則不再輸入成績,最後,統計其總分、平均
     PS:會使用 Exit For跳離迴圈指令

ç·´ç¿’2
c.寫一個排序程式,任意輸入5個數字,由小到大輸出
        PS:使用選擇排序法(Selection Sort)

遊戲應用,未來可練習:
踩地雷
接龍
打磚塊
貪吃蛇

12/07筆記

admin2 | 07 十二月, 2007 15:46

12/07巢狀迴圈

迴圈內還有迴圈

寫一個程式可做矩形

指令 Print 資料1 ; 資料2 ; 資料3

印出資料,分號;”表示不跳行

A= “1” ; “2” ; “3” (X)

指令 Print 資料1 & 資料2 & 資料3

將資料整合成一個,再印出來

A= “11” & “22” & “33” (O)

Print A

指令 Print 資料1,資料2,資料3

印出資料,逗號,”跳幾格指令

Print

跳行

空
næ ¼ SPC(n)

Print SPC(3);

印出 *****

印出

*****
*****
*****

印出

*
***
*****

For A=1 to 3
    For B=1 To 5
        Print “*”;

    Next B
    Print
Next A

For A=1 to 3
    For B=1 To A
        Print “*”;
    Next B
    Print
Next A


12/7練習作業
1.寫一個程式可以計算1~2000年中間有多少個閏年?
被400整除
400 800 1600 2000 (O)
不被100整除且可被4整除
100  200 300(X) 1996 (O)
整除判斷語法
IF  (Y MOD 400=0)  OR (Y MOD 100<>0 AND Y MOD 4=0) THEN
 
2.寫一個程式可以列出1~1000的質數列‧
計算某一個整數N的因數有幾個(以可否整除做判斷),小 For
由1~1000,統計每個數字的因數個數,大 For
 
3.寫一個程式可以完成費柏納西數列:1,1,2,3,5,8,........
人工過程處理
歸納分析哪些是重複的過程

11/30迴圈練習題目

admin2 | 30 十一月, 2007 16:33

1.寫一個程式可以計算1~2000年中間有多少個閏年?

 

2.寫一個程式可以列出1~1000的質數列‧

 

3.寫一個程式可以完成費柏納西數列:1,1,2,3,5,8,........

數獨(SUDOKU)-題目

s610519 | 30 十一月, 2007 12:34

a016: 數獨(SUDOKU)

困難度: 3
通過: 7次 | 送出:26次 | 瀏覽: 636
通過: 7 人 | 送出: 9 人 | 通過比率: 78%
時間限制:10000 ms | 記憶體限制: 10000 KBytes
最後修改日期: 2007-11-22 09:55

內容:

數獨是一種源自18世紀末的瑞士數學家歐拉(Leonhard Euler)所創造的拉丁方塊游戲。

在9格寬×9格高的大九宮格中有9個3格寬×3格高的小九宮格,已經有一些數字在裡面了(但並非一定採用數字,例如採用字母a,b,c...),根據這些數字,運用你的邏輯和推理,在其他的空格上填入1到9的數字,但是要注意了,每個數字在每個小九宮格內不能重複,每個數字在每行、每列也不能出現一樣的數字。 這種遊戲只需要邏輯思維能力,與數字運算無關。雖然玩法簡單,但數字排列方式卻千變萬化,所以不少教育者認為數獨是鍛鍊腦筋的好方法。 (wikipedia)

現在我們可以用程式來判斷一個九宮格數字是不是一個數獨的正解。

輸入說明:

輸入的每一組測試資料均為 9 × 9 的矩陣,且全部為 1~9 的數字,每兩組九宮格之間以一空行作為分隔

輸出說明:

yes or no

範例輸入:

1 2 3 4 5 6 7 8 92 3 4 5 6 7 8 9 13 4 5 6 7 8 9 1 24 5 6 7 8 9 1 2 35 6 7 8 9 1 2 3 46 7 8 9 1 2 3 4 57 8 9 1 2 3 4 5 68 9 1 2 3 4 5 6 79 1 2 3 4 5 6 7 81 9 3 2 6 5 4 7 87 8 2 3 1 4 9 5 64 5 6 9 7 8 1 3 22 3 4 8 5 1 6 9 79 6 5 4 3 7 2 8 18 7 1 6 9 2 3 4 53 1 9 5 8 6 7 2 45 2 7 1 4 3 8 6 96 4 8 7 2 9 5 1 3

 

範例輸出:

noyes

提示:


出處:

Jiangsir

11/30 進度

admin2 | 23 十一月, 2007 11:41

11/23-關於迴圈

程式流程

依序由上而下

條件分支判斷

迴圈重複執行

迴圈: 讓電腦做重複的指令 例如你需要執行 Print “123”     100次

笨方法:Print    “123”
              Print    “123”
              Print    “123”
              .......100行指令.........

當機處理:Ctrl + Break 強制中斷執行

 (閱讀全文)

11/16自習作業

admin2 | 05 十一月, 2007 13:16

老師出差,請回去做以下練習作業:

 (閱讀全文)

11/09自習作業

admin2 | 05 十一月, 2007 13:14

老師出差,請回家做作業,作業如下:
 
Accessible and Valid XHTML 1.0 Strict and CSS
Powered by LifeType - Design by BalearWeb