Nhập Môn Lập Trình C - Phần 1

BinhHT
NHẬP MÔN LẬP TRÌNH C
7804
About me.

Xin chào tất cả các bạn đang đọc bài viết này của mình, mình tên là Thanh Bình và hiện đang là sinh viên của một trường đại học ở TP.HCM. Hiện mình đang theo học chuyên ngành Kỹ thuật phần mềm, trong quá trình học thì mình thấy có rất nhiều bạn vẫn còn nhiều thắc mắc về ngôn ngữ lập trình C, và nhằm mục đích để các bạn không phải trong ngành CNTT muốn tìm hiểu về lập trình nên mình đã lập ra bài viết này nhằm cung cấp kiến thức cơ bản về C cho các bạn. Và từ những kiến thức cơ bản này sẽ là nền tảng để các bạn có thể học sâu lên các ngôn ngữ khác hoặc các chủ đề khác nhau như Cấu trúc dữ liệu & giải thuật, lập trình hướng đối tượng. Bài viết được viết dựa trên kiến thức của bản thân mình và tham khảo một số tài liệu, sách, video..... Do vậy không tránh khỏi nhiều sai sót trong quá trình trình bày kiến thức nên mong mọi người bỏ qua hoặc góp ý qua mail của mình.
Gmail: [email protected]
Trong quá trình học, mình khuyên các bạn nên cài DevC++ hoặc Visual Studio để có thể code C.

CHƯƠNG 1: CHƯƠNG TRÌNH, DỮ LIỆU CƠ SỞ VÀ PHÉP TOÁN
I. CHƯƠNG TRÌNH ĐƠN GIẢN


Mình sẽ trình bày kiến thức dựa trên code và các ví dụ được trình bày bên dưới.
C:
/* HelloWorld.c */
#include <stdio.h>

int main()
{
    printf("Hello World");
    return 0;
}

Đoạn code bên trên là một chương trình C cơ bản. Ý nghĩa của các dòng code như sau.
/* HelloWorld.c */ : Mỗi dòng ghi chú được bắt đầu bởi // đối với C. Và để ghi chú trên nhiều dòng thì ta dùng kí hiệu như sau: /* ..... */, khi chạy chương trình thì các dòng ghi chú này sẽ được chương trình bỏ qua. Ghi chú có tác dụng để giúp người đọc có thể hiểu đoạn code đó dùng để làm gì, có chức năng gì nhằm mục đích làm rõ ý nghĩa của những đoạn code.
#include <stdio.h> : Đây là lệnh khai báo sử dụng các hàm hay đối tượng có sẵn của ngon ngữ lập trình C. Trong trường hợp này là bộ nhập xuất chuẩn (<stdio.h>). Câu lệnh printf(); đã được định nghĩa sẵn trong trong bộ nhập xuất này.
int main() : Đây là hàm main, chương trình sẽ bắt đầu chạy từ dòng này. Lúc trước thì ta có thể khai báo hàm main là void main(), nhưng hiện tại cách khai báo này không còn được các trình biên dịch chấp nhận. Kiểu trả về là int nghĩa là hàm này sẽ nhận một số lượngđ ối số tùy ý và kiểu trả về là một số nguyên integer. Do đó khi khai báo hàm int main() ta phải có return 0; để trả về giá trị của hàm int main().
{ : Chương trình bắt đầu bằng dấu móc mở {.
printf("Hello World"); : Đây là câu lệnh in dùng để in dữ liệu ra thiết bị xuất chuẩn ( màn hình máy tính ). Nếu dùng các trình biên dịch ( IDE ) thì lệnh printf này sẽ được xuất ra trên màn hình Command Line ( CMD ). Những gì nằm trong dấu ngoặc kép ( " " ) sẽ được in ra.
return 0; : Như đã nói ở trên, do ta khai báo hàm main là kiểu int nên ta phải có giá trị trả về bằng câu lệnh return. Giá trị 0 là do quy định rằng chương trình không có lỗi thì hàm main sẽ được chạy.
} : Chương trình sẽ kết thúc bằng dấu móc đóng }.

C:
/* Hello.c */
#include <stdio.h>

int main()
{
    printf("Hello Everyone!\n");
    printf("Let's learn the programming languages\n");
    return 0;
}

Đoạn code này cũng tương tự như đoạn code trên nhưng có một vài điểm khác biệt. Ký tự '\n' nghĩa là ký tự xuống dòng ( newline ), kết quả là lần in tiếp theo sẽ bắt đầu trên một dòng mới. Ngoài '\n' ta có thể sử dụng các ký tự khác nhau như '\t' ( dấu Tab )... Khi ta muốn đặt các dấu ' hoặc " vào trong printf thì để tránh lỗi chương trình ta sẽ thêm dấu \ trước các dấu đó. Ví dụ như \', \".

I.1 Kiểu dữ liệu, hằng và biến trong chương trình

Hằng số
theo toán học là một đại lượng có giá trị không đổi. Để khai báo hằng trong C thì ta dùng từ khóa #defind nameConst value , trong đó nameConst là tên hằng số, value là giá trị của hằng số.

C:
// HelloWorld.c
#include <stdio.h>
#define Pi 3.14159

int main()
{
    return 0;
}

Ở đây ta đã khai báo một hằng số Pi với giá trị là 3.14159.
Biến là một vị trí lưu trữ gắn liền với một tên tượng trưng liên quan, chứa một số lượng thông tin được biến đến hay chưa được biến đến mà được gọi là giá trị. Nói cách khác, biến được hiểu như biến trong toán học ( x, y, z.... ) nhưng trong lập trình thì biến còn dùng để lưu trữ giá trị.
Cú pháp khai báo biến như sau :
kiểu_dữ_liệu tên_biến hoặc kiểu_dữ_liệu tên_biến = giá_trị
int number;
hoặc int number = 2;
Ở đây ta tạo một biến number thuộc kiểu int. Số hai sẽ được gán cho biến number đó và biến number có giá trị là 2. Mỗi biến khi được tạo sẽ được trình biên dịch cấp phát cho một địa chỉ gọi là địa chỉ của biến, địa chỉ này có dạng là mã Hex ( hệ thập lục phân ).
Cú pháp khai báo biến :
kiểu_dữ_liệu tên_biến; Ví dụ : float number;
Cú pháp khởi tạo biến:
kiểu_dữ_liệu tên_biến = giá_trị; Ví dụ : float number = 8.9;
Kiểu dữ liệu
gồm có 2 loại kiểu dữ liệu là kiểu dữ liệu nguyên thủykiểu dữ liệu khác.

7805


I.1.1 Kiểu số nguyên


KiểuKích thước lưu trữPhạm vi giá trịĐịnh dạng
char1 byte-128 to 127 or 0 to 255%c
unsigned char1 byte0 to 255%c
signed char1 byte-128 to 127%s
int4 bytes-32,768 to 32,767 or -2,147,483,648 to 2,147,483,647%d
unsigned int4 bytes0 to 65,535 or 0 to 4,294,967,295%u
short2 bytes-32,768 to 32,767
unsigned short2 bytes0 to 65,535
long4 bytes2,147,483,648 to 2,147,483,647%ld
unsigned long4 bytes0 to 4,294,967,295

I.1.2 Kiểu số thực ( dấu chấm động, thập phân )

KiểuKích thước lưu trữPhạm vi giá trịPhần thập phânĐịnh dạng
float4 bytes1.2E-38 to 3.4E+386 vị trí sau thập phân%f
double8 bytes2.3E-308 to 1.7E+30815 vị trí sau thập phân%lf
long double10 bytes3.4E-4932 to 1.1E+493219 vị trí sau thập phân%Lf

Code demo.
C:
// Hello.c
#include <stdio.h>

int main()
{
    int firstNumber = 10;
    float secondNumber = 5.9;
    printf("Export first number %d",firstNumber);
    printf("Export second number %f",secondNumber);
    return 0;
}

Ở đoạn code trên, mình đã khai báo 2 biến là firstNumber secondNumber với kiểu dữ liệu số nguyên số thực. Khi muốn in ra giá trị của biến thì trong câu lệnh printf ta sử dụng các định dạng như hai bảng trên đã ghi như kiểu int thì dùng %d, float thì dùng %f...
Để coi kích thước của các biến mình đã khai báo, có thể sử dụng hàm sizeof().

C:
// HelloWorld.c
#include <stdio.h>


int main()
{
    short Delta = 9;
    printf("Kich thuoc bien Delta =  %d\n", sizeof(Delta));
    printf("Kich thuoc bien int =  %d\n", sizeof(int));
    printf("Kich thuoc bien long =  %d\n", sizeof(long));
    printf("Kich thuoc bien float =  %d\n", sizeof(float));
    printf("Kich thuoc bien double =  %d\n", sizeof(double));
    printf("Kich thuoc bien char =  %d\n", sizeof(char));
    return 0;
}

* Quy ước đặt tên biến

Tên biến nên được đặt có ý nghĩa, thể hiện biến đó dùng để làm gì. Với tên biến có nhiều chữ thì ta nên viết thường chữ đầu và với mỗi chữ tiếp theo ta nên viết hoa. Tên biến phải gợi nhớ và có liên quan về mặt ngữ nghĩa với đối tượng được đặt tên. Chẳng hạn nếu muốn sử dụng một biến để lưu tổng thì đặt tên là tong hoặc sum, muốn dùng một biến để lưu diện tích hay chu vi thì đặt tên biến là dienTich hoặc S, chuVi hoặc P.
Ví dụ: int fistNumber;
Tên biến không được bắt đầu bằng số, ta có thể đặt tên bằng cách dùng các chữ cái từ A đến Z, các số từ 0 đến 9, dấu gạch _ (gạch dưới, không phải dấu trừ). Tên phải luôn bắt đầu bằng chữ cái.
Ví dụ: int tongCua2So, delta_Avg;


II. KHÁI NIỆM VỀ NHẬP, XUẤT, TÍNH TOÁN

Để nhập giá trị từ bàn phím trong ngôn ngữ lập trình C, ta sử dụng hàm scanf(). Ví dụ để nhập bán kính hình tròn và lưu vào biến R có kiểu float, ta có thể gọi hàm scanf("%f",&R);. Dấu & là thể hiện giá trị của biến R. còn %f là định dạng của kiểu dữ liệu ( ở đây khai báo là float nên phải dùng %f ).

C:
// Sum.c
#include <stdio.h>

int main()
{
    int firstNumber, secondNumber;
    int sum;
    printf("Nhap gia tri cua firstNumber");
    scanf("%d",&firstNumber);
    printf("Nhap gia tri cua secondNumber");
    scanf("%d",&secondNumber);
    sum = firstNumber + secondNumber;
    printf("Tong hai so la %d\n",sum);
    return 0;
}

Đoạn code trên mô tả chương trình tính tổng hai số, biến sum dùng để nhận giá trị tổng của hai biến firstNumber secondNumber.

II.1 Các phép toán trong C

Cũng giống như toán học, trong ngôn ngữ C có những phép toán cơ bản và những phép toán logic. Các phép cơ bản là + - * / %. Phép chia ( / ) được gọi là phép chia lấy phần nguyên.
Ví dụ : 5 / 2 = 2 ( mặc dù kết quả là 2.5 nhưng phần nguyên ở đây là 2 nên kết quả là 2 ).
Phép chia ( % ) được gọi là phép chia lấy dư.
Ví dụ : 5 / 2 = 1 ( do phần dư được tính như sau: 5 / 2 = 2. 2 x 2 = 4. 5 - 4 = 1 ).

C:
// Operator.c
#include <stdio.h>

int main()
{
    int firstNumber = 5;
    int secondNumber = 3;
    printf("Tong cua hai so = %d\n", firstNumber + secondNumber);
    printf("Hieu cua hai so = %d\n", firstNumber - secondNumber);
    printf("Tich cua hai so = %d\n", firstNumber * secondNumber);
    printf("Thuong cua hai so = %d\n", firstNumber / secondNumber);
    printf("Chia lay phan du %d\n", firstNumber % secondNumber);
    return 0;
}

Ngoài những phép toán cơ bản trên còn có phép toán logic. Ở phép toán này chỉ chứa hai giá trị là 01. 0 tương ứng với false 1 tương ứng với true.

C:
// Logic.c
#include <stdio.h>

int main()
{
    int numberOne = 10;
    int    numberTwo = 20;
    printf(numberOne == numberTwo);
    return 0;
}

Kết quả trả về ở đoạn code trên sẽ là false do 10 không bằng 20.

II.2 Phép gán và lệnh viết ngắn

Việc tính toán trong chương trình được thực hiện bằng cách tính toán và chép kết quả tính toán vào một biến nằm bên trái của phép gán. Ví dụ:

  • Lệnh sum = A + B : tính tổng hai giá trị trong biến AB và gán kết quả vào biến sum.
  • Lệnh sum = sum + 2 : lấy giá trị đang có trong biến sum rồi cộng thêm 2 và gán kết quả mới vào biến sum.
  • Lệnh sum = sum + n : lấy giá trị đang có trong biến sum và biến n rồi cộng nó lại với nhau và ghi kết quả mới vào biến sum.
Mình có thể viết các lệnh ngắn hơn để đỡ mất thời gian.
  • Có thể viết sum++ (hay ++sum) thay cho sum = sum + 1;
  • Có thể viết sum += 2 thay cho lệnh gán sum = sum + 2;
  • Có thể viết sum += n thay cho lệnh gán sum = sum + n;
Đối với những phép toán khác ( ngoại trừ phép toán logic ) thì mình cũng có thể viết một cách tương tự, chẳng hạn như:
  • Viết n-- hay --n thay cho n = n - 1;
  • Viết p -= x thay cho p = p - x;
  • Viết p *= n thay cho p = p * n;
Chương 1 đến đây là hết, nếu nhận được nhiều sự quan tâm của mọi người mình sẽ làm tiếp các chương về sau. Cám ơn đã đọc.
 
Sửa lần cuối:
Trả lời

dammage

Rìu Chiến
NHẬP MÔN LẬP TRÌNH C
Xem phần đính kèm 7804
About me.
Xin chào tất cả các bạn đang đọc bài viết này của mình, mình tên là Thanh Bình và hiện đang là sinh viên của một trường đại học ở TP.HCM. Hiện mình đang theo học chuyên ngành Kỹ thuật phần mềm, trong quá trình học thì mình thấy có rất nhiều bạn vẫn còn nhiều thắc mắc về ngôn ngữ lập trình C, và nhằm mục đích để các bạn không phải trong ngành CNTT muốn tìm hiểu về lập trình nên mình đã lập ra bài viết này nhằm cung cấp kiến thức cơ bản về C cho các bạn. Và từ những kiến thức cơ bản này sẽ là nền tảng để các bạn có thể học sâu lên các ngôn ngữ khác hoặc các chủ đề khác nhau như Cấu trúc dữ liệu & giải thuật, lập trình hướng đối tượng. Bài viết được viết dựa trên kiến thức của bản thân mình và tham khảo một số tài liệu, sách, video..... Do vậy không tránh khỏi nhiều sai sót trong quá trình trình bày kiến thức nên mong mọi người bỏ qua hoặc góp ý qua mail của mình.
Gmail: [email protected]

Trong quá trình học, mình khuyên các bạn nên cài DevC++ hoặc Visual Studio để có thể code C.

CHƯƠNG 1: CHƯƠNG TRÌNH, DỮ LIỆU CƠ SỞ VÀ PHÉP TOÁN

I. CHƯƠNG TRÌNH ĐƠN GIẢN

Mình sẽ trình bày kiến thức dựa trên code và các ví dụ được trình bày bên dưới.
C:
/* HelloWorld.c */
#include <stdio.h>

int main()
{
    printf("Hello World");
    return 0;
}
Đoạn code bên trên là một chương trình C cơ bản. Ý nghĩa của các dòng code như sau.

/* HelloWorld.c */ : Mỗi dòng ghi chú được bắt đầu bởi // đối với C. Và để ghi chú trên nhiều dòng thì ta dùng kí hiệu như sau: /* ..... */, khi chạy chương trình thì các dòng ghi chú này sẽ được chương trình bỏ qua. Ghi chú có tác dụng để giúp người đọc có thể hiểu đoạn code đó dùng để làm gì, có chức năng gì nhằm mục đích làm rõ ý nghĩa của những đoạn code.

#include <stdio.h> : Đây là lệnh khai báo sử dụng các hàm hay đối tượng có sẵn của ngon ngữ lập trình C. Trong trường hợp này là bộ nhập xuất chuẩn (<stdio.h>). Câu lệnh printf(); đã được định nghĩa sẵn trong trong bộ nhập xuất này.

int main() : Đây là hàm main, chương trình sẽ bắt đầu chạy từ dòng này. Lúc trước thì ta có thể khai báo hàm main là void main(), nhưng hiện tại cách khai báo này không còn được các trình biên dịch chấp nhận. Kiểu trả về là int nghĩa là hàm này sẽ nhận một số lượngđ ối số tùy ý và kiểu trả về là một số nguyên integer. Do đó khi khai báo hàm int main() ta phải có return 0; để trả về giá trị của hàm int main().

{ : Chương trình bắt đầu bằng dấu móc mở {.

printf("Hello World"); : Đây là câu lệnh in dùng để in dữ liệu ra thiết bị xuất chuẩn ( màn hình máy tính ). Nếu dùng các trình biên dịch ( IDE ) thì lệnh printf này sẽ được xuất ra trên màn hình Command Line ( CMD ).

return 0; : Như đã nói ở trên, do ta khai báo hàm main là kiểu int nên ta phải có giá trị trả về bằng câu lệnh return. Giá trị 0 là do quy định rằng chương trình không có lỗi thì hàm main sẽ được chạy.

} : Chương trình sẽ kết thúc bằng dấu móc đóng }.

C:
/* Hello.c */
#include <stdio.h>

int main()
{
    printf("Hello Everyone!\n");
    printf("Let's learn the programming languages\n");
    return 0;
}
Đoạn code này cũng tương tự như đoạn code trên nhưng có một vài điểm khác biệt. Ký tự '\n' nghĩa là ký tự xuống dòng ( newline ), kết quả là lần in tiếp theo sẽ bắt đầu trên một dòng mới. Ngoài '\n' ta có thể sử dụng các ký tự khác nhau như '\t' ( dấu Tab )... Khi ta muốn đặt các dấu ' hoặc " vào trong printf thì để tránh lỗi chương trình ta sẽ thêm dấu \ trước các dấu đó. Ví dụ như \', \".

I.1 Kiểu dữ liệu, hằng và biến trong chương trình

Hằng số
theo toán học là một đại lượng có giá trị không đổi. Để khai báo hằng trong C thì ta dùng từ khóa #defind nameConst; , trong đó nameConst là tên hằng số.
C:
// HelloWorld.c
#include <stdio.h>
#define Pi 3.14159

int main()
{
    return 0;
}
Ở đây ta đã khai báo một hằng số Pi với giá trị là 3.14159.

Biến là một vị trí lưu trữ gắn liền với một tên tượng trưng liên quan, chứa một số lượng thông tin được biến đến hay chưa được biến đến mà được gọi là giá trị. Nói cách khác, biến được hiểu như biến trong toán học ( x, y, z.... ) nhưng trong lập trình thì biến còn dùng để lưu trữ giá trị.

Cú pháp khai báo biến như sau :
kiểu_dữ_liệu tên_biến hoặc kiểu_dữ_liệu tên_biến = giá_trị
int number;
hoặc int number = 2;

Ở đây ta tạo một biến number thuộc kiểu int. Số hai sẽ được gán cho biến number đó và biến number có giá trị là 2. Mỗi biến khi được tạo sẽ được trình biên dịch cấp phát cho một địa chỉ gọi là địa chỉ của biến, địa chỉ này có dạng là mã Hex ( hệ thập lục phân ).

Cú pháp khai báo biến :
kiểu_dữ_liệu tên_biến; Ví dụ : float number;

Cú pháp khởi tạo biến:
kiểu_dữ_liệu tên_biến = giá_trị; Ví dụ : float number = 8.9;

Kiểu dữ liệu
gồm có 2 loại kiểu dữ liệu là kiểu dữ liệu nguyên thủykiểu dữ liệu khác.

Xem phần đính kèm 7805

I.1.1 Kiểu số nguyên


KiểuKích thước lưu trữPhạm vi giá trịĐịnh dạng
char1 byte-128 to 127 or 0 to 255%c
unsigned char1 byte0 to 255%c
signed char1 byte-128 to 127%s
int4 bytes-32,768 to 32,767 or -2,147,483,648 to 2,147,483,647%d
unsigned int4 bytes0 to 65,535 or 0 to 4,294,967,295%u
short2 bytes-32,768 to 32,767
unsigned short2 bytes0 to 65,535
long4 bytes02,147,483,648 to 2,147,483,647%ld
unsigned long4 bytes0 to 4,294,967,295

I.1.2 Kiểu số thực ( dấu chấm động, thập phân )

KiểuKích thước lưu trữPhạm vi giá trịPhần thập phânĐịnh dạng
float4 bytes1.2E-38 to 3.4E+386 vị trí sau thập phân%f
double8 bytes2.3E-308 to 1.7E+30815 vị trí sau thập phân%lf
long double10 bytes3.4E-4932 to 1.1E+493219 vị trí sau thập phân%Lf

Code demo.
C:
// Hello.c
#include <stdio.h>

int main()
{
    int firstNumber = 10;
    float secondNumber = 5.9;
    printf("Export first number %d",firstNumber);
    printf("Export second number %f",secondNumber);
    return 0;
}
Ở đoạn code trên, mình đã khai báo 2 biến là firstNumber secondNumber với kiểu dữ liệu số nguyên số thực. Khi muốn in ra giá trị của biến thì trong câu lệnh printf ta sử dụng các định dạng như hai bảng trên đã ghi như kiểu int thì dùng %d, float thì dùng %f...

Để coi kích thước của các biến mình đã khai báo, có thể sử dụng hàm sizeof().
C:
// HelloWorld.c
#include <iostream>
using namespace std;

int main()
{
    short Delta = 9;
    printf("Kich thuoc bien Delta =  %d\n", sizeof(Delta));
    printf("Kich thuoc bien int =  %d\n", sizeof(int));
    printf("Kich thuoc bien long =  %d\n", sizeof(long));
    printf("Kich thuoc bien float =  %d\n", sizeof(float));
    printf("Kich thuoc bien double =  %d\n", sizeof(double));
    printf("Kich thuoc bien char =  %d\n", sizeof(char));
}

* Quy ước đặt tên biến
Tên biến nên được đặt có ý nghĩa, thể hiện biến đó dùng để làm gì. Với tên biến có nhiều chữ thì ta nên viết thường chữ đầu và với mỗi chữ tiếp theo ta nên viết hoa. Tên biến phải gợi nhớ và có liên quan về mặt ngữ nghĩa với đối tượng được đặt tên. Chẳng hạn nếu muốn sử dụng một biến để lưu tổng thì đặt tên là tong hoặc sum, muốn dùng một biến để lưu diện tích hay chu vi thì đặt tên biến là dienTich hoặc S, chuVi hoặc P.
Ví dụ: int fistNumber;

Tên biến không được bắt đầu bằng số, ta có thể đặt tên bằng cách dùng các chữ cái từ A đến Z, các số từ 0 đến 9, dấu gạch _ (gạch dưới, không phải dấu trừ). Tên phải luôn bắt đầu bằng chữ cái.
Ví dụ: int tongCua2So, delta_Avg;


II. KHÁI NIỆM VỀ NHẬP, XUẤT, TÍNH TOÁN

Để nhập giá trị từ bàn phím trong ngôn ngữ lập trình C, ta sử dụng hàm scanf(). Ví dụ để nhập bán kính hình tròn và lưu vào biến R có kiểu float, ta có thể gọi hàm scanf("%f",&R);. Dấu & là thể hiện giá trị của biến R. còn %f là định dạng của kiểu dữ liệu ( ở đây khai báo là float nên phải dùng %f ).
C:
// Sum.c
#include <stdio.h>

int main()
{
    int firstNumber, secondNumber;
    int sum;
    printf("Nhap gia tri cua firstNumber");
    scanf("%d",&firstNumber);
    printf("Nhap gia tri cua secondNumber");
    scanf("%d",&secondNumber);
    sum = firstNumber + secondNumber;
    printf("Tong hai so la %d\n",sum);
    return 0;
}
Đoạn code trên mô tả chương trình tính tổng hai số, biến sum dùng để nhận giá trị tổng của hai biến firstNumber secondNumber.

II.1 Các phép toán trong C

Cũng giống như toán học, trong ngôn ngữ C có những phép toán cơ bản và những phép toán logic. Các phép cơ bản là + - * / %. Phép chia ( / ) được gọi là phép chia lấy phần nguyên.
Ví dụ : 5 / 2 = 2 ( mặc dù kết quả là 2.5 nhưng phần nguyên ở đây là 2 nên kết quả là 2 ).
Phép chia ( % ) được gọi là phép chia lấy dư.
Ví dụ : 5 / 2 = 1 ( do phần dư được tính như sau: 5 / 2 = 2. 2 x 2 = 4. 5 - 4 = 1 ).
C:
// Operator.c
#include <stdio.h>

int main()
{
    int firstNumber = 5;
    int secondNumber = 3;
    printf("Tong cua hai so = %d\n", firstNumber + secondNumber);
    printf("Hieu cua hai so = %d\n", firstNumber - secondNumber);
    printf("Tich cua hai so = %d\n", firstNumber * secondNumber);
    printf("Thuong cua hai so = %d\n", firstNumber / secondNumber);
    printf("Chia lay phan du %d\n", firstNumber % secondNumber);
    return 0;
}
Ngoài những phép toán cơ bản trên còn có phép toán logic. Ở phép toán này chỉ chứa hai giá trị là 01. 0 tương ứng với false 1 tương ứng với true.
C:
// Logic.c
#include <stdio.h>

int main()
{
    int numberOne = 10;
    int    numberTwo = 20;
    printf(numberOne == numberTwo);
    return 0;
}
Kết quả trả về ở đoạn code trên sẽ là false do 10 không bằng 20.

II.2 Phép gán và lệnh viết ngắn
Việc tính toán trong chương trình được thực hiện bằng cách tính toán và chép kết quả tính toán vào một biến nằm bên trái của phép gán. Ví dụ:

  • Lệnh sum = A + B : tính tổng hai giá trị trong biến AB và gán kết quả vào biến sum.
  • Lệnh sum = sum + 2 : lấy giá trị đang có trong biến sum rồi cộng thêm 2 và gán kết quả mới vào biến sum.
  • Lệnh sum = sum + n : lấy giá trị đang có trong biến sum và biến n rồi cộng nó lại với nhau và ghi kết quả mới vào biến sum.
Mình có thể viết các lệnh ngắn hơn để đỡ mất thời gian.
  • Có thể viết sum++ (hay ++sum) thay cho sum = sum + 1;
  • Có thể viết sum += 2 thay cho lệnh gán sum = sum + 2;
  • Có thể viết sum += n thay cho lệnh gán sum = sum + n;
Đối với những phép toán khác ( ngoại trừ phép toán logic ) thì mình cũng có thể viết một cách tương tự, chẳng hạn như:
  • Viết n-- hay --n thay cho n = n - 1;
  • Viết p -= x thay cho p = p - x;
  • Viết p *= n thay cho p = p * n;
Chương 1 đến đây là hết, nếu nhận được nhiều sự quan tâm của mọi người mình sẽ làm tiếp các chương về sau. Cám ơn đã đọc.
thank những đóng góp của bạn, 1 góp ý nhỏ là bạn nên thêm cách dòng giữa các đoạn văn bản cho dễ đọc, mong bạn tiếp tục series càng dài càng tốt
fV2jNq8.gif
 

keongot97

Gà con
Cảm ơn bài viết của anh ạ. Đến phần con trỏ anh nhớ dạy kỹ vào nhé, phần đấy khó hiểu quá ạ. Chúc anh sức khỏe và thành công hơn nữa.
 

hnyuq

Gà con
Cảm ơn bài viết của anh. chúc anh sức khỏe thành công hơn nữa.
 

D PJT

Gà con
// HelloWorld.c
#include <stdio.h>

int main()
{
short Delta = 9;
printf("Kich thuoc bien Delta = %d\n", sizeof(Delta));
printf("Kich thuoc bien int = %d\n", sizeof(int));
printf("Kich thuoc bien long = %d\n", sizeof(long));
printf("Kich thuoc bien float = %d\n", sizeof(float));
printf("Kich thuoc bien double = %d\n", sizeof(double));
printf("Kich thuoc bien char = %d\n", sizeof(char));
}


hình như cái này thiếu cái "return 0;"
 

BinhHT

Rìu Sắt
// HelloWorld.c
#include <stdio.h>

int main()
{
short Delta = 9;
printf("Kich thuoc bien Delta = %d\n", sizeof(Delta));
printf("Kich thuoc bien int = %d\n", sizeof(int));
printf("Kich thuoc bien long = %d\n", sizeof(long));
printf("Kich thuoc bien float = %d\n", sizeof(float));
printf("Kich thuoc bien double = %d\n", sizeof(double));
printf("Kich thuoc bien char = %d\n", sizeof(char));
}


hình như cái này thiếu cái "return 0;"
Đã sửa.