Lập trình cơ bản - 25


Hình 4 55 Kết quả chạy chương trình khi kích vào nút tìm kiếm Bài 4 8 Tạo một 1

Hình 4.55: Kết quả chạy chương trình khi kích vào nút tìm kiếm

Bài 4.8

Tạo một ứng dụng Windows Form thực hiện các công việc sau:

1. Nhập dãy A gồm n số nguyên (n nguyên dương).

2. Hiển thị dãy A.

3. Kiểm tra xem dãy có lập thành cấp số nhân hay không?

4. Liệt kê các số nguyên tố có trong dãy.

5. Đưa ra phần tử xuất hiện nhiều nhất trong dãy A.

Có thể bạn quan tâm!

Xem toàn bộ 212 trang tài liệu này.

6. Kiểm tra xem dãy có đan dấu không?

Bài 4.9

Tạo một ứng dụng Windows Forms thực hiện các công việc sau:

1. Nhập dãy A gồm n số thực (n nguyên dương).

2. Hiển thị dãy A.

3. Xóa phần tử cuối cùng trong dãy có giá trị bằng x (x là số thực).

4. Sắp xếp dãy tăng dần.

Bài 4.10

Viết một chương trình thực hiện các yêu cầu sau:

1. Thiết kế Form theo mẫu


Hình 4 56 Bài tập về mảng hai chiều Yêu cầu Nhãn bài tập về mảng hai 2

Hình 4.56: Bài tập về mảng hai chiều

Yêu cầu:

- Nhãn bài tập về mảng hai chiều: Font Time New Roman, chữ hoa, in đậm, cỡ chữ 14, căn giữa Form.

- Nhãn nhập số hàng, nhập số cột, nhập giá trị: Font Time New Roman, chữ thường, cỡ chữ 11.

- Điều khiển để nhập số nguyên dương n, m và nhập giá trị từng phần tử của ma trận là các Textbox.

- Điều khiển để hiển thị ma trận và kết quả là các RichTextBox.

- Các điều khiển ―Tìm giá trị lớn nhất‖, ―Tính tổng các số lẻ‖, ―Đếm các số chia hết cho 3 và 7‖, ― Tính tổng từng hàng‖, ― Liệt kê các số nguyên tố‖, ―Thoát‖là các Button.

- Đối tượng ―Ma trận vừa nhập‖, ―Kết quả‖ là cá GroupBox.

2. Lập trình thực hiện các công việc:

- Khi Load Form:

+ Textbox tương ứng với nhãn nhập số hàng để trống, sáng lên và con trỏ đặt tại ô đó.

+ Textbox tương ứng vỡi nhãn nhập số cột, nhập giá trị, các nút ―Tìm giá trị lớn nhất‖, ―Tính tổng các số lẻ‖, ―Đếm các số chia hết cho 3 và 7‖, ― Tính tổng từng hàng‖, ― Liệt kê các số nguyên tố‖, đối tương GroupBox Ma trận vừa nhập và kết quả vô hiệu hóa.

- Khi nhập một giá trị vào textbox tương ứng với nhãn nhập số hàng rồi nhấn phím Enter thì thực hiện kiểm tra xem dữ liệu nhập vào có hợp lệ hay không? (giá trị nhập vào phải là số nguyên dương). Nếu không hợp lệ thì hiện lên hộp thoại thông báo và yêu cầu nhập lại. Ngược lại thì textbox tương ứng với nhãn nhập số cột sáng lên, để trống và con trỏ đặt tại đó.


- Khi nhập một giá trị vào textbox tương ứng với nhãn nhập số cột rồi nhấn phím Enter thì thực hiện kiểm tra xem dữ liệu nhập vào có hợp lệ hay không? (giá trị nhập vào phải là số nguyên dương). Nếu không hợp lệ thì hiện lên hộp thoại thông báo và yêu cầu nhập lại. Ngược lại thì textbox tương ứng với nhãn nhập giá trị sáng lên, để trống và con trỏ đặt tại đó.

- Khi nhập giá trị vào textbox tương ứng với nhãn nhập giá trị rồi nhấn phím Enter thì hiển thị giá trị đó ra richtextbox trong Group Ma trận vừa nhập, sau đó textbox này để trống và con trỏ lại đặt tại ô đó để nhập giá trị tiếp theo. Lặp lại quá trình này cho tới khi nhập xong giá trị cho các phần tử của ma trận thì đưa ra thông báo đã nhập xong ma trận và đồng thời các nút ―Tìm giá trị lớn nhất‖, ―Tính tổng các số lẻ‖, ―Đếm các số chia hết cho 3 và 7‖, ― Tính tổng từng hàng‖, ― Liệt kê các số nguyên tố‖ sáng lên cho phép hoạt động, các textbox tương ứng với nhập số hàng, nhập số cột, nhập giá trị vô hiệu hóa.

- Khi kích vào nút ― Tìm giá trị lớn nhất‖: thực hiện tìm giá trị lớn nhất của ma trận và hiển thị kết quả ra richtextbox ở trong Groupbox kết quả.

- Khi kích vào nút ― Tổng các số lẻ‖: thực hiện tính tổng các phần tử có giá trị lẻ của ma trận và hiển thị kết quả ra richtextbox ở trong Groupbox kết quả.

- Khi kích vào nút ― Đếm các số chia hết cho 3 và 7‖: thực hiện đếm các phần tử có giá trị chia hết cho 3 và của ma trận và hiển thị kết quả ra richtextbox ở trong Groupbox kết quả.

- Khi kích vào nút ― Tính tổng từng hàng‖: thực hiện tính tổng các phần tử trên từng hàng của ma trận và hiển thị kết quả ra richtextbox ở trong Groupbox kết quả.

- Khi kích vào nút ― Liệt kê các số nguyên tố‖: Hiển thị ra richtextbox ở trong Groupbox các số nguyên tố có trong ma trận.

- Khi kích vào nút ― Thoát‖: thực hiện dừng chương trình.

Hướng dẫn thực hiện

1. Thiết kế Form như yêu cầu đề bài

2. Phân tích yêu cầu

Theo yêu cầu của bài toán thì phải có một Form chứa:

- Các đối tượng có nội dung ―BÀI TẬP VỀ MẢNG HAI CHIỀU‖,‖Nhập số hàng‖, ―Nhập số cột‖, ‖Nhập giá trị‖ là các Label.

- Đối tượng ô để nhập số hàng, nhập số cột và nhập giá trị là các Textbox.

- Đối tượng ma trận vừa nhập, kết quả là các GroupBox.

- Điều khiển để hiển thị ma trận vừa nhập và kết quả là các Richtextbox.


- Các nút ―Tìm giá trị lớn nhất‖, ―Tính tổng các số lẻ‖, ―Đếm các số chia hết cho 3 và 7‖, ― Tính tổng từng hàng‖, ― Liệt kê các số nguyên tố‖, ―Thoát‖là các Button.

3. Hướng dẫn thực hiện

Như vậy, để thực hiện công việc thiết kế Form như yêu cầu bài toán, người lập trình thực hiện các bước sau:

Bước 1. Mở C#

Bước 2. Tạo Form mới

Trên thanh menu, chọn File/New/Project.Trên màn hình xuất hiện cửa sổ New Project, chọn ứng dụng Windows Form Appication, sau đó nhập tên của Project vào ô Name, kích vào Browse để chọn thư mục lưu trữ Project, sau đó chọn OK.

Bước 3. Thiết kế Form theo mẫu và gắn các điều khiển Bước 4. Kết quả thiết kế Form

Hình 4 57 Kết quả thiết kế Form bài tập mẫu về mảng hai chiều Bước 5 3

Hình 4.57: Kết quả thiết kế Form bài tập mẫu về mảng hai chiều

Bước 5. Viết mã lệnh cho các sự kiện

- Viết mã lệnh khai báo ma trận và biến

int[,] A= new int [100,100]; int n, m, spt=0, i=0,j=0;

- Viết mã lệnh cho sự kiện Load Form

private void Form1_Load(object sender, EventArgs e)

{

vohieuhoa(false); txt_n.ResetText(); txt_n.TabIndex = 1; txt_n.Focus();

}

- Viết mã lệnh cho hàm vô hiệu hóa các điều khiển khi Load Form

private void vohieuhoa(bool gt)

{

txt_m.Enabled = gt; txt_giatri.Enabled = gt;

bt_demchia21.Enabled = gt; bt_lietkeSNT.Enabled = gt; bt_timMax.Enabled = gt; bt_tongle.Enabled = gt; bt_tongtunghang.Enabled = gt; group_Hienthi.Enabled = gt; group_ketqua.Enabled = gt;

}

- Viết mã lệnh cho hàm kiểm tra xâu rỗng

bool kiemtra(string s)

{

if (string.IsNullOrWhiteSpace(s)) return true; else return false;

}

- Viết mã lệnh cho hàm kiểm tra dữ liệu nhập vào

bool kiemtra_dulieu(string s)

{

bool kt;

if (kiemtra(s)) return false; kt = int.TryParse(s, out n); return kt &&n>0;

}



hàng

- Viết mã lệnh cho sự kiện KeyUp của textbox tương ứng với nhãn nhập số


private void txt_n_KeyUp(object sender, KeyEventArgs e)

{

if (e.KeyCode == Keys.Enter)

{

if (kiemtra_dulieu(txt_n.Text))

{

txt_m.Enabled = true; txt_m.TabIndex = 1;

txt_m.Focus();

}

else { MessageBox.Show("Bạn chưa nhập đúng n"); txt_n.Focus(); vohieuhoa(false); }

}

}

- Viết mã lệnh cho sự kiện KeyUp của textbox tương ứng với nhãn nhập số cột

private void txt_m_KeyUp(object sender, KeyEventArgs e)

{

if (e.KeyCode == Keys.Enter)

{

if (kiemtra_dulieu(txt_m.Text))

{

txt_giatri.Enabled = true; txt_giatri.TabIndex =

1; txt_giatri.Focus();

}

else { MessageBox.Show("Bạn chưa nhập đúng m"); txt_giatri.TabIndex = 1; txt_m.Focus(); vohieuhoa(false); txt_m.Enabled = true; }

}

}

- Viết mã lệnh cho sự kiện KeyUp của textbox tương ứng với nhãn nhập giá trị

private void txt_giatri_KeyUp(object sender, KeyEventArgs e)

{

bool kt; n = int.Parse(txt_n.Text); m = int.Parse(txt_m.Text);

if (e.KeyCode == Keys.Enter)

{

kt = int.TryParse(txt_giatri.Text, out A[i, j]); if (kt) { rtbox_hienthi.Text += A[i, j].ToString()

+ " "; spt++; txt_giatri.ResetText(); txt_giatri.Focus(); j++; }

if (j == m) { rtbox_hienthi.Text += "n"; i++; j =

0; }

if (spt == n * m) { MessageBox.Show("Nhập xong

dãy", "Thông báo"); vohieuhoa(false); vohieuhoa2(); txt_m.Enabled = false; txt_n.Enabled = false; }

}

}


- Viết mã lệnh cho hàm vô hiệu hóa các nút sau khi nhập xong ma trận

private void vohieuhoa2()

{

bt_demchia21.Enabled = true; bt_lietkeSNT.Enabled = true; bt_timMax.Enabled = true; bt_tongle.Enabled = true; bt_tongtunghang.Enabled = true;

}

- Viết mã lệnh cho sự kiện kích chuột vào nút tìm giá trị lớn nhất

private void bt_timMax_Click(object sender, EventArgs e)

{

rtbox_ketqua.ResetText(); int max = A[0, 0];

for (int i = 0; i < n; i++) for (int j = 0; j < m; j++)

if (A[i, j] > max) max = A[i, j]; rtbox_ketqua.Text = "Giá trị lớn nhất của ma trận là:" +

max.ToString();

}


- Viết mã lệnh cho sự kiện kích chuột vào nút tính tổng các số lẻ

private void bt_tongle_Click(object sender, EventArgs e)

{

rtbox_ketqua.ResetText(); int s = 0;

for (int i = 0; i < n; i++) for (int j = 0; j < m; j++)

if (A[i, j] % 2 != 0) s += A[i, j];

rtbox_ketqua.Text = "Tổng các số lẻ của ma trận là: " + s.ToString();

}

- Viết mã lệnh cho sự kiện kích chuột vào nút đếm các số chia hết cho 3 và 7

private void bt_demchia21_Click(object sender, EventArgs e)

{

rtbox_ketqua.ResetText(); int d = 0;

for (int i = 0; i < n; i++) for (int j = 0; j < m; j++)

if (A[i, j] % 21 == 0) d++;

rtbox_ketqua.Text = "Ma trận có " + d.ToString() + " số chia hết cho cả 3 và 7";

}

- Viết mã lệnh cho sự kiện kích chuột vào nút tính tổng từng hàng

private void bt_tongtunghang_Click(object sender, EventArgs e)

{

int s; rtbox_ketqua.ResetText(); for (int i = 0; i < n; i++)

{

s=0;

for (int j = 0; j < m; j++) s += A[i, j]; rtbox_ketqua.Text+= "Tổng hàng " + (i+1).ToString() +

"là: " + s.ToString();

rtbox_ketqua.Text += "n";

}

}

- Viết mã lệnh cho sự kiện kích chuột vào nút tính liệt kê các số nguyên tố

private void bt_lietkeSNT_Click(object sender, EventArgs e)

{


int d = 0;

rtbox_ketqua.Text=" Các số nguyên tố của ma trận là: ";


for (int i = 0; i < n; i++) for (int j = 0; j < m; j++)

if (kt_SNT(A[i, j])) { rtbox_ketqua.Text += A[i,

j].ToString() + " "; d++; }

if (d == 0) rtbox_ketqua.Text = "Ma trận không có số


nguyên tố";

}

- Viết mã lệnh cho hàm kiểm tra số nguyên tố

bool kt_SNT(int n)

{

bool kt;

if (n < 2) kt = false; else

{

kt = true;

for(int i=2;i<=n/2;i++) if (n % i == 0)

{

kt = false; break;

}

}

return kt;

}


Bước 6. Kết quả chạy chương trình

Hình 4 58 Kết quả chạy chương trình bài tập mẫu về mảng hai chiều Bài 4 11 4

Hình 4.58: Kết quả chạy chương trình bài tập mẫu về mảng hai chiều

Bài 4.11

Tạo một ứng dụng Windows Form thực hiện các công việc sau:

1. Nhập một ma trận số thực gồm n hàng, m cột (với n và m là hai số nguyên dương).

2. Hiển thị ma trận.

3. Tìm số âm nhỏ nhất của ma trận.

4. Sắp xếp từng cột của ma trận theo thứ tự tăng dần.

5. Nhập số nguyên dương k, xóa cột thứ k của ma trận nếu có.

Xem toàn bộ nội dung bài viết ᛨ

..... Xem trang tiếp theo?
⇦ Trang trước - Trang tiếp theo ⇨

Ngày đăng: 03/07/2022