Presentation is loading. Please wait.

Presentation is loading. Please wait.

Chương 1 Giới thiệu ngôn ngữ lập trình C/C++

Similar presentations


Presentation on theme: "Chương 1 Giới thiệu ngôn ngữ lập trình C/C++"— Presentation transcript:

1 Chương 1 Giới thiệu ngôn ngữ lập trình C/C++

2 Giới thiệu Bộ lệnh phù hợp với phương pháp lập trình có cấu trúc
Kiểu dữ liệu phong phú, cho phép định nghĩa kiểu dữ liệu mới. Linh động về cú pháp, ít từ khóa. Ngôn ngữ mạnh và mềm dẻo, được dùng để viết OS, chương trình điều khiển, soạn thảo văn bản, đồ hoạ, bảng tính… và các chương trình dịch cho các ngôn ngữ khác .

3 Giới thiệu Nhược điểm: Cú pháp: lạ và khó học.
Một số ký hiệu có nhiều nghĩa khác nhau. Ví dụ: dấu “*” là toán tử nhân, là khai báo con trỏ, là toán tử thay thế, … Việc sử dụng đúng nghĩa các toán tử phụ thuộc vào ngữ cảnh sử dụng. Việc truy nhập tự do vào dữ liệu, việc trộn lẫn các kiểu dữ liệu… làm cho chương trình có phần bất ổn.

4 Giới thiệu Ví dụ: Xuất ra màn hình dòng chữ: “Xin chao cac ban”
Hoặc #include <stdio.h> void main() { printf("Xin chao cac ban!"); } #include <stdio.h> int main() { printf("Xin chao cac ban!"); return 0; }

5 Các khái niệm cơ bản Lệnh:
Lệnh thực hiện một chức năng nào đó (khai báo, gán, xuất, nhập, …) ,kết thúc bằng dấu chấm phẩy (;) Khối lệnh Khối lệnh gồm nhiều lệnh và được đặt trong cặp dấu ngoặc { }

6 Các khái niệm cơ bản Chú thích: để chương trình dễ đọc và dễ hiểu hơn, trình biên dịch sẽ bỏ qua nội dung chú thích khi biên dịch chương trình. Ký hiệu: //: chú thích một dòng /* và */: chú thích nhiều dòng

7 Tập ký tự trong ngôn ngữ C/C++
Chữ cái: A, B, ..., Z và a, b, ..., z Chữ số: 0, 1, ..., 9 Các ký hiệu toán học: +, -, *, /, =, (, ),... Ký hiệu gạch nối: _ Các ký hiệu đặc biệt: . ,  ; [] {} ? ! \ & | % # ... Không được dùng các ký hiệu như: α, φ, Ω, π, … hoặc tiếng việt có dấu: â, ă, ô…

8 Từ khóa auto break case char const continue default do double else
enum extern float for goto if int long register return short signed sizeof static struct switch typedef union unsigned void volatile while bool catch class delete friend inline new namespace operator private protected public template this throw try

9 Biến Biến để lưu trữ giá trị do người dùng nhập vào hoặc các giá trị tạm thời trong quá trình tính toán. Mỗi biến có tên và kiểu dữ liệu tương ứng. PHẢI khai báo BIẾN trước khi sử dụng

10 Kiểu dữ liệu Kiểu cơ sở: Tích hợp sẵn trong ngôn ngữ Số nguyên Số thực
Logic Mảng Chuỗi Kiểu người dùng định nghĩa

11 Kiểu dữ liệu Kiểu số nguyên STT TÊN KIỂU GHI CHÚ KÍCH THƯỚC 1 char
Ký tự 1 byte Số nguyên 2 unsigned char Số nguyên dương 3 short 2 bytes 4 unsigned short Số nguyên dương 5 int 4 bytes 6 unsigned int 7 long 8 unsigned long

12 Kiểu dữ liệu Kiểu số thực Kiểu logic STT TÊN KIỂU GHI CHÚ
KÍCH THƯỚC 1 float 4 bytes 2 double 8 bytes 3 long double STT TÊN KIỂU GHI CHÚ KÍCH THƯỚC 1 bool Gồm 2 giá trị: true hoặc false

13 Quy tắc đặt tên Quy tắc đặt tên biến, tên hằng, tên hàm, …
Bắt đầu bằng một ký tự. Các ký tự trong tên biến chỉ có thể là các ký tự chữ, số hoặc dấu gạch dưới (_) Không được trùng với các từ khoá. Không được trùng với phạm vi khai báo. Dễ hiểu, súc tích và gợi nhớ. Phân biệt chữ hoa và thường

14 <Kiểu dữ liệu> tênbiến1, tênbiến2, tênbiến3;
Khai báo biến Cú pháp: <Kiểu dữ liệu> tênbiến; Ví dụ: int a; //Khai báo biến để lưu số nguyên tên a float c; //Khai báo biến để lưu số thực tên c Khai báo nhiều biến cùng kiểu <Kiểu dữ liệu> tênbiến1, tênbiến2, tênbiến3; int a, x, y;

15 Gán giá trị cho biến Cú pháp: <Kiểu dữ liệu> tênbiến = giá trị;
Ví dụ: int a = 5; float b = 5.4, c = 9.2; char ch = ‘n’;

16 Định nghĩa hằng số Hằng là đại lượng không thay đổi giá trị trong quá trình thi hành chương trình Định nghĩa hằng: Dùng toán tử #define Cú pháp: #define <tên_hằng> <giá_trị_hằng> Ví dụ:  #define MAX 100 Tên hằng số dùng chữ in HOA

17 Định nghĩa hằng số Khai báo biến có giá trị hằng số dùng từ khoá const
Cú pháp: const <kiểu_dữ_liệu> <tên_biến> = <giá_trị>; Ví dụ: const  int  MAX = 100;

18 Các loại hằng Hằng số: là các giá trị xác định, một hằng số có thể là
Số nguyên (có kiểu dữ liệu int, hay long int) Số thực (có kiểu dữ liệu là float, double, long double). Hằng ký tự: đặt trong dấu nháy đơn. Ví dụ: 'A', 'a' tương ứng với giá trị nguyên 65, 97 trong bảng mã ASCII

19 Các loại hằng Hằng chuỗi: Là tập hợp các ký tự được đặt trong cặp dấu nháy kép " ". Ví dụ: “Lap trinh C" Chú ý: Một hằng chuỗi được kết thúc bằng ký tự null (\0)

20 Các phép toán Stt Phép toán Ý nghĩa Ghi chú Phép toán số học
1 + Cộng 2 - Trừ 3 * Nhân 4 / Chia Đối với 2 số nguyên thì kết quả là chia lấy phần nguyên 5 % Chia lấy phần dư Chỉ áp dụng cho 2 số nguyên

21 Các phép toán Phép toán so sánh Stt Phép toán Ý nghĩa Ghi chú 1
> Lớn hơn Kết quả của phép toán so sánh là giá trị True hoặc False 2 < Nhỏ hơn 3 >= Lớn hơn hoặc bằng 4 <= Nhỏ hơn hoặc bằng 5 = = Bằng nhau 6 != Khác nhau

22 Các phép toán Phép toán logic ! NOT && AND || OR
Toán tử tăng giảm ++ Tăng 1 Nếu toán tử tăng giảm đặt trước thì tăng giảm trước rồi tính biểu thức hoặc ngược lại. -- Giảm 1

23 Các phép toán Ví dụ: int x = 5, y = 11; int z = ++x + y++;
Kết quả: x=6; y=12; z=17

24 Phép toán thao tác trên bit
Các phép toán Phép toán thao tác trên bit 1 & AND 2 | OR 3 ^ XOR 4 << Dịch trái 5 >> Dịch phải 6 ~ Lấy phần bù theo bit

25 (ĐK)?<kết quả khi ĐK đúng>:<Kết quả khi ĐK sai>
Các phép toán Toán tử điều kiện (ĐK)?<kết quả khi ĐK đúng>:<Kết quả khi ĐK sai> Ví dụ: int n; (n%2==0)? n ++ : n --;  nếu n = 10 thì giá trị n = 11  nếu n = 21 thì giá trị n = 20

26 Thứ tự ưu tiên của các phép toán
Toán tử Độ ưu tiên Trình tự kết hợp () [] -> 1 Từ trái qua phải ! ~ * & sizeof 2 Từ phải qua trái * / % 3 + - 4 << >> 5 < <= >= > 6 == != 7

27 Thứ tự ưu tiên của các phép toán
Toán tử Độ ưu tiên Trình tự kết hợp & 8 Từ trái qua phải | 9 ^ 10 && 11 || 12 ? : 13 Từ phải qua trái = += -= *= /= %= 14

28 Các lỗi thường gặp Không khai báo biến khi sử dụng
Lưu giá trị vào biến không cùng kiểu. Sử dụng giá trị của phép chia không chính xác. Lỗi thường xuất hiện trong các biểu thức có nhiều toán hạng, khó phát hiện. Ví dụ: / thì sẽ cho kết quả sẽ bằng 4.7 thay vì kết quả đúng phải bằng Sử dụng biểu thức chứa nhiều loại dữ liệu và không biết chắc kiểu dữ liệu kết quả.

29 Hàm nhập và xuất trong C Thư viện: <stdio.h>
Hàm nhập: scanf(“chuỗi định dạng”, &tên biến); Ví dụ: int x; scanf(“%d”, &x);

30 Hàm nhập và xuất trong C Hàm xuất:
Xuất hằng chuỗi: printf(“hằng chuỗi”); Ví dụ: printf(“Ngon ngu lap trinh C”); Xuất giá trị của biến: printf(“chuỗi định dạng”, đối số 1, đối số 2); Ví dụ: int a=5; float b=2.7; printf(“Gia tri cua bien a=%d, b=%f“, a, b);

31 Ví dụ: #include <stdio.h> void main () { float giatri ;
  printf ( “Nhap mot so thuoc [1..10]: “) ; scanf ( “%f”, &giatri) ; if (giatri >5) printf ( “So vua nhap lon hon 5. \n”) ; printf ( “%f la so ban nhap. “ , giatri); }

32 Kiểu liên tục (số thực)
Chuỗi định dạng Stt Kiểu Ghi Chú Định Dạng Kiểu liên tục (số thực) 1 float %f 2 double %lf 3 long double

33 Kiểu rời rạc (số nguyên)
Chuỗi định dạng Stt Kiểu Ghi chú Định Dạng Kiểu rời rạc (số nguyên)  1 char Ký tự %c Số nguyên %d 2 unsigned char Số nguyên dương 3 int 4 unsigned int %u 5 long %ld 6 unsigned long %lu 7 char * Chuỗi %s

34 Xuất ký tự đặc biệt Ký tự Ý nghĩa Ví dụ \’ Xuất dấu nháy đơn
printf(“ \’ ”); Kết quả: ‘ \” Xuất dấu nháy đôi printf(“ \” ”); Kết quả: “ \\ Xuất dấu chéo ngược “\” pritnf(“ \\ ”); Kết quả: \ \0 Ký tự Null Dùng để gán ký tự kết thúc của chuỗi \a Alert : Tiếng bip

35 Xuất ký tự đặc biệt Ký tự Ý nghĩa Ví dụ \t
Tab vào một đoạn ký tự trắng printf(“xyz\tzyx”); \b Xuất lùi về sau print("xyz\t\bzyx”); \n hoặc endl Xuống dòng printf(“xyz\nzyx”); \r Về đầu dòng printf("xyz\rzyx”);

36 Cách viết chương trình Mỗi lệnh trên một dòng, mỗi lệnh kết thúc bằng chấm phẩy (;). Nếu lệnh quá dài thì có thể viết thành nhiều dòng sao cho mỗi lệnh phải được quan sát trọn vẹn trong cửa sổ lệnh. Không nên đặt nhiều lệnh trên cùng một dòng. Nên chú thích cho từng lệnh và khối lệnh

37 Bài tập 1. Cho biết kết quả của những lệnh sau: int a, b;
b=a a + --a; printf("a=%d, b=%d“,a,b); Với a = 2 Kết quả:? Với a = 9 Kết quả:?

38 Bài tập 2. Cho biết kết quả của những lệnh sau: int a, b;
b= --a + --a; --b; printf(“a=%d, b=%d” , a, b); Với a = 19 Kết quả:? Với a = 10 Kết quả:?

39 Bài tập 3. Cho biết kết quả của những lệnh sau: int a, b;
b=a%2 + a/2 + --a; printf("a=%d, b=%d“,a,b); Với a = 17 Kết quả: ? Với a = 3 Kết quả: ?

40 Bài tập 4. Cho biết kết quả của những lệnh sau: int a, b; b=a/3 + a--;
printf("a=%d, b=%d“,a,b); Với a = 8 Kết quả: ? Với a =21 Kết quả: ?

41 Bài tập 4. Cho biết kết quả của những lệnh sau: int a, b; b=a/3 + a--;
printf("a=%d, b=%d“,a,b); Với a = 8 Kết quả: ? Với a =21 Kết quả: ?

42 Bài tập 5. Các định danh nào sau đây là không hợp lệ? using class
Main Tinh Tong Tinh-Tong Tinh_Tong x_Mu_2 2_Mu_2 using class Tien$ default yahoo.com

43 Bài tập 6. Cho biết những chỗ sai và sửa lại cho đúng int n = -100;
uint i = -100; int = 2.9; long m = 2, p = 4; int 2k; float y = y * 2; char ch = “b”;

44 Bài tập Ho ten: Lop: Thong tin lien lac:
7. Viết chương trình in ra màn hình thông tin cá nhân theo mẫu sau: Ho ten: Lop: Thong tin lien lac: Dia chi: So dien thoai:

45 Bài tập* 8. Mô tả giải thuật bằng mã giả, lưu đồ và viết các chương trình sau: Viết chương trình nhập vào giờ phút và giây, đổi ra giây và xuất kết quả ra màn hình. Viết chương trình nhập vào 3 số nguyên a, b và c, tính giá trị trung bình cộng của 3 số trên và xuất kết quả ra màn hình.


Download ppt "Chương 1 Giới thiệu ngôn ngữ lập trình C/C++"

Similar presentations


Ads by Google