Kết Quả Chạy Chương Trình Bài Tập Mẫu Về Mảng Hai Chiều



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; }

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

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

}

return kt;

}

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

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

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

1.3.3 Bài tập thực hành

Bài 1

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 1 68 Các thao tác trên mảng hai chiều Yêu cầu Nhãn một số thao tác trên 2

Hình 1. 68. Các thao tác trên mảng hai chiều

Yêu cầu:


- Nhãn một số thao tác trên 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, ma trận vừa nhập, ma trận kết quả, kết quả: Font Time New Roman, cỡ chữ 11.

- Điều khiển lựa chọn là một ComboBox nhận các giá trị: “Tổng hàng k”, “Giá trị nhỏ nhất trên từng hàng”, “ Xóa cột thứ k”, “Trung bình cộng các phần tử của ma trận”, “Tìm kiếm”.

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

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

- Điều khiển “Nhập ma trận” là Button.

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

- Khi Load Form: Textbox tương ứng với nhãn nhập số hàng, nhập số cột để trống, con trỏ đặt tại textbox tương ứng với nhãn nhập số hàng. Nhãn kết quả, ma trận kết quả và richtextbox tương ứng với nó vô ẩn, Combobox tương ứng với nhãn lựa chọn và Richtextbox tương ứng với nhãn ma trận vừa nhập vô hiệu hóa.

- Khi người dùng kích vào nút “Nhập ma trận”:

+ Thực hiện kiểm tra xem người dùng đã nhập đủ dữ liệu vào các textbox tương ứng với nhãn nhập số hàng và nhập số cột. Nếu chưa nhập đủ dữ liệu thì hiện lên hộp thoại thông báo và yêu cầu nhập. Ngược lại thì kiểm tra xem dữ liệu nhập vào có hợp lệ hay không?( giá trị nhập vào 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 yêu cầu nhập lại.

+ Ngược lại thì hiện lên cửa sổ có môi trường nhập để người dùng nhập vào đó giá trị từng phần tử của ma trận (kiểm tra giá trị nhập vào phải là số nguyên).

+ Khi người dùng nhập xong ma trận thì Combobox tương ứng với nhãn lựa chọn sáng lên cho phép hoạt động.

- Combobox lựa chọn cho phép chọn một trong số các công việc sau:

+ Nếu giá trị lựa chọn trên Combobox là “Tổng hàng k” thì:

Hiện lên cửa sổ có môi trường nhập để người dùng nhập vào đó số nguyên dương k (k là số nguyên dương).

Thực hiện tính tổng các phần tử trên hàng k.

Nhãn kết quả hiện lên và hiển thị ra nhãn đó tổng các phần tử trên hàng k

của ma trận.

+ Nếu giá trị lựa chọn trên Combobox là “Giá trị nhỏ nhất trên từng hàng” thì: Nhãn kết quả hiện lên.

Thực hiện tìm giá trị nhỏ nhất trên từng hàng của ma trận. Hiển thị giá trị nhỏ nhất của từng hàng ra nhãn kết quả.

+ Nếu giá trị lựa chọn trên Combobox là “ Xóa cột thứ k” thì:



Hiện lên cửa sổ có môi trường nhập để người dùng nhập vào đó số nguyên dương k (k là số nguyên dương).

Nhãn ma trận kết quả và RichTexBox tương ứng với nhãn ma trận kết

quả hiện lên.


nhãn kết quả.


Thực hiện xóa cột thứ k của ma trận.

Hiển thị ma trận sau khi xóa cột thứ k lên RichTextBox tương ứng với

+ Nếu giá trị lựa chọn trên Combobox là “Trung bình cộng các phần tử của ma trận” thì:

Nhãn kết quả hiện lên.

Thực hiện tính trung bình cộng các phần tử của ma trận A.

Hiển thị giá trị trung bình cộng các phần tử của ma trận ra nhãn kết quả.

+ Nếu giá trị lựa chọn trên Comboxbox là “Tìm kiếm” thì:

Hiện lên cửa sổ có môi trường nhập để người dùng nhập vào đó số

nguyên X.


Nhãn kết quả hiện lên.

Thực hiện tìm kiếm xem X có trong ma trận không? Đưa ra kết quả tìm

kiếm ở nhãn kết quả.

Hướng dẫn:

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

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

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

Bước 1. Thiết kế Form theo mẫu và gắn các điều khiển Bước 2. Viết mã lệnh cho các nút chức năng

- Viết mã lệnh khai báo ma trận, số nguyên n và m

int n, m; int[,] A;

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

private void Form1_Load(object sender, EventArgs e)

{

combo_luachon.Enabled = false; rtbox_hienthi.Enabled = false; rtbox_ketqua.Visible = false; lb_ketqua.Visible = false; lb_matranKQ.Enabled = false; txt_n.TabIndex = 1; txt_n.ResetText(); txt_m.ResetText(); txt_n.Focus();

}


- 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, out int n)

{

bool kt;

kt = int.TryParse(S, out n); return kt && n > 0;

}

- Viết mã lệnh cho sự kiện kích chuột vào nút nhập

private void bt_nhap_Click(object sender, EventArgs e)

{

bool kt; rtbox_hienthi.Text="";

if (kiemtra_dulieu(txt_n.Text, out n) && kiemtra_dulieu(txt_m.Text, out m)&&kiemtra(txt_n.Text)&&kiemtra(txt_m.Text))

{

A = new int[n, m];

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

{

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

{

do

{

kt = int.TryParse(Microsoft.VisualBasic.Interaction.InputBox("Nhap A[" + (i + 1).ToString() + "," + (j + 1).ToString() + "]=", "Nhập phần tử của ma trận"), out A[i, j]);

} while (!kt);

rtbox_hienthi.Text += A[i, j].ToString()+" ";


}

rtbox_hienthi.Text += "n";

}

combo_luachon.Enabled = true;

}

else MessageBox.Show("Nhập sai n hoặc m", "Thông báo");

}

int tonghangk(int[,] A, int n, int m, int k)

{ int S = 0;

for (int j = 0; j < m; j++) S = S + A[k-1, j]; return S;

- Viết mã lệnh cho hàm tính tổng các phần tử trên hàng thứ k



- Viết mã lệnh cho hàm tìm giá trị nhỏ nhất trên từng hàng

void Min_hang(int[,] A, int n, int m)

{ int min;

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

{ min= A[i,0];

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

if (A[i, j] < min) min = A[i, j];

lb_ketqua.Text+= "Min hàng " + (i + 1).ToString() + "là: " + min.ToString()+"n";

}

}

- Viết mã lệnh cho hàm xóa cột thứ k của ma trận

void xoa_cot_k(int[,] A, int n, ref int m, int k)

{

lb_matranKQ.Visible = true;

lb_matranKQ.Text = "Ma trận xóa cột thứ " + (k).ToString(); rtbox_ketqua.Visible = true;

rtbox_ketqua.Text = ""; for (int i = 0; i < n; i++)

for (int j = k-1; j <m-1; j++) A[i, j] = A[i, j + 1];

m--;

}

- Viết mã lệnh cho hàm tính trung bình cộng các phần tử của ma trận

float tbc(int[,] A, int n, int m)

{

int S = 0;

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

for (int j = 0; j < m; j++) S+= A[i, j]; return (float)S / (n * m);

}

- Viết mã lệnh cho hàm tìm kiếm

bool timkiem(int[,] A, int n, int m, int X)

{

bool kt = false; int d = 0; for (int i = 0; i < n; i++)

{

for (int j = 0; j < m; j++) if (A[i, j] == X)

{

d = 1;

kt = true; break;

}

if (d == 1) break;

}



return kt;

}

- Viết mã lệnh cho sự kiện chọn phần tử trên combobox

private void combo_luachon_SelectedIndexChanged(object sender, EventArgs e)

{

bool kt; int k,X; lb_ketqua.Visible = true; lb_ketqua.Text = ""; lb_matranKQ.Visible = false; rtbox_ketqua.Visible = false;

if (string.Compare(combo_luachon.SelectedItem.ToString(), "Tổng hàng k") == 0)

{

do

{

kt = int.TryParse(Microsoft.VisualBasic.Interaction.InputBox("Nhập k=","Nhập hàng cần tính tổng"), out k);

} while (k <= 0 || k >n||!kt);


lb_ketqua.Text = "Tổng hàng " + (k).ToString() + " là " + tonghangk(A, n, m, k).ToString();


}

else if (string.Compare(combo_luachon.SelectedItem.ToString(), "Giá trị nhỏ nhất trên từng hàng") == 0) { lb_ketqua.Visible = true; Min_hang(A, n, m); }

else if (string.Compare(combo_luachon.SelectedItem.ToString(), "Xóa cột thứ k") == 0)

{

do

{ kt = int.TryParse(Microsoft.VisualBasic.Interaction.InputBox("Nhập k=", "Nhập cột cần xóa"), out k);

} while (k <= 0 || k >m||!kt); xoa_cot_k(A, n, ref m, k); for (int i = 0; i < n; i++)

{


+ " ";


}

}

for (int j = 0; j < m; j++) rtbox_ketqua.Text += A[i, j].ToString() rtbox_ketqua.Text += "n";

else if (string.Compare(combo_luachon.SelectedItem.ToString(), "Trung bình cộng các phần tử của ma trận") == 0)

{

lb_ketqua.Visible = true;

lb_ketqua.Text = "Trung bình cộng các phần tử của ma trận là " + tbc(A, n, m).ToString("F3");

}



else

{

lb_ketqua.Visible = true; do

{

kt = int.TryParse(Microsoft.VisualBasic.Interaction.InputBox("Nhập giá trị cần tìm kiếm X", "Nhập giá trị tìm kiếm"), out X);

} while (!kt);

if (timkiem(A, n, m, X)) lb_ketqua.Text = X.ToString() + " có trong

ma trận";

else lb_ketqua.Text = X.ToString() + " không có trong ma trận";

}

}

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

Hình 1 69 Kết quả chạy chương trình Bài 2 Viết chương trình thực hiện các 3

Hình 1. 69. Kết quả chạy chương trình

Bài 2

Viết chương trình thực hiện các công việc sau:

1. Thiết kế Form như hình

Hình 1 70 Tổng hai ma trận Yêu cầu Nhãn tính tổng hai ma trận Font Time New 4

Hình 1. 70. Tổng hai ma trận

Yêu cầu:


- Nhãn tính tổng hai ma trận: Font Time New Roman, chữ hoa, in đậm, cỡ chữ 16, căn giữa Form.

- Nhãn nhập số hàng, nhập số cột, ma trận A, ma trận B, ma trận tổng: Font Time New Roman, cỡ chữ 14.

- Đối tượng ô tương ứng với nhãn nhập số hàng, nhập số cột là các Textbox.

- Điều khiển để hiển thị ma trận A, ma trận B và ma trận tổng là các RichTextBox.

- Đối tượng nhập và kết quả là các RichTextbox.

- Các điều khiển “Nhập ma trận A”, “Nhập ma trận B”, “Tổng hai ma trận” , “Thoát” là các Button.

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

- Khi Load Form:

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

đó.

+ Textbox tương ứng với nhãn nhập số cột, nút “Nhập ma trận A”, “Nhập ma

trận B”, “Tổng hai ma trận”, các Richtextbox tương ứng với các nhãn “Ma trận A”, “Ma trận B”, “Ma trận tổng” vô hiệu hóa.

- Khi người dùng nhập giá trị vào textbox tương ứng với nhãn nhập số hàng thì textbox tương ứng với nhãn nhập số cột sáng lên cho phép hoạt động, đồng thời textbox đó vô hiệu hóa.

- Khi người dùng nhập giá trị vào textbox tương ứng với nhãn nhập số cột thì nút “Nhập ma trận A” sáng lên cho phép hoạt động, đồng thời textbox đó vô hiệu hóa.

- Khi người dùng kích vào nút “Nhập ma trận A”:

+ Kiểm tra xem dữ liệu nhập vào có hợp lệ không? (giá trị nhập vào tương ứng với số hàng, số cột là các số nguyên dương). Nếu chưa hợp lệ thì hiện lên hộp thoại thông báo, các textbox tương ứng với nhãn nhập số hàng, số cột sáng lên. Ngược lại hiện lên cửa sổ có môi trường nhập để người dùng nhập giá trị cho các phần tử của ma trận A.

+ Nút “Nhập ma trận B” sáng lên cho phép hoạt động.

- Khi người dùng kích vào nút “Nhập ma trận B”:

+ Nút “Nhập ma trận A” vô hiệu hóa.

+ Hiện lên cửa sổ có môi trường nhập để người dùng nhập giá trị cho các phần tử của ma trận B.

+ Nút “Tổng hai ma trận” sáng lên cho phép hoạt động.

- Khi người dùng kích vào nút “Tổng hai ma trận”:

+ Nút “Nhập ma trận B” vô hiệu hóa.

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: 16/07/2022