Thứ Bảy, 16 tháng 6, 2012

[Hướng Dẫn] Cài Đặt - Sử Dụng Trình Biên Dịch Dev-C++



Trình Biên Dịch Dev-C++



1. Giới thiệu
          Dev-C++ (Dev-Cpp,  phiên bản  hiện tại  là  4.9.9.2) là một bộ công cụ phát triển tích hợp (IDE Integrated Development Environment) các ứng dụng C/C++ thuộc dạng mã nguồn mở và có thể  download ở link phía dưới. DevCpp dựa  trên  trình biên dịch mã nguồn mở MinGW  (Minimalist GNU* for Windows, http://www.mingw.org/). MinGW sử dụng GCC (the GNU g++ compiler collection) sử dụng cho cả hệ thống Windows và Linux. Hiện nay DevCpp  là công cụ phát triển các ứng dụng C/C++ được sử dụng rộng  rãi để dạy về lập trình cũng như để phát  triển các ứng dụng mã nguồn mở. 
          Mặc  dù  không  có  nhiều  tính  năng  cao  cấp  như  các  công  cụ  IDE  thương  mại  khác  (Visual Studio của Microsoft) nhưng DevCpp vẫn là một công cụ rất thích hợp trong môi trường giáo dục ở bậc đại học khi dạy và học các ngôn ngữ C/C++. Lý do là Dev-C++ hỗ trợ C/C++ chuẩn, mã nguồn viết trên Dev-C++ có thể biên dịch trên các IDE khác, nhưng điều ngược lại có thể không đúng.

2. Cài đặt
          Có 2 phiên bản của dev-c++. Bản cài đặt và bản portable.
•  Bản cài đặt: Tải file cài đặt tại đây: 
•  Bản portable: Phiên bản portable không cần cài đặt có thể tải về từ đây:

3. Thao tác với Dev-C++
3.1 Cấu hình Dev-C++ (Chỉ thực hiện lần đầu)
          Chạy file cài đặt DEV-C++ (file devcpp.exe).
 Vào menu "Tools" chọn "Compiler Options".
  Vào tab "Settings" tab, nhấn vào "Linker" ở khung bên trái và thay đổi thông số "Generate debugging information" sang "Yes":
  Nhấn OK



3.2 Tạo chương trình mới hoặc dự án mới
          Các bước sử dụng Dev-CPP để tạo ra chương trình C/C++ đơn giản bao gồm các bước chính như sau:
•  B1. Tạo file/project
•  B2. Soạn thảo mã nguồn
•  B3. Biên dịch, sửa lỗi (nếu có)
•  B4. Chạy thử và kiểm tra kết quả
•  B5. Debug (nếu cần)

Bước 1: Tạo file hoặc project (dự án) mới

a. Trường hợp chương trình đơn giản
Trong trường hợp chương trình đơn  giản, chúng ta chỉ cần 1 file để lưu mã nguồn,  khi đó chúng ta chọn menu File | New | Source  File (Ctrl-N) . Và nhập mã nguồn trực tiếp vào file.



b. Trường hợp chương trình phức tạp
Đối với chương trình C/C++ phức tạp, 1 chương trình cần nhiều file để thực hiện thì DevCPP có khái niệm dự án (project). Project là nơi cất giữ tất cả những thông tin liên quan đến mã nguồn, thư viện, tài nguyên,… để biên dịch thành chương trình.
  Để tạo Project mới, vào menu "File" chọn  "New", "Project...". 
•  Chọn "Console Application" và chọn "C project" nếu là lập trình C, Chọn “C++ Project”
nếu là C++. Nhập tên project, tên project cũng là tên của file thực thi (.exe) sẽ tạo ra khi
biên dịch. 
 Nhấn "OK". Dev-C++ sẽ hỏi nơi lưu trữ project. Nhấn "OK".



Bước 2: Soạn thảo mã nguồn
Nếu là bước 1.a thì chúng ta bắt tay ngay vào việc nhập mã nguồn chương trình
Nếu là bước 1.b, chúng ta có 2 cách thêm mã nguồn vào dự án.
  Vào menu "File" chọn "New Source File" (CTRL+N).
  Vào menu "Project" chọn "New File".
Dev-c++ sẽ không hỏi tên file cho đến khi chúng ta thực hiện: 
o  Compile 
o  Save the project 
o  Save the source file 
o  Exit Dev-C++
Bạn cũng có thể thêm file nguồn có sẵn bằng 1 trong 2 phương pháp sau: 
  Vào menu "Project" chọn "Add to Project".
  Nhấn phím phải chuột vào project name ở khung bên trái và chọn "Add to Project".
Các quy tắc soạn thảo gần giống với chương trình soạn thảo văn bản chuấn (Word,…). Một vài tính năng như:
  Undo 
  Redo
  Copy
  Paste
  Cut
  Select All
  …
Tham khảo menu Edit để biết chi tiết và các phím tắt trong  khi soạn thảo.

Bước 3: Biên dịch (Compile)
Sau khi nhập file nguồn xong, để biên dịch chúng ta  thực hiện: 
  Vào menu "Execute" chọn "Compile" (CTRL+F9).
Thông thường, khi biên dịch lần đầu sẽ dễ có lỗi về Syntax. Lỗi Syntax sẽ hiển thị ở tab biên dịch ở phía  dưới màn hình. Để biết lỗi xảy ra ở vị trí nào của source code, double-click vào lỗi đó và contrỏ màn hình sẽ trở về vị trí có lỗi khi biên dịch. 
Hình dưới minh hoạ lỗi syntax (thiếu dấu ;) khi biên  dịch.


Trong trường hợp biên dịch thanh công, hộp thoại thông báo có status là “Done”.



Bước 4: Thực thi chương trình.
Bây giờ, bạn có thể chạy chương trình 
  Vào menu "Execute" chọn "Run". 
Chú ý 1: Bước 4 & 5 có thể thực hiện đồng thời bằng menu Execute, chọn Compile & Run (F9).
Chú ý 2: Màn hình kết quả không xuất hiện:
          Nếu khi chạy chương trình, bạn thấy màn hình console DOS màu đen xuất hiện, chớp sáng 1 hoặc vài lần và trở lại màn hình soạn thảo thì tức là chương trình của bạn đã chạy xong.
          Điều này có nghĩa là chương trình thực thi xong và tự đóng cửa sổ console sau khi chương trình thoát. Để giải quyết trường hợp này chúng ta có thể sử dụng lệnh “getch();” để tạm dừng màn hình, và có thể quan sát kết quả chương trình. Ta thêm đoạn code trên trước dấu “}” đóng hàm main, và để lệnh đó sử dụng được ta thêm thư viện: #include<conio.h> ở đầu chương trình.

Bước 5: Debug.
Trong trường hợp chương trình chạy không như ý của bạn, sử dụng công cụ debugger để xác định cụ thể. Chức năng debug cơ bản có tại tab debug ở cuối màn hình. Nhiều chức năng khác nhau có tại menu debug. Một vài tính năng chính của debug như:
  Chạy tới con trỏ màn hình (Run to cursor ) 
  Thêm cửa sổ theo dõi
 Theo dõi giá trị của biến,…

4. Chương trình Hello World
          Để kiểm tra hoạt động của Dev-Cpp, sau đây là chương trình in ra màn hình chữ “Hello World” sử dụng ngôn ngữ C hoặc C++. Bạn hãy thực hiện theo các bước trên, nhập mã nguồn và chạy thử để kiểm tra kết quả.

a) Ngôn ngữ C:
/* Chuong trinh C don gian
 * In ra man hinh dong chu Hello World
 * Nhan phim Enter de thoat 
 * luu file voi ten la hello.c
 */
# include <stdio.h>
# include <conio.h>
main()
{
    printf ("Hello World \n");
    getch();
}

b) Ngôn ngữ C++:
/* Chuong trinh C++ don gian
 * In ra man hinh dong chu Hello World
 * Nhan phim Enter de thoat 
 * luu file voi ten la hello.cpp
 */
# include <iostream.h>
int main()
{
    std::cout <<"Hello World \n";
    system("pause");
    return 0;
}


Kết Quả:


18 nhận xét:

  1. bạn ơi
    có thể sửa hộ mình bài này ko?
    #include
    #include
    using namespace std;
    #include
    #include
    char A[100], Code[100][100];
    float W[100];
    int Heap[100],Huff[100];
    void Init(int n)
    {
    for (int i=0;i<=n;i++)
    Heap[i]=i;
    }
    void swap(int &a, int &b)
    {
    int tg;
    tg = a;
    a= b;
    b= tg;
    }
    void DownHeap(float W[], int k, int count) {
    int i = k, j;
    float v=W[Heap[k]];
    while (i * 2 <= count) {
    j = i * 2 ;
    if ((j+1 <= count ) && (W[Heap[j+1]] < W[Heap[j]]))
    j = j + 1;
    if (W[Heap[j]] < W[Heap[i]])
    {
    swap(Heap[i], Heap[j]);
    i = j;

    }
    else
    break;
    }
    }

    void MakeHeap(float W[],int n)
    {
    int k;
    for (k=n/2;k>0;k--)
    DownHeap (W,k,n);
    }
    void MakeTreeHuffman(float W[],int n)
    {
    int i,j,Count=n,m=n;
    MakeHeap(W,n);
    while (Count >1) {
    i=Heap[1];
    Heap[1]= Heap[Count];
    Count=Count-1;
    DownHeap(W,1,Count);
    j=Heap[1];
    m=m+1 ;
    Huff[i]=-m;
    Huff[j]=m;
    W[m]=W[i]+W[j];
    Heap[1]=m;
    DownHeap(W,1,Count);
    }
    }

    void CodingHuffman(int Huff[],int n){
    int k,j;
    k=1;
    while (k<=n) {

    j=Huff[k];
    while ((abs(j)<=2*n-1)&&(j!=0)) {
    if (j>0) strcat (Code[k],"1");
    else strcat(Code[k],"0");
    j=Huff[abs(j)];

    }
    k=k+1;
    }

    }
    int main()
    {
    int n,i;
    FILE *f;
    f = fopen("Huff_IN.txt","r");
    i=1;
    while (!feof(f)){
    fflush(stdin);
    fscanf(f,"%c",&A[i]);
    fscanf(f,"%f\n",&W[i]);
    i++;
    }
    fclose(f);
    n=i-1;
    Init(n);
    MakeTreeHuffman(W,n);
    CodingHuffman(Huff,n);

    for (int i=1;i<=n;i++){
    strrev(Code[i]);
    }
    f = fopen("Huff_OUT.txt","wt");
    for (i=1;i<=n;i++)
    {
    fprintf(f,"%c: \t %s \n",A[i],Code[i]);
    }
    fclose(f);
    cout<<"Chuong trinh da chay xong, vui long xem ket qua o file Huff_OUT.txt!";
    getch();
    }


    nó không báo lỗi nhưng ko thấy chạy ko kết quả.

    Trả lờiXóa
  2. có gì bạn gửi vào mail kimchungk8d@gmail.com hộ mình được ko?cảm ơn bạn nhiều

    Trả lờiXóa
  3. Chào Bạn!
    Chương Trình của bạn yêu cầu cần phải có file Huff_IN.txt tồn tại ở trong cùng thư mục với Project của bạn. Sau khi chương trình đọc dữ liệu trong file Huff_IN.txt và xử lý xong thì nó sẽ tạo ra 1 file Huff_OUT.txt khác, cũng ở cùng thư mục với Project của bạn. Bạn mở file đó ra và xem kết quả là được.
    P/S:
    Do lời nhận xét cấm các loại mã Html nên dấu "<" không được hiển thị.
    Phần khai báo các thư viện ở đầu chương trình trên bạn cần thêm vào các thư viện sau:

    stdio.h
    conio.h
    math.h
    string.h
    iostream.h
    stdlib.h

    Thân!

    Trả lờiXóa
  4. mình là ng mù tịt về lập trình, nhưng lại rất thjk lập trình muk ko bit bắt đầu từ đâu, có ai help mjnh ko?

    Trả lờiXóa
  5. Chào bạn Hy vong truong!
    Ngôn ngữ C là một khởi đầu tốt.
    Bạn có thể bắt đầu tự học theo loạt bài hướng dẫn chi tiết trong mục Lập Trình -> Tự học Lập trình C.
    Thân!

    Trả lờiXóa
  6. vòng while của bạn bị lỗi nhé

    Trả lờiXóa
  7. Bạn ơi cho mình hỏi. Sao mình dùng Dev C++. mình làm bài tập có 1 đoạn code rồi. Khi làm 1 bài tương tự thay đổi chút xíu thôi. Nên mình muốn dùng bài cũ rồi sửa lại đỡ mất công viết. Nhưng khổ nỗi là mỗi lần mình sửa lại như vậy thì DEV C++ Tự động lưu đoạn code mới của mình vào bài cũ. Làm mình mất trắng bài cũ của mình đã lưu mà thay vào đó là nó lưu đoạn code mới vào bài cũ của mình. Bạn có cách nào khắc phục cho DEV C++ k tự động lưu k.

    Trả lờiXóa
  8. Chào bạn Đỗ Viết Thanh!
    Bạn đừng bao giờ sửa bài cũ ngay trên nền bài mới.
    Thay vào đó bạn hãy sử dụng tổ hợp phím "Ctrl+N" : để tạo 1 bài mới.
    Sau đó quay lại Coppy bài cũ, rồi Paste nội dung đó qua bài mới, khi đó bạn tha hồ chỉnh sửa.
    Cuối cùng, khi bạn biên dịch 1 bài mới bằng phím "F9", trình biên dịch sẽ hỏi bạn sẽ lưu bài đó ở đâu, với tên gì. Bạn chọn xong lưu lại là được.
    Chúc bạn học tốt!

    Trả lờiXóa
  9. các anh chị ơi, em có down 1 chương trình viết bằng C++ nhưng tác giả lại viết trên hệ điều hành Linux.mà máy em lại xài win8, giờ em phải làm sao để mở nó lên. các anh chị giúp e với.
    http://www.mediafire.com/?v8j8q8ipbs4cjrs
    em xin chân thành cảm ơn

    Trả lờiXóa
  10. chạy xong rồi lưu xong rồi h làm sao sửa lại chương trình mình mới làm không nhỉ?

    Trả lờiXóa
  11. LỖI SOURCE FILE NOT COMPILED là sao đây

    Trả lờiXóa
  12. bạn ơi cho mình hỏi tại sao mình không thể mở trực tiếp nhiều file.cpp trên cùng 1 cửa sổ Dev-C là sao? mỗi lần mở 1 bài là 1 cửa sổ khác nhau

    Trả lờiXóa
  13. làm thế nào để mở trên cùng 1 cửa sổ đây bạn? :(

    Trả lờiXóa
  14. tại sao tôi ko ra đc kết quả như trên

    Trả lờiXóa
  15. link trên không tải được, ad vui lòng renew lại được không !

    Trả lờiXóa
  16. int v0 = 0, X[MaxV], nSoCTrinh = 0;

    void GhiNhan( )

    {

    if (nSoCTrinh == 0)

    cout<<"\nCac chu trinh Hamiltom co:\n";

    cout<<"\n";

    for (int i=0; i<MaxV; i++)

    cout<<X[i]+1<<" ";

    nSoCTrinh++;

    }
    void Hamilton( int k )

    {

    for (int y=0; y<V; y++)

    if (A[X[k-1]][y] != 0)

    if ((k==V) && (y==v0))

    GhiNhan();

    else if (ChuaXet[y] == 0)

    {

    X[k] = y;

    ChuaXet[y] = 1;

    Hamilton(k+1);

    ChuaXet[y] = 0;

    }

    }

    Begin
    For y Î Ke(X[k-1]) do
    If (k =N+1) and (y=v0) then
    Ghinhan(X[1],. . . , X[n], v0)
    Else if Chuaxet[y] then
    Begin
    X[k] := y;
    Chuaxet[y] := False;
    Hamilton(k+1);
    Chuaxet[y] := True;
    End;
    End;

    ad ơi cho e hỏi ạ , bài của e là tìm đường đi chu trình hamilton, e cũng k biết làm e cop thử 1 đoạn source file vào r làm các bước như trên thì compile k có lỗi j nhưng e click run thì báo là warning : source file í not compiled! là sao ạ? :( cái này e k thấy nhắc tới ở trên

    Trả lờiXóa
  17. anh ơi cho em hỏi tại sao khi em chạy chương trình thì nó hiện chử " source file not complied "

    Trả lờiXóa
  18. cho m hỏi là sao khi m viết xong chương trình rồi cho chạy ra bảng đen nhưng m nhập số vào thì lại ko hiện lên số mà hiện lên 1 số dấu or chữ cái tùy vào từng số mà m gõ như vậy thì sửa kiểu gì để khi m cho chạy ctr
    viết số nó ra đúng số ạ?

    Trả lờiXóa