You are on page 1of 11

Lộ trình buổi 1 khóa học lập trình C/C++

1. Giới thiệu bản thân


2. Tác dụng của C/C++
Tác dụng của C/C++ đối với học tập: nắm vững các kiến thức cơ bản của lập
trình để tiếp cận với máy tính, phần cứng và đi lên các ngôn ngữ lập trình
bậc cao và tiếp cận với các framework khác, nắm vững tư duy lập trình cơ
bản.
Tác dụng của C/C++ đối với công việc: tạo ra các ứng dụng cần hiệu năng
cao, ít tốn bộ nhớ và thời gian, thường sử dụng để tạo server và các game,
ứng dụng nặng, hoặc tạo các chương trình nhúng các vi mạch,…
3. Cấu trúc cơ bản của một chương trình.
Chương trình đầu tiên: HelloWorld.c
#include <stdio.h>
int main()
{
  printf("HELLO WORLD !");
  return 0;
}
Mọi chương trình đều cần duy nhất một hàm main(), là hàm top level dung
để thực hiện toàn bộ chức năng của một chương trình C/C++
Ngoài ra chúng ta còn cần include các header như stdio vào để nó hỗ trợ
chúng ta trong công việc tương tác giữa người dung và chương trình thông
qua thiết bị nhập xuất chuẩn như bàn phím, …
4. Biến – variable , kiểu dữ liệu nguyên thủy – primitive datatype
Biến = Vùng nhớ được cấp phát + định danh.
Có 3 loại biến trong lập trình C :
 Biến toàn cục – global có đặc điểm là được nhìn thấy bởi mọi hàm có
trong chương trình, được nằm trên phân vùng bộ nhớ đặc biệt – .data
segment hoặc .bss segment.
 Biến cục bộ - local có đặc điểm chỉ tồn tại ở trong hàm đã khai báo hoặc
khởi tạo nó, tồn tại cùng vòng đời của hàm.
 Biến tĩnh – static có đặc điểm như biến cục bộ nhưng nó được nằm trên
vùng nhớ riêng như global variable, nhưng nó thuộc về hàm nên nó chỉ
khởi tạo một lần, lúc nào gọi hàm chứa nó thì mới sử dụng được nó.
 Ngoài ra còn biến thể hiện – instance nhưng nó tồn tại trong OOP của C+
+
Kiểu dữ liệu là từ khóa được dung khi muốn OS cấp phát cho chúng ta một
vùng nhớ nào đấy với số lượng data để lưu trữ loại dữ liệu mà chúng ta
muốn lưu.
Các primitive datatype: int , float, double, char, bool (C99). (OS version
32bit.
Kiểu Độ rộng bit Dãy giá trị
char 1 byte -127 tới 127 hoặc 0 tới 255
unsigned char 1 byte 0 tới 255
signed char 1 byte -127 tới 127
int 4 byte -2147483648 tới 2147483647
unsigned int 4 byte 0 tới 4294967295
signed int 4 byte -2147483648 tới 2147483647
short int 2 byte -32768 tới 32767
unsigned short int Range 0 tới 65,535
signed short int Range -32768 tới 32767
-2,147,483,647 tới
long int 4 byte
2,147,483,647
signed long int 4 byte Tương tự như long int
unsigned long int 4 byte 0 tới 4,294,967,295
float 4 byte +/- 3.4e +/- 38 (~7 chữ số)
double 8 byte +/- 1.7e +/- 308 (~15 chữ số)
long double 8 byte +/- 1.7e +/- 308 (~15 chữ số)
2 hoặc 4
wchar_t 1 wide character
byte
Còn có những từ khóa để tạo kiểu cho giá trị mà biến thể hiện ,đó chính là:
 signed – có dấu
 unsigned – không dấu
5. Toán tử logic
Trong ngôn ngữ C, 2 trạng thái true (đúng) và false(sai) được biểu diễn bởi các số
nguyên int:

 Số 0 biểu diễn cho trạng thái false (sai).


 Tất cả các số nguyên khác 0 biểu diễn cho trạng thái true (đúng).
 Từ C99 trở lên đã được support header stdbool dung để thao tác toán học
trên trường số bool
Các toán tử logic:
 && (and) trả về true khi cả 2 toán hạng đều đúng. Ngược lại trả về false.
o (5<6) && (7<8) -> true
o (5>6) && (7<8) -> false
o (5>6) && (7>8) -> false
 || (or) trả về true khi ít nhất một trong 2 toán hạng đúng. Ngược lại trả về
false.
o (5<6) || (7<8) -> true
o (5>6) ||(7<8) -> true
o (5>6) || (7>8) -> false
 ! (not) trả về true khi toán hạng (đằng sau dấu ! sai). Ngược lại trả về false.
o !(7>8) -> true
o !(7<8) -> false

6. Toán tử so sánh

Toán tử so sánh(quan hệ): Trả về giá trị là true (đúng) hoặc false (sai)

int A=5, B=6;


 < (nhỏ hơn) A < B -> true
 <= (nhỏ hơn hoặc bằng) A <= B -> true
 > (lớn hơn) A > B -> false
 >= (lớn hơn hoặc bằng) A >= B -> false
 == (bằng) A == B -> false
 != (khác) A != B -> true

7. Toán tử tăng giảm


 Là toán tử một ngôi
 Toán tử tang giảm có cả tiền tố và hậu tố: ++i , i++, --i, i--.
 Toán tử tiền tố sẽ thực hiện phép toán trên chính toán hạng, sau đó mới sử
dụng toán hạng
 Toán tử hậu tố sẽ thực hiện phép toán trên toán hạng sau, trước đó sẽ sử
dụng bản sao của toán hạng trước khi tang và sử dụng nó, sau đó thực hiện
phép toán trên chính toán hạng
8. Nhập, xuất cơ bản

Hàm printf() trong C

 Trong ngôn ngữ lập trình C, hàm printf() được sử dụng để in ra các ký tự;
chuỗi; các giá trị số nguyên, số thực hay số thập phân, bát phân,… và
hiển thị lên màn hình console.
 Chúng ta sử dụng hàm printf() với định dạng %d để hiển thị giá trị của
biến kiểu số nguyên.
 Tương tự, sử dụng %c để hiển thị giá trị của các biến kiểu ký tự, %f để
hiển thị giá trị số thực và %s để hiển thị giá trị của kiểu chuỗi, %lf cho
kiểu double và %x cho kiểu số ở hệ thập lục phân (hệ cơ số 16).
 Để xuống dòng mới trong khi in với hàm printf(), ta sử dụng ký tự đặc
biệt là “\n”.

Hàm scanf() trong C

 Trong ngôn ngữ lập trình C, hàm scanf() được sử dụng để đọc vào ký tự,
chuỗi, các giá trị số mà người dùng nhập từ bàn phím.
Hàm scanf() nhận vào tham số là địa chỉ của một biến đã được khai báo

Kiểu dữ liệu Định dạng

int %d , %i (decimal, integer)

char %c (character)

float %f

double %lf

short int %hd

unsigned int %u

long int %li , %ld

long long int %lli, %lld

unsigned long int %lu

unsigned long long int %llu

signed char %c

unsigned char %c

long double %Lf


9. Lý thuyết ký tự, bảng mã ASCII.

10.Control flow – cấu trúc điều khiển luồng – rẽ nhánh + lựa chọn.

Câu lệnh If trong lập trình C


Cú pháp của câu lệnh if trong lập trình C là:
if (test expression) 
{
   // statements to be executed if the test expression is true
}
Câu lệnh If hoạt động như thế nào?
Câu lệnh if sẽ đánh giá biểu thức cần kiểm tra bên trong dấu ngoặc ().
 Nếu biểu thức cần kiểm tra được đánh giá là đúng (true) thì các câu lệnh bên
trong ngoặc () của lệnh if được thực thi.
 Nếu biểu thức cần kiểm tra được đánh giá là sai (false) thì các câu lệnh bên
trong ngoặc () của lệnh if không được thực thi.
Để biết thêm thông tin về biểu thức cần kiểm tra được đánh giá là đúng (trả về giá
trị khác 0) hay sai (trả về 0), hãy kiểm tra các toán tử logic và toán tử quan hệ.
 Ví dụ 1: câu lệnh if 
// Program to display a number if it is negative
 
#include <stdio.h>
int main() {
int number;
 
printf(“Enter an integer: “);
scanf(“%d”, &number);
 
// true if number is less than 0
if (number < 0) {
     printf(“You entered %d.\n”, number);
}
 
printf(“The if statement is easy.”);
 
return 0;

Đầu ra 1
Enter an integer: -2
You entered -2.
The if statement is easy.
Khi người dùng nhập -2 vào biểu thức cần kiểm tra number<0 được đánh giá là
true (đúng). Do đó, You entered -2 sẽ được hiển thị trên màn hình
Đầu ra 2 
Enter an integer: 5
The if statement is easy.
Khi người dùng nhập số 5, biểu thức cần kiểm tra number<0 được đánh giá là sai
(false) và câu lệnh bên trong ngoặc () của lệnh if không được thực thi. 
Câu lệnh C if … else
Câu lệnh if có thể có một khối else tùy chọn. Cú pháp của câu lệnh if … else là:
if (test expression) {
    // statements to be executed if the test expression is true
}
else {
    // statements to be executed if the test expression is false
}
Câu lệnh if … else hoạt động như thế nào?
Nếu biểu thức kiểm tra được đánh giá là đúng (true),
 các câu lệnh bên trong phần ngoặc () của lệnh if được thực thi.
 các câu lệnh bên trong phần ngoặc {} của lệnh else bị bỏ qua.
Nếu biểu thức kiểm tra được đánh giá là sai (false),
 các câu lệnh bên trong phần ngoặc {} của lệnh else được thực thi
 các câu lệnh bên trong phần ngoặc () của lệnh if bị bỏ qua
 
Ví dụ 2: câu lệnh if … else 
// Check whether an integer is odd or even
 
#include <stdio.h>
int main() {
    int number;
    printf(“Enter an integer: “);
    scanf(“%d”, &number);
 
    // True if the remainder is 0
    if  (number%2 == 0) {
     printf(“%d is an even integer.”,number);
    }
    else {
     printf(“%d is an odd integer.”,number);
    }
 
    return 0;
}
Đầu ra
 Enter an integer: 7
7 is an odd integer.
Khi người dùng nhập số 7 vào, biểu thức cần kiểm tra number%2==0 được đánh
giá là sai. Do đó, câu lệnh bên trong ngoặc {} của lệnh else được thực thi.
Câu lệnh if…else ladder trong lập trình C
Câu lệnh if … else thực thi 2 mã code khác nhau tùy thuộc vào biểu thức kiểm tra
đúng hay sai. Tuy nhiên, một lựa chọn có thể được thực hiện từ 2 hay nhiều khả
năng.
Câu lệnh if…else ladder cho phép bạn thử nghiệm nhiều biểu thức kiểm tra và thực
thi các câu lệnh khác nhau.
Cú pháp của câu lệnh if…else ladder
if (test expression1) {
   // statement(s)
}
else if(test expression2) {
   // statement(s)
}
else if (test expression3) {
   // statement(s)
}
.
.
else {
   // statement(s)
}
Ví dụ 3: Câu lệnh if … else ladder trong lập trình C
// Program to relate two integers using =, > or < symbol
 
#include <stdio.h>
int main() {
    int number1, number2;
    printf(“Enter two integers: “);
    scanf(“%d %d”, &number1, &number2);
 
    //checks if the two integers are equal.
    if(number1 == number2) {
     printf(“Result: %d = %d”,number1,number2);
    }
 
    //checks if number1 is greater than number2.
    else if (number1 > number2) {
     printf(“Result: %d > %d”, number1, number2);
    }
 
    //checks if both test expressions are false
    else {
     printf(“Result: %d < %d”,number1, number2);
    }
 
    return 0;
}
Đầu ra
Enter two integers: 12
23
Result: 12 < 23
Lệnh if…else lồng nhau
Có thể dùng một câu lệnh if … else trong phần thân của một câu lệnh if …
else khác.
Ví dụ 4: Lệnh if…else lồng nhau
Lập trình dưới đây liên quan đến 2 số nguyên có sử dụng <, > và = , tương tự như
ví dụ của lệnh if…else ladder. Tuy nhiên, ví dụ này sẽ sử dụng câu lệnh if …
else lồng nhau thay vì dùng câu lệnh if…else ladder như trên. 
#include <stdio.h>
int main() {
    int number1, number2;
    printf(“Enter two integers: “);
    scanf(“%d %d”, &number1, &number2);
 
    if (number1 >= number2) {
      if (number1 == number2) {
     printf(“Result: %d = %d”,number1,number2);
      }
      else {
     printf(“Result: %d > %d”, number1, number2);
      }
    }
    else {
     printf(“Result: %d < %d”,number1, number2);
    }
 
    return 0;
}
Nếu phần thân của câu lệnh if…else chỉ dùng một câu lệnh duy nhất thì bạn không
cần sử dụng dấu ngoặc {}.
Ví dụ, mã này
if (a > b) {
print(“Hello”);
}
print(“Hi”);
tương đương với
if (a > b)
print(“Hello”);
print(“Hi”);

Cấu trúc lệnh switch case

Khi có quá nhiều điều kiện để chọn thực hiện thì dùng câu lệnh if sẽ rất rối rắm và
dài dòng, Các ngôn ngữ lập trình cấp cao đều cung cấp một dạng câu lệnh switch
liệt kê các giá trị và chỉ thực hiện các giá trị thích hợp. C# cũng cung cấp câu lệnh
nhảy switch có cú pháp sau:

Cú pháp :

switch (expresstion)

case <value>:

// one or more statements;

// Jump statement

default:
// default statements

Mô tả :

·       expresstion : Biểu thức điều kiện.


·       value : Giá trị kiểm tra của biểu thức điều kiện
·       defaule : Câu lệnh switch sẽ kiểm tra tất cả các giá trị tương ứng ở
phía trên, nếu không có giá trị nào phù hợp với biểu thức điều kiện, thì
chương trình sẽ thực thi các câu lệnh trực thuộc default.
·       statements : Tập hợp các câu lệnh sẽ được thực hiện tương ứng với các
điều kiện kiểm tra biểu thức điều kiện.

You might also like