Một số thuật toán về mảng

Một phần của tài liệu Bài giảng môn tin học đại cương (Trang 62 - 68)

b) Chuyển tham số bằng giá trị (tham trị)

6.4. Một số thuật toán về mảng

Dạng 1: Tìm giá trị lớn nhất hoặc nhỏ nhất trong mảng

Ví dụ: Nhập vào một mảng số nguyên gồm n phần tử. Tìm giá trị lớn nhất trong mảng. In kết quả ra màn hình. Yêu cầu:

Sử dụng các đối tƣợng Form, Lable, Textbox, Command Button,… để thiết kế giao diện bài toán

Viết mã lệnh bài toán. Hƣớng dẫn:

Thiết kế giao diện

Thoát Xử Lý

Kết Quả txtKQ

cmdXuLy cmdThoat

Mã lệnh bài toán.

Private Sub cmdThoat_Click() End

End Sub

Private Sub cmdXuLy_Click()

Dim i As Integer, n As Integer, max As Integer Dim a(1 To 100) As Integer

Do

_63_ Loop Until n > 0 And n <= 100 For i = 1 To n

a(i) = Val(InputBox("Nhap a(" + Str(i) + ") = ")) Next i

max = a(1) For i = 2 To n

If a(i) > max Then max = a(i) End If

Next i

txtKQ.Text = "Gia Tri Lon Nhat = " + Str(max) End Sub

Dạng 2: Sắp xếp các phần tử của mảng theo thứ tự tăng hoặc giảm dần

Ví dụ: Nhập vào một mảng số nguyên gồm n phần tử. Sắp xếp các phần tử trong mảng theo thứ tự giảm dần. In kết quả ra màn hình. Yêu cầu:

Sử dụng các đối tƣợng Form, Lable, Textbox, Command Button,… để thiết kế giao diện bài toán

Viết mã lệnh bài toán. Hƣớng dẫn:

Thiết kế giao diện

Thoát Xử Lý

Kết Quả txtKQ

cmdXuLy cmdThoat

Mã lệnh bài toán.

Private Sub cmdThoat_Click() End

End Sub

_64_

Dim i As Integer, j As Integer, n As Integer, tg As Integer Dim a(1 To 100) As Integer

Do

n = Val(InputBox("Nhap n = ")) Loop Until n > 0 And n <= 100 For i = 1 To n

a(i) = Val(InputBox("Nhap a(" + Str(i) + ") = ")) Next i

For i = 1 To n-1 For j = i+1 to n

If a(i) < a(j) Then tg = a(i) a(i) = a(j) a(j) = tg End If Next j Next i txtKQ.Text = "" For i = 1 to n

txtKQ.Text = txtKQ.Text + Str(a(i)) + “;” Next i

End Sub

Dạng 3: Chèn một phần tử b vào vị trí k của mảng

Ví dụ: Nhập vào một mảng số nguyên gồm n phần tử. Chèn số b vào vị trí thứ k trong mảng. In kết quả ra màn hình. Yêu cầu:

Sử dụng các đối tƣợng Form, Lable, Textbox, Command Button,… để thiết kế giao diện bài toán

Viết mã lệnh bài toán. Hƣớng dẫn:

_65_ Thoát Xử Lý Kết Quả txtKQ cmdXuLy cmdThoat Mã lệnh bài toán.

Private Sub cmdThoat_Click() End

End Sub

Private Sub cmdXuLy_Click()

Dim i As Integer, b As Integer, k As Integer, n As Integer Dim a(1 To 100) As Integer

Do

n = Val(InputBox("Nhap n = ")) Loop Until n > 0 And n <= 100 For i = 1 To n

a(i) = Val(InputBox("Nhap a(" + Str(i) + ") = ")) Next i

b = Val(InputBox(“Nhap b = ”)) Do

k = Val(InputBox(“Nhap k = ”)) Loop Until k > 0 And k <= n

For i = n To k Step -1 a(i+1) = a(i) Next i a(k) = b n = n + 1 txtKQ.Text = "" For i = 1 to n

_66_ Next i

End Sub

Dạng 4: Xoá đi phần tử ở vị trí thứ k của mảng

Ví dụ: Nhập vào một mảng số nguyên gồm n phần tử. Xóa đi phần tử ở vị trí thứ k trong mảng. In kết quả ra màn hình. Yêu cầu:

Sử dụng các đối tƣợng Form, Lable, Textbox, Command Button,… để thiết kế giao diện bài toán

Viết mã lệnh bài toán. Hƣớng dẫn:

Thiết kế giao diện

Thoát Xử Lý

Kết Quả txtKQ

cmdXuLy cmdThoat

Mã lệnh bài toán.

Private Sub cmdThoat_Click() End

End Sub

Private Sub cmdXuLy_Click()

Dim i As Integer, k As Integer, n As Integer Dim a(1 To 100) As Integer

Do

n = Val(InputBox("Nhap n = ")) Loop Until n > 0 And n <= 100 For i = 1 To n

a(i) = Val(InputBox("Nhap a(" + Str(i) + ") = ")) Next i

Do

_67_ Loop Until k > 0 And k <= n For i = k To n - 1 a(i) = a(i+1) Next i n = n - 1 txtKQ.Text = "" For i = 1 to n

txtKQ.Text = txtKQ.Text + Str(a(i)) + “;” Next i

End Sub

Dạng 5: Một số bài toán khác về mảng

Ví dụ: Nhập vào một mảng số nguyên gồm n phần tử. Tính trung bình cộng của các phần tử chia hết cho 3 trong mảng. In kết quả ra màn hình. Yêu cầu:

Sử dụng các đối tƣợng Form, Lable, Textbox, Command Button,… để thiết kế giao diện bài toán

Viết mã lệnh bài toán. Hƣớng dẫn:

Thiết kế giao diện

Thoát Xử Lý

Kết Quả txtKQ

cmdXuLy cmdThoat

Mã lệnh bài toán.

Private Sub cmdThoat_Click() End

End Sub

Private Sub cmdXuLy_Click()

Dim i As Integer, n As Integer, tbc As Single, dem As Integer Dim a(1 To 100) As Integer

_68_ Do

n = Val(InputBox("Nhap n = ")) Loop Until n > 0 And n <= 100 For i = 1 To n

a(i) = Val(InputBox("Nhap a(" + Str(i) + ") = ")) Next i

tbc = 0 d = 0

For i = 1 To n

If a(i) MOD 3 = 0 Then tbc = tbc + a(i) d = d + 1 End If

Next i

If d = 0 Then

txtKQ.Text = "Mang khong ton tai phan tu nao chia het cho 3" Else

tbc = tbc/dem

txtKQ.Text = “TBC = ” + Str(dem) End If

Một phần của tài liệu Bài giảng môn tin học đại cương (Trang 62 - 68)

Tải bản đầy đủ (PDF)

(68 trang)