Trang 1 trên tổng số 2 12 Cuối cùngCuối cùng
Từ 1 tới 10 trên tổng số 11 kết quả

Đề tài: Bài toán mô tả hoạt động của bãi giữ xe và xe bằng mảng 2 chiều

  1. #1
    Ngày gia nhập
    08 2012
    Bài viết
    4

    Mặc định Bài toán mô tả hoạt động của bãi giữ xe và xe bằng mảng 2 chiều

    Đề bài
    Dùng mảng 2 chiều để viết chương trình mô tả hoạt động của bãi giữ xe 4x4 chỗ.
    {0 0 0 0
    0 0 0 0
    0 0 0 0
    0 0 0 0}
    Chỗ nào không có xe thì in ra "0".
    Chỗ nào có xe thì in ra "1".
    Yêu cầu: bắt buộc xe đậu vào vị trí trống.Liệt kê tất cả vị trí trống và cho xe chọn.Khi bãi đầy thì in ra "Bãi đầy".
    Anh, chị nào biết làm thì giúp em với, suy nghĩ 2 ngày rùi chưa ra nữa mà bài tập thì sắp nộp .Hic

  2. #2
    Ngày gia nhập
    03 2012
    Bài viết
    27

    [QUOTE=boynike099;572129]Đề bài
    Dùng mảng 2 chiều để viết chương trình mô tả hoạt động của bãi giữ xe 4x4 chỗ.
    {0 0 0 0
    0 0 0 0
    0 0 0 0
    0 0 0 0}
    Chỗ nào không có xe thì in ra "0".
    Chỗ nào có xe thì in ra "1".
    Yêu cầu: bắt buộc xe đậu vào vị trí trống.Liệt kê tất cả vị trí trống và cho xe chọn.Khi bãi đầy thì in ra "Bãi đầy".
    A

    Mình không biết làm thế này đã đúng ý bạn chưa
    C++ Code:
    1. #include <iostream>
    2.  
    3. using namespace std;
    4.  
    5. int kiemtra(int a[4][4])
    6. {
    7.     for(int i=0;i<4;i++)
    8.         for(int j=0;j<4;j++)
    9.             if(a[i][j]==0) return 1;
    10.     return 0;
    11. }
    12.  
    13. void baiguixe(int a[4][4])
    14. {
    15.     for(int i=0;i<4;i++)
    16.     {
    17.         for(int j=0;j<4;j++)
    18.             cout<<a[i][j]<<" ";
    19.         cout<<endl;
    20.     }
    21. }
    22.  
    23. int main()
    24. {
    25.     int a[4][4],m,n,gui=1;
    26.     //Bai trong
    27.     for(int i=0;i<4;i++)
    28.         for(int j=0;j<4;j++)
    29.             a[i][j]=1;
    30.            
    31.     a[0][0]=0;
    32.     //Do xe    
    33.     if(kiemtra(a)==0) cout<<"Bai day"<<endl;
    34.     else
    35.     {
    36.         while(gui)
    37.         {
    38.             cout<<"Bai gui xe:"<<endl;
    39.             baiguixe(a);
    40.             cout<<"Nhap vi tri muon gui xe:";
    41.             cin>>n>>m;
    42.             while(a[m-1][n-1])
    43.             {
    44.                 cout<<"Khong ton tai vi tri/ Da co xe gui, gui lai:";
    45.                 cin>>n>>m;
    46.             }
    47.             a[m-1][n-1]=1;
    48.             cout<<"Xe da duoc gui"<<endl;
    49.             baiguixe(a);
    50.             if(kiemtra(a)==0)
    51.             {
    52.                 cout<<"Bai day"<<endl;
    53.                 return 0;
    54.             }
    55.             cout<<"Ban co muon gui xe co-1|khong-0 :";
    56.             cin>>gui;
    57.         }
    58.     }
    59.  
    60.     return 0;
    61. }

    Y!M: doxuanthangvn
    Skype: doxuanthangvnn
    Email: doxuanthang@hotmail.com

  3. #3
    Ngày gia nhập
    08 2012
    Bài viết
    4

    à cho mình cám ơn bạn trước, mà ban đầu thì bãi xe trống thì phải in ra là
    0 0 0 0
    0 0 0 0
    0 0 0 0
    0 0 0 0
    chứ không phải
    0 1 1 1
    1 1 1 1
    1 1 1 1
    1 1 1 1
    rùi mình chọn 1 trong số các vị trí trống đậu xe vào vd mình chọn vị trí 1 để dậu xe thì lại in ra là:
    1 0 0 0
    0 0 0 0
    0 0 0 0
    0 0 0 0
    rùi lại tiếp tục chọn 1 vị trí trống khác để đậu, vd mình chọn tiếp vị trí thứ 2 thì in ra:
    1 1 0 0
    0 0 0 0
    0 0 0 0
    0 0 0 0
    .... cứ như vậy cho đến khi bãi xe đầy thì in ra "bãi đầy"
    Cám ơn bạn nhiều lắm !!! nếu được cho mình xin yahoo đễ dễ liên hệ .

  4. #4
    Ngày gia nhập
    11 2012
    Bài viết
    136

    Trích dẫn Nguyên bản được gửi bởi boynike099 Xem bài viết
    à cho mình cám ơn bạn trước, mà ban đầu thì bãi xe trống thì phải in ra là
    0 0 0 0
    0 0 0 0
    0 0 0 0
    0 0 0 0
    chứ không phải
    0 1 1 1
    1 1 1 1
    1 1 1 1
    1 1 1 1
    rùi mình chọn 1 trong số các vị trí trống đậu xe vào vd mình chọn vị trí 1 để dậu xe thì lại in ra là:
    1 0 0 0
    0 0 0 0
    0 0 0 0
    0 0 0 0
    rùi lại tiếp tục chọn 1 vị trí trống khác để đậu, vd mình chọn tiếp vị trí thứ 2 thì in ra:
    1 1 0 0
    0 0 0 0
    0 0 0 0
    0 0 0 0
    .... cứ như vậy cho đến khi bãi xe đầy thì in ra "bãi đầy"
    Cám ơn bạn nhiều lắm !!! nếu được cho mình xin yahoo đễ dễ liên hệ .
    Thế thì ngay đầu bạn phải nói ví dụ thì mọi người mới hiểu chứ nhỉ đấy là bạn ý gia cát dự nên giúp thế là quá tốt rồi , bài của bạn là có cái cấu hình ban đầu và tiếp theo là cập nhật nó, trong quá trình cập nhật có kiểm tra đầy hay chưa thôi.
    Giao lưu và học hỏi
    https://www.facebook.com/kimcy1992

  5. #5
    Ngày gia nhập
    06 2007
    Nơi ở
    C:\WINDOWS\system32\dllcache\
    Bài viết
    3,007

    [QUOTE=doxuanthang;572150]
    Trích dẫn Nguyên bản được gửi bởi boynike099 Xem bài viết
    Đề bài
    Dùng mảng 2 chiều để viết chương trình mô tả hoạt động của bãi giữ xe 4x4 chỗ.
    {0 0 0 0
    0 0 0 0
    0 0 0 0
    0 0 0 0}
    Chỗ nào không có xe thì in ra "0".
    Chỗ nào có xe thì in ra "1".
    Yêu cầu: bắt buộc xe đậu vào vị trí trống.Liệt kê tất cả vị trí trống và cho xe chọn.Khi bãi đầy thì in ra "Bãi đầy".
    A

    Mình không biết làm thế này đã đúng ý bạn chưa
    C++ Code:
    1. #include <iostream>
    2.  
    3. using namespace std;
    4.  
    5. int kiemtra(int a[4][4])
    6. {
    7.     for(int i=0;i<4;i++)
    8.         for(int j=0;j<4;j++)
    9.             if(a[i][j]==0) return 1;
    10.     return 0;
    11. }
    12.  
    13. void baiguixe(int a[4][4])
    14. {
    15.     for(int i=0;i<4;i++)
    16.     {
    17.         for(int j=0;j<4;j++)
    18.             cout<<a[i][j]<<" ";
    19.         cout<<endl;
    20.     }
    21. }
    22.  
    23. int main()
    24. {
    25.     int a[4][4],m,n,gui=1;
    26.     //Bai trong
    27.     for(int i=0;i<4;i++)
    28.         for(int j=0;j<4;j++)
    29.             a[i][j]=1;
    30.            
    31.     a[0][0]=0;
    32.     //Do xe    
    33.     if(kiemtra(a)==0) cout<<"Bai day"<<endl;
    34.     else
    35.     {
    36.         while(gui)
    37.         {
    38.             cout<<"Bai gui xe:"<<endl;
    39.             baiguixe(a);
    40.             cout<<"Nhap vi tri muon gui xe:";
    41.             cin>>n>>m;
    42.             while(a[m-1][n-1])
    43.             {
    44.                 cout<<"Khong ton tai vi tri/ Da co xe gui, gui lai:";
    45.                 cin>>n>>m;
    46.             }
    47.             a[m-1][n-1]=1;
    48.             cout<<"Xe da duoc gui"<<endl;
    49.             baiguixe(a);
    50.             if(kiemtra(a)==0)
    51.             {
    52.                 cout<<"Bai day"<<endl;
    53.                 return 0;
    54.             }
    55.             cout<<"Ban co muon gui xe co-1|khong-0 :";
    56.             cin>>gui;
    57.         }
    58.     }
    59.  
    60.     return 0;
    61. }

    góp ý tí nhỉ, có gì sai mong được bạn lượng thứ,
    chưa đọc code, chưa đọc chạy thử nhưng mà góp ý tí nhỉ, muốn đổi 4 thành 5 thì phải sửa hết từ trên xuống dưới à
    mẹo : dùng macro đi ku.


    @chủ topic
    Gợi ý nhỏ : lần sau post bài bên Thắc mắc lập trình C/C++/C++0x nhé
    langman luôn ưu tiên giải quyết bên đó nhiều hơn
    nhưng cũng chú ý, ở bên đó yêu cầu khá ngặt nghè về nội quy tiêu đề đấy,
    chúc thành công

    @kimcy1992
    Code a xem nào ku
    ^_,^

    Tổng hợp các câu chuyện hài hước vui nhộn, sử dụng Speech Synthesis để đọc : https://www.youtube.com/channel/UCLk...Tjrg/playlists


    Bùi Tấn Quang

  6. #6
    Ngày gia nhập
    11 2012
    Bài viết
    136

    Mặc định Bài toán mô tả hoạt động của bãi giữ xe và xe bằng mảng 2 chiều

    Nhà điện có lại mất tưởng cháy máy sợ quá(nhà có mỗi con PC cùi ), anh xem thế nào chỉ bảo giúp em, bạn boynike099 được không
    C++ Code:
    1. #include<iostream>
    2. #include<ctype.h>
    3. #define MAX 4
    4. using namespace std;
    5. // khoi tao nha xe rong
    6. void khoiTao(int a[][MAX])
    7. {
    8.      for(int i=0; i<MAX; ++i)
    9.         for(int j=0; j<MAX; ++j)
    10.           a[i][j]=0;
    11. }
    12. //cap nhat bai do xe sau khi gui
    13. void capNhat(int a[][MAX])
    14. {
    15.      for(int i=0; i<MAX;++i)
    16.      {
    17.         for(int j=0; j<MAX;++j)
    18.            cout<<a[i][j]<<"  ";
    19.            cout<<"\n";
    20.      }
    21. }
    22. // dua ra vi tri bai do xe con trong de chen tiep
    23. void choTrong(int a[][MAX])
    24. {
    25.      cout<<"Cho trong co the gui xe theo hang, cot \n";
    26.      cout<<"H  C\n";
    27.      for(int i=0; i<MAX;++i)
    28.         for(int j=0; j<MAX;++j)
    29.          if(a[i][j]==0)
    30.              cout<<i<<"  "<<j<<endl;
    31. }
    32.  
    33. int main()
    34. {
    35.     int a[MAX][MAX];
    36.     int dem = 0, hang, cot;
    37.     char c;
    38.     khoiTao(a);
    39.    
    40.     while(dem!=MAX*MAX)
    41.     {
    42.         cout<<"Cho do xe hien tai  la:\n\n";
    43.         capNhat(a);
    44.         choTrong(a);
    45.         do{
    46.            cout<<"Nhap vao vi tri ban muon gui xe\n";
    47.            cout<<"0<= Hang <MAX:"; cin>>hang;
    48.            cout<<"0<= Cot <MAX:"; cin>>cot;
    49.            if(hang<0||hang>MAX-1||cot<0||cot>MAX-1)
    50.                cout<<"Vui long nhap lai.\n";
    51.            else break;
    52.          }while(1);
    53.      
    54.         if(a[hang][cot]==0)
    55.         {
    56.           a[hang][cot]=1;
    57.           ++dem;
    58.         }
    59.         else
    60.             cout<<"Cho da co xe gui ban co the chon cho khac.\n";
    61.         fflush(stdin);
    62.         cout<<"Ban muon gui xe khong C\K?";
    63.             if(toupper(c = cin.get()) == 'K')
    64.                 break;
    65.         system("cls");
    66.     }
    67.    
    68.     if(MAX*MAX==dem)
    69.     {
    70.         cout<<"Nha xe da day.\n";
    71.         capNhat(a);
    72.     }
    73.     system("pause");
    74.     return 0;
    75. }
    Mọi người góp ý giùm. Cảm ơn. sleep !!!
    Đã được chỉnh sửa lần cuối bởi kimcy1992 : 10-12-2012 lúc 08:51 AM.
    Giao lưu và học hỏi
    https://www.facebook.com/kimcy1992

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

    C++ Code:
    1. #include <iostream>
    2. #define cot 4
    3. #define hang 4
    4. using namespace std;
    5. void start(int a[][cot])
    6. {
    7.     for(int i=0;i<hang;i++)
    8.         for(int j=0;j<cot;j++)
    9.             a[i][j]=0;
    10.     return;
    11. }
    12. int kiemtra(int a[][cot])
    13. {
    14.     for(int i=0;i<hang;i++)
    15.         for(int j=0;j<cot;j++)
    16.             if(a[i][j]==0) return 1;
    17.     return 0;
    18. }
    19.  
    20. void baiguixe(int a[][cot])
    21. {
    22.     for(int i=0;i<hang;i++)
    23.     {
    24.         for(int j=0;j<cot;j++)
    25.             cout<<a[i][j]<<"\t";
    26.         cout<<endl;
    27.     }
    28.     return;
    29. }
    30.  
    31. int main()
    32. {
    33.     int a[hang][cot],i,j,x=1;
    34.     start(a);
    35.     while(x)
    36.     {
    37.         cout<<"Bai gui xe:"<<endl;
    38.         baiguixe(a);
    39.         cout<<"Nhap vi tri muon gui xe:";
    40.         cin>>i>>j;
    41.         while(a[i][j]==1||i>hang||i<0||j>cot||j<0)
    42.         {
    43.             cout<<"Da co xe gui,moi ban chon vi tri gui lai khac: ";
    44.             cin>>i>>j;
    45.         }
    46.        
    47.         a[i][j]=1;
    48.         cout<<"Xe da duoc gui"<<endl;
    49.         baiguixe(a);
    50.         if(kiemtra(a)==0)
    51.         {
    52.             cout<<"Bai day"<<endl;
    53.             return 0;
    54.         }
    55.         cout<<"Ban co muon gui xe go: 1\nKet thuc go: 0 \n";
    56.         cin>>x;
    57.     }
    58.     return 0;
    59. }
    + 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.

  8. #8
    Ngày gia nhập
    04 2010
    Nơi ở
    Binh Thanh, Hồ Chí Minh, Vietnam, Vietnam
    Bài viết
    504

    Tại sao khi nhìn thấy ma trận người ta đều nghĩ đến mãng 2 chiều hết vậy? Có thể cài đặt bằng mảng 1 chiều mà --> Có thể dùng class std::vector (hoặc std::array) --> dùng được rất nhiều hàm của thư viện chuẩn -> code cực ngắn.
    Kết bạn với tôi <3
    Skype: giautm
    Facebook:
    https://fb.com/giautm.duongntt
    Email:
    giau.tmg@gmail.com

  9. #9
    Ngày gia nhập
    11 2012
    Bài viết
    136

    Trích dẫn Nguyên bản được gửi bởi doicanhden Xem bài viết
    Tại sao khi nhìn thấy ma trận người ta đều nghĩ đến mãng 2 chiều hết vậy? Có thể cài đặt bằng mảng 1 chiều mà --> Có thể dùng class std::vector (hoặc std::array) --> dùng được rất nhiều hàm của thư viện chuẩn -> code cực ngắn.
    Nhưng nhiều người lại chưa học bạn à, có lẽ thời gian bạn học C++ có lẽ còn lâu hơn mình biết tới máy tính là gì đó, nếu vậy bạn code luôn cho mọi người được học hỏi . Thân

    bạn kienquach xem lại giúp mình thông điệp nếu nhập vượt quá vị trí nhé cout<<"Da co xe gui,moi ban chon vi tri gui lai khac: ";
    Đã được chỉnh sửa lần cuối bởi kimcy1992 : 10-12-2012 lúc 01:29 AM.
    Giao lưu và học hỏi
    https://www.facebook.com/kimcy1992

  10. #10
    Ngày gia nhập
    04 2010
    Nơi ở
    Binh Thanh, Hồ Chí Minh, Vietnam, Vietnam
    Bài viết
    504

    Trích dẫn Nguyên bản được gửi bởi kimcy1992 Xem bài viết
    Nhưng nhiều người lại chưa học bạn à, có lẽ thời gian bạn học C++ có lẽ còn lâu hơn mình biết tới máy tính là gì đó, nếu vậy bạn code luôn cho mọi người được học hỏi . Thân

    bạn kienquach xem lại giúp mình thông điệp nếu nhập vượt quá vị trí nhé cout<<"Da co xe gui,moi ban chon vi tri gui lai khac: ";
    Tôi sẽ không code, vì đề yêu cầu mãng hai chiều, tôi bị nhầm lẫn chỗ này. Tôi xin góp ý cho bạn như sau. Cái hàm kiemtra() có thật sự cần thiết?? Bạn biết trước kích thước bãi đỗ xe: n*n = n^2 chỗ, vậy khi ta thêm 1 xe vào bãi, giảm kích thước xuống 1; khi lấy xe ra, tăng 1. Khi kích thước bằng 0, bãi đầy.
    Kết bạn với tôi <3
    Skype: giautm
    Facebook:
    https://fb.com/giautm.duongntt
    Email:
    giau.tmg@gmail.com

Các đề tài tương tự

  1. Trả lời: 2
    Bài viết cuối: 21-04-2013, 09:46 AM
  2. Sắp xếp mảng 1 chiều tăng hoặc giảm dần
    Gửi bởi dinhvanvo trong diễn đàn Nhập môn lập trình C/C++
    Trả lời: 7
    Bài viết cuối: 02-11-2012, 08:03 PM
  3. Bài tập C++ thuật toán quy hoạch động tìm dãy con có tổng chia hết cho k
    Gửi bởi hoangphuc_nd92 trong diễn đàn Thắc mắc lập trình C/C++/C++0x
    Trả lời: 2
    Bài viết cuối: 14-07-2011, 10:56 PM
  4. trò chơi với mảng 1 hoặc 2 chiều.
    Gửi bởi nmt1402 trong diễn đàn Thắc mắc lập trình C/C++/C++0x
    Trả lời: 4
    Bài viết cuối: 23-12-2010, 09:03 AM
  5. tìm max(hoặc min) cua mảng 2 chiều
    Gửi bởi tan trong diễn đàn Thắc mắc lập trình C#
    Trả lời: 2
    Bài viết cuối: 10-12-2010, 11:19 PM

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