Ngôn ngữ lập trình C là một trong những ngôn ngữ lập trình lâu đời. Ngôn ngữ này được phát triển vào những năm 70, nhưng hiện tại nó vẫn rất mạnh nhờ vào đặc điểm ngôn ngữ bậc thấp của mình. Học C cũng là cách tuyệt vời để tự tìm hiểu về những ngôn ngữ phức tạp hơn; ngoài ra, kiến thức học được sẽ hữu ích trong hầu hết những ngôn ngữ lập trình và có thể giúp bạn phát triển ứng dụng. Để tìm hiểu làm thế nào để bắt đầu lập trình trong C, hãy xem Bước 1 dưới đây.
những bước
Phương pháp số 1 Chuẩn bị sẵn sàng
1Tải và cài đặt trình biên dịch. Mã C cần phải được biên dịch bởi một chương trình giải mã để giải những mã thành tín hiệu mà máy có thể hiểu được. Trình biên dịch thường là miễn phí, và có nhiều trình biên dịch khác nhau dùng cho những hệ điều hành khác nhau. Đối với Windows, thử dùng trình Microsoft Visual Studio Express hoặc MinGW.Đối với Mac, XCode là một trong những trình biên dịch C tốt nhất.Đối với Linux, một trong những lựa chọn phổ biến nhất là gcc.2Tìm hiểu cơ bản. C là một trong những ngôn ngữ lập trình cũ và có thể rất mạnh. Ngôn ngữ này được thiết kế cho những hệ điều hành Unix, nhưng sau đó đã được chuyển và mở rộng cho hầu hết những hệ điều hành. Và phiên bản hiện đại của C là C ++. C chủ yếu bao gồm những hàm, và trong những hàm này, bạn có thể dùng những biến, câu lệnh điều kiện, những vòng lặp để lưu và thao tác dữ liệu.3Kiểm tra một vài mã cơ bản. Xem qua chương trình (rất) cơ bản dưới đây để hiểu rõ hơn về cách những mảng khác nhau của ngôn ngữ làm việc cùng nhau và đồng thời hiểu được về cách hoạt động của những chương trình. #include<stdio.h>intmain(){printf(“Xin chào, Thế giới!\n”);getchar();return0;}Lệnh #include được thực hiện trước khi chương trình bắt đầu và tải những thư viện chứa những hàm mà bạn cần. Trong ví dụ này, stdio.h cho phép chúng ta dùng hàm printf() và hàm getchar().Lệnh {int main() truyền tải cho trình biên dịch rằng chương trình đang chạy hàm gọi là “main” và nó sẽ trả về một vài nguyên khi nó kết thúc. Tất cả những chương trình C đều chạy một chức năng “main”.{} chỉ ra rằng mọi thứ bên trong chúng là một phần của hàm. Trong trường hợp này, chúng biểu thị rằng mọi thứ bên trong là một phần của hàm “main”.Hàm printf () hiển thị nội dung trong dấu ngoặc đơn trên màn hình của người dùng. những dấu ngoặc kép đảm bảo rằng chuỗi bên trong được in theo nghĩa đen. Chuỗi \n yêu cầu trình biên dịch di chuyển con trỏ đến dòng tiếp theo.; biểu thị sự kết thúc của một dòng. Hầu hết những dòng mã C đều phải kết thúc bằng dấu chấm phẩy.Lệnh getchar() yêu cầu trình biên dịch phải chờ dữ liệu nhập bằng bàn phím trước khi tiếp tục di chuyển. Điều này rất hữu ích bởi vì nhiều trình biên dịch sẽ chạy chương trình và đóng cửa sổ ngay lập tức. Như vậy, lệnh này sẽ giữ cho chương trình không bị đóng cho đến khi một phím được nhấn. Lệnh return 0 (trả về) biểu thị kết thúc hàm. Lưu ý cách hàm “main” là hàm int. Điều này có nghĩa là nó sẽ cần một vài nguyên được trả lại khi chương trình kết thúc. Số “0” chỉ ra rằng chương trình đã thực hiện đúng; nếu ra trả về bất kỳ số nào khác thì tức là chương trình đã gặp lỗi. 4Thử biên soạn chương trình. Nhập mã vào trình biên dịch mã và lưu dưới dạng tệp “*.c”. Biên dịch mã này trong trình biên dịch của bạn, thường bằng cách nhấp vào nút Build hoặc nút Run. 5Luôn ghi chú (Comment) về mã của bạn. Ghi chú là một phần của mã và sẽ không được biên dịch, nhưng phần ghi chú này giúp bạn giải thích những gì đang xảy ra. Điểm này rất hữu ích khi bạn muốn nhắc nhở rằng mã của bạn dùng để làm gì, và nó còn giúp những nhà phát triển khác đang xem mã của bạn hiểu rõ hơn. Để ghi chú trong trong C, đặt /* ở đầu phần ghi chú và kết thúc phần này bằng */. Bạn có thể ghi chú về tất cả chứ không phải chỉ phần mã cơ bản nhất của bạn.Bạn có thể dùng phần ghi chú để nhanh chóng loại bỏ những phần mã mà không cần xóa. Đơn giản chỉ cần kèm theo mã bạn muốn xóa với những thẻ ghi chú và sau đó biên dịch. Nếu bạn muốn thêm mã trở lại, hãy xóa những thẻ này
Phương pháp số 2 dùng những biến
1Hiểu được chức năng của những biến. những biến cho phép bạn lưu trữ dữ liệu, ngay cả tính toán trong chương trình hoặc dữ liệu từ đầu vào của người dùng. những biến phải được xác định trước khi bạn có thể dùng, và có nhiều loại biến khác nhau để lựa chọn. một vài biến phổ biến hơn bao gồm int, char, và float. Mỗi biến sẽ lưu trữ một loại dữ liệu khác nhau.2Tìm hiểu cách những biến được khai báo. những biến phải được thiết lập, hoặc “khai báo”, trước khi được dùng bởi chương trình. Bạn khai báo một biến bằng cách nhập kiểu dữ liệu và theo sau đó là tên của biến. Ví dụ, dưới đây là tất cả khai báo biến hợp lệ: floatx;tênnhânvật;inta,b,c,d;Lưu ý rằng bạn có thể khai báo nhiều biến trên cùng một dòng, miễn là những biến này cùng loại. Bạn chỉ cần tách tên những biến với nhau bằng dấu phẩy.Giống như nhiều dòng khác trong C, mỗi dòng khai báo biến cần phải kết thúc bằng dấu chấm phẩy.3Tìm vị trí khai báo biến. những biến phải được khai báo ở đầu mỗi khối mã (những phần của mã nằm trong dấu ngoặc {}). Nếu bạn cố gắng khai báo biến ở cuối khối, chương trình sẽ không hoạt động chính xác. 4dùng những biến để lưu trữ dữ liệu người dùng. Bây giờ bạn đã nắm được một vài kiến thức cơ bản về cách hoạt động của những biến, bạn có thể viết một chương trình đơn giản để lưu trữ dữ liệu đầu vào của người dùng. Bạn sẽ dùng một hàm khác trong chương trình, được gọi là scanf. Hàm này tìm kiếm đầu vào được cung cấp với giá trị cụ thể. #include<stdio.h>intmain(){intx;printf(“Nhập một vài:”);scanf(“%d”,&x);printf(“Bạn đã nhập% d”,x);getchar();return0;}Chuỗi “%d” yêu cầu scanf tìm những số nguyên trong đầu vào của người dùng. Lệnh & trước biến x cho scanf biết nơi tìm những biến để thay nó, và lưu trữ những số nguyên trong biến. Lệnh cuối cùng printf đọc lại số nguyên đầu vào cho người dùng.5Thao tác những biến. Bạn có thể dùng những biểu thức toán học để thao tác dữ liệu mà bạn đã lư
u trữ trong những biến của mình. Điểm khác biệt quan trọng nhất cần nhớ đối với những biểu thức toán học là một dấu = có nghĩa là đặt giá trị của biến, trong khi 2 dấu == tức là so sánh những giá trị ở hai bên để xem liệu chúng có bằng nhau không. x=3*4;/* đặt “x” là 3 * 4, hoặc 12 */x=x+3;/* cộng 3 vào giá trị gốc của “x”, và đặt giá trị mới là biến */x==15;/* kiểm tra liệu rằng “x” có bằng 15 hay không */x<10;/*kiểmtraliệurằnggiátrịcủa”x”cónhỏhơn10haykhông*/
Phương pháp số 3 Dùng những câu lệnh điều kiện
1Tìm hiểu cơ bản về câu lệnh điều kiện. Câu lệnh điều kiện là yếu tố điều khiển hầu hết những chương trình. Đây là những câu lệnh được xác định là TRUE hoặc FALSE, sau đó được thực hiện dựa trên kết quả. Câu lệnh cơ bản nhất là câu lệnh if. TRUE và FALSE trong C sẽ hoạt động khác với những gì bạn có thể đã từng dùng. Câu lệnh TRUE luôn kết thúc bằng một vài khác không. Khi bạn thực hiện so sánh, nếu kết quả là TRUE thì sẽ được trả về “1”. Nếu kết quả là FALSE, thì trả về là “0”. Nắm được điểm này sẽ giúp bạn hiểu được những câu lệnh IF được xử lý như thế nào.2Tìm hiểu những toán tử điều kiện cơ bản. Câu lệnh điều kiện xoay quanh việc dùng những toán tử toán học để so sánh những giá trị. Dưới đây là danh sách những toán tử điều kiện được dùng phổ biến nhất. >/* lớn hơn */</* nhỏ hơn */>=/* lớn hơn hoặc bằng */<=/* nhỏ hơn hoặc bằng */==/* bằng */!=/* không bằng */
10>5TRUE6<15TRUE8>=8TRUE4<=8TRUE3==3TRUE4!=5TRUE3Viết câu lệnh IF cơ bản. Bạn có thể dùng câu lệnh IF để xác định xem chương trình nên làm gì tiếp theo sau khi câu lệnh được đánh giá. Bạn có thể kết hợp câu lệnh if với những câu lệnh điều kiện sau để tạo ra nhiều lựa chọn tốt hơn, nhưng bây giờ hãy viết một câu lệnh đơn giản để làm quen với chúng. #include<stdio.h>intmain(){if(3<5)printf(“3 nhỏ hơn 5”);getchar();}4Dùng câc câu lệnh ELSE/ELSE IF để mở rộng những điều kiện của bạn. Bạn có thể xây dựng dựa trên câu lệnh IF bằng cách dùng câu lệnh ELSE và câu lệnh ELSE IF để xử lý những kết quả khác nhau. Câu lệnh ELSE chạy nếu câu lệnh IF là FALSE. những câu lệnh ELSE IF cho phép bạn đưa nhiều câu lệnh IF vào một khối mã để xử lý những trường hợp khác nhau. Xem chương trình ví dụ dưới đây để hiểu rõ hơn cách chúng tương tác như thế nào. #include<stdio.h>intmain(){inttuổi;printf(“Hãy nhập tuổi hiện tại của bạn: “);scanf(“%d”,&tuổi);if(tuổi<=12){printf(“Bạn là một đứa trẻ!\n”);}elseif(tuổi<20){printf(“Là thanh thiếu niên thật tuyệt vời!\n”);}elseif(tuổi<40){printf(“Bạn vẫn còn trẻ!\n”);}else{printf(“Gừng càng già càng cay.\n”);}return0;}Chương trình lấy dữ liệu từ người dùng và đưa nó qua những câu lệnh IF. Nếu số liệu đáp ứng câu lệnh đầu tiên, thì câu lệnh printf đầu tiên được trả lại. Nếu nó không đáp ứng được câu lệnh đầu tiên, nó sẽ được đưa tiếp qua những câu lệnh ELSE IF cho đến khi nó tìm được câu lệnh phù hợp. Nếu nó không khớp với bất kỳ câu lệnh nào, nó sẽ đi qua câu lệnh ELSE ở cuối
Phương pháp số 4 Tìm hiểu Vòng lặp
1Hiểu cách hoạt động của vòng lặp. những vòng lặp là một trong những khía cạnh quan trọng nhất của lập trình vì chúng cho phép bạn lặp lại những khối mã cho tới khi những điều kiện cụ thể được đáp ứng. Điều này có thể làm cho những hoạt động lặp lại rất dễ thực hiện và giúp bạn không phải viết lại những câu lệnh điều kiện mới mỗi khi bạn muốn thực hiện điều gì đó. Có ba loại vòng lặp chính: FOR, WHILE, và DO … WHILE. 2Dùng vòng lặp FOR. Đây là loại vòng lặp phổ biến và hữu ích nhất. Vòng lặp sẽ tiếp tục chạy những chức năng cho đến khi những điều kiện thiết lập trong vòng lặp FOR được đáp ứng. Vòng lặp FOR yêu cầu ba điều kiện: khởi tạo biến, biểu thức điều kiện để được đáp ứng, và cách cập nhật những biến. Nếu bạn không cần tất cả những điều kiện này, bạn vẫn cần chừa ra một chỗ trống với dấu chấm phẩy, nếu không vòng lặp sẽ chạy mãi mãi.#include<stdio.h>intmain(){inty;for(y=0;y<15;y++;){printf(“%d\n”,y);}getchar();}Trong chương trình trên, y được đặt là 0, và vòng lặp tiếp tục chạy miễn là giá trị y nhỏ hơn 15. Mỗi lần giá trị y được in ra, thì giá trị y sẽ được cộng thêm 1 và vòng lặp sẽ được lặp lại. Đến khi y = 15, vòng lặp sẽ bị phá bỏ.3Dùng vòng lặp WHILE. Vòng lặp WHILE đơn giản hơn vòng lặp FOR. Loại vòng lặp này chỉ có một biểu thức điều kiện, và vòng lặp vẫn hoạt động miễn là biểu thức điều kiện đó đúng. Bạn không cần phải khởi tạo hoặc cập nhật biến, mặc dù bạn có thể làm điều đó trong phần chính của vòng lặp. #include<stdio.h>intmain(){inty;while(y<=15){printf(“%d\n”,y);y++;}getchar();}Lệnh y ++ sẽ cộng thêm 1 vào biến y mỗi khi vòng lặp được thực thi. Khi biến y đạt đến 16 (nhớ rằng, vòng lặp này sẽ tiếp tục chạy miễn rằng giá trị y nhỏ hơn hoặc bằng 15), vòng lặp bị ngưng.4Dùng vòng lặp DO...WHILE Vòng lặp này rất hữu ích cho những vòng lặp mà bạn muốn đảm bảo chạy ít nhất một lần. Trong vòng lặp FOR và WHILE, biểu thức điều kiện được kiểm tra ở đầu vòng lặp, tức là là nó không thể truyền và thất bại ngay lập tức. Do vòng lặp DO…WHILE kiểm tra điều kiện vào cuối vòng lặp nên sẽ đảm bảo rằng vòng lặp thực hiện ít nhất một lần. #include<stdio.h>intmain(){inty;y=5;do{printf(“Vòng lặp đang chạy!\n”);}while(y!=5);getchar();} Vòng lặp này sẽ hiển thị thông báo mặc dù điều kiện là FALSE. Biến y được đặt là 5 và vòng lặp WHILE được thiết lập để chạy khi y không bằng 5, do đó, vòng kết thúc. Thông báo được in kể từ khi điều kiện không được kiểm tra cho đến khi kết thúc.Vòng lặp WHILE trong thiết lập DO…WHILE phải được kết thúc bằng dấu chấm phẩy. Đây là lần duy nhất một vòng lặp kết thúc bằng dấu chấm phẩy
Phương pháp 5 dùng những hàm
1Tìm hiểu cơ bản về những hàm. Hàm là khối mã độc lập có thể được gọi bởi những phần khác của chương trình. những hàm này giúp cho chương trình dễ dàng lặp lại mã, và giúp làm cho chương trình đơn giản để đọc và dễ thay đổi. những hàm có thể bao gồm tất cả những kỹ thuật đã có trước đó được học trong bài đăng này, và thậm chí cả những
hàm khác. Dòng main() ở đầu tất cả những ví dụ trên là một hàm, ví dụ như là getchar()những hàm rất thiết yếu để giúp mã hiệu quả và dễ đọc. Tận dụng tốt những hàm để sắp xếp chương trình của bạn.2Bắt đầu bằng phác thảo. những hàm được tạo ra tốt nhất khi bạn phác thảo những gì bạn muốn nó hoàn thành trước khi bạn bắt đầu thực sự mã hóa. Cú pháp cơ bản cho những hàm là “return_type name (argument1, argument2, etc.)”; Ví dụ: để tạo một hàm cộng hai số: intcộng(intx,inty);Cách này sẽ tạo ra một hàm cộng hai số nguyên (x và y) lại với nhau và sau đó trả về tổng cũng là một vài nguyên.3Thêm hàm vào chương trình. Bạn có thể dùng phác thảo để tạo ra một chương trình lấy hai số nguyên mà người dùng nhập vào và sau đó cộng chúng lại với nhau. Chương trình sẽ xác định cách hàm “cộng” hoạt động như thế nào và dùng hàm này để thao tác những số liệu đầu vào. #include<stdio.h>intcộng(intx,inty);intmain(){intx;inty;printf(“Nhập hai số bạn muốn cộng lại với nhau: “);scanf(“%d”,&x);scanf(“%d”,&y);printf(“Tổng những số của bạn là %d\n”,cộng(x,y));getchar();}intcộng(intx,inty){returnx+y;}Lưu ý rằng phác thảo vẫn nằm ở đầu chương trình. Điều này truyền tải tới trình biên dịch điều mà bạn mong đợi khi hàm được gọi và kết quả trả về là gì. Điều này chỉ là cần thiết nếu bạn muốn xác định hàm cuối chương trình. Bạn có thể đặt hàm add() (cộng) trước hàm main() và kết quả sẽ giống nhau khi không có phác thảo.Chức năng thực tế của hàm được định nghĩa ở cuối chương trình. Hàm main() thu thập những số nguyên từ người dùng và sau đó gửi chúng đến hàm add() để xử lý. Hàm add() thực hiện chức năng cộng sau đó trả về kết quả cho main()Vào lúc này add() đã được xác định, có thể được gọi bất cứ nơi nào trong chương trình
Phương pháp 6 Tiếp tục tìm hiều sâu hơn
1Tìm một vài cuốn sách về lập trình C. bài đăng này đề cập đến những vấn đề cơ bản, nhưng chỉ là bề nổi của lập trình C và tất cả những kiến thức liên quan. Một cuốn sách tham khảo tốt sẽ giúp bạn giải quyết được nhiều vấn đề và giúp bạn khỏi bị đau đầu với những vấn đề hóc búa sau này. 2Tham gia vào một vài cộng đồng. Có rất nhiều cộng đồng, cả trực tuyến và trong thế giới thực, dành cho lập trình và tất cả những ngôn ngữ lập trình. Tìm một vài lập trình viên C có cùng đam mê để trao đổi những mã và ý tưởng với nhau, và chắc chắn bạn sẽ sớm thấy mình học được rất nhiều. Tham dự một vài cuộc thi hack-a-thons nếu có thể. Đây là những sự kiện mà những nhóm và cá nhân đưa ra những chương trình và giải pháp, và thường thúc đẩy sự sáng tạo trong thời hạn nhất định. Bạn có thể gặp rất nhiều lập trình viên giỏi theo cách này, và những cuộc thi hack-a-thon thường được tổ chức trên toàn cầu.3Tham gia một vài lớp học. Bạn không cần phải quay trở lại trường học để lấy bằng Khoa học Máy tính, nhưng bạn có thể tham gia một vài lớp học có thể tìm hiều sâu hơn. Không gì có thể tốt hơn việc được giúp đỡ thực tế từ những người thông thạo ngôn ngữ lập trình. Thông thường, bạn có thể tìm những lớp học tại trung tâm cộng đồng ở địa phương và những trường trung học cơ sở, và một vài trường đại học có cho phép bạn dự thính những chương trình khoa học máy tính mà không cần ghi danh. 4Xem xét học C ++. Khi đã hiểu rõ về ngôn ngữ lập trình C, bạn có thể bắt đầu tìm hiểu C + +. Đây là phiên bản hiện đại hơn của C, và cho phép linh hoạt hơn rất nhiều. C ++ được thiết kế với việc xử lý đối tượng, và có thể cho phép bạn tạo những chương trình mạnh hơn cho hầu hết những hệ điều hành
Lời khuyên
Luôn thêm phần ghi chú vào chương trình của bạn. Phần này không chỉ giúp người khác có thể xem mã nguồn của nó, mà còn giúp bạn nhớ những gì bạn đang viết và lý do bạn viết chúng. Ngay lúc viết mã, bạn có thể biết rõ bạn viết mã này để làm gì, nhưng sau hai hoặc ba tháng, có thể bạn sẽ không nhớ nhiều về mục đích và lý do biết mã.Luôn nhớ kết thúc một câu lệnh như printf(), scanf(), getch(), vv với dấu chấm phẩy (;) nhưng không bao giờ chèn nó sau câu lệnh kiểm soát như `if`, vòng lặp `while` hoặc `for`.Khi gặp phải lỗi cú pháp khi biên dịch, nếu bạn đang rối, hãy tra lỗi mà bạn đang gặp trên Google (hoặc công cụ tìm kiếm khác). Có khả năng ai đó cũng đã từng gặp vấn đề giống bạn và có đăng cách giải quyết.Mã nguồn của bạn cần có đuôi *.c để trình biên dịch hiểu rằng đó là một tệp nguồn C.Có công mài sắt có ngày nên kim. Thực hành viết chương trình càng nhiều, bạn sẽ càng trở nên giỏi hơn. Vì vậy, bắt đầu bằng những chương trình đơn giản và ngắn cho đến khi bạn thành thạo và tự tin hơn thì có thể chuyển sang dạng chương trình phức tạp hơn.Cố gắng học cách xây dựng logic. Nó giúp giải quyết những vấn đề khác nhau trong khi viết mã.