Từ 1 tới 4 trên tổng số 4 kết quả

Đề tài: Tìm và hướng dẫn sửa lỗi trong Bài Tập Lớn

  1. #1
    Ngày gia nhập
    02 2013
    Bài viết
    0

    Mặc định Tìm và hướng dẫn sửa lỗi trong Bài Tập Lớn

    Mình vẽ chart và viết thấy ý tưởg rất hợp lý. Nhưng khi viết trên CFree 5.0 thì bị báo 1 số lỗi rất khó hiểu. Mình không biết đây là lỗi về kĩ thuật hay lỗi về hàm trong bài tập.
    Đề đây ạ: http://www.mediafire.com/view/?7ejm1dendjx5dt1
    Đây là bài làm của mình:
    Code:
            /**
     * In params: 
     * HP1: Musketeer strength.
     * HP2: Bodyguard strength.
     * Q1:  Number of Musketeers.
     * Q2:  Number of Bodyguards.
     * d:   Distance from the place of war to Musketeer's headquaters.
     * Return value: Win probability of Musketeers.
     */
    float calculate(int HP1, int HP2, int Q1, int Q2, int d)
    {
    	// Write your code here!
    	#include <stdio.h>
    	#include <iostream.h>
    	#include <fstream>
    	#include <math.h>
    	using namespace std;
    	int main()
    	{
    		int HP1, HP2, Q1, Q2, d;
    		float Pr, P1, P2, h;
    		cout<< "Nhap vao HP1, HP2";
    		cin>>HP1>>HP2;
    		cout<< "Nhap vao Q1, Q2";
    		cin>>Q1>>Q2;
    		cout<< "Nhap vao d";
    		cin>>d;
    		if(Q1>1.5*Q2 && d<=300)
    		{
    			P1=HP1+((Q1-Q2)*d)/Q1;
    			P2=HP2;
    		}
    		if(1.5*Q1<Q2 && d>=700)
    		{
    			P1=HP1;
    			P2=HP2+((Q2-Q1)*(1000-d))/Q2;
    		}
    		else
    		{
    			P1=HP1;
    			P2=HP2;
    			h=(HP1+HP2)%100;
    		}
    		Pr=(P1+h-P2)/(P1+P2);
    		cout<<"Xac suat thang cua Ngu Lam Quan: "<<Pr<<"\n";
    	return 0;
    }
    }
    Xin mọi người đóng góp ý kiến và hướng dẫn mình sửa lỗi.
    Cảm ơn các bạn đã đọc và giúp đỡ !
    Đã được chỉnh sửa lần cuối bởi hellboykk : 24-02-2013 lúc 12:11 PM. Lý do: Thiếu sót

  2. #2
    Ngày gia nhập
    02 2012
    Nơi ở
    hà nội
    Bài viết
    58

    Lỗi cú pháp kìa.
    cin>>Q1>Q2; //cin>>Q1>>Q2;
    P2=HP2 //P2=HP2;
    return 0.0;//return 0;
    + Quách Việt Kiên
    + Yahoo: Kaka_8x_vn
    + skype: kiencuongno1
    + Gmail: kiencuongno1@gmail.com
    Ai có thể free cho mình 50k thẻ điện thoại ko.

  3. #3
    Ngày gia nhập
    02 2013
    Bài viết
    0

    Trích dẫn Nguyên bản được gửi bởi kienquach Xem bài viết
    Lỗi cú pháp kìa.
    cin>>Q1>Q2; //cin>>Q1>>Q2;
    P2=HP2 //P2=HP2;
    return 0.0;//return 0;
    Cảm ơn bạn. Mình đã sửa lại các lỗi nhưg bạn nói nhưng hình như đây k phải là mấu chốt. Chương trình vẫn k chạy được.

  4. #4
    Ngày gia nhập
    03 2013
    Nơi ở
    Hồ Chí Minh
    Bài viết
    0

    Trích dẫn Nguyên bản được gửi bởi hellboykk Xem bài viết
    Cảm ơn bạn. Mình đã sửa lại các lỗi nhưg bạn nói nhưng hình như đây k phải là mấu chốt. Chương trình vẫn k chạy được.
    Mình chưa biết phải sửa như thế nào vì không hiểu cho lắm thuật toán này.
    Mình xin cũng góp ý bạn cách debug lỗi với 1 cách khá "cùi" nhưng rất hiệu quả nếu như code nhiều và phức tạp nhất là trong các bài tập lớn.
    Bạn xem lại các lỗi sau đó phân loại nó ra: Cú pháp - Logic.
    Sửa hết lỗi cú pháp trước sau đó sửa lỗi Logic.
    Lỗi Logic có 2 loại: "Sai đâu sửa đó". và 1 loại tệ nhất là "sai ở đó nhưng không biết sửa đâu" sửa hoài không được - lỗi này rất nghiêm trọng nếu như bạn mắt phải bạn nên xem lại cách bạn code vì sau này sẽ ảnh hưởng rất lớn trong vấn đề tư duy logic cũng như xử lý các bài toán phức tạp hơn.
    Với 2 loại sai logic "sai đâu sửa đó" hay loại "sai ở đó nhưng không biết sửa đâu" thì bạn nên chèn 1 dòng cout<<""; vào trước từng dòng code mà bạn cho là phát sinh ra lỗi này. Nên tự động viên mình như chèn 1 dòng code:
    cout<<"mi sai o day ne"; hay cout<<"ta se tim ra mi error kia"; để debug.
    Việc này là có nhược là :thủ công và rất tốn thời gian ở trong các bài tập lớn số dòng code nhiều nhưng ưu điểm của nó là: giúp bạn nắm được mình làm gì và hiểu được mình sai ở đâu.
    Chúc bạn thành công.
    học hỏi và chia sẽ kiến thức, vyexempy

Quyền hạn của bạn

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