Bài giảng Kỹ thuật lập trình - Bài 1: Giới thiệu - Ngô Hữu Dũng
Bạn đang xem 20 trang mẫu của tài liệu "Bài giảng Kỹ thuật lập trình - Bài 1: Giới thiệu - Ngô Hữu Dũng", để tải tài liệu gốc về máy bạn click vào nút DOWNLOAD ở trên
Tài liệu đính kèm:
- bai_giang_ky_thuat_lap_trinh_bai_1_gioi_thieu_ngo_huu_dung.pdf
Nội dung text: Bài giảng Kỹ thuật lập trình - Bài 1: Giới thiệu - Ngô Hữu Dũng
- TRƯỜNG ĐẠI HỌC CÔNG NGHIỆP THÀNH PHỐ HỒ CHÍ MINH Kỹ thuật lập trình Programming Fundamentals Ngô Hữu Dũng
- Bài 1 – Giới thiệu Blog: Group: 2 Kỹ thuật lập trình | DHTH11C | HK1 | 2016-2017 Ngô Hữu Dũng
- Nội dung Giải thuật đệ quy Quy nạp toán học Lập trình đệ quy Kiểu dữ liệu cấu trúc Kiểu cấu trúc - struct Kiểu hợp - union Biến động và kiểu con trỏ Biến động và tĩnh Kiểu con trỏ - pointer Kiểu tập tin và vào ra dữ liệu Các thao tác với tập tin 3 Kỹ thuật lập trình | DHTH11C | HK1 | 2016-2017 Ngô Hữu Dũng
- Tài liệu Slide bài giảng Brian W. Kernighan and Dennis M. Ritchie. The C Programming Language (Second Edition). Prentice-Hall. Englewood Cliffs, New Jersey, 1988. Bản dịch tiếng Việt: Giáo trình Ngôn ngữ lập trình C Bài tập thực hành Tham khảo thêm Phạm Văn Ất. Kỹ thuật lập trình C. NXB Khoa học và Kỹ thuật, 1995 Randal E.Bryant and David R.O’Hallaron. Computer’s Perspective, 2001 Bjarne Stroustrup. The C++ Programming Language, AT&T Labs Murray Hill, New Jersey Addison-Wesley, 1997. Andy Oram and Greg Wilson, Beautiful Code, 2007 cplusplus.com 4 Kỹ thuật lập trình | DHTH11C | HK1 | 2016-2017 Ngô Hữu Dũng
- Lịch trình Tuần Nội dung Lý thuyết Thực hành Thảo luận Tự học 1 Quy nạp toán học và Lập trình đệ quy 2 4 2 2 4 3 2 4 4 2 3 6 5 3 2 (Bài tập) 5 6 Kiểu cấu trúc và ứng dụng 2 3 6 7 2 3 6 8 2 3 6 9 2 3 5 10 Biến động và kiểu con trỏ 3 2 (Bài tập) 5 11 2 3 5 12 2 3 5 13 2 (Bài tập) 5 14 Kiểu tập tin, vào/ra dữ liệu 2 3 5 15 2 4 5 Kỹ thuật lập trình | DHTH11C | HK1 | 2016-2017 Ngô Hữu Dũng
- Kiểm tra đánh giá Kiểm tra thường kỳ: 20% Kiểm tra giữa kỳ: 30% Kiểm tra cuối kỳ: 50% Số tín chỉ: 4 (60 tiết) Lý thuyết: 24 Thảo luận: 6 Thực hành: 30 6 Kỹ thuật lập trình | DHTH11C | HK1 | 2016-2017 Ngô Hữu Dũng
- Ôn tập qua một số ví dụ 1. #include /*Tập tin header*/ 2. #include /*Tập tin header*/ 3. int main() //Chương trình chính 4. { 5. int x, y, z; //Khai báo biến 6. x = 5; 7. y = 10; 8. z = x + y; 9. printf("Tong la %d", z); 10. getch(); 11. return 0; 12. } 7 Kỹ thuật lập trình | DHTH11C | HK1 | 2016-2017 Ngô Hữu Dũng
- Hằng số 1. #include 2. #define PI 3.14 /* PI là hằng số */ 3. int main() 4. { 5. int r; // Bán kính hình tròn 6. float S; // Diện tích hình tròn 7. printf("Nhap ban kinh hinh tron: "); 8. scanf("%d", &r); 9. S = PI * r * r; 10. printf("Dien tich hinh tron = %f\n", S); 11. printf("Chu vi hinh tron = %f", 2*r*PI); 12. return 0; 13. } 8 Kỹ thuật lập trình | DHTH11C | HK1 | 2016-2017 Ngô Hữu Dũng
- Hoán vị – Dùng biến tạm 1. #include // Khai báo thư viện 2. int main() 3. { 4. int x, y, temp; // temp là biến tạm 5. x = 10;y = 60; 6. printf("x = %d, y = %d.\n",x, y); 7. temp = x; // Hoán vị dùng biến tạm 8. x = y; 9. y = temp; 10. printf("Hoan vi: x = %d, y = %d.",x, y); 11. return 0; 12. } 9 Kỹ thuật lập trình | DHTH11C | HK1 | 2016-2017 Ngô Hữu Dũng
- Hoán vị – Không dùng biến tạm 1. #include // Khai báo thư viện 2. int main() 3. { 4. int x, y; // Không dùng biến tạm 5. x = 10;y = 60; 6. printf("x = %d, y = %d.\n",x, y); 7. x = x + y; 8. y = x - y; 9. x = x - y; 10. printf("Hoan vi: x = %d, y = %d.",x, y); 11. return 0; 12. } 10 Kỹ thuật lập trình | DHTH11C | HK1 | 2016-2017 Ngô Hữu Dũng
- Toán tử quan hệ 1. #include // Khai báo thư viện 2. int main() 3. { 4. int a, b, c = 10; 5. printf("Nhap a:"); scanf("%d",&a); 6. printf("Nhap b:"); scanf("%d",&b); 7. if (a b) printf("a lon hon b.\n"); 9. if (a==c) printf("a bang c.\n"); 10. if (a!=c) printf("a khac c.\n"); 11. return 0; 12. } 11 Kỹ thuật lập trình | DHTH11C | HK1 | 2016-2017 Ngô Hữu Dũng
- Toán tử luận lý 1. #include 2. int main() 3. { 4. int a, b = 10; 5. printf("a = "); scanf("%d",&a); 6. if (a >= 10 && a b || a < b)?printf("a khác b."):printf("a bằng b."); 11. return 0; 12. } 12 Kỹ thuật lập trình | DHTH11C | HK1 | 2016-2017 Ngô Hữu Dũng
- Toán tử tăng, giảm 1. #include 2. int main() 3. { 4. int a, b = 10; 5. a = ++b; // Tăng trước 6. printf("a = %d, b = %d\n", a, b); 7. a = b++; // Tăng sau 8. printf("a = %d, b = %d\n", a, b); 9. a = b * 2; // Giảm trước 10. printf("a = %d, b = %d\n", a, b); 11. a = b * 2; // Giảm sau 12. printf("a = %d, b = %d\n", a, b); 13. return 0; 14. } 13 Kỹ thuật lập trình | DHTH11C | HK1 | 2016-2017 Ngô Hữu Dũng
- Toán tử trên bit #include int main() { int a = 52; // 0011 0100 int b = 29; // 0001 1101 int c; c = a & b; // Phép AND 0001 0100 printf("%d & %d = %d\n", a, b, c); c = a | b; // Phép OR 0011 1101 printf("%d | %d = %d\n", a, b, c); c = a ^ b; // Phép XOR 0010 1001 printf("%d ^ %d = %d\n", a, b, c); c = ~a; // Phép NOT 1100 1011 printf("~%d = %d\n", a, c); c = a > 2; // Dịch phải 0000 1101 printf("%d >> 2 = %d\n", a, c); return 0; } 14 Kỹ thuật lập trình | DHTH11C | HK1 | 2016-2017 Ngô Hữu Dũng
- Toán tử gán 1. #include 2. int main() 3. { 4. int a = 5, b; 5. b = a++; printf("b = a++; a = %d, b = %d. \n", a, b); 6. b += a; printf("b += a; a = %d, b = %d. \n", a, b); 7. b -= a; printf("b -= a; a = %d, b = %d. \n", a, b); 8. b *= a; printf("b *= a; a = %d, b = %d. \n", a, b); 9. b /= a; printf("b /= a; a = %d, b = %d. \n", a, b); 10. b = 40; 11. b %= a; printf("b %= a; a = %d, b = %d. \n", a, b); 12. b &= a; printf("b &= a; a = %d, b = %d. \n", a, b); 13. b |= a; printf("b |= a; a = %d, b = %d. \n", a, b); 14. b ^= a; printf("b ^= a; a = %d, b = %d. \n", a, b); 15. return 0; 16. } 15 Kỹ thuật lập trình | DHTH11C | HK1 | 2016-2017 Ngô Hữu Dũng
- Mảng – dãy số 1. #include 2. int main() 3. { 4. int mang[5]; // Dãy số gồm 5 phần tử 5. int i = 3; 6. mang[0] = 1; // Phần tử đầu tiên: mang[0] 7. mang[1] = mang[0] + 1; 8. mang[2] = mang[0] + mang[1]; 9. mang[i++] = mang[i-2] + mang[i-1]; 10. mang[i] = mang[i-2] + mang[i-1]; 11. printf("%d",mang[4]); 12. return mang[4]; mang[0] mang[1] mang[2] mang[3] mang[4] 13. } 1 ? ? ? ? 16 Kỹ thuật lập trình | DHTH11C | HK1 | 2016-2017 Ngô Hữu Dũng
- Mảng (tiếp theo) 1. #include 2. int main() 3. { 4. float diemky1[3] = {5.9, 8.6, 7.4}; 5. float diemky2[] = {6.3, 8.5, 6.3}; 6. float toan, ly, hoa; 7. toan = (diemky1[0] + diemky2[0])/2; 8. ly = (diemky1[1] + diemky2[1])/2; 9. hoa = (diemky1[2] + diemky2[2])/2; 10. printf("Diem tong ket: %.1f",(toan+ly+hoa)/3); 11. return 0; 12. } 17 Kỹ thuật lập trình | DHTH11C | HK1 | 2016-2017 Ngô Hữu Dũng
- Mảng đa chiều Học kỳ 1 (cột 0) Học kỳ 2 (cột 1) Toán (hàng 0) diem[0][0]=5.9 diem[0][0]=6.3 1. #include Lý (hàng 1) diem[0][0]=8.6 diem[0][0]=8.5 2. int main() Hóa (hàng 2) diem[0][0]=6.4 diem[0][0]=5.3 3. { 4. float diem[3][2] = {{5.9,6.3},{8.6,8.5},{6.4,5.3}}; 5. float toan, ly, hoa, tongket; 6. toan=(diem[0][0]+diem[0][1])/2; 7. ly=(diem[1][0]+diem[1][1])/2; 8. hoa=(diem[2][0]+diem[2][1])/2; 9. tongket = (toan+ly+hoa)/3; 10. printf("Diem tong ket: %.1f.",tongket); 11. return 0; 12. } 18 Kỹ thuật lập trình | DHTH11C | HK1 | 2016-2017 Ngô Hữu Dũng
- Chuỗi ký tự 1. #include 2. #include 3. int main() 'C' 'h' 'a' 'o' '!' '\0' 4. { 5. char ten [30]; 6. char gioithieu[50] = "Toi ten la "; 7. char chao[6] = {'C','h','a','o','!','\0'}; 8. printf("Nhap ten cua ban: "); 9. scanf("%[^\n]s",&ten); 10. strcat(gioithieu,ten); 11. printf("%s \n%s \n", chao, gioithieu); 12. printf("Ten cua toi co %d ky tu.",strlen(ten)); 13. return 0; 14. } 19 Kỹ thuật lập trình | DHTH11C | HK1 | 2016-2017 Ngô Hữu Dũng
- Kiểu liệt kê - enum 1. #include 2. enum week {SUN, MON, TUE, WED, THU, FRI, SAT}; 3. int main() 4. { 5. enum week today; 6. int date=5; 7. today = TUE; 8. printf("Hôm nay là "); 9. (today==0)?printf("CN"):printf("thứ %d",today+1); 10. printf("\nNgày hẹn là "); 11. if (date==SAT||date==SUN) 12. printf("cuối tuần."); 13. else 14. printf("ngày trong tuần."); 15. return 0; 16. } 20 Kỹ thuật lập trình | DHTH11C | HK1 | 2016-2017 Ngô Hữu Dũng
- else if 1. #include 2. enum week {SUN, MON=2, TUE, WED, THU, FRI, SAT}; 3. int main() 4. { 5. enum week today=WED; 6. printf("Hom nay la "); 7. if (today==MON) printf("thu hai."); 8. else if (today==TUE) 9. printf("thu ba."); 10. else if (today==WED) 11. printf("thu tu."); 12. else if (today==THU) 13. printf("thu nam."); 14. else if (today==FRI) 15. printf("thu sau."); 16. else printf("cuoi tuan."); 17. return 0; 18. } 21 Kỹ thuật lập trình | DHTH11C | HK1 | 2016-2017 Ngô Hữu Dũng
- Switch 1. #include 2. #include 3. int main() 4. { 5. time_t t = time(NULL); // Lấy thời gian hiện tại 6. struct tm *time = localtime(&t); // Đưa vào tm struct 7. int today = time->tm_wday; // Week day từ 0 đến 6. 8. printf("Hom nay la "); 9. switch (today) 10. { 11. case 1: printf("thu hai.");break; 12. case 2: printf("thu ba.");break; 13. case 3: printf("thu tu.");break; 14. case 4: printf("thu nam.");break; 15. case 5: printf("thu sau.");break; 16. default: printf("cuoi tuan."); 17. } 18. return 0; 19. } 22 Kỹ thuật lập trình | DHTH11C | HK1 | 2016-2017 Ngô Hữu Dũng
- Switch (tiếp theo) 1. #include 2. int main() 3. { 4. int m = 1; 5. switch(m) 6. { 7. case 0: printf("Zero\n"); 8. case 1: printf("One\n"); 9. case 2: printf("Two\n"); 10. case 3: printf("Three\n"); 11. } 12. printf("m = %d\n", m); 13. return 0; 14. } 23 Kỹ thuật lập trình | DHTH11C | HK1 | 2016-2017 Ngô Hữu Dũng
- For 1. #include 2. int main() 3. { 4. int a[10] = {1,2,3,4,5,-6,7,-8,9,10}; 5. int i, tong = 0; 6. for (i=0; i<5; i++) 7. { 8. tong = tong + a[i]; 9. } 10. printf("Tong = %d", tong); 11. return 0; 12. } 24 Kỹ thuật lập trình | DHTH11C | HK1 | 2016-2017 Ngô Hữu Dũng
- For (tiếp theo) 1. #include 2. #include 3. int main() 4. { 5. char string[20]="Lap trinh C",c; 6. int i,j; 7. for (i=0,j=strlen(string)-1;i<j;i++,j ) 8. { 9. c=string[i]; 10. string[i]=string[j]; 11. string[j]=c; 12. } 13. printf("%s",string); 14. return 0; 15. } 25 Kỹ thuật lập trình | DHTH11C | HK1 | 2016-2017 Ngô Hữu Dũng
- While 1. #include 2. int main() 3. { 4. int a[10] = {1,2,3,4,5,-6,7,-8,9,10}; 5. int i = 0, tong = 0; 6. while (i<8) 7. { 8. tong = tong + a[i]; 9. i++; 10. } 11. printf("Tong = %d",tong); 12. return 0; 13. } 26 Kỹ thuật lập trình | DHTH11C | HK1 | 2016-2017 Ngô Hữu Dũng
- Do while 1. #include 2. int main() 3. { 4. int a;char c; 5. do{ 6. printf("Nhap vao mot so chan: "); 7. scanf("%d",&a); 8. }while (a%2!=0); 9. do{ 10. scanf("%c",&c); 11. }while (c!='e'); 12. return 0; 13. } 27 Kỹ thuật lập trình | DHTH11C | HK1 | 2016-2017 Ngô Hữu Dũng
- Break 1. #include 2. #define n 10 3. int main() 4. { 5. int i, tong = 0; 6. int a[n] = {1,2,3,4,5,-6,7,-8,9,10}; 7. for (i = 0;i < n;i++) 8. { 9. if (a[i]<0) 10. break; 11. tong = tong + a[i]; 12. } 13. printf("Tong = %d",tong); 14. return 0; 15. } 28 Kỹ thuật lập trình | DHTH11C | HK1 | 2016-2017 Ngô Hữu Dũng
- Continue 1. #include 2. #define n 10 3. int main() 4. { 5. int i, tong = 0; 6. int a[n] = {1,2,3,4,5,-6,7,-8,9,10}; 7. for (i = 0;i < n;i++) 8. { 9. if (a[i]<0) 10. continue; 11. tong = tong + a[i]; 12. } 13. printf("Tong = %d",tong); 14. return 0; 15. } 29 Kỹ thuật lập trình | DHTH11C | HK1 | 2016-2017 Ngô Hữu Dũng
- Hết bài 1 Giới thiệu Nội dung Tài liệu Lịch trình Kiểm tra Blog: Ôn tập qua ví dụ Group: 30 Kỹ thuật lập trình | DHTH11C | HK1 | 2016-2017 Ngô Hữu Dũng