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>
# 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ả:
bạn ơi
Trả lờiXóacó 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ả.
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óaChào Bạn!
Trả lờiXóaChươ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!
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óaChào bạn Hy vong truong!
Trả lờiXóaNgô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!
vòng while của bạn bị lỗi nhé
Trả lờiXóaBạ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óaChào bạn Đỗ Viết Thanh!
Trả lờiXóaBạ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!
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.
Trả lờiXóahttp://www.mediafire.com/?v8j8q8ipbs4cjrs
em xin chân thành cảm ơn
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óaLỖI SOURCE FILE NOT COMPILED là sao đây
Trả lờiXóabạ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óalàm thế nào để mở trên cùng 1 cửa sổ đây bạn? :(
Trả lờiXóatại sao tôi ko ra đc kết quả như trên
Trả lờiXóalink trên không tải được, ad vui lòng renew lại được không !
Trả lờiXóaint v0 = 0, X[MaxV], nSoCTrinh = 0;
Trả lờiXóavoid 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
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óacho 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
Trả lờiXóaviết số nó ra đúng số ạ?