intTypePromotion=1
zunia.vn Tuyển sinh 2024 dành cho Gen-Z zunia.vn zunia.vn
ADSENSE

Bài giảng Kỹ thuật lập trình: Ngôn ngữ lập trình C

Chia sẻ: Lê Thị Hạnh Tuyết | Ngày: | Loại File: PDF | Số trang:7

163
lượt xem
19
download
 
  Download Vui lòng tải xuống để xem tài liệu đầy đủ

Bài giảng Kỹ thuật lập trình: Ngôn ngữ lập trình C trình bày nội dung về cấu trúc cơ bản của một chương trình C, giới thiệu ngôn ngữ C, các lệnh vào ra cơ bản, cấu trúc điều khiển, môi trường lập trình C. Tham khảo tài liệu để nắm bắt chi tiết môn học.

Chủ đề:
Lưu

Nội dung Text: Bài giảng Kỹ thuật lập trình: Ngôn ngữ lập trình C

  1. KỸ THUẬT LẬP TRÌNH KIẾN THỨC CƠ BẢN VỀ NGÔN NGỮ LẬP TRÌNH C NGÔN NGỮ LẬP TRÌNH C 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 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 Ngôn ngữ C Đặ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 • 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 • Được sử dụng để viết các hệ điều hành • 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. • Đế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 • Nhiều biến đổi nhỏ từ C ban đầu và không tương thích • 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ớ). • 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
  2. 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 #include /* 1. Các hàm thư viện */ 1 2 /* Fig. 2.1: fig02_01.c 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 7 int main() { 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 */ /* 5. Khai báo các biến toàn cục */ Comments: Giải thích 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 int main() Program is created in • Phases of C Programs: Editor Disk the editor and stored Một chương trình C có thể có 1 hoặc một số function, on disk. Preprocessor program nhưng chỉ có duy nhất 1 hàm là main 1. Edit Preprocessor Disk processes the code. Compiler creates int có nghĩa là hàm main trả về một giá trị nguyên 2. Preprocess Compiler Disk object code and stores 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 lệnh return ở cuối hàm 5. Load Disk . . in memory. . . . . Kết thúc lệnh bởi dấu ; 6. Execute Primary Memory CPU takes each CPU instruction and executes it, possibly storing new data . . values as the program 6 7 . . . . executes.
  3. 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 Biến Các từ khóa cơ bản trong ngôn ngữ C 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 • Kí tự (char, unsigned char) toán • 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) • Lưu ý: Kích thước và phạm vi biểu diễn của các kiểu dữ liệu Hằng xâu kí tự: “A” Kiểu enum Lưu ý: phân biệt hằng kí tự và hằng xâu kí tự Kiểu mảng (array) • Lưu trữ ‘A’ (1 byte) A Kiểu cấu trúc (struct) • Lưu trữ “A” (2 byte) A \0 KIểm tra kích thước của kiểu dữ liệu: dùng toán tử sizeof(), ví dụ: sizeof(int),… Hằng biểu thức 10 11
  4. Biến Biến 1. /*Ví dụ chương trình C: Cộng hai số nguyên*/ Khái niệm Biến: 2. #include 3. #include • Tên biến tương ứng với vị trí xác định trong bộ nhớ máy tính 4. /* function main begins program execution */ • Mỗi biến gồm: một tên, kiểu dữ liệu, kích thước và giá trị 5. int main() 6. { • Mỗi khi giá trị mới được gán cho biến thì giá trị trước đó sẽ được 7. 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á 8. int integer2; /* second number to be input by user */ 9. int sum; /* variable in which sum will be stored */ trị biến. 10. clrscr(); • Đọc các biến từ bộ nhớ giá trị của nó không thay đổi 11. printf( "Enter first integer\n" ); /* prompt */ 12. scanf( "%d", &integer1 ); /* read an integer */ Mô tả trực giác về biến trong bộ nhớ 13. printf( "Enter second integer\n" ); /* prompt */ 14. scanf( "%d", &integer2 ); /* read an integer */ integer1 45 15. sum = integer1 + integer2; /* assign total to sum */ Khai báo biến trước khi sử dụng 16. printf( "Sum is %d\n", sum ); /* print sum */ 17. getch(); Đặt tên biến đúng quy tắc (trong C, phân biệt chữ hoa và 18. return 0; /* indicate that program ended successfully */ 19. } /* end function main */ chữ thường) 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 = >= x >= y x is greater than or equal to y Multiplication * bm b*m
  5. 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 1. #include Hàm printf(): in kết quả ra màn hình 2. #include 3. int main() Kết quả: printf(“Xâu_điều_khiển_khuôn_dạng”, Danh_sách_tham_số_được_in); 4. { 5. printf( "%d\n", 455 ); Hàm scanf(): nhập dữ liệu vào từ bàn phím 6. printf( "%i\n", 455 ); /* i same as d in printf */ 7. printf( "%d\n", +455 ); scanf(“Xâu_điều_khiển_khuôn_dạng”, Danh_sách_địa_chỉ_biến); 8. printf( "%d\n", -455 ); 455 455 9. printf( "%hd\n", 32000 ); 455 -455 10. printf( "%ld\n", 2000000000 ); 32000 2000000000 11. printf( "%o\n", 455 ); Bài tập 1. 12. printf( "%u\n", 455 ); 707 455 4294966841 Tìm hiểu Help, trình bày chi tiết cú pháp sử dụng hàm và cho ví dụ: 13. printf( "%u\n", -455 ); 1c7 14. printf( "%x\n", 455 ); 1C7 + Xuất dữ liệu: printf, putchar, puts 15. printf( "%X\n", 455 ); 16. getch(); + Nhập dữ liệu: scanf, getchar, getch, gets 17. return 0; /* indicates successful termination */ 18. } /* end main */ 18 19
  6. Ví dụ: In số thực Ví dụ: In kí tự, xâu kí tự 1. #include 1. #include 2. #include 2. #include 3. int main() 3. int main() 4. { 4. { 5. char character = 'A'; /* initialize char */ 5. clrscr(); 6. char string[] = "This is a string"; /* initialize char array */ 6. printf( "%e\n", 1234567.89 ); 7. const char *stringPtr = "This is also a string"; /* char pointer */ 7. printf( "%e\n", +1234567.89 ); 8. clrscr(); 8. printf( "%e\n", -1234567.89 ); 1.234568e+006 1.234568e+006 9. printf( "%c\n", character ); 9. printf( "%E\n", 1234567.89 ); -1.234568e+006 10. printf( "%s\n", "This is a string" ); 10. printf( "%f\n", 1234567.89 ); 1.234568E+006 1234567.890000 11. printf( "%s\n", string ); 11. printf( "%g\n", 1234567.89 ); //so thuc mu e 1.23457e+006 1.23457E+006 12. printf( "%s\n", stringPtr ); 12. printf( "%G\n", 1234567.89 ); // so thuc mu E 13. getch(); 13. getch(); 14. return 0; /* indicates successful termination */ 14. return 0; /* indicates successful termination */ 15. } /* end main */ 15. } /* end main */ A This is a string This is a string 20 This is also a string 21 Ví dụ: In giá trị con trỏ In giá trị con trỏ 1. #include 2. #include Kết quả thực hiện chương trình 3. int main() 4. { The value of ptr is 0012FF78 5. int *ptr; /* define pointer to int */ The address of x is 0012FF78 6. int x = 12345; /* initialize int x */ Total characters printed on this line: 38 7. int y; /* define int y */ 8. clrscr(); This line has 28 characters 9. ptr = &x; /* assign address of x to ptr */ 28 characters were printed 10. printf( "The value of ptr is %p\n", ptr ); Printing a % in a format control string 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 */ 22 23
  7. Ví dụ: In số thực 1. #include 2. #include Kết quả thực hiện chương trình 3. int main() 4. { 5. int i = 873; /* initialize int i */ Using precision for integers 0873 6. double f = 123.94536; /* initialize double f */ 000000873 7. char s[] = "Happy Birthday"; /* initialize char array s */ 8. clrscr(); Using precision for floating-point numbers 123.945 9. printf( "Using precision for integers\n" ); 1.239e+002 10. printf( "\t%.4d\n\t%.9d\n\n", i, i ); 124 Using precision for strings 11. printf( "Using precision for floating-point numbers\n" ); Happy Birth 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 */ 24 25 Ví dụ: Sử dụng hàm scanf Cấu trúc điều khiển trong C 1. #include Cấu trúc tuần tự 2. #include Cấu trúc lựa chọn: if, if…else, switch 3. int main() 4. { Cấu trúc lặp: for, while, do …while 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 */ 26 27
ADSENSE

CÓ THỂ BẠN MUỐN DOWNLOAD

 

Đồng bộ tài khoản
2=>2