Help Me!! 1 Bài C++

Thảo luận trong 'Lập trình & Đồ hoạ' bắt đầu bởi ™KyoMons†er™, 11/11/08.

  1. ™KyoMons†er™

    ™KyoMons†er™ Youtube Master Race

    Tham gia ngày:
    8/11/08
    Bài viết:
    92
    Hic! Ông Thầy ổng cho bài này, ai làm dc thì ổng add cho 2 điểm vào bài thi. Mong Các Bro giải Giúp.

    Đề: Lập Trò chơi oẳn tù tì, Kéo=0, Bao=1, Búa=2. Người Chơi Với Máy(Player VS PC) trong đó có sử dụng hàm lặp (loops) sao cho số trận thắng thua lặp theo chu kì.
    Ví Dụ như PC thắng 3 lần, thua 2 lần-thắng 2,thua 3-thắng 1, thua 2.
    Chu Kì thắng thua đó cứ lập đi lập lại.

    P/S:Trong Bài này thì mình chỉ không biết dùng hàm lặp thôi, còn mấy fa62n kia thì ổn.
     
  2. ricky_martin

    ricky_martin Lão Làng Lão Làng GVN

    Tham gia ngày:
    30/12/05
    Bài viết:
    451
    cho em ăn ké với :D

    đề thế này : nhập vào 3 cạnh của tam giác , kiểm tra xem là tam giác gì (ko fai tam giác,tg thường,tg cân,tg đều,tg vuông,tg vuông cân)

    em biết đc vầy :

    int latamgiac = ((a+b>c)&&(a+c>b)&&(b+c>a))
    int tgcan = ((a=b)||(a=c)||(b=c))
    int tgd = ((a==b) && (b==c))
    int tgv = ((a*a+b*b=c*c)||(b*b+c*c=a*a)||(a*a+c*c=a*a))

    còn sắp xếp như thế nào trong lệnh if thì em ko biết
    em sắp đủ cách rồi mà khi nhập ( 3 3 3) thì nó báo 1 lần 2 kết quả "là tam giac đều,là tam giác cân"
    nghĩa là khi 3 cạnh đều bằng 3 thì máy nó ko phân biệt đc tam giác đều hay cân ấy
    anh nào giúp em sắp xếp sao cho máy nó báo đúng nhé
    Em dùng lệnh if đấy,nếu có cách khác làm thì chỉ em lun hen
    thks nhìu
     
  3. REALM

    REALM Legend of Zelda

    Tham gia ngày:
    30/6/03
    Bài viết:
    970
    Nơi ở:
    HCM city
    ngoài ra khi if thì nên bắt đầu với mấy cái tam giác đặc biệt truớc ví dụ, đều , cân, vuông cân , vuông cho nó đẹp
    Mã:
    	if(latamgiac)
    	{
    		cout<<"Bé là tam giác ";
    		if(latamgiacdeu)
    		{
    			cout<<"Đều Đều";	
    		}
    		if(latamgiacvuongcan)
    		{
    			cout<<"Vuông Cân Nè ";
    			break; 
    		}
    		if(latamgiaccan)
    		{	
    			cout<<"Em rất cân";
    			break;
    		}
    		if(latamgiacvuong)
    		{
    			cout<<"Em rât vuông";
    		}
    	}
    	eles
    		cout<<"Em không phải là tam giác đâu anh";
    
    bài gì ngộ vậy, game oẳn tù xì gì chơi ăn gian dữ vậy, bài này cho random tỉ lệ thằng mới đúng chứ ta.
     
  4. ™KyoMons†er™

    ™KyoMons†er™ Youtube Master Race

    Tham gia ngày:
    8/11/08
    Bài viết:
    92
    ừ vì tớ đang học hàm while, nên ổng bắt phải làm vậy đó...ổng kêu có dùng hàm chứa random nữa. Ổng còn nói là chơi như vậy làm cho người chơi có cảm giác lúc thắng lúc thua nên sẽ ko chán ^^
     
  5. ricky_martin

    ricky_martin Lão Làng Lão Làng GVN

    Tham gia ngày:
    30/12/05
    Bài viết:
    451
    anh REALM chỉ mà ko đọc bài em gì hết
    em đâu có khai biến nào "latamgiavuongcan" đâu mà
    với cái lệnh cout là lệnh gì vậy
    mà cho dù có biến "latamgiacvuongcan" thì em nghĩ cũng chạy sai chương trình àh
     
  6. DHBL

    DHBL Youtube Master Race

    Tham gia ngày:
    7/11/08
    Bài viết:
    58
    ok sr bé nhìu, sáng xớm buồn ngủ viết sai, bù cho bé nhé
    Mã:
    bé thích chơi hàm thì :
    #include<iostream.h>
    #include<stdlib.h>
    void HienThiLoaiTamGiac(int a, int b, int c)
    {
    	if(a+b>c && b+c>a && a+c>b)
    	{
    		cout<<"Em Day La Tam Giac ";
    		if(a==b && b==c)
    		{
    			cout<<"Deu";
    			exit(1);
    		}
    		if(a==b || a==c || b==c)
    		{
    			cout<<"Can";
    			exit(1);
    		}
    		if((a*a+b*b==c*c) || (a*a+c*c==b*b) || (c*c+b*b==a*a))
    		{
    			cout<<"Vuong";
    			exit(1);
    		}
    	}
    	else
    		cout<<"Em Khong La Tam Giac";
    	
    }
    
    còn không chơi hàm thì viết như vầy
    Mã:
    #include<iostream.h>
    #include<stdlib.h>
    void main()
    {
    	cout<<"Chuong Trinh Kiem Tra Tam Giac\n";
    	int a,b,c;
    	cout<<"Nhap Cac Canh Cua Ba Tam Giac";
    	cout<<"Canh a,b,c : ";
    	cin>>a>>b>>c;
    		if(a+b>c && b+c>a && a+c>b)
    	{
    		cout<<"Em Day La Tam Giac ";
    		if(a==b && b==c)
    		{
    			cout<<"Deu";
    			exit(1);
    		}
    		if(a==b || a==c || b==c)
    		{
    			cout<<"Can";
    			exit(1);
    		}
    		if((a*a+b*b==c*c) || (a*a+c*c==b*b) || (c*c+b*b==a*a))
    		{
    			cout<<"Vuong";
    			exit(1);
    		}
    	}
    	else
    		cout<<"Em Khong La Tam Giac";
    }
    
    Test rùi chạy ok ko lỗi, cout thay cho cái printf, cin thay cho scanf
     
  7. ricky_martin

    ricky_martin Lão Làng Lão Làng GVN

    Tham gia ngày:
    30/12/05
    Bài viết:
    451
    Em cũng chạy thử
    Cái code đầu của anh nó báo :
    còn cái code thứ 2 thì báo :
    Nói tóm lại là cả 2 đều ko chạy đc :(
    Máy em xài Bloodshed Dev-C++,ko biết có khác gì ko
    Còn bài đó cuối cùng em cũng làm đc rồi
    Mã:
    #include <stdio.h>
    #include <conio.h>
    #include <stdlib.h>
    main()
    {
          int a,b,c;
          printf ("nhap vao 3 canh cua 1 tam giac :");
          scanf ("%d%d%d",&a,&b,&c);
          int kfltg = ((a+b<=c)||(a+c<=b)||(b+c<=a));
          int ltg = ((a+b>c)&&(a+c>b)&&(b+c>a));
          int tgc = ((a==b)||(b==c)||(a==c));
          int tgd = ((a==b)&&(b==c));
          int tgv = ((a*a+b*b==c*c)||(a*a+c*c==b*b)||(b*b+c*c==a*a));
         
          if (kfltg) printf ("ko fai la tam giac");
         else if (tgd) printf ("la tam giac deu");
         else if(tgv)
               if (tgc) printf ("tg vc");
               else printf ("la tg v");
               else if (tgc) printf ("la tam giac can");
               else printf ("la tam giac thuong");
    
              getch();
              }              
          
    
    Dù sao cũng cám ơn anh nhìu hen
     
  8. ™KyoMons†er™

    ™KyoMons†er™ Youtube Master Race

    Tham gia ngày:
    8/11/08
    Bài viết:
    92
    ricky_martin KS nhé X(
     
  9. ricky_martin

    ricky_martin Lão Làng Lão Làng GVN

    Tham gia ngày:
    30/12/05
    Bài viết:
    451
    hì hì
    cũng là sinh viên năm nhất mà
    có gì anh em mình chỉ bảo nhau hen
    tui cũng đang học vòng lặp nì
    ông có tài liệu gì liên quan tới cái bài ông nói ko
    share đi rồi có gì tui suy nghĩ phụ cho
     
  10. DHBL

    DHBL Youtube Master Race

    Tham gia ngày:
    7/11/08
    Bài viết:
    58
    cái c++ của tui viết là sài trên visual c++, nên không cần trả về giá trị của hàm main() còn trên mấy cái mới như dev thì nó sài c++ chuẩn mới nên khác biệt hàm main nó phải là int main() và có giá trị trả về
     
  11. ™KyoMons†er™

    ™KyoMons†er™ Youtube Master Race

    Tham gia ngày:
    8/11/08
    Bài viết:
    92
    Tình hình là đã có người chỉ và đã đc GV add point. Dù sao cũng thanks anh em. Tới đây Close topic được roài :hug:
     
  12. killeroflove1989

    killeroflove1989 Youtube Master Race

    Tham gia ngày:
    26/4/06
    Bài viết:
    35
    bạn dùng dev C thi hàm main phải trả về int ; => main() sửa thành int main() và cuối hàm main() thêm câu lệnh return(0);
     
  13. Funnnny

    Funnnny Will Code Python For FOOD Moderator

    Tham gia ngày:
    2/8/05
    Bài viết:
    9,406
    Nơi ở:
    Hanoi, Vietnam
    Viết code C++, nhất là GNU/C++ thì tránh dùng code C, ví dụ library C như iostream.h, stdlib.h... mà phải là iostream...
    hàm getch() ko nằm ko GNU/C++
    tránh dùng scanf, printf mà hãy dùng cin, cout.
    Đôi lời về cách lập trình ::)
     
  14. kknml001

    kknml001 C O N T R A

    Tham gia ngày:
    4/9/06
    Bài viết:
    1,631
    cho tớ hỏi để 1 hàm fuction trong C++ trả về giá trị số thực thì mình fải làm sao ?
    đề bài của ông thầy kêu là tính S=1+1/3+1/5....1/n ( n là số lẻ )
    viết bình thường thì mình viết được nhưng khi ông thầy yêu cầu là viết function của tổng đó thì mình làm ko dc :(
    đây là đoạn code function của mình , mấy bạn xem xem chỗ nào ko ổn sửa lại dùm mình nhé
    Mã:
    #include<iostream>
    using namespace std;
    
    float Sum(int N,int Tong);
    
    int main()
    {
    	int N;
    	int Tong=0;
    	cout<<" enter N ";
    	cin>>N;
    
    	cout<<Sum(N,Tong)<<endl;
    	return 0;
    }
    float Sum(int N, int  Tong)
    {
    	int i=1;
    	while(i<=N)
    	{   
    		Tong= Tong + (1/i);
    		i+=2;
    	}
    	return Tong;
    }
    
     
  15. Funnnny

    Funnnny Will Code Python For FOOD Moderator

    Tham gia ngày:
    2/8/05
    Bài viết:
    9,406
    Nơi ở:
    Hanoi, Vietnam
    Tong của cậu phải là kiểu float, thứ 2 là cái arg Tong pass vào function Sum là ko cần thiết.
    Chú í là 1/i sẽ ra kiểu int, có thể ép kiểu hoặc cho i là float luôn
     
  16. kknml001

    kknml001 C O N T R A

    Tham gia ngày:
    4/9/06
    Bài viết:
    1,631
    thanks cậu nha , mình làm dc rồi ^^
    cậu nói Tong pass vào function là ko cần thiết , mình không hiểu , cậu giải thích thêm dc ko :D
    cho mình hỏi thêm 1 bài là nhập vô ngày tháng năm xuất ra đó là thứ mấy
    VD : 21/12/2008 là CN
    mình không biết sao để tính ra dc đó là thứ mấy , cậu có công thức thì giúp mình nhé . thank ::)
    với bài dãy Fibouacci mình code như sau :
    Mã:
    #include<iostream>
    using namespace std;
    int main()
    {
    int i=0,T1=0,T2=1,T=0,N;
    cout<<" nhap N ";
    cin>>N;
    cout<<T1<<endl<<T2<<endl;
    while(T<=N)
    { 
    T=T1+T2;
    T1=T2;
    T2=T;
    cout<<T<<endl;
    }
    return 0;
    }
    
    mình nhập vô 10 sao nó lại hiện ra tới 13 lận , sao sừa lại để nó hiện ra những số nhỏ hơn N ?
     
  17. glory_manchester

    glory_manchester Youtube Master Race

    Tham gia ngày:
    5/1/09
    Bài viết:
    4
    iii, không ngờ lập trình C nhà mình cũng rôm rả các bác vào nói chuyện quá đi, vui thật đó
     
  18. thanhtungtnt

    thanhtungtnt You Must Construct Additional Pylons Lão Làng GVN

    Tham gia ngày:
    23/8/06
    Bài viết:
    8,540
    Nơi ở:
    Balamb City
    Theo tui mỗi bài bạn nên vẽ lưu đồ ra trước sẽ nhìn dễ hơn là cứ để mấy cái cần rẽ nhánh trong đầu.
     
  19. Funnnny

    Funnnny Will Code Python For FOOD Moderator

    Tham gia ngày:
    2/8/05
    Bài viết:
    9,406
    Nơi ở:
    Hanoi, Vietnam
    Vòng for cậu để điều kiện là t<n là được thôi
     
  20. Tommythinh

    Tommythinh Youtube Master Race

    Tham gia ngày:
    27/6/09
    Bài viết:
    1
    Neu chuong trinh Oan Tu Ti de thi ban nao co the cho minh code duoc khong. Minh bo tay roi.Nho gui qua mail cho minh nha.tommy_thinh7988@yahoo.com
     

Chia sẻ trang này