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

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

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 tin học đại cương đh hàng hải (Trang 62)

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

(68 trang)