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