• Thứ Hai, 21/12/2009 10:12 (GMT+7)

    Hàm lấy kí tự trong chuỗi

    Lượt xem 2483
    Đánh giá

    Câu hỏi :
    Xin hỏi trong Visual Studio 2005 dùng hàm gì để lấy được số ở giữa trong 7 số nhập vào (theo thứ tự từ nhỏ đến lớn). 

     

    Trả lời :
    Có 2 điểm chưa rõ ràng trong câu hỏi của bạn:
     - Bạn muốn viết bằng ngôn ngữ nào trong các ngôn ngữ mà Microsoft hỗ trợ trong bộ VS 2005: VC#, VC++, VB .Net, hay VJ#?

     - 7 số nhập vào là 7 ký số hay 7 số bất kỳ, chúng được nhập theo thứ tự từ nhỏ đến lớn chưa?
     Do đó ở đây chúng tôi xin được trả lời tổng quát như sau:
     Để viết chương trình giải quyết yêu cầu nào đó, bạn nên tuân thủ qui trình kỹ thuật gồm nhiều bước để giảm thiểu công sức lập trình. Thí dụ bạn nên tiến hành tuần tự các bước sau đây:
     1. Nắm bắt yêu cầu phần mềm: nhiệm vụ của bước này là xác định rõ ràng, chi tiết và cụ thể các chức năng của chương trình. Thí dụ bạn xác định được chức năng của chương trình là cho người dùng nhập vào 7 số bất kỳ, chương trình sẽ hiển thị số nào có giá trị nhỏ thứ tư (ở giữa) trong 7 số.

     2. Phân tích yêu cầu: nhiệm vụ của bước này là phác họa sơ lược cách giải quyết từng chức năng. Thí dụ với chương trình có 1 chức năng như bước 1, sau khi phân tích, ta phác họa cách giải quyết chức năng này như sau:
     - Chờ nhập vào từng số trong 7 số và chứa vào danh sách.
     - Sắp xếp thứ tự các số trong danh sách.
     - Lấy phần tử thứ 4 ra. Đây là kết quả cần tìm.

     3. Thiết kế: Nhiệm vụ của bước này là chi tiết hóa kết quả phân tích, rõ ràng đến độ đủ để lập trình dễ dàng. Thí dụ sau khi thiết kế bản phát họa của bước 2, ta được kết quả thiết kế như sau:
     - Dùng 7 textbox để nhập 7 số cần xử lý.
     - Đưa nội dung của 7 textbox vào 1 biến array.
     - Sắp xếp danh sách theo 1 biến thể của giải thuật "Insertion Sort" như sau:
     Lặp xác định vị trí đúng cho từng phần tử i từ 0 tới 6:
     * Lặp tìm phần tử nhỏ nhất từ vị trí i tới 6
     * Hoán vị nó với phần tử i
     - hiển thị kết quả lên textbox: phần tử thứ 4 trong danh sách

     4. Hiện thực: Nhiệm vụ của bước này là dịch bản thiết kế (dùng ngôn ngữ để người hiểu) ra đoạn code của ngôn ngữ lập trình nào đó để máy hiểu và thực thi. Bạn có thể chọn bất kỳ ngôn ngữ lập trình nào cũng được, tốt nhất là chọn ngôn ngữ mà bạn nắm vững nhất.
     Thí dụ, bạn chọn ngôn ngữ VC# và môi trường lập trình VS 2005 để lập trình thì qui trình xây dựng chương trình giải quyết bản thiết kế ở bước 3 như sau:
     1. Chạy Visual Studio 2005, chọn menu File.New Project để hiển thị cửa sổ New Project, mở rộng mục Visual C#, chọn mục Windows, chọn mục Windows Application ở cửa sổ Templates, nhập tên Project vào textbox "Name" rồi chọn button Ok để tạo Project.
     2. Khi cửa sổ thiết kế Form hiển thị, hãy thiết kế Form có 7 textbox, 1 button và 2 label như hình 3:
     Đặt tên cho 7 textbox lần lượt là txt0, txt1, txt2, txt3, txt4, txt5, txt6. Đặt tên cho button lệnh là btnStart, tên cho label hiển thị kết quả là lblKetqua.
     3. Nhấn đúp chuột vào button để tạo hàm xử lý click chuột cho nó rồi viết code như sau:
     //hàm xử lý click chuột trên button btnStart
     private void btnStart_Click(object sender, EventArgs e) {
     //đưa nội dung của 7 textbox vào 1 biến array
     double[] dayso = new double[7];
     dayso[0] = Double.Parse(txt0.Text);
     dayso[1] = Double.Parse(txt1.Text);
     dayso[2] = Double.Parse(txt2.Text);
     dayso[3] = Double.Parse(txt3.Text);
     dayso[4] = Double.Parse(txt4.Text);
     dayso[5] = Double.Parse(txt5.Text);
     dayso[6] = Double.Parse(txt6.Text);
     //sắp xếp dayso theo thứ tự tăng dần
     int i,j, min;
     double temp;
     //Lặp xác định vị trí đúng cho từng phần tử i từ 0 tới 6
     for (i = 0; i < 6; i++) {
     min = i;
     //Lặp tìm phần tử nhỏ nhất từ vị trí i tới 6
     for (j = i + 1; j < 7; j++)
     if (dayso[min] > dayso[j])
     min = j;
     //hoán vị phần tử nhỏ nhất về vị trí i
     temp = dayso[i];
     dayso[i] = dayso[min];
     dayso[min] = temp;
     }
     //hiển thị kết quả
     lblKetqua.Text = "Số ở giữa 7 số nhập là : " + dayso[3].ToString();
     }
     4. Chọn menu Debug.Start Debugging để chạy thử chương trình.
    Ý kiến phản hồi và bình luận      Gởi ý kiến của bạn ?
    Chuyên mục: Lập trình