Lập trình C: Bài 1 – Hello World

Cập nhật ngày 09/01/2018

1. Giới thiệu về lập trình

Chắc hẳn bạn đã được tiếp xúc với máy tính, điện thoại dù ít hay nhiều và dùng các ứng dụng hoặc trò chơi trên đó ví như Word, Excel để làm việc văn phòng hoặc dùng Chrome, Firefox để vào Facebook, Google hay chính Facebook và Google là các phầm mềm.

Bạn tưởng tượng lập trình là quá trình bạn tạo ra các phần mềm, ứng dụng như thế. Bạn tạo ra ứng dụng cho người khác dùng, làm việc; bạn tạo ra game cho người khác chơi, làm ra website cho người khác truy cập vào. Nghĩ đến đây đã thấy hứng thú rồi 🙂

Để làm ra được phần mềm (hoặc game, website) thì chúng ta phải dạy cho máy tính cách làm việc hay nói cách khác là đưa các quy tắc mà chúng ta mong muốn để máy tính thực hiện như là khi ấn nút lên trên thì nhân vật phải nhảy lên, ấn nút sang trái thì nhân vật sẽ đi sang trái.

Giống như dạy cho ai đó phải làm gì thì bạn phải nói cho họ nghe hoặc viết chữ để đưa cho họ đọc và từ đó họ mới hiểu được bạn nói gì. Việc đưa các quy tắc này vào máy tính để nó hiểu được bạn muốn làm gì mà thực hiện theo cũng vậy, bạn cần viết các yêu cầu đó theo một cú pháp cụ thể mà cái đó gọi là ngôn ngữ lập trình.

Ngôn ngữ lập trình cũng giống như tiếng Việt để người Việt giao tiếp và hiểu, tiếng Anh dùng cho người Anh, Mỹ và nhiều nước khác, … ngôn ngữ lập trình nó là ngôn ngữ để người nói cho máy tính hiểu. Hiện nay có nhiều ngôn ngữ lập trình khác nhau như C, C++, Java, C#, PHP, python,… mỗi ngôn ngữ có ưu nhược điểm riêng và có ứng dụng trong các lĩnh vực nhất định.

2. Lập trình C

Lập trình C đơn giản là các bạn dùng Ngôn ngữ lập trình C để tạo ra các phần mềm.

Mỗi phần mềm hay gọi là chương trình (chương trình máy tính) sẽ được viết bởi ngôn ngữ C bằng một hay nhiền file với những quy tắc nhất định của ngôn ngữ mà chúng ta sẽ dần tìm hiểu.

3. Cài đặt công cụ

3.1 Cài đặt

Để có thể lập trình C thì các bạn cần cài bộ dịch gcc hoặc g++. Tuy nhiên để dễ dàng thì hiện tại có nhiều phần mềm tích hợp (hay gọi là môi trường phát triển – IDE) để chúng ta có thể dễ dàng.

  • Đối với các bạn dùng Windows có thể download Dev-C++ hoặc Code::Blocks về cài đặt và chúng ta có thể dùng ngay để viết các chương trình đơn giản.

  • Đối với các bạn dùng Linux (ubuntu, Linux Mint,…) có thể cài bằng cách mở terminal lên và chạy lệnh cài đặt sau:

    sudo apt-get install build-essential

    Sau khi chạy lệnh trên, các bạn có thể mở bất cứ trình soạn thảo nào để code (như gedit, vim, hay sublime-text,…) sau đó dịch, chạy chương trình bằng terminal.
    Hoặc các bạn cũng hoàn toàn có thể download và cài Code::Blocks trên Linux để dùng rất tiện, hoặc dùng lệnh cài:

    sudo apt-get install codeblocks

    Các bạn có thể xem thêm chi tiết về Lập trình C/C++ trên Ubuntu (Linux) tại blog của mình

Để dễ và thống nhất trong quá trình làm, mình sẽ dùng Dev-C++ nhé.

3.2 Giới thiệu cơ bản về Dev-C++

Để tiện hình dung, các bạn mở Dev-C++ lên sẽ thấy giao diện như hình sau (Hiện tại bản mình đang dùng là 5.11, các bạn dùng bản khác có thể sẽ có một chút khác nhưng sẽ không đáng kể).

Dev-C++

Giao diện Dev-C++ 5.11

Trong hình trên, có một số phần chính mình đánh dấu bằng các số với ý nghĩa sau:
1. Nút tạo file mới
2. Nút mở một file đã có
3. Nút biên dịch và chạy chương trình
4. Vùng soạn thảo code (mã chương trình)
5. Vùng hiển thị lỗi nếu có.

4. Tạo chương trình đầu tiên

Bây giờ các bạn có thể viết chương trình phần mềm đầu tiên để thử nghiệm.
B1: Tạo 1 file mới.
B2: Gõ hoặc chép đoạn code sau vào vùng soạn thảo.

#include <stdio.h>

int main()
{
    printf("Welcome");
    return 0;
}

B3: Lưu lại với tên file là Test.c hoặc Test.cpp
B4: Click nút chạy chương trình và bạn sẽ thấy một màn hình màu đen hiện lên như sau:

Dev-C++

Chương trình C đầu tiên khi chạy

Trong đó các bạn có thể thấy chữ Welcome hiện lên, đó chính là dòng chữ được in ra khi dùng lệnh printf. Phần dưới đường kẻ ngang là do Dev-C tự sinh ra.

Mình giải thích một chút về code:

  • Dòng 1: Chứa phát biểu tiền xử lý #include <stdio.h> . Vì trong chương trình này ta sử dụng các lệnh trong thư viện của C là printf, do đó bạn cần phải có khai báo của hàm thư viện này để báo cho trình biên dịch C biết. Nếu không khai báo chương trình sẽ báo lỗi. Thư viện stdio.h viết tắt của standard input output (std – i – o) là thư viện nhập xuất chuẩn).

  • Dòng 3: ** int main() là thành phần chính của mọi chương trình C. Mọi chương trình C đều bắt đầu thi hành từ hàm **main. Cặp dấu ngoặc () cho biết đây là khối hàm (function). Hàm main() có từ khóa int đầu tiên cho biết hàm này trả về giá trị kiểu nguyên (int).

  • Dòng 4 và 7: cặp dấu ngoặc móc {} giới hạn thân của hàm. Thân hàm bắt đầu bằng dấu { và kết thúc bằng dấu }.

  • Dòng 5: printf ("Welcome");, chỉ thị cho máy in ra chuỗi ký tự nằm trong nháy kép "". Hàng này được gọi là một câu lệnh, kết thúc một câu lệnh trong C phải là dấu chấm phẩy( ; ).

  • Dòng 6: return 0; Trả về giá trị kiểu nguyên là 0 theo như đúng ban đầu là khai báo int main().

Lưu ý:

  1. Trong chương trình này mình không dùng thư viện conio.h vì trong chuẩn C không có thư viện này, và từ đó cũng không dùng được getch() để dừng màn hình mà mình đã thay bằng lệnh system("pause"); trong thư viện stdlib.h
  2. Khi dùng return để trả về giá trị của hàm thì các bạn có thể bỏ qua lệnh này chương trình vẫn chạy nhưng về chuẩn là sai, trả về 1 cũng sai, tóm lại là trả về 0. Nếu trả về 1 số khác không thì hệ thống máy tính sẽ hiểu là chương trình này của bạn sau khi chạy phát sinh ra cần đó lỗi.

Bây giờ các bạn mở folder chứa file Test.c mà bạn vừa tạo ra, các bạn sẽ nhìn thấy một file có tên Test.exe (gọi tắt là file exe), đây chính là file chạy chương trình. Bây giờ nếu muốn bạn có thể click chuột vào file exe này là chạy được chương trình trên hoặc bạn có thể copy file exe này sang máy tính khác thì vẫn có thể chạy được, nó giống như bạn copy game từ máy này sang máy khác vậy.

Từ đây ta có:

  • File Test.c là file chúng ta tạo ra và viết các lệnh để máy tính hiểu, file này gọi là file mã nguồn.
  • File Test.exe là file sinh ra khi chúng ta ấn nút Chạy chương trình, file này gọi là file thực thi.

Dev-C++

File mã nguồn và file thực thi

Lưu ý: Các chương trình sau này chúng ta làm sẽ chủ yếu chạy trên màn hình đen như trên (gọi là màn hình console – đọc là ‘con sâu’), tuy không có giao diện đẹp mắt nhưng đây là phần lõi của lập trình, học tốt phần này chúng ta mới có thể làm được các chương trình có giao diện đồ họa và các ngôn ngữ khác cũng hầu hết dựa vào phần lõi này.

Bài tập: Hãy viết chương trình in ra tên của bạn, của bố mẹ bạn hoặc người yêu nếu có. Đừng quên khoe với bạn bè nữa.