Giáo trình Hệ điều hành - Chương 1: Ôn tập - Nguyễn Sơn Hoàng Quốc

pdf 44 trang huongle 3800
Bạn đang xem 20 trang mẫu của tài liệu "Giáo trình Hệ điều hành - Chương 1: Ôn tập - Nguyễn Sơn Hoàng Quốc", để 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:

  • pdfgiao_trinh_he_dieu_hanh_chuong_1_on_tap_nguyen_son_hoang_quo.pdf

Nội dung text: Giáo trình Hệ điều hành - Chương 1: Ôn tập - Nguyễn Sơn Hoàng Quốc

  1. Khoa CNTT LTHĐT Chƣơng 1 Ôn Tập GV. Nguyễn Sơn Hoàng Quốc Chương 01 - 1 ThS. Nguyễn Tấn Trần Minh Khang
  2. Khoa CNTT LTHĐT 1. MỤC TIÊU Ôn lại các khái niệm, các kiến thức lập trình cơ bản Biến toàn cục Biến cục bộ Hàm và biến toàn cục Tham số và hàm Trừu tượng hóa dữ liệu GV. Nguyễn Sơn Hoàng Quốc Chương 01 - 2 ThS. Nguyễn Tấn Trần Minh Khang
  3. Khoa CNTT LTHĐT 2. BÀI TOÁN Bài toán: Viết chương trình nhập họ tên, điểm toán, điểm văn của một học sinh. Tính điểm trung bình và xuất kết quả. GV. Nguyễn Sơn Hoàng Quốc Chương 01 - 3 ThS. Nguyễn Tấn Trần Minh Khang
  4. Khoa CNTT LTHĐT 3. BIẾN TOÀN CỤC . Khái niệm: Biến toàn cục là biến được khai báo bên ngoài tất cả các hàm và được hiểu bên trong tất cả các hàm. . Thông thường biến toàn cục được khai báo ở đầu chương trình. . Lưu ý: Biến khai báo bên trong thân hàm main không là biến toàn cục mà là biến cục bộ của hàm main. GV. Nguyễn Sơn Hoàng Quốc Chương 01 - 4 ThS. Nguyễn Tấn Trần Minh Khang
  5. Khoa CNTT LTHĐT 11. #include 12.#include 13.char hoten[30]; 14.int toan; 15.int van; 16.float dtb; 17.void main() 18.{ 19. printf("Nhap ho ten:"); 20. gets(hoten); 21. printf("Nhap toan:"); 22. scanf("%d",&toan); 23. printf("Nhap van:"); 24. scanf("%d",&van); 25. dtb=(float)(toan+van)/2; 26. printf("\n Ho ten: %s" , hoten); 27. printf("\n Toan: %d" , toan); 28. printf("\n Van: %d" , van); 29. printf("\n Trung binh:%f", dtb); 30.} GV. Nguyễn Sơn Hoàng Quốc Chương 01 - 5 ThS. Nguyễn Tấn Trần Minh Khang
  6. Khoa CNTT LTHĐT 4. BIẾN CỤC BỘ Khái niệm: Biến cục bộ là biến đƣợc khai báo và đƣợc hiểu bên trong một phạm vi nào đó của chtrình, ra khỏi phạm vi này biến không còn đƣợc biết đến nữa vì không gian bộ nhớ cấp phát cho biến đƣợc tự động thu hồi. Thông thường biến cục bộ được khai báo bên trong thân của một hàm hay một khối lệnh. Lưu ý: Một biến được khai báo bên trong thân hàm main là biến cục bộ của hàm main. GV. Nguyễn Sơn Hoàng Quốc Chương 01 - 6 ThS. Nguyễn Tấn Trần Minh Khang
  7. Khoa CNTT LTHĐT 11. #include 12.#include 13.void main() 14.{ 15. char hoten[30]; 16. int toan; 17. int van; 18. float dtb; 19. printf("Nhap ho ten:"); 20. gets(hoten); 21. printf("Nhap toan:"); 22. scanf("%d",&toan); 23. printf("Nhap van:"); 24. scanf("%d",&van); 25. dtb=(float)(toan+van)/2; 26. printf("\nHo ten:%s", hoten); 27. printf("\n Toan: %d" , toan); 28. printf("\n Van: %d" , van); 29. printf("\n Trung binh:%f" , dtb); 30.} GV. Nguyễn Sơn Hoàng Quốc Chương 01 - 7 ThS. Nguyễn Tấn Trần Minh Khang
  8. Khoa CNTT LTHĐT 5. HÀM VÀ BIẾN TOÀN CỤC Kiến trúc chương trình C. Khối khai báo Khối hàm main Khối định nghĩa hàm. GV. Nguyễn Sơn Hoàng Quốc Chương 01 - 8 ThS. Nguyễn Tấn Trần Minh Khang
  9. Khoa CNTT LTHĐT 5.1 KIẾN TRÚC MỘT CHƢƠNG TRÌNH C ĐƠN GIẢN Kiến trúc của một chương trình C cơ bản bao gồm 3 khối lệnh chính như sau: khối khai báo, khối hàm main và khối định nghĩa hàm. Ba khối lệnh này được trình bày theo thứ tự của hình vẽ bên dưới. GV. Nguyễn Sơn Hoàng Quốc Chương 01 - 9 ThS. Nguyễn Tấn Trần Minh Khang
  10. Khoa CNTT LTHĐT 5.1 KIẾN TRÚC MỘT CHƢƠNG TRÌNH C ĐƠN GIẢN Khối 1 khai báo Khối 2 hàm main Khối 3 định nghĩa hàm GV. Nguyễn Sơn Hoàng Quốc Chương 01 - 10 ThS. Nguyễn Tấn Trần Minh Khang
  11. Khoa CNTT LTHĐT 5.1 KIẾN TRÚC MỘT CHƢƠNG TRÌNH C ĐƠN GIẢN Khối khai báo: chứa các khai báo hàm, khai báo biến toàn cục, khai báo sử dụng thư viện, khai báo hằng, khai báo kiểu dữ liệu Khối hàm main: chứa duy nhất hàm main và thân hàm của nó. Trong thân hàm main chứa các lời gọi hàm cần thiết cho chương trình. Khối định nghĩa hàm: chứa các định nghĩa hàm đã được khai báo trong khối khai báo. GV. Nguyễn Sơn Hoàng Quốc Chương 01 - 11 ThS. Nguyễn Tấn Trần Minh Khang
  12. Khoa CNTT LTHĐT 5.2 CHƢƠNG TRÌNH Bài toán: Viết chương trình nhập họ tên, điểm toán, điểm văn của một học sinh. Tính điểm trung bình và xuất kết quả. GV. Nguyễn Sơn Hoàng Quốc Chương 01 - 12 ThS. Nguyễn Tấn Trần Minh Khang
  13. Khoa CNTT LTHĐT 5.2 CHƢƠNG TRÌNH 1. #include 2. #include 3. char hoten[30]; 4. int toan; 5. int van; 6. float dtb; 7. void Nhap(); 8. void TinhDTB(); 9. void Xuat(); GV. Nguyễn Sơn Hoàng Quốc Chương 01 - 13 ThS. Nguyễn Tấn Trần Minh Khang
  14. Khoa CNTT LTHĐT 5.2 CHƢƠNG TRÌNH 1. void main() 2. { 3. Nhap(); 4. TinhDTB(); 5. Xuat(); 6. } GV. Nguyễn Sơn Hoàng Quốc Chương 01 - 14 ThS. Nguyễn Tấn Trần Minh Khang
  15. Khoa CNTT LTHĐT 5.2 CHƢƠNG TRÌNH 11. void Xuat() 12. { 13. printf("Ho ten:%s", hoten); 14. printf("Toan: %d", toan); 15. printf("Van: %d:", van); 16. printf("DTB: %f", dtb); 17. } GV. Nguyễn Sơn Hoàng Quốc Chương 01 - 15 ThS. Nguyễn Tấn Trần Minh Khang
  16. Khoa CNTT LTHĐT 5.2 CHƢƠNG TRÌNH 11. void TinhDTB() 12. { 13. dtb=(float)(toan + van)/2; 14. } GV. Nguyễn Sơn Hoàng Quốc Chương 01 - 16 ThS. Nguyễn Tấn Trần Minh Khang
  17. Khoa CNTT LTHĐT 5.2 CHƢƠNG TRÌNH 1. void Nhap() 2. { 3. printf("Nhap ho ten:”); 4. gets(hoten); 5. printf("Nhap toan:"); 6. scanf("%d",&toan); 7. printf("Nhap van:"); 8. scanf("%d",&van); 9. } GV. Nguyễn Sơn Hoàng Quốc Chương 01 - 17 ThS. Nguyễn Tấn Trần Minh Khang
  18. Khoa CNTT LTHĐT 6. THAM SỐ VÀ HÀM Khái niệm: Các thông số đầu vào của một hàm đƣợc gọi là tham số của hàm. Phân loại tham số: có 2 loại tham số là tham trị và tham biến. Tham trị: Không đổi. Tham biến: Thay đổi. Cấp phát bộ nhớ: Tham trị: Cấp phát. Tham biến: Không cấp phát bộ nhớ khi hàm được gọi thực hiện mà sử dụng bộ nhớ của đối số tương ứng. GV. Nguyễn Sơn Hoàng Quốc Chương 01 - 18 ThS. Nguyễn Tấn Trần Minh Khang
  19. Khoa CNTT LTHĐT 6. THAM SỐ VÀ HÀM 1. #include 2. #include 3. void Nhap(char [],int&,int &); 4. float TinhDTB(int, int); 5. void Xuat(char[],int,int,float); GV. Nguyễn Sơn Hoàng Quốc Chương 01 - 19 ThS. Nguyễn Tấn Trần Minh Khang
  20. Khoa CNTT LTHĐT 6. THAM SỐ VÀ HÀM 1. void main() 2. { 3. char ht[30]; 4. int t,v; 5. Nhap(ht,t,v); 6. float tb = TinhDTB(t,v); 7. Xuat(ht,t,v,tb); 8. } GV. Nguyễn Sơn Hoàng Quốc Chương 01 - 20 ThS. Nguyễn Tấn Trần Minh Khang
  21. Khoa CNTT LTHĐT 6. THAM SỐ VÀ HÀM (tiếp) 11. void Xuat(char hoten[],int toan,int van,float dtb) 12. { 13. printf("Ho ten:%s",hoten); 14. printf("Toan: %d",toan); 15. printf("Van: %d",van); 16. printf("DTB: %f",dtb); 17. } GV. Nguyễn Sơn Hoàng Quốc Chương 01 - 21 ThS. Nguyễn Tấn Trần Minh Khang
  22. Khoa CNTT LTHĐT 6. THAM SỐ VÀ HÀM (tiếp) 11. float TinhDTB(int toan, int van) 12. { 13. float dtb; 14. dtb =(float)(toan + van)/2; 15. return dtb; 16. } GV. Nguyễn Sơn Hoàng Quốc Chương 01 - 22 ThS. Nguyễn Tấn Trần Minh Khang
  23. Khoa CNTT LTHĐT 6. THAM SỐ VÀ HÀM (tiếp) 1. void Nhap(char hoten[30], int &toan, int &van) 2. { 3. printf("Nhap ho ten:”); 4. gets(hoten); 5. printf("Nhap toan:"); 6. scanf("%d",&toan); 7. printf("Nhap van:"); 8. scanf("%d",&van); 9. } GV. Nguyễn Sơn Hoàng Quốc Chương 01 - 23 ThS. Nguyễn Tấn Trần Minh Khang
  24. Khoa CNTT LTHĐT 7. TRỪU TƢỢNG HÓA DỮ LIỆU Khái niệm: Trừu tượng hóa dữ liệu là một phương pháp tích hợp các kiểu dữ liệu đơn, các kiểu dữ liệu có sẵn nhằm mô tả, biểu diễn một khái niệm hay một đối tượng trong thế giới thực. Cú pháp: 1. struct KIEUDULIEU 2. { 3. Thành phần 1; 4. Thành phần 2; 5. 6. }; GV. Nguyễn Sơn Hoàng Quốc Chương 01 - 24 ThS. Nguyễn Tấn Trần Minh Khang
  25. Khoa CNTT LTHĐT 7. TRỪU TƢỢNG HÓA DỮ LIỆU (tiếp) 11. #include 12. #include 13. struct HOCSINH 14. { 15. char hoten[31]; 16. int toan; 17. int van; 18. }; 19. void Nhap(HOCSINH &); 20. void Xuat(HOCSINH); 21. float TinhDTB(HOCSINH); GV. Nguyễn Sơn Hoàng Quốc Chương 01 - 25 ThS. Nguyễn Tấn Trần Minh Khang
  26. Khoa CNTT LTHĐT 7. TRỪU TƢỢNG HÓA DỮ LIỆU (tiếp) 1. void Nhap(HOCSINH &); 2. void Xuat(HOCSINH); 3. float TinhDTB(HOCSINH); 4. void main() 5. { 6. HOCSINH hs; 7. Nhap(hs); 8. float dtb = TinhDTB(hs); 9. Xuat(hs); 10. printf("dtb = %f", dtb); 11. } GV. Nguyễn Sơn Hoàng Quốc Chương 01 - 26 ThS. Nguyễn Tấn Trần Minh Khang
  27. Khoa CNTT LTHĐT 7. TRỪU TƢỢNG HÓA DỮ LIỆU (tiếp) 1. void Xuat(HOCSINH x) 2. { 3. printf("Ho ten:%s",x.hoten); 4. printf("Toan: %d",x.toan); 5. printf("Van: %d",x.van); 6. } 7. float TinhDTB(HOCSINH x) 8. { 9. float dtb; 10. dtb=(float)(x.toan+x.van)/2; 11. return dtb; 12. } GV. Nguyễn Sơn Hoàng Quốc Chương 01 - 27 ThS. Nguyễn Tấn Trần Minh Khang
  28. Khoa CNTT LTHĐT 7. TRỪU TƢỢNG HÓA DỮ LIỆU (tiếp) 1. void Nhap(HOCSINH&x) 2. { 3. printf("Nhap ho ten:"); 4. gets(x.hoten); 5. printf("Nhap toan:"); 6. scanf("%d",&x.toan); 7. printf("Nhap van:"); 8. scanf("%d",&x.van); 9. } GV. Nguyễn Sơn Hoàng Quốc Chương 01 - 28 ThS. Nguyễn Tấn Trần Minh Khang
  29. Khoa CNTT LTHĐT 8. ỨNG DỤNG 8.1 Ứng dụng 1: Viết chƣơng trình nhập vào một phân số. Rút gọn phân số đó và xuất kết quả. GV. Nguyễn Sơn Hoàng Quốc Chương 01 - 29 ThS. Nguyễn Tấn Trần Minh Khang
  30. Khoa CNTT LTHĐT 8.1 ỨNG DỤNG 1 11. #include 12. #include 13. struct PHANSO 14. { 15. int tu; 16. int mau; 17. }; 18. void Nhap(PHANSO&); 19. void Xuat(PHANSO); 20. void RutGon(PHANSO&); GV. Nguyễn Sơn Hoàng Quốc Chương 01 - 30 ThS. Nguyễn Tấn Trần Minh Khang
  31. Khoa CNTT LTHĐT 8.1 ỨNG DỤNG 1 1. void Nhap(PHANSO &); 2. void Xuat(PHANSO); 3. float TinhDTB(PHANSO&); 4. void main() 5. { 6. PHANSO ps; 7. Nhap(ps); 8. RutGon(ps); 9. Xuat(ps); 10. } GV. Nguyễn Sơn Hoàng Quốc Chương 01 - 31 ThS. Nguyễn Tấn Trần Minh Khang
  32. Khoa CNTT LTHĐT 8.1 ỨNG DỤNG 1 1. void Nhap(PHANSO &x) 2. { 3. printf("Nhap tu"); 4. scanf("%d",&x.tu); 5. printf("Nhap mau: "); 6. scanf("%d",&x.mau); 7. } 8. void Xuat(PHANSO x) 9. { 10. printf("\n Tu: %d",x.tu); 11. printf("\n Mau: %d",x.mau); 12. } GV. Nguyễn Sơn Hoàng Quốc Chương 01 - 32 ThS. Nguyễn Tấn Trần Minh Khang
  33. Khoa CNTT LTHĐT 8.1 ỨNG DỤNG 1 1. void RutGon(PHANSO &x) 2. { 3. int a = abs(x.tu); 4. int b = abs(x.mau); 5. while(a*b!=0) 6. { 7. if(a>b) 8. a = a – b; 9. else 10. b = b – a; 11. } 12. x.tu = x.tu / (a+b); 13. x.mau = x.mau / (a+b); 14. } GV. Nguyễn Sơn Hoàng Quốc Chương 01 - 33 ThS. Nguyễn Tấn Trần Minh Khang
  34. Khoa CNTT LTHĐT 8. ỨNG DỤNG 8.2 Ứng dụng 2: Viết chƣơng trình nhập vào tọa độ 2 điểm trong mặt phẳng Oxy. Tính khoảng cách giữa chúng và xuất kết quả GV. Nguyễn Sơn Hoàng Quốc Chương 01 - 34 ThS. Nguyễn Tấn Trần Minh Khang
  35. Khoa CNTT LTHĐT 8.2 ỨNG DỤNG 2 11. #include 12. #include 13. struct DIEM 14. { 15. float x; 16. float y; 17. }; 18. void Nhap(DIEM &); 19. void Xuat(DIEM); 20. float KhoangCach(DIEM,DIEM); GV. Nguyễn Sơn Hoàng Quốc Chương 01 - 35 ThS. Nguyễn Tấn Trần Minh Khang
  36. Khoa CNTT LTHĐT 8.2 ỨNG DỤNG 2 1. void Nhap(DIEM &); 2. void Xuat(DIEM); 3. float KhoangCach(DIEM,DIEM); 4. void main() 5. { 6. DIEM A,B; 7. Nhap(A); 8. Nhap(B); 9. float kq=KhoangCach(A,B); 10. Xuat(A); 11. Xuat(B); 12. printf("\n :%f",kq); 13. } GV. Nguyễn Sơn Hoàng Quốc Chương 01 - 36 ThS. Nguyễn Tấn Trần Minh Khang
  37. Khoa CNTT LTHĐT 8.2 ỨNG DỤNG 2 1. void Nhap(DIEM &P) 2. { 3. printf("Nhap x: "); 4. scanf("%f",&P.x); 5. printf("Nhap y: "); 6. scanf("%f",&P.y); 7. } 8. void Xuat(DIEM P) 9. { 10. printf("\n x = %f",P.x); 11. printf("\n y = %f",P.y); 12. } GV. Nguyễn Sơn Hoàng Quốc Chương 01 - 37 ThS. Nguyễn Tấn Trần Minh Khang
  38. Khoa CNTT LTHĐT 8.2 ỨNG DỤNG 2 1. float KhoangCach(DIEM P,DIEM Q) 2. { 3. return sqrt( (Q.x-P.x)*(Q.x-P.x)+ (Q.y-P.y)*(Q.y-P.y)); 4. } GV. Nguyễn Sơn Hoàng Quốc Chương 01 - 38 ThS. Nguyễn Tấn Trần Minh Khang
  39. Khoa CNTT LTHĐT 9. BÀI TẬP Bài 1: Viết chương trình nhập vào một phân số. Hãy cho biết phân số đó là phân số âm hay dương hay bằng không. Bài 2: Viết chương trình nhập tọa độ hai điểm trong không gian. Tính khoảng cách giữa chúng và xuất kết quả. GV. Nguyễn Sơn Hoàng Quốc Chương 01 - 39 ThS. Nguyễn Tấn Trần Minh Khang
  40. Khoa CNTT LTHĐT 9. BÀI TẬP Bài 3: Viết chương trình nhập vào 2 phân số. Tìm phân số lớn nhất và xuất kết quả. Bài 4: Viết chương trình nhập vào hai phân số. Tính tổng, hiệu, tích, thương giữa chúng và xuất kết quả. GV. Nguyễn Sơn Hoàng Quốc Chương 01 - 40 ThS. Nguyễn Tấn Trần Minh Khang
  41. Khoa CNTT LTHĐT 9. BÀI TẬP Bài 5: Viết chương trình nhập vào 2 số phức. Tính tổng, hiệu, tích và xuất kết quả. Bài 6: Viết chương trình nhập vào một ngày. Tìm ngày kế tiếp và xuất kết quả. GV. Nguyễn Sơn Hoàng Quốc Chương 01 - 41 ThS. Nguyễn Tấn Trần Minh Khang
  42. Khoa CNTT LTHĐT 9. BÀI TẬP Bài 7: Viết chương trình nhập vào một ngày. Tìm ngày hôm qua và xuất kết quả. Bài 8: Viết chương trình nhập toạ độ 3 đỉnh A,B,C của 1 tam giác trong mặt phẳng Oxy. Tính chu vi, diện tích và tìm tọa độ trọng tâm. GV. Nguyễn Sơn Hoàng Quốc Chương 01 - 42 ThS. Nguyễn Tấn Trần Minh Khang
  43. Khoa CNTT LTHĐT 9. BÀI TẬP Bài 9: Viết chương trình nhập tọa tâm và bán kính của một đường tròn. Tính diện tích và chu vi của đường tròn. GV. Nguyễn Sơn Hoàng Quốc Chương 01 - 43 ThS. Nguyễn Tấn Trần Minh Khang
  44. Khoa CNTT LTHĐT 9. BÀI TẬP Yêu cầu chung: Làm tất cả các bài tập trong một workspace có tên là MSSV_Tuan01. Trong workspace có 9 project tương ứng với từng bài tập. Tên tương ứng như sau: • BT01 • BT02 • Nộp bài tập lên hệ thống Moodle theo qui định. GV. Nguyễn Sơn Hoàng Quốc Chương 01 - 44 ThS. Nguyễn Tấn Trần Minh Khang