Bài giảng Kỹ thuật lập trình - Ngôn ngữ lập trình C
Tóm tắt Bài giảng Kỹ thuật lập trình - Ngôn ngữ lập trình C: ... . . . . . . . Disk Disk Disk CPU Disk Disk 8Các khái niệm cơ bản Từ khóa Hằng Kiểu dữ liệu Biến Biểu thức 9 Từ khóa Những từ trong ngôn ngữ được dành riêng cho một ý nghĩa xác định (tên kiểu dữ liệu, toán tử, câu lệnh) • Không dùng từ khóa để đặt tên cho hằng, ... integer1 45 14 Các toán tử (phép tính) Các phép tính số học và thứ tự ưu tiên • 1 - Thứ nhất, thực hiện biểu thức, toán tử trong cặp “()”, nếu đồng cấp, thực hiện từ trái qua phải. • 2 - Thứ hai: thực hiện phép *, / hoặc %, nếu đồng cấp thực hiện từ trái qua phải. • 3 - Cuối cùng: phép ...eturn 0; /* indicates successful termination */ 18. } /* end main */ 455 455 455 -455 32000 2000000000 707 455 4294966841 1c7 1C7 Kết quả: 20 Ví dụ: In số thực 1. #include 2. #include 3. int main() 4. { 5. clrscr(); 6. printf( "%e\n", 1234567.89 ); 7. printf( "%e\n", +1234567...
0KỸ THUẬT LẬP TRÌNH NGÔN NGỮ LẬP TRÌNH C TÀI LIỆU THAM KHẢO Phạm Văn Ất, Kỹ thuật lập trình C cơ sở và nâng cao, NXB KH&KT, 1999. Quách Tuấn Ngọc, Ngôn ngữ lập trình C, NXBGD, 1998. 1 Giới thiệu ngôn ngữ C Cấu trúc cơ bản của một chương trình C. Ví dụ một chương trình C đơn giản Các khái niệm cơ bản: Biến, hằng, Kiểu dữ liệu, Toán tử Các lệnh vào ra cơ bản Cấu trúc điều khiển KIẾN THỨC CƠ BẢN VỀ NGÔN NGỮ LẬP TRÌNH C 2 Giới thiệu về ngôn ngữ lập trình C Ngôn ngữ C • Do Dennis Ritchie phát triển 1972 tại phòng thí nghiệm Bell Telephone – AT&T-USA trên cơ sở 2 ngôn ngữ lập trình trước đó: BCPL và B • Được sử dụng để phát triển UNIX • Được sử dụng để viết các hệ điều hành • Đến năm 1978, C thực sự phát triển Chuẩn hoá • Nhiều biến đổi nhỏ từ C ban đầu và không tương thích • Chuẩn hoá ngôn ngữ trên cơ sở khả năng độc lập với phần cứng. • Chuẩn C ban hành 1989, được cập nhật năm 1999. 3 Đặc điểm • C là ngôn ngữ mạnh và mềm dẻo: sử dụng lập trình hệ điều hành, các giải thuật phức tạp, chương trình soạn thảo, các trình điều khiển, đồ hoạ... • Ngôn ngữ cho người lập trình chuyên nghiệp: nhiều nhà tin học sử dụng, mang tính phổ biến • Khả năng độc lập về phần cứng (khả chuyển): chạy trên các máy tính và hệ điều hành khác nhau. • Ít từ khoá: Các từ khoá dùng riêng cho ngôn ngữ khi lập trình. • Ngôn ngữ lập trình cấu trúc • C là ngôn ngữ bậc trung: có các tính năng ngôn ngữ bậc cao và ngôn ngữ bậc thấp (xử lý bít, byte và địa chỉ ô nhớ). - C là ngôn ngữ cơ sở để phát triển lập trình hướng đối tượng (C++, Java,...). Giới thiệu về ngôn ngữ lập trình C 4Cấu trúc cơ bản của một chương trình C #include /* 1. Các hàm thư viện */ #define /* 2. Định nghĩa hằng */ typedef /* 3. Định nghĩa kiểu dữ liệu */ /* 4. Khai báo nguyên mẫu các hàm */ function prototype /* 5. Khai báo các biến toàn cục */ int main (void) /* 6. “Chương trình chính” */ { Khai báo các biến; Tập lệnh; } /* 7. “Các chương trình con”- các hàm */ 5 Ví dụ chương trình C đơn giản Comments: Giải thích Các ký tự nằm trong cặp /* */ là chú thích • Sử dụng để mô tả, giải thích trong chương trình #include • Chỉ thị tiền xử lý: tải nội dung của một file thư viện vào chương trình • cho phép thực hiện các thao tác input/output chuẩn. 1 /* Fig. 2.1: fig02_01.c 2 A first program in C */ 3 #include 4 5 /* function main begins program execution */ 6 int main() 7 { 8 printf( "Welcome to C!\n" ); 9 10 return 0; /* indicate that program ended successfully */ 11 12 } /* end function main */ Welcome to C! 6 Ví dụ chương trình C đơn giản int main() 9Một chương trình C có thể có 1 hoặc một số function, nhưng chỉ có duy nhất 1 hàm là main 9int có nghĩa là hàm main trả về một giá trị nguyên 9Cặp “{ }” thể hiện một khối, đoạn chương trình 9Phần thân của tất cả các hàm phải nằm trong cặp “{}” 9Có thể sử dụng: void main(void) và không cần câu lệnh return ở cuối hàm 9Kết thúc lệnh bởi dấu ; 7 Môi trường lập trình C • Phases of C Programs: 1. Edit 2. Preprocess 3. Compile 4. Link 5. Load 6. Execute Program is created in the editor and stored on disk. Preprocessor program processes the code. Loader puts program in memory. CPU takes each instruction and executes it, possibly storing new data values as the program executes. Compiler creates object code and stores it on disk. Linker links the object code with the libraries Loader Primary Memory Compiler Editor Preprocessor Linker Primary Memory . . . . . . . . . . . . Disk Disk Disk CPU Disk Disk 8Các khái niệm cơ bản Từ khóa Hằng Kiểu dữ liệu Biến Biểu thức 9 Từ khóa Những từ trong ngôn ngữ được dành riêng cho một ý nghĩa xác định (tên kiểu dữ liệu, toán tử, câu lệnh) • Không dùng từ khóa để đặt tên cho hằng, biến, hàm, • Phân biệt chữ hoa và chữ thường Các từ khóa cơ bản trong ngôn ngữ C 10 Kiểu dữ liệu trong C Kiểu dữ liệu cơ sở • Kí tự (char, unsigned char) • Số nguyên (int, unsigned int, long (int), unsigned long (int)) • Số thực, độ chính xác đơn (float) • Số thực, độ chính xác kép (double) • Lưu ý: Kích thước và phạm vi biểu diễn của các kiểu dữ liệu Kiểu enum Kiểu mảng (array) Kiểu cấu trúc (struct) 9 KIểm tra kích thước của kiểu dữ liệu: dùng toán tử sizeof(), ví dụ: sizeof(int), 11 Hằng Là đại lượng mà giá trị không đổi trong quá trình tính toán Hằng số: 100, 10L, 10U, 0x10, Hằng kí tự: ‘A’, ‘a’, Hằng xâu kí tự: “A” Lưu ý: phân biệt hằng kí tự và hằng xâu kí tự • Lưu trữ ‘A’ (1 byte) • Lưu trữ “A” (2 byte) Hằng biểu thức A A \0 12 Biến 1. /*Ví dụ chương trình C: Cộng hai số nguyên*/ 2. #include 3. #include 4. /* function main begins program execution */ 5. int main() 6. { 7. int integer1; /* first number to be input by user */ 8. int integer2; /* second number to be input by user */ 9. int sum; /* variable in which sum will be stored */ 10. clrscr(); 11. printf( "Enter first integer\n" ); /* prompt */ 12. scanf( "%d", &integer1 ); /* read an integer */ 13. printf( "Enter second integer\n" ); /* prompt */ 14. scanf( "%d", &integer2 ); /* read an integer */ 15. sum = integer1 + integer2; /* assign total to sum */ 16. printf( "Sum is %d\n", sum ); /* print sum */ 17. getch(); 18. return 0; /* indicate that program ended successfully */ 19. } /* end function main */ 13 Biến Khái niệm Biến: • Tên biến tương ứng với vị trí xác định trong bộ nhớ máy tính • Mỗi biến gồm: một tên, kiểu dữ liệu, kích thước và giá trị • Mỗi khi giá trị mới được gán cho biến thì giá trị trước đó sẽ được thay thế (xoá mất). Chẳng hạn khi sử dụng lệnh scanf để đọc giá trị biến. • Đọc các biến từ bộ nhớ giá trị của nó không thay đổi Mô tả trực giác về biến trong bộ nhớ Khai báo biến trước khi sử dụng Đặt tên biến đúng quy tắc (trong C, phân biệt chữ hoa và chữ thường) integer1 45 14 Các toán tử (phép tính) Các phép tính số học và thứ tự ưu tiên • 1 - Thứ nhất, thực hiện biểu thức, toán tử trong cặp “()”, nếu đồng cấp, thực hiện từ trái qua phải. • 2 - Thứ hai: thực hiện phép *, / hoặc %, nếu đồng cấp thực hiện từ trái qua phải. • 3 - Cuối cùng: phép +,-, nếu đồng cấp thực hiện từ trái qua phải C operation Arithmetic operator Algebraic expression C expression Addition + f + 7 f + 7 Subtraction - p – c p - c Multiplication * bm b * m Division / x / y x / y Modulus % r mod s r % s 15 Các toán tử Phép so sánh Standard algebraic equality operator or relational operator C equality or relational operator Example of C condition Meaning of C condition Equality Operators = == x == y x is equal to y ≠ != x != y x is not equal to y Relational Operators > > x > y x is greater than y < < x < y x is less than y >= >= x >= y x is greater than or equal to y <= <= x <= y x is less than or equal to y 16 Các toán tử Toán tử logic 17 Các toán tử Phép gán và toán tử gán • Biến = Biểu thức Ví dụ về toán tử gán d -= 4 (d = d - 4) e *= 5 (e = e * 5) f /= 3 (f = f / 3) g %= 9 (g = g % 9) Toán tử tăng (++) và Toán tử giảm (−−) • c ++ sử dụng thay cho c += 1 • c−− sử dụng thay cho c −= 1 • Toán tử đặt trước biến: biến thay đổi giá trị trước khi biểu thức sử dụng nó được tính toán • Toán tử đặt sau biến: biến thay đổi giá trị sau khi biểu thức sử dụng nó được tính toán 18 Các lệnh vào/ra cơ bản Hàm printf(): in kết quả ra màn hình printf(“Xâu_điều_khiển_khuôn_dạng”, Danh_sách_tham_số_được_in); Hàm scanf(): nhập dữ liệu vào từ bàn phím scanf(“Xâu_điều_khiển_khuôn_dạng”, Danh_sách_địa_chỉ_biến); Bài tập 1. Tìm hiểu Help, trình bày chi tiết cú pháp sử dụng hàm và cho ví dụ: + Xuất dữ liệu: printf, putchar, puts + Nhập dữ liệu: scanf, getchar, getch, gets 19 Ví dụ: In số nguyên 1. #include 2. #include 3. int main() 4. { 5. printf( "%d\n", 455 ); 6. printf( "%i\n", 455 ); /* i same as d in printf */ 7. printf( "%d\n", +455 ); 8. printf( "%d\n", -455 ); 9. printf( "%hd\n", 32000 ); 10. printf( "%ld\n", 2000000000 ); 11. printf( "%o\n", 455 ); 12. printf( "%u\n", 455 ); 13. printf( "%u\n", -455 ); 14. printf( "%x\n", 455 ); 15. printf( "%X\n", 455 ); 16. getch(); 17. return 0; /* indicates successful termination */ 18. } /* end main */ 455 455 455 -455 32000 2000000000 707 455 4294966841 1c7 1C7 Kết quả: 20 Ví dụ: In số thực 1. #include 2. #include 3. int main() 4. { 5. clrscr(); 6. printf( "%e\n", 1234567.89 ); 7. printf( "%e\n", +1234567.89 ); 8. printf( "%e\n", -1234567.89 ); 9. printf( "%E\n", 1234567.89 ); 10. printf( "%f\n", 1234567.89 ); 11. printf( "%g\n", 1234567.89 ); //so thuc mu e 12. printf( "%G\n", 1234567.89 ); // so thuc mu E 13. getch(); 14. return 0; /* indicates successful termination */ 15. } /* end main */ 1.234568e+006 1.234568e+006 -1.234568e+006 1.234568E+006 1234567.890000 1.23457e+006 1.23457E+006 21 Ví dụ: In kí tự, xâu kí tự 1. #include 2. #include 3. int main() 4. { 5. char character = 'A'; /* initialize char */ 6. char string[] = "This is a string"; /* initialize char array */ 7. const char *stringPtr = "This is also a string"; /* char pointer */ 8. clrscr(); 9. printf( "%c\n", character ); 10. printf( "%s\n", "This is a string" ); 11. printf( "%s\n", string ); 12. printf( "%s\n", stringPtr ); 13. getch(); 14. return 0; /* indicates successful termination */ 15. } /* end main */ A This is a string This is a string This is also a string 22 Ví dụ: In giá trị con trỏ 1. #include 2. #include 3. int main() 4. { 5. int *ptr; /* define pointer to int */ 6. int x = 12345; /* initialize int x */ 7. int y; /* define int y */ 8. clrscr(); 9. ptr = &x; /* assign address of x to ptr */ 10. printf( "The value of ptr is %p\n", ptr ); 11. printf( "The address of x is %p\n\n", &x ); 12. printf( "Total characters printed on this line:%n", &y ); 13. printf( " %d\n\n", y ); 14. y = printf( "This line has 28 characters\n" ); 15. printf( "%d characters were printed\n\n", y ); 16. printf( "Printing a %% in a format control string\n" ); 17. getch(); 18. return 0; /* indicates successful termination */ 19. } /* end main */ 23 In giá trị con trỏ Kết quả thực hiện chương trình The value of ptr is 0012FF78 The address of x is 0012FF78 Total characters printed on this line: 38 This line has 28 characters 28 characters were printed Printing a % in a format control string 24 Ví dụ: In số thực 1. #include 2. #include 3. int main() 4. { 5. int i = 873; /* initialize int i */ 6. double f = 123.94536; /* initialize double f */ 7. char s[] = "Happy Birthday"; /* initialize char array s */ 8. clrscr(); 9. printf( "Using precision for integers\n" ); 10. printf( "\t%.4d\n\t%.9d\n\n", i, i ); 11. printf( "Using precision for floating-point numbers\n" ); 12. printf( "\t%.3f\n\t%.3e\n\t%.3g\n\n", f, f, f ); 13. printf( "Using precision for strings\n" ); 14. printf( "\t%.11s\n", s ); 15. getch(); 16. return 0; /* indicates successful termination */ 17. } /* end main */ 25 Kết quả thực hiện chương trình Using precision for integers 0873 000000873 Using precision for floating-point numbers 123.945 1.239e+002 124 Using precision for strings Happy Birth 26 Ví dụ: Sử dụng hàm scanf 1. #include 2. #include 3. int main() 4. { 5. int x; /* define x */ 6. int y; /* define y */ 7. clrscr(); 8. printf( "Enter a six digit integer: " ); 9. scanf( "%2d%d", &x, &y ); 10. printf( "The integers input were %d and %d\n", x, y ); 11. getch(); 12. return 0; /* indicates successful termination */ 13. } /* end main */ 27 Cấu trúc điều khiển trong C Cấu trúc tuần tự Cấu trúc lựa chọn: if, ifelse, switch Cấu trúc lặp: for, while, do while
File đính kèm:
- bai_giang_ky_thuat_lap_trinh_ngon_ngu_lap_trinh_c.pdf