Bài 2.3. Cộng hai số nguyên
Nội dung bài học:
- Cách viết chương trình C
- Cách hiển thị kết quả ra màn hình
- Tìm hiểu chi tiết các thành phần cấu thành nên chương trình
Cách viết chương trình C
- Hướng dẫn chạy các file khác nhau trên visual studio.
Hướng dẫn fix lỗi, chạy file độc lập trong project của Visual Studio
Cách hiển thị kết quả ra màn hình
- Trong máy tính có hai kiểu số mà ngôn ngữ lập trình C có thể lưu trữ, đó là: số nguyên và số thực. Số thực là các số có thể chứa cả phần thập phân như 3, 3.141592, 5.75…
- Để phục vụ chương trình hoạt động, dữ liệu khi đưa vào máy tính sẽ được lưu trữ tạm thời trong các biến.
- Nó giống như cái thùng chứa nước sau đó ta mang nước từ trong đó ra dùng vậy.
- Chương trình của chúng ta sẽ tạo ra hai biến để lưu trữ hai số nguyên được nhập vào từ bàn phím.
- Kết quả tổng sau khi cộng trừ nhân chia có thể được lưu trữ vào một biến khác.
- Sau cùng ta sẽ in ra giá trị tổng này và kết thúc chương trình.
#include <stdio.h> // nạp thư viện chuẩn nhập liệu-hiển thị kết quả trong C
// thêm void vào trong () của main để công cụ xcode không hiện cảnh báo
int main(void) { // đây là nơi bắt đầu chương trình
int numberA; // biến lưu số nguyên thứ nhất
int numberB; // biến lưu số nguyên thứ hai
puts("Nhập vào hai số nguyên cách nhau bởi dấu cách: ");
scanf("%d%d", &numberA, &numberB); // đọc vào hai số nguyên
// tính toán và hiển thị luôn kết quả lên màn hình
printf("Tổng %d + %d = %d\n", numberA, numberB, numberA + numberB);
printf("Hiệu %d - %d = %d\n", numberA, numberB, numberA - numberB);
printf("Tích %d * %d = %d\n", numberA, numberB, numberA * numberB);
printf("Thương %d / %d = %d\n", numberA, numberB, numberA / numberB);
} // kết thúc hàm main
- Để chạy chương trình bạn ấn tổ hợp Ctrl F5 trong Visual Studio.
- Trên Xcode máy mac bạn nhấn Command R.
- Hoặc các tổ hợp phím tương ứng trong các công cụ khác. Sau đó nhập vào hai số và xem kết quả. Ví dụ như này:
Nhập vào hai số nguyên cách nhau bởi dấu cách:
2024 2030
Tổng 2024 + 2030 = 4054
Hiệu 2024 - 2030 = -6
Tích 2024 * 2030 = 4108720
Thương 2024 / 2030 = 0
Các thành phần của chương trình:
Chú thích
- Chú thích là phần giải nghĩa, mô tả ý nghĩa sử dụng hoặc làm rõ nghĩa của một đoạn chương trình.
- Chú thích chỉ có ý nghĩa với người đọc code, không có ý nghĩa với chương trình.
- Chú thích có hiệu lực từ sau dấu hai gạch chéo // tới hết dòng.
- Ví dụ chú thích:
// thêm void vào trong () của main để công cụ xcode không hiện cảnh báo
Khai báo và sử dụng biến
- Tiếp theo là 2 dòng khai báo hai số nguyên:
int numberA; // biến lưu số nguyên thứ nhất
int numberB; // biến lưu số nguyên thứ hai
- Trong đó int chính là kiểu của biến. C là ngôn ngữ mạnh về kiểu tức là mỗi biến đều phải có kiểu rõ ràng. Nó giống như mỗi con thú cưng của chúng ta đều phải thuộc một loài động vật nào đó vậy.
- Kiểu của biến sẽ quy ước tập các giá trị và đặc trưng của riêng kiểu đó. Tương tự như mỗi loài động vật có một đặc trưng riêng không giống loài khác. Ví dụ: chó thì sủa gâu gâu nhưng mèo làm gì sủa được?! Nó sẽ keo meo meo và tất nhiên nó không thể bay như con chim. Đó là do đặc trưng của từng loài. Tương tự số nguyên thì không thể chứa phần thập phân của số thực.
- Về bản chất thì biến là tên của vùng nhớ trong bộ nhớ RAM mà chương trình dùng để lưu trữ tạm thời các dữ liệu để chạy chương trình. Cụ thể về biến ta sẽ nói trong bài về phần biến và các bài sau nữa nhé.
- Mỗi khai báo luôn kết thúc bởi dấu chấm phẩy ; thể hiện đây là một câu lệnh hoàn chỉnh. Nếu bạn quên dấu chấm phẩy thì chương trình sẽ bị lỗi.
Lời nhắc và hàm scanf()
- Dòng: puts(“Nhập vào hai số nguyên cách nhau bởi dấu cách: “); in ra lời nhắc để người dùng nhập vào hai giá trị số nguyên cách nhau bởi 1 vài dấu cách.
- Sau khi nhập bạn ấn phím Enter trên bàn phím và chương trình sẽ đọc giá trị này vào qua lệnh scanf(“%d%d”, &numberA, &numberB); gán giá trị đọc được cho biến numberA và numberB.
- Lưu ý không có dấu cách giữa hai %d trong tham số đầu tiên của hàm scanf().
Hàm và tham số của hàm
- Hàm scanf() nhận vào nhiều tham số phân tách nhau bởi dấu phẩy.
- Tham số thứ nhất là “%d%d” gọi là chuỗi điều khiển định dạng cho hàm đọc vào.
- Nó chỉ rõ kiểu dữ liệu đọc vào là số nguyên. %d là định dạng chuyển đổi dùng riêng cho kiểu số nguyên.
- Mỗi kiểu trong ngôn ngữ lập trình C sẽ có một định dạng chuyển đổi dữ liệu riêng. Cụ thể sẽ bàn tới trong bài về kiểu dữ liệu sắp tới.
- Tham số thứ 2, thứ 3 của hàm scanf() ở sau dấu phẩy là &numberA, &numberB.
- Nó bắt đầu với dấu &, đây là toán tử địa chỉ, theo sau đó là tên biến cần gán giá trị vào đó.
- Dấu & khi đi trước tên một biến sẽ bảo với hàm scanf() địa chỉ trong bộ nhớ nơi biến đó được lưu trữ.
- Máy tính sau đó sẽ đọc các giá trị số nguyên người dùng nhập vào từ bàn phím cho các biến numberA, numberB sau đó lưu chúng vào vị trí của hai biến này trong bộ nhớ.
- Hãy luôn điền dấu & trước tên biến trong hàm scanf() để nhập đc giá trị vào cho biến cần chứa giá trị.
- Khi gặp scanf(), chương trình sẽ chờ người dùng nhập vào và ấn enter để gửi giá trị nhập vào đó đến máy tính.
- Hàm scanf() và printf() cho phép người dùng và máy tính tương tác với nhau.
Tính và gán kết quả
- Đoạn code
// tính toán và hiển thị kết quả lên màn hình
printf("Tổng %d + %d = %d\n", numberA, numberB, numberA + numberB);
printf("Hiệu %d - %d = %d\n", numberA, numberB, numberA - numberB);
printf("Tích %d * %d = %d\n", numberA, numberB, numberA * numberB);
printf("Thương %d / %d = %d\n", numberA, numberB, numberA / numberB);
- Dùng để tính toán và hiển thị kết quả của phép toán lên màn hình.
- Ở đây ta sử dụng %d để hiển thị số nguyên trong các biến và biểu thức tính toán.
- Ta có thể để biểu thức tính toán đơn giản làm tham số của hàm scanf() ví dụ các phép toán cộng trừ nhân chia hai số như trong đoạn code trên.
- Hoặc ta cũng có thể gán các biểu thức đó ra một biến riêng và sau đó tái sử dụng lại biến đó khi cần như sau:
// tính toán và hiển thị kết quả lên màn hình
int sum = numberA + numberB; // tổng hai số
int diff = numberA - numberB; // hiệu hai số
int prod = numberA * numberB; // tích hai số
int quot = numberA / numberB; // thương hai số(phép chia nguyên)
// hiển thị kết quả sau tính toán
// %d thứ nhất ứng với biến numberA, %d thứ hai ứng với numberB
// %d thứ ba ứng với biến sum
// tương tự như vậy, %d thứ k dùng để hiển thị giá trị số nguyên t
printf("Tổng %d + %d = %d\n", numberA, numberB, sum);
printf("Hiệu %d - %d = %d\n", numberA, numberB, diff);
printf("Tích %d * %d = %d\n", numberA, numberB, prod);
printf("Thương %d / %d = %d\n", numberA, numberB, quot);
Bắt đầu và kết thúc hàm
- Cú pháp int main(void) { … bắt đầu một hàm có tên là main
- Dấu } kết thúc nhiệm vụ của hàm main().
Vậy là chúng ta đã hoàn thành bài học này rồi! Đây là những kiến thức nền tảng mà bất kì một lập trình viên chuyên nghiệp nào cũng đều phải có.