User Tag List

+ Trả lời chủ đề
Hiện kết quả từ 1 tới 8 của 8

Chủ đề: [Hỏi C#] Cách cộng 2 ma trận vuông với phần tử theo mảng trong textbox.

  1. #1
    svBK's Member Avatar của hnvn
    Tham gia ngày
    Mar 2012
    Bài gửi
    93

    Icon2 [Hỏi C#] Cách cộng 2 ma trận vuông với phần tử theo mảng trong textbox.

    Mọi người cho em hỏi là làm thế nào để cộng 2 ma trận vuông với các phần tử tuần tự nhập trong textbox, mỗi textbox là mỗi ma trận vuông. tức là sau khi nhập các phần tử và show ra chúng bên dưới thì sau đó nhấn button cong thì chúng sẽ cộng lại và show ra.

    Hình minh họa:
    Ha Noi Capital - Viet Nam - Sinh vien khoa 2009

  2. #2
    HUT's Engineer
    Tham gia ngày
    Jun 2011
    Bài gửi
    686

    Mặc định Re: [Hỏi C#] Cách cộng 2 ma trận vuông với phần tử theo mảng trong textbox.

    chuỗi đầu vào: matranA="11,2,39,40" và matranB = "3,4,33,2"
    tính tổng hai ma trận trên:

    var mangA = matranA.Split(',');
    var a = new int[mangA.Length];
    int i = 0;
    foreach (var phantu in mangA) a[i++] = Int.Parse(phantu);

    var mangB = matranB.Split(',');
    var b = new int[mangB.Length];
    i = 0;
    foreach (var phantu in mangB) b[i++] = Int.Parse(phantu);

    var kq = new int[mangA.Length];
    for(var i = 0; i < n; i++) r[i] = a[i] + b[i];

    string matranKetQua;
    foreach(var phantu in kq) matranKetQua+=phantu.ToString() + ',';
    matranKetQua.Remove((matranKetQUa.Length-1),1);

  3. #3
    svBK's Member Avatar của hnvn
    Tham gia ngày
    Mar 2012
    Bài gửi
    93

    Icon2 Re: [Hỏi C#] Cách cộng 2 ma trận vuông với phần tử theo mảng trong textbox.

    Quote Nguyên văn bởi pkthanh92 Xem bài viết
    chuỗi đầu vào: matranA="11,2,39,40" và matranB = "3,4,33,2"
    tính tổng hai ma trận trên:
    Lại gặp bác rồi, bác dùng biến var lạ quá có phải nó chung chung cho int và string ko. run nó báo lỗi ko chuyển qua lại dk giữa string và int hay sao ấy, đây là code em fix lại của bác vẫn bị lỗi đấy, bác có cái biến n đâu ra thế ?
    Mã:
            private void btncong_Click(object sender, EventArgs e)
            {
                var mangA = mt1.Text.Split(',');
                var a = new int[mangA.Length];
                int i = 0;
                foreach (var phantu in mangA) a[i++] = Int32.Parse(phantu);
    
                var mangB = mt2.Text.Split(',');
                var b = new int[mangB.Length];
                i = 0;
                foreach (var phantu in mangB) b[i++] = Int32.Parse(phantu);
    
                var kq = new int[mangA.Length];
                for ( i = 0; i < mt1.Text.Length; i++) //vì 2 ma trẫn vuông thì số phần tử mt a= mt b
                    kq[i] = a[i] + b[i];
    
                string matranKetQua = string.Empty; ;
                foreach (var phantu in kq) matranKetQua += phantu.ToString() + ',';
                matranKetQua.Remove((matranKetQua.Length - 1), 1);
            }

  4. #4
    HUT's Engineer
    Tham gia ngày
    Jun 2011
    Bài gửi
    686

    Mặc định Re: [Hỏi C#] Cách cộng 2 ma trận vuông với phần tử theo mảng trong textbox.

    var thay cho tất cả mọi kiểu:
    ví dụ khi viết:

    int[] a = new int[10];

    chỉ cần vế phải là biết thừa a là kiểu mảng int rồi nên chỉ cần viết

    var a = new int[10]

    đỡ cho cả người viết, người đọc và compiler.

    code sửa:
    private string AddMatrix(string matranA, string matranB)
    {
    var mangA = matranA.Split(',');
    var a = new int[mangA.Length];
    int i = 0;
    foreach (var phantu in mangA) a[i++] = Int32.Parse(phantu);

    var mangB = matranB.Split(',');
    var b = new int[mangB.Length];
    i = 0;
    foreach (var phantu in mangB) b[i++] = Int32.Parse(phantu);

    var kq = new int[mangA.Length];
    for(var i = 0; i < mangA.Length; i++) r[i] = a[i] + b[i];

    string matranKetQua;
    foreach(var phantu in kq) matranKetQua+=phantu.ToString() + ',';
    matranKetQua.Remove((matranKetQUa.Length-1),1);
    }


    private void btncong_Click(object sender, EventArgs e)
    {
    mtkq.Text = AddMatrix(mt1.Text, mt2.Text);
    }

  5. #5
    svBK's Member Avatar của hnvn
    Tham gia ngày
    Mar 2012
    Bài gửi
    93

    Mặc định Re: [Hỏi C#] Cách cộng 2 ma trận vuông với phần tử theo mảng trong textbox.

    Sau một hồi sửa chỗ r[i] và thêm return thì nó đã chạy và code mới đây
    private string AddMatrix(string matranA, string matranB)
    {
    var mangA = matranA.Split(',');
    var a = new int[mangA.Length];
    int i = 0;
    foreach (var phantu in mangA) a[i++] = Int32.Parse(phantu);
    var mangB = matranB.Split(',');
    var b = new int[mangB.Length];
    i = 0;
    foreach (var phantu in mangB) b[i++] = Int32.Parse(phantu);
    var kq = new int[mangA.Length];
    for(i = 0; i < mangA.Length; i++)
    kq[i] = a[i] + b[i];
    string matranKetQua = string.Empty;
    foreach(var phantu in kq) matranKetQua+=phantu.ToString() + ',';
    matranKetQua.Remove((matranKetQua.Length-1),1);
    return matranKetQua;
    }

    private void btncong_Click(object sender, EventArgs e)
    {
    kqmatran.Text = AddMatrix(mt1.Text, mt2.Text);
    }
    nhưng kết quả thừa 1 dấu , bác ơi, em lên google tìm 1 số cách như sau

    matranKetQua.Trim;
    matranKetQua.Substring(",");
    matranKetQua.LastIndexOf;
    hay thay foreach bằng vòng for cho nó điền dấu, đến vị trí trước số cuối cùng thôi nhưng chưa dk.

  6. #6
    HUT's Engineer
    Tham gia ngày
    Jun 2011
    Bài gửi
    686

    Mặc định Re: [Hỏi C#] Cách cộng 2 ma trận vuông với phần tử theo mảng trong textbox.

    hì, sorry bạn, hồi sáng ngồi cài visual studio nên code chay, chưa dò lỗi được,

    đề xóa ký tự cuối cùng trong một xâu bạn dùng hàm Remove

    ở trên mình đã xóa ký tự , ở cuối rồi mà:

    matranKetQua.Remove((matranKetQua.Length-1),1);

    nếu vẫn thừa thì bạn double câu lệnh đó lên

    matranKetQua.Remove((matranKetQua.Length-1),1);
    matranKetQua.Remove((matranKetQua.Length-1),1);

  7. #7
    svBK's Member Avatar của hnvn
    Tham gia ngày
    Mar 2012
    Bài gửi
    93

    Mặc định Re: [Hỏi C#] Cách cộng 2 ma trận vuông với phần tử theo mảng trong textbox.

    Quote Nguyên văn bởi pkthanh92 Xem bài viết
    hì, sorry bạn, hồi sáng ngồi cài visual studio nên code chay, chưa dò lỗi được,

    đề xóa ký tự cuối cùng trong một xâu bạn dùng hàm Remove

    ở trên mình đã xóa ký tự , ở cuối rồi mà:

    matranKetQua.Remove((matranKetQua.Length-1),1);

    nếu vẫn thừa thì bạn double câu lệnh đó lên

    matranKetQua.Remove((matranKetQua.Length-1),1);
    matranKetQua.Remove((matranKetQua.Length-1),1);
    vẫn chưa dk pro ơi, ma trận 1,2,3,4 + ma trận 2,3,4,5 nó ra 3,5,7,9, thừa dấu , sau số 9.

  8. #8
    HUT's Engineer
    Tham gia ngày
    Jun 2011
    Bài gửi
    686

    Mặc định Re: [Hỏi C#] Cách cộng 2 ma trận vuông với phần tử theo mảng trong textbox.

    bạn sửa lại lệnh cuối:

    matranKetQua = matranKetQua.Remove((matranKetQua.Length-1),1);

+ Trả lời chủ đề

Thông tin chủ đề

Users Browsing this Thread

Hiện có 1 người đọc bài này. (0 thành viên và 1 khách)

Từ khóa (Tag) của chủ đề này

Quyền viết bài

  • Bạn không thể gửi chủ đề mới
  • Bạn không thể gửi trả lời
  • Bạn không thể gửi file đính kèm
  • Bạn không thể sửa bài viết của mình


About svBK.VN

    Bách Khoa Forum - Diễn đàn thảo luận chung của sinh viên ĐH Bách Khoa Hà Nội. Nơi giao lưu giữa sinh viên - cựu sinh viên - giảng viên của trường.

Follow us on

Twitter Facebook youtube