1. THÔNG BÁO TUYỂN ADMIN DIỄN ĐÀN 2013
    Tìm kiếm nhà trọ - Ở ghép
    THÔNG BÁO BÁN ÁO SPKT.NET CHO THÀNH VIÊN DIỄN ĐÀN


    HÃY TÌM KIẾM Ở ĐÂY TRƯỚC KHI ĐẶT CÂU HỎI
    {xen:phrase loading}

đáp án đề thi visual basic học kỳ 1 năm 2011

Thảo luận trong 'Visual Basic' bắt đầu bởi Ngọc Bình, 15 Tháng ba 2011.

  1. Ngọc Bình New Member

    Số bài viết: 61
    Đã được thích: 0
    Điểm thành tích: 0
    Trường Đại học Sư phạm Kỹ thuật TP.HCM ĐÁP ÁN MÔN: NHẬP MÔN TIN HỌC
    Khoa CNTT MÃ MÔN HỌC: 1081020
    Bộ môn Tin học cơ sở Đáp án số 01.
    ----------------------- -----------------------

    Câu 1: (3,5đ)
    N = A + (4 số cuối của MSSV) – (ngày sinh)
    a. TinhS1: tổng các số chẳn trong khoản từ 1à N 1 điểm
    Dim S1,A, N As Integer
    A= Val(txtA.Text)
    N = A + (4 số cuối của MSSV) – (ngày sinh)
    For i = 1 To N
    If i Mod 2 = 0 Then
    S1 = S1 + i
    End If
    Next
    txtKetQua.Text = S1
    b. TinhS2: tổng các số chia hết cho 9 trong khoản từ 1à N 1 điểm
    Dim S2,A, N As Integer
    A= Val(txtA.Text)
    N = A + (4 số cuối của MSSV) – (ngày sinh)
    For i = 1 To N
    If i Mod 9 = 0 Then
    S2 = S2 + i
    End If
    Next
    txtKetQua.Text = S2

    c. TinhS3: số các số nguyên tố trong khoản từ 1àN 1.5 điểm
    SV có thể hiện thực nhiều cách ví dụ: sử dụng hàm isSNT (phải hiện thực trong bài làm nếu không chỉ được ½ số điểm câu này)
    Function isSNT ( n as Integer) As Boolean
    Dim Kq as Boolean
    Kq= True
    If n <> 2
    For i = 3 to n\2
    If n mod I = 0 then
    Kq = False
    Exit For
    End if
    Next
    End if
    isSNT =Kq
    End Function
    Dim S1,A, N As Integer
    A= Val(txtA.Text)
    N = A + (4 số cuối của MSSV) – (ngày sinh)
    For i = 1 To N
    If isSNT(i) Then
    S3 = S3 + 1 è đếm số các số nguyên tố
    End If
    Next
    txtKetQua.Text = S1



    Câu 2: (3đ) SV có thể hiện thực nhiều cách



    a. Chương trình cho phép người dùng nhập một chuỗi vào InputText sau đó đảo ngược các từ trong chuỗi đó và xuất ra OutputText. Ví dụ:
    InputText = ”nhập môn tin học”
    è OutputText = ”học tin môn nhập”
    Private Sub DaoNguoc_Click()
    Dim batdautu As Boolean
    Dim start, length, i As Integer
    Dim inputS, outputS, temp, chudau, c As String
    batdautu = False
    start = 1
    length = 1
    inputS = InputText.Text
    For i = 1 To Len(inputS)
    c = Mid(inputS, i, 1)
    If c <> Space(1) Then
    If Not batdautu Then ' neu batdautu = false
    batdautu = True
    start = i
    length = 1
    Else
    length = length + 1
    End If
    Else ' c = Space(1)
    If batdautu Then
    temp = Mid(inputS, start, length)
    outputS = temp & " " & outputS
    batdautu = False
    length = 1
    End If
    End If
    Next
    If batdautu Then
    temp = Mid(inputS, start, length)
    outputS = temp & " " & outputS
    batdautu = False
    End If
    OutputText.Text = outputS
    End Sub
    b. Chương trình cho phép người dùng nhập một chuỗi vào InputText sau đó viết
    hoa chữ đầu của các từ trong chuỗi đó và xuất ra OutputText. Ví dụ:
    InputText = ”nhập môn tin học”
    è OutputText = ”Nhập Môn Tin Học”
    Private Sub VietHoa_Click()
    Dim batdautu As Boolean
    Dim start, length, i As Integer
    Dim inputS, outputS, temp, chudau, c As String
    batdautu = False
    start = 1
    length = 1
    inputS = InputText.Text
    For i = 1 To Len(inputS)
    c = Mid(inputS, i, 1)
    If c <> Space(1) Then
    If Not batdautu Then ' neu batdautu = false
    batdautu = True
    start = i
    length = 1
    Else
    length = length + 1
    End If
    Else ' c = Space(1)
    If batdautu Then
    temp = Mid(inputS, start, length)
    chudau = Mid(temp, 1, 1)
    temp = UCase(chudau) & Mid(temp, 2, Len(temp) - 1)
    outputS = outputS & " " & temp
    batdautu = False
    length = 1
    End If
    End If
    Next
    If batdautu Then
    temp = Mid(inputS, start, length)
    chudau = Mid(temp, 1, 1)
    temp = UCase(chudau) & Mid(temp, 2, Len(temp) - 1)
    outputS = outputS & " " & temp
    batdautu = False
    End If
    OutputText.Text = outputS
    End Sub

    Câu 3: (2.5đ)
    Giả sử 3 hàm sau đây đã được hiện thực:
    Function DoiCoSo10Ra2 (n As Integer) As String
    Function DoiCoSo10Ra8 (n As Integer) As String
    Function DoiCoSo10Ra16 (n As Integer) As String

    a. Hãy sử dụng 3 hàm trên để hiện thực hàm đổi một số ở cơ số 10 ra cơ số K
    với K =2,8,16:
    Function DoiCoSo10RaK(n As Integer,k As Integer) As String
    (Lưu ý : nếu SV hiện thực đúng hàm DoiCoSo10RaK nhưng không sử dụng 3 hàm đã cho ban đầu thì chỉ được ½ số điểm câu này)
    Function DoiCoSo10RaK(n As Integer,k As Integer) As String
    Dim Ketqua As Integer
    If k = 2 Then
    Ketqua= DoiCoSo10Ra2(n)
    ElseIf k = 8 Then
    Ketqua= DoiCoSo10Ra8(n)
    ElseIf k = 16 Then
    Ketqua= DoiCoSo10Ra16(n)
    Else
    Ketqua = “Co so K khong hop le”
    End If
    DoiCoSo10RaK = Ketqua
    End Function



    b. Hãy hiện thực hàm DoiCoSo10Ra8 (n As Integer) As String 1.5 điểm
    SV có thể hiện thực nhiều cách.
    Ví dụ:
    Viết hàm tổng quát đổi cơ số 10 ra cơ số K rồi sử dụng để đổi cơ số 10 ra 8
    Function DoiCoSo10RaK(m, k As Integer) As String
    Dim n As Integer
    Dim s, l As String
    s = ""
    l = "0123456789ABCDEF"
    If k = 0 Then
    MsgBox "He so k phai khac 0"
    Exit Function
    End If
    Do
    n = m Mod k
    s = Mid(l, n + 1, 1) & s
    m = m \ k
    Loop Until m = 0
    DoiCoSo10RaK = s
    End Function
    Function DoiCoSo10Ra8 (n As Integer) As String
    Dim Ketqua As String
    Ketqua = DoiCoSo10RaK(n,8)
    DoiCoSo10Ra8=Ketqua
    End Function
    Hoặc có thể hiện thực trực tiếp hàm đổi từ cơ số 10 ra cơ số 8.

    Câu 4: (1đ)
    Ta dùng một mảng 2 chiều game (0 to 2,0 to 2) để lưu dữ liệu của game tic-tac-toe như hình minh họa ở trên. Hãy hiện thực hàm XacDinhQuanThang() nhận vào một mảng 2 chiều chứa dữ liệu của một game tic-tac-toe và xác định quân nào thắng game đó.
    Function XacDinhQuanThang ( game As Variant) As Integer
    Nếu quân 0 thắng è hàm trả về 0
    Nếu quân X thắng è hàm trả về 1
    Hàm trả về 2 trong các trường hợp còn lại.

    Chương trình phải duyệt theo chiều ngang để xác định có trường hợp thắng trên hàng ngang hay không. (0,75)
    Chương trình phải duyệt theo hàng dọc để xác định có trường hợp thắng trên hàng dọc hay không. (0,75)
    Chương trình phải duyệt trên 2 đường chéo để xác định có trường hợp thắng trên đường chéo hay không. (0,5)
    Sinh viên cũng có thể dùng cách duyệt mảng một chiều áp dụng riêng biệt cho từng hàng, từng cột.
    Nếu sinh viên trình bày , phân tích được hướng giải quyết bài toán thì được ½ số điểm câu này.
    Function QuanThang(a As Variant) As Integer
    Dim count0 As Integer
    Dim count1 As Integer
    ' Duyet duong cheo thuan
    count0 = 0
    count1 = 0
    For i = 0 To 2
    If (a(i, i) = 0) Then
    count0 = count0 + 1
    ElseIf (a(i, i) = 1) Then
    count1 = count1 + 1
    End If
    Next
    'Duyet duong cheo nghich
    If count0 < 3 And count1 < 3 Then 'chưa xác định được quân thắng
    count0 = 0
    count1 = 0
    For i = 0 To 2
    If (a(i, 2 - i) = 0) Then
    count0 = count0 + 1
    ElseIf (a(i, 2 - i) = 1) Then
    count1 = count1 + 1
    End If

    Next
    End If
    ' Duyet theo hang`
    If count0 < 3 And count1 < 3 Then
    count0 = 0
    count1 = 0
    For i = 0 To 2
    If count0 < 3 And count1 < 3 Then
    count0 = 0
    count1 = 0
    For j = 0 To 2
    If (a(i, j) = 0) Then
    count0 = count0 + 1
    ElseIf (a(i, j) = 1) Then
    count1 = count1 + 1
    End If
    Next
    Else
    Exit For ' da xac dinh duoc quan thang
    End If
    Next
    End If

    ' Duyet theo cot
    If count0 < 3 And count1 < 3 Then
    count0 = 0
    count1 = 0
    For i = 0 To 2
    If count0 < 3 And count1 < 3 Then
    count0 = 0
    count1 = 0
    For j = 0 To 2
    If (a(j, i) = 0) Then
    count0 = count0 + 1
    ElseIf (a(j, i) = 1) Then
    count1 = count1 + 1
    End If
    Next
    Else
    Exit For ' da xac dinh duoc quan thang
    End If
    Next
    End If


    If count0 = 3 Then
    QuanThang = 0
    ElseIf count1 = 3 Then
    QuanThang = 1
    Else
    QuanThang = 2
    End If
    End Function
    Kiểm tra hàng dọc của người chơi 0
    if game(0,0) = 0 and game(1,0) = 0 and game(2,0) = 0
    nguoi0 = thang
    else if game(0,1) = 0 and game(1,1) = 0 and game(2,1) = 0
    nguoi0 = thang
    else if game(0,2) = 0 and game(1,2) = 0 and game(2,2) = 0
    nguoi0 = thang
    ...
    Tuong tu cho cac hang ngang, hang cheo 45 độ, hàng chéo -45 độ.

    --------HẾT--------
    TP. HCM ngày _____________
    Trưởng Bộ môn
  2. nhockid Member

    Số bài viết: 439
    Đã được thích: 4
    Điểm thành tích: 18
  3. thanhkht New Member

    Số bài viết: 156
    Đã được thích: 0
    Điểm thành tích: 0
  4. 09107 Member

    Số bài viết: 181
    Đã được thích: 6
    Điểm thành tích: 18
  5. duykungfu New Member

    Số bài viết: 324
    Đã được thích: 0
    Điểm thành tích: 0
    Mình làm đúng câu 1 với câu 2 a thế mà không biết sao được có 3,5đ. Chỉ cần 4,5đ là mình đậu rồi. Giờ bị học lại rồi :(( :(( :((
  6. quanghuyddt New Member

    Số bài viết: 922
    Đã được thích: 0
    Điểm thành tích: 0

Chia sẻ trang này