Bài 8:Viết chương nhập vào mộ số nguyên dương, gồm hai chức năng: • Đảo ngược một số • Đọc số dưới dạng chữ Khi bắt đầu, command button Đọc ở trạng thái mờ, nếu nội dung của text box số
Trang 1BÀI TẬP VISUAL BASIC CƠ BẢNBài 0:
Xây dựng form dùng để đổi năm từ dương lịch sang năm âm lịch Năm âm lịch được ghép lại từ Can vàChi Có 10 Can và 12 Chi Can có được khi ta lấy năm ở dương lịch chia cho 10 và lấy phần dư Chi cóđược khi ta lấy năm ở dương lịch chia cho 12 và lấy phần dư Những phần dư này là chỉ số tương ứng tronghai mảng Can, Chi dưới đây:
CAN Giáp Ất Bính Đinh Mậu Kỷ Canh Tân Nhâm Quí
CHI Tí Sửu Dần Mẹo Thìn Tỵ Ngọ Mùi Thân Dậu Tuất Hợi
A Cấu trúc rẽ nhánh (IF- SELECT)
Tạo một project có tên prjCauTrucReNhanh để quản lý các bài tập trong phần B
Bài 1:
Viết chương trình nhập vào 3 số Tìm ra số lớn nhất, số nhỏ nhất
Trang 2• Text box chứa giá trị nhỏ nhất sẽ có màu xanh.
• Trường hợp có 2 số bằng nhau thì sẽ tô màu cho một trong hai textbox chứa gía trị đó
• Trường hợp cả 3 số bằng nhau thì sẽ tô màu vàng cho cả 3 textbox
Bài 2:
Mức độ ô nhiễm của 1 thành phố được xác định bằng một chỉ số ô nhiễm Các đo đạc được thực hiện tại 3
vị trí khác nhau: nhà máy, trung tâm thương mại, và khu dân cư Giá trị trung bình của các kết quả đo đạctrên chính là chỉ số ô nhiễm Nếu chỉ số ô nhiễm này lớn hơn hay bằng giá trị ngưỡng (50) thì kết luận làđộc hại, dưới ngưỡng thì kết luận là an toàn
Viết chương trình nhập vào kết qủa đo đạc tại 3 vị trí, chỉ cho phép nhập vào số lớn hơn hay bằng 0, vàxuất ra thông báo về tình trạng ô nhiễm tương ứng
Trang 3• Loại Giỏi nếu DTB lớn hơn hay bằng 8 và nhỏ hơn hay bằng 10.
• Loại Khá nếu DTB lớn hơn hay bằng 6, nhỏ hơn 8 và không có điểm dưới 5
• Loại Trung bình nếu DTB lớn hơn hay bằng 5, nhỏ hơn 6 và không có điểm dưới 5
• Loại yếu nếu DTB nhỏ hơn 5hay có một điểm nhỏ hơn 5
Bài 5:
Viết chương trình nhập vào 3 số thực tượng trưng cho ba chiều dài cạnh của tam giác Kiểm tra xem 3 sốđó:
• Có tạo thành một Tam giác hay không ?
• Có tạo thành một Tam giác cân hay không ?
• Có tạo thành một Tam giác đều hay không ?
• Có tạo thành một Tam giác vuông hay không ?
Điều kiện để chiều dài ba cạnh bất kỳ lập thành một tam giác là:
Chiều dài của một cạnh bất kỳ nhỏ hơn tổng chiều dài của hai cạnh còn lại.
Trang 5Bài 8:
Viết chương nhập vào mộ số nguyên dương, gồm hai chức năng:
• Đảo ngược một số
• Đọc số dưới dạng chữ
Khi bắt đầu, command button Đọc ở trạng thái mờ, nếu nội dung của text box số nhập hợp lệ thì command button Đọc sáng lên.
Khi chọn chức năng đọc (click chọn command button Đọc) thì command button Đọc bị mờ đi, cho đến khi nào có sự thay đổi trên textbox số nhập và giá trị của textbox là hợp lệ thì button Đọc mới sáng trở lại.
Yêu cầu:
• Ban đầu chương trình chỉ xử lý trường hợp số nhập vào tối đa là 3 chữ số
• Sau khi đọc được 3 số thì phát triển thành chương trình đọc cho 6, 9, … số
B Cấu trúc lặp (FOR, WHILE)
Tạo một project có tên prjCauTrucLap để quản lý các bài tập trong phần C
Bài 1:
Thiết kế form dùng để tính hai biểu thức sau:
Tính S = 1 + 2 + 3 + 4 +…+ N
Trang 6Yêu cầu: Số nhập vào từ 2 đến 12
3
1 2
1
1 + 2 + 3 + +
Sau khi click Trước khi click
Trang 7Viết chương trình nhập vào một số nguyên bất kỳ, gọi là Limit, Limit > 6 và Limit<500 Tìm số nguyên dương Num sao cho 1 + 2 + … + Num < Limit.
Thiết kế form có dạng như trên
Bài 4:
Nhập vào số nguyên dương N:
• Kiểm tra N xem N có phải là số nguyên tố hay không Biết rằng số nguyên tố là số mà chỉ chia hết
cho 1 và chính nó
• Xuất ra số nguyên tố nhỏ hơn N và gần N nhất
• Xuất ra tất cả những số nguyên tố nhỏ hơn N
Trang 8Bài 5:
Viết chương trình nhập vào một số nguyên dương N
• Tìm tất cả các ước số của N Biết rằng N chia hết cho số nào thì số đó chính là ước số của N
• Tính tổng các ước số
• Tính tổng những số không phải là ước số của N
Trang 9Phần 3: Xử lý các điều khiển
Tạo một project có tên prjDieuKhien để quản lý các bài tập trong phần 3
Trang 10Yêu cầu:
1. Khi vừa mở form, các chức năng trong vùng Thao tác không thực hiện được (bị mờ).
2 Nhập mật mã để đăng nhập vào Mật mã có thể là tên của người sử dụng
Nếu đúng mật mã thì bật sáng các điều khiển trong vùng Thao tác, cho phép nhập liệu trên text box Nguồn Khi đó, các điều khiển trong khung Đăng nhập mờ đi.
Nếu điều khiển check box Không sao chép không được chọn thì button Sao chép mới có tác
dụng, nếu không thì sẽ mờ
Sự kiện khi button Sao chép được click:
Nếu điều khiển Chép vùng chọn được chọn thì nội dung được chọn trong text box Nguồn sẽ được đưa vào trong text box Đích.
Nếu điều khiển Chép vùng chọn không được chọn thì toàn bộ nội dung trong text box
Nguồn sẽ được đưa vào trong text box Đích.
Khi điều khiển Xoá nội dung được chọn thì nội dung trong text box Đích luôn là một text box
không có nội dung
Sự kiện khi command button Đăng nhập lại được click: quay về trạng thái của form khi bắt
đầu
Sự kiện khi command button Kết thúc được click: thoát khỏi chương trình.
Nếu sai mật mã thì chương trình thông báo cho người sử dụng biết là họ đã nhập sai mật mã vàhỏi xem họ có muốn nhập lại mật mã khác hay không Nếu họ muốn thì quay trở lại cho họ nhập,nếu họ không đồng ý thì thoát khỏi chương trình
Bài 4:
Fahenheit (F) và Celsius (C) là hai đại lượng dùng để đo nhệt độ thông dụng Qua thí nghiệm, người tathấy:
Điểm sôi của nước trên F là 212 độ F, và trên C là 100 độ C
Điểm đông của nước trên F là 32 độ F, và trên C là 0 độ C
Biết rằng F và C có quan hệ tuyến tính F = a*C+b, từ đó ta có hai giá trị của a và b sau: a=1.8, b=32Viết chương trình nhập vào C và tính ra F, nhập vào F và tính ra C như hình vẽ
Trang 11Yêu cầu:
Xử lý cho option button Clesius:
• Khi chọn option button Celsius thì textbox dùng để nhập độ Celsius sẽ bị khoá lại, người sử
dụng không nhập liệu được.
• Caption của command button sẽ có hình mũi tên quay về phía độ Celsius, cho ta biết chiều
đổi từ độ Fahenheit sang độ Celsius.
Xử lý cho option button Fahenheit:
• Khi chọn option button Fahenheit thì textbox dùng để nhập độ Fahenheit sẽ bị khoá lại,
người sử dụng không nhập liệu được.
• Caption của command button sẽ có hình mũi tên quay về phía độ Fahenheit, cho ta biết chiều
đổi từ độ Celsius sang độ Fahenheit.
Tuỳ theo option button được chọn mà chương trình thực hiện việc đổi độ tương ứng khi ta chọn command
2. Khi có thao tác nhập liệu trên combo box thì command button Thêm vào combo và command button
V bật sáng lên, nếu thao tác chọn một phần tử trong combo box thì chỉ có command button V được bật.
Sự kiện khi command button Thêm vào combo được click: kiểm tra xem nội dung trong vùng Text
của combo box đã có trong combo box chưa
Nếu có rồi thì thông báo cho người sử dụng biết nội dung của Text đã có trong combox box rồi
Nếu chưa có thì thêm nội dung của Text vào trong combo box
Sự kiện khi command button V được click:
Thêm nội dung trên text của combo box vào nội dung của List box trong Danh Sách 1.
3. Danh sách 1 là một list box có khả năng chọn nhiều phần tử cùng một lúc, Danh sách 2 thì chỉ cho
phép chọn một lần 1 phần tử Nội dung của hai danh sách này có thể hoán đổi cho nhau
Khi chuyển một phần tử từ Danh sách 1 đến Danh sách 2 thì phần tử đó bị xoá khỏi Danh sách 1.
Viết lệnh để xử lý các trường hợp chuyển đổi và những ràng buột tương ứng
Trang 124. Xử lý cho button Λ và V:
Hai button này chỉ có hiệu lực khi một phần tử trong Danh sách 2 được chọn
Khi click button Λ thì:
Nếu vị trí của phần tử đang được chọn là n, n>0 thì sẽ chuyển phần tử đó đến vị trí n-1
Nếu vị trí của phần tử đang được chọn là n, n = 0 thì sẽ chuyển phần tử đó đến cuối danh sách
Xử lý ngược lại cho trường hợp click command button V.
5. Xử lý cho command button Xoa danh sach 1 và Xoa danh sach 2:
Hai button này chỉ có hiệu lực khi danh sách của chúng có nội dung
Khi được kích hoạt thì chương trình sẽ xoá nội dung của danh sách tương ứng
Bài 6:
1 Thiết kế form như hình vẽ
2 Tính tiền thuê phòng cho khách hàng ứng với những chọn lựa:
• Tiền phòng:
Loại phòng là Sang: 500,000 đ/ngày
Loại phòng là Trung bình: 300,000 đ/ngày
Loại phòng là Thường: 200,000 đ/ngày
• Tiền dịch vụ:
Thuê xe: 50,000 đ/ngày
Hướng dẫn viên: 120,000 đ/ngày
Ăn uống: 150,000 đ/ngày
Trang 133 Đặc biệt, nếu khách thuê vào những ngày lễ 30/4 và 2/9 thì giá tiền phòng của những ngày đó sẽ tănggấp 2 lần so với bình thường, còn giá tiền dịch vụ thì không đổi.
4. Khi chọn command button Thêm mới thì các textbox dùng để nhập thông tin khách hàng sẽ không có
Trang 14Giả sử rằng, giờ bắt đầu và giờ kết thúc lấy theo đơn vị thời gian tròn giờ Khi nhập giá trị giờ phải kiểmtra thỏa điều kiện là còn trong giờ làm việc và giờ kết thúc phải >= giờ bắt đầu.
• Tính: Tính số tiền phải thanh toán theo quy cách sau:
• Tiếp: xóa giá trị trong các text box và đưa con trỏ về ô Giờ bắt đầu
• Thoát: Đóng form Trước khi form bị đóng hiện MsgBox hỏi nsd “Bạn có thật sự muốn kết thúc
không ? ”, nếu nsd chọn Yes thì cho đóng form, No thì không
Bài 8:
Thiết kế form frmBangMau như hình vẽ
Mô tả các điều khiển trên form:
• Ba thanh cuộn dùng để điều khiển giá trị của ba màu Red, Green, Blue.
Trường hợp 1: không dùng thanh cuộn Speed
Khi thay đổi giá trị của một trong 3 thanh cuộn R, G, B thì giá trị của RGB sẽ được cập nhật cho
label RGB = … Khi đó, màu của chuỗi trong Text box 1 cũng thay đổi theo màu của giá trị RGB.
Trường hợp 2: dùng thanh cuộn Speed
Nếu chọn check button Speed thì:
Trang 15Giá trị của thanh cuộn Speed biến thiên từ 1 100 Thanh cuộn này điều khiển thời gian T, thời gianđể ba thanh cuộn R, G, B tự động thay đổi giá trị Giá trị thanh cuộn càng nhỏ thì T càng nhỏ.Giá trị của ba thanh cuộn R, G, B sẽ tự động thay đổi sau một khoảng thời gian T trong phạm vi từ
0 đến 255 Khi đó, giá trị hằng số màu RGB sẽ tự động thay đổi và màu của chuỗi trong text boxcũng sẽ tự thay đổi
Bài 9:
Xây dựng một chương trình xem hình như hình sau, gồm có các điều khiển như: DriveListBox, DirListBox,FileListBox, Image, HScrollBar , Timer
Yêu cầu:
1 Khi click chọn một file hình trong File list box thì hình tương ứng sẽ được hiển thị lên đối tượng Image
2. Khi click button Xem hình thì chương trình tự động load hình với tốc độ tuỳ theo thanh scroll bar Khi click button Dừng lại thì chương trình ngừng chức năng load hình.
Trang 16Giả sử một bộ đèn tín hiệu có 3 đèn: đèn xanh, đèn đỏ, đèn vàng.
Thứ tự chuyển từ đỏ thành xanh sau N giây: đỏ -> xanh
Thứ tự chuyển từ xanh thành đỏ: xanh -> vàng -> đỏ, từ xanh sang vàng là N giây, từ vàng sang
đỏ là 1 giây.
1. Trạng thái của các điều khiển khi chưa bật tín hiệu
Trong frame ‘Hệ thống tín hiệu’ có hai bộ đèn giao thông Trong mỗi bộ có 3 đèn tượng trưng cho ba
trạng thái: Xanh, Đỏ, Vàng, và một đồng hồ dùng để đếm ngược thời gian
Trong frame ‘Thiết bị điều khiển’ có một command button dùng để bật hay tắt hệ thống tín hiệu, một
slider dùng để thay đổi thời gian chuyển tín hiệu đèn (màu đèn) Giá trị của slider biến thiên từ 0 đến
30 giây Caption của button sẽ thay đổi như hình bên dưới
2. Trạng thái của các điều khiển khi button Bật hệ thống tín hiệu được click:
Lúc này, caption của button Bật hệ thống tín hiệu sẽ trở thành Tắt hệ thống tín hiệu.
• Khởi tạo tín hiệu màu đỏ cho bộ đèn 1, màu xanh cho bộ đèn 2
• Đồng hồ đếm ngược sẽ xuất hiện bên bộ đèn có tín hiệu màu đỏ
• Khi đồng hồ đếm tới 0, thì sẽ có sự thay đổi tín hiệu như mô tả ở trên
Khi command button Tắt hệ thống tín hiệu được click thì trạng thái của các điều khiển trên form quay
về như ban đầu
Trang 17Màu đỏ
Màu xanh
û
Trang 18Phần 4: Mảng – Mảng control
Tạo một project có tên prjArray để quản lý các bài tập trong phần 4
Bài 1:
Viết chương trình xử lý trên mảng số nguyên
Bạn hãy tạo form như hình trên với các yêu cầu xử lý sau:
• Khi mới vừa mở form chỉ có thể sử dụng 1 nút lệnh duy nhất là nút lệnh số 1 Các nút lệnh còn lại (2 9) đều bị mờ đi không có tác dụng
• Xử lý khi nhấn nút lệnh:
1: Hiện cửa sổ InputBox cho phép nhập vào số phần tử (spt) mảng cần sử dụng Nếu spt >0 thì cho
khai báo mảng số nguyên mới (chỉ số min =1) và đồng thời hiện các nút lệnh từ 2 9 để sử dụng.Ngược lại, tái xuất hiện cửa sổ InputBox yêu cầu nhập spt mảng cần sử dụng cho đến khi nào giá trị
nhập thỏa điều kiện hoặc nsd không nhập giá trị hay nhấn nút Cancel.
2: Lần lược xuất hiện cửa sổ InputBox để nsd nhập giá trị cho các phần tử trong mảng.
Trang 19Nếu không nhập giá trị hoặc nhấn Cancel thì xem như bỏ qua không gán giá trị cho phần tử đó Nếugiá trị nhập không phải kiểu số thì lấy giá trị gán mặc định là 0
Nếu giá trị nhập là số thực thì chỉ lấy phần nguyên để gán cho mảng
3: Xuất ra cửa sổ MsgBox giá trị của các phần tử trong mảng.
4: xuất ra cửa sổ MsgBox các giá trị trong mảng sau khi đã được sắp xếp tăng.
5: Tìm giá trị lớn nhất trong mảng và xuất ra Msgbox
6: Tìm giá trị nhỏ nhất trong mảng và xuất ra Msgbox
Trang 20Bài 2
1. Thiết kế form như hình vẽ bên dưới Dùng text box Số phần tử mảng để nhập vào số điều khiển text
box mà chương trình sẽ phát sinh Số điều khiển text box này tối thiểu là 1 và tối đa là 14
2. Khi click command button Phát Sinh thì chương trình sẽ load số text box tương ứng.
3 Người sử dụng nhập giá trị vào cho các điều khiển text box, chỉ cho phép nhập giá trị số
4 Xử lý sự kiện cho các command button làm việc với mảng:
Ý tưởng chung là khi click một button command thì chương trình sẽ xử lý giá trị số trong các text boxvà thay đổi màu của text box tuỳ theo chức năng của từng button
• Sắp tăng: sắp xếp các giá trị trong text box theo chiều tăng dần Cập nhật lại giá trị của text box
sau khi sắp
• Tìm phẩn tử Max: tìm giá trị lớn nhất và đổi màu nền của text box chứa giá trị đó sang màu xanh
(có thể tự chọn màu)
• Tìm phẩn tử Min: tìm giá trị nhỏ nhất và đổi màu nền của text box chứa giá trị đó sang màu đỏ
(có thể tự chọn màu)
• Tìm những số chẵn: tìm những giá trị là số chẵn và đổi màu nền của text box chứa giá trị đó sang
màu vàng (có thể tự chọn màu)
• Tìm những số là bội số của 3 và 5: tìm những giá trị là là bội số của 3 và 5, sau đó đổi màu nền
của text box chứa giá trị đó sang màu lục (có thể tự chọn màu)
• Tìm những số là số nguyên tố: tìm những giá trị là số nguyên tố và đổi màu nền của text box
chứa giá trị đó sang màu xám(có thể tự chọn màu)
5. Xử lý command button Xoá điều khiển chứa:
Khi button này được click thì chương trình sẽ xoá (unload) những text box có chứa giá trị thoả điềukiện của các check box được chọn
Trang 22Thiết kế form như hình trên Với các yêu cầu:
1 Khi mới bắt đầu thì form chỉ có một text box Người sử dụng nhập vào giá trị số cho text box đó
2. Khi click command button Phát sinh thì chương trình sẽ phát sinh số text box ứng với giá trị vừa nhập
(bao gồm cả text box nguồn) Sau khi chương trình đã phát sinh xong các điều khiển thì người dùng tự
do thay đổi giá trị trong các text box mới phát sinh
3 Số text box trên một dòng tối đa là 10 Nếu số text box vượt quá 10 thì chương trình tự động xuốngdòng, đồng thời thay đổi chiều cao của form cho phù hợp với số dòng vừa mới phát sinh Khi thiết kế, tachỉ thiết kế chiều cao của form dùng để chứa 1 dòng, như hình vẽ
4. Ý nghĩa của 2 option button Max và Min :
• Việc phát sinh các control của chương trình tuỳ thuộc vào sự chọn lựa của 2 option này
• Chẳng hạn như khi Max được chọn, click command button Phát sinh thì chương trình sẽ :
Tìm giá trị lớn nhất được chứa trong các text box đang được hiển thị
So sánh giá trị max đó với số text box đang được load
Nếu max lớn hơn số text box hiện hành thì load thêm
Nếu max nhỏ hơn số text box hiện hành unload bớt
• Trường hợp Min thì chương trình sẽ tìm giá trị min và xử lý tương tư như trong trường hợp Max.
• Command button Xoá điều khiển dùng để xoá tất cả những text box đã được phát sinh.
Bài 4 :
Thiết kế form dùng để xem lịch như sau:
Trước khi click
Xem lịch