6. Tính trung bình cộng các phần tử có giá trị chẵn trong ma trận
Bài 4.12
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 vuông cấp n (với n là số nguyên dương).
2. Hiển thị ma trận.
3. Tính tổng các phần tử nằm trên đường chéo phụ của ma trận.
4. Tìm số âm lớn nhất trên đường chéo chính của ma trận
5. Đếm các phần tử của ma trận có giá trị chia hết cho 3 và 5.
Bài 4.13
Có thể bạn quan tâm!
- Kết Quả Chạy Chương Trình Giải Bất Phương Trình
- Kết Quả Thiết Kế Form Bài Tập Mảng Một Chiều
- Lập trình cơ bản - 25
Xem toàn bộ 212 trang tài liệu này.
Viết một chương trình thực hiện các công việc sau:
1. Thiết kế Form theo mẫu
Hình 4.59: Chương trình xử lý chuỗi
Yêu cầu:
- Nhãn chương trình xử lý chuỗi: Font Time New Roman, chữ hoa, in đậm, cỡ chữ 16, căn giữa Form.
- GroupBox nhập và kết quả: Font Time New Roman, cỡ chữ 14.
- Điều khiển để nhập chuỗi A, chuỗi B và hiển thị kết quả là các RichTextBox.
- Các điều khiển ―So sánh‖, ―Nối chuỗi‖, ―Chèn‖, ―Thêm chuỗi‖, ―Thay thế‖,
―Chuỗi hoa‖, ―Chuỗi thường‖, ‖Thoát‖là các Button.
2. Lập trình cho các sự kiện:
- Khi Load Form:
+ RichTextBox nhập A và B sáng cho phép nhập xâu ký tự.
+ Các điều khiển khác vô hiệu hóa (nút ―Thoát‖ luôn sáng, richTextBox kết quả luôn ẩn).
- Khi nhập xâu vào richTextBox nhập A hoặc B thì các button sẽ sáng lên.
- Khi kích vào nút ―So sánh‖:
báo.
+ Kiểm tra xem đã nhập xâu hay chưa? Nếu chưa thì đưa ra hộp thoại thông
+ Thực hiện so sánh hai xâu theo thứ tự từ điển trong bảng mã ASCII.
+ Hiển thị kết quả ra richTextBox kết quả.
- Khi kích vào nút ―Chèn‖:
+ Kiểm tra xem đã nhập xâu A và xâu B hay chưa? Nếu chưa nhập đủ thì đưa ra
hộp thoại thông báo.
+ Hiện lên cửa sổ cho phép nhập vào số nguyên dương n.
+ Thực hiện nối xâu B vào vị trí thứ n của xâu A.
+ Hiển thị xâu kết quả ra richTextBox kết quả.
- Khi kích vào nút ―Nối chuỗi‖:
+ Kiểm tra xem đã nhập xâu A và xâu B hay chưa? Nếu chưa nhập đủ thì đưa ra hộp thoại thông báo.
+ Thực hiện nối xâu B vào cuối xâu A.
+ Hiển thị xâu kết quả ra richTextBox kết quả.
- Khi kích vào nút ―Thay thế‖:
+ Kiểm tra xem đã nhập xâu A và xâu B hay chưa? Nếu chưa nhập đủ thì đưa ra hộp thoại thông báo.
+ Thực hiện thay thế xâu A bằng xâu B.
+ Hiển thị xâu kết quả ra richTextBox xâu A.
- Khi kích vào nút ―Xâu hoa‖:
+ Kiểm tra xem đã nhập xâu A và xâu B hay chưa? Nếu chưa nhập đủ thì đưa ra hộp thoại thông báo.
+ Thực hiện chuyển xâu A và xâu B về xâu chứa toàn ký tự hoa.
+ Hiển thị xâu kết quả ra richTextBox xâu A và richTextBox xâu B.
- Khi kích vào nút ―Thoát‖: thực hiện kết thúc 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 ―CHƯƠNG TRÌNH XỬ LÝ CHUỖI‖, ―Nhập chuỗi A‖, ―Nhập chuỗi B‖ là các Label.
- Đối tượng ô nhập xâu A, xâu B và kết quả là các RichTextBox.
- Đối tượng nhập và kết quả là các GroupBox.
- Các nút ―So sánh‖, ―Nối chuỗi‖, ― Chèn‖, ―Thay thế‖, ― Chuỗi hoa‖, ―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.60: Kết quả thiết kế Form chương trình xử lý xâu
Bước 5. Viết mã lệnh cho các nút chức năng
- Viết mã lệnh cho sự kiện Form Load
private void Form1_Load(object sender, EventArgs e)
{
vohieuhoa(false); rtbox_A.ResetText(); rtbox_B.ResetText(); rtbox_A.Focus();
}
- Viết mã lệnh cho hàm vô hiệu hóa các button
void vohieuhoa(bool gt)
{
bt_chen.Enabled = gt; bt_chuoihoa.Enabled = gt; bt_noichuoi.Enabled = gt; bt_sosanh.Enabled = gt; bt_thaythe.Enabled = gt;
}
- Viết mã lệnh cho sự kiện TextChanged của richTextBox nhập xâu A
private void rtbox_A_TextChanged(object sender, EventArgs e)
{
vohieuhoa(true);
}
- Viết mã lệnh cho sự kiện TextChanged của richTextBox nhập xâu B
private void rtbox_B_TextChanged(object sender, EventArgs e)
{
vohieuhoa(true);
}
- Viết mã lệnh cho sự kiện kích chuột vào nút so sánh
private void bt_sosanh_Click(object sender, EventArgs e)
{
rtbox_ketqua.ResetText();
if (kiemtra(rtbox_A.Text) || kiemtra(rtbox_B.Text)) MessageBox.Show("Chưa nhập xâu", "Thông báo");
else if (string.Compare(rtbox_A.Text, rtbox_B.Text) == 0) rtbox_ketqua.Text = "Hai chuỗi giống nhau";
else if (string.Compare(rtbox_A.Text, rtbox_B.Text) <0) rtbox_ketqua.Text = "Chuỗi A nhỏ hơn chuỗi B";
else rtbox_ketqua.Text = "Chuỗi A lớn hơn chuỗi B";
}
- Viết mã lệnh cho hàm kiểm tra chuỗi rỗng
bool kiemtra(string st)
{
if (string.IsNullOrWhiteSpace(st)) return true; else return false;
}
- Viết mã lệnh cho sự kiện kích chuột vào nút nối chuỗi
private void bt_noichuoi_Click(object sender, EventArgs e)
{
rtbox_ketqua.ResetText();
if (kiemtra(rtbox_A.Text) || kiemtra(rtbox_B.Text)) MessageBox.Show("Chưa nhập xâu", "Thông báo");
else
{
string st, st1, st2; st1 = rtbox_A.Text; st2 = rtbox_B.Text;
st = string.Concat(st1, st2); rtbox_ketqua.Text = st;
}
}
- Viết mã lệnh cho sự kiện kích chuột vào nút chèn
private void bt_chen_Click(object sender, EventArgs e)
{
bool kt; int n; rtbox_ketqua.ResetText();
if (kiemtra(rtbox_A.Text) || kiemtra(rtbox_B.Text))
MessageBox.Show("Chưa nhập xâu", "Thông báo"); else
{
string st, st1, st2; st1 = rtbox_A.Text; st2 = rtbox_B.Text; do
{
kt =
int.TryParse(Microsoft.VisualBasic.Interaction.InputBox("Nhập vị trí cần bổ sung n = "), out n);
} while (!kt || n < 1 || n > st1.Length);
st = st1.Insert(n, st2); rtbox_ketqua.Text = st;
}
}
- Viết mã lệnh cho sự kiện kích chuột vào nút thay thế
private void bt_thaythe_Click(object sender, EventArgs e)
{
if (kiemtra(rtbox_A.Text))MessageBox.Show("Chưa nhập xâu", "Thông báo");
else
{
string xau_can_thay = Microsoft.VisualBasic.Interaction.InputBox("Nhập xâu cần thay thế", "Nhập xâu", "", 100, 100);
string xau_thay_the = Microsoft.VisualBasic.Interaction.InputBox("Nhập xâu thay thế", "Nhập xâu", "", 100, 100);
st1 = st1.Replace(xau_can_thay, xau_thay_the);
rtbox_A.Text = st1;
}
}
- Viết mã lệnh cho sự kiện kích chuột vào nút chuỗi hoa
private void bt_chuoihoa_Click(object sender, EventArgs e)
{
rtbox_ketqua.ResetText();
if (kiemtra(rtbox_A.Text) || kiemtra(rtbox_B.Text)) MessageBox.Show("Chưa nhập xâu", "Thông báo");
else
{
string st1, st2; st1 = rtbox_A.Text; st2 = rtbox_B.Text;
st1 = st1.ToUpper(); st2 = st2.ToUpper(); rtbox_A.Text = st1; rtbox_B.Text = st2;
}
}
- Viết mã lệnh cho sự kiện kích chuột vào nút thoát
private void bt_Thoat_Click(object sender, EventArgs e)
{
this.Close();
}
Bước 6. Kết quả chạy chương trình
Hình 4.61: Kết quả chạy chương trình xử lý xâu
Bài 4.14
Lập chương trình thực hiện các yêu cầu sau:
1. Thiết kế Form như hình sau
Hình 4.62: Chuẩn hóa và đếm từ trong xâu
Yêu cầu:
- Nhãn chuẩn hóa và đếm từ trong xâu: Font Time New Roman, chữ hoa, in đậm, cỡ chữ 16, căn giữa Form.
- GroupBox nhập xâu và kết quả: Font Time New Roman, cỡ chữ 14
- Điều khiển để nhập xâu và hiển thị kết quả là các RichTextBox và được đặt trong các GroupBox tương ứng.
- Nhãn đếm từ: Font Time New Roman, cỡ chữ 14.
- Các điều khiển ―Chuẩn hóa‖, ―Đếm từ‖, ―Thoát là các Button.
2. Lập trình cho các nút sự kiện:
- Khi Load Form:
+ richTextBox nhập xâu sáng lên cho phép nhập xâu.
+ Các điều khiển khác vô hiệu hóa (nút ―Thoát‖ luôn sáng).
- Nút ―Chuẩn hóa‖ sáng lên khi nhập ở richTextBox nhập xâu.
- Khi kích vào nút ―Chuẩn hóa‖ thì:
+ RichTextBox nhập xâu vô hiệu hóa.
+ Thực hiện chuẩn hóa xâu và đưa kết quả ra richTextBox kết quả
+ Nút ―Đếm từ‖ sáng lên đồng thời lúc này nút ―Chuẩn hóa‖ vô hiệu hóa.
- Khi kích vào nút ―Đếm từ‖ thì:
+ Thực hiện đếm từ của xâu đã chuẩn hóa.
+ Hiển thị kết quả ra nhãn đếm từ.
TAI LIỆU THAM KHẢO
[1] Phạm Hữu Khang, Đoàn Thiện Ngân. C# 2005 - Lập trình cơ bản. Nhà xuất bản Lao động xã hội. 2006.
[2] Phạm Hữu Khang, Đoàn Thiện Ngân. C# 2005 - Lập trình Windows Forms. Nhà xuất bản Lao động xã hội. 2006.
[3] Microsoft .net (C#), Trung tâm đào tạo CNTT chất lượng cao, cổng cntt Việt Nam. www.itgatevn.com.vn
[4] Programming C#, Jesse Liberty, O‘Reilly.
[5] Hướng dẫn thực hành lâp trình cơ bản, Đại học Công nghệ Đồng Nai
[6] Windows Forms Programming with C#, Erik Brown, Manning.
[7] http://msdn.microsoft.com