Bài tập minh họa nhập môn lập trình phần 2 năm 2024

Đề thi Nhập môn lập trình đề số 2 kỳ 2 năm học 2021-2022 – UET

12/08/2022

Đề thi Nhập môn lập trình đề số 2 kỳ 2 năm học 2021-2022 – UET Giảng viên Cao Văn Mai TẢI TÀI LIỆU XUỐNG Đề thi Nhập môn lập trình đề số 2 kỳ 2 năm học 2021-2022 – UET

Đề thi Nhập môn lập trình đề số 1 kỳ 2 năm học 2021-2022 – UET

22/06/2022

Đề thi Nhập môn lập trình đề số 1 kỳ 2 năm học 2021-2022 – UET TẢI TÀI LIỆU XUỐNG

  • 1. Khoa học Tự nhiên Khoa Công nghệ thông tin Bộ môn Tin học cơ sở 1 Đặng Bình Phương dbphuong@fit.hcmus.edu.vn NHẬP MÔN LẬP TRÌNH GIỚI THIỆU MÔN HỌC CuuDuongThanCong.com //fb.com/tailieudientucntt
  • 2. tượng: Sinh viên năm nhất Thời gian [15 tuần]: 45 tiết LT + 45 tiết TH Môn học tiên quyết: Không có Hình thức kiểm tra: LT [7đ], TH [1đ + 2đ] Giảng viên lý thuyết  Đặng Bình Phương dbphuong@fit.hcmus.edu.vn Đặng Bình Phương dang2@vnn.vn Nhóm giảng viên hướng dẫn thực hành  ... Giới thiệu môn học CuuDuongThanCong.com //fb.com/tailieudientucntt
  • 3. học Tuần 1: Các khái niệm cơ bản về lập trình  Các khái niệm cơ bản: thuật toán, lưu đồ, …  Giới thiệu ngôn ngữ lập trình C.  Cấu trúc một chương trình viết bằng ngôn ngữ lập trình cấp cao [C/C++]. Tuần 2:  Kiểu dữ liệu và các phép toán số học, luận lý.  Nhập xuất dữ liệu. Giới thiệu môn học CuuDuongThanCong.com //fb.com/tailieudientucntt
  • 4. học Tuần 3: Cấu trúc điều kiện, rẽ nhánh  if … else …  switch Tuần 4: Cấu trúc lặp  for  while  do … while … Giới thiệu môn học CuuDuongThanCong.com //fb.com/tailieudientucntt
  • 5. học Tuần 5, 6: Chương trình con  Khái niệm về chương trình con.  Chương trình con trong NNLT C/C++: Hàm.  Tham số và truyền tham số [Call-by-Value]. Tuần 7, 8: Kiểu dữ liệu mảng  Mảng 1 chiều, 2 chiều[tham khảo].  Kỹ thuật lập trình với mảng 1 chiều. Giới thiệu môn học CuuDuongThanCong.com //fb.com/tailieudientucntt
  • 6. học Tuần 9, 10: Biến con trỏ và các kỹ thuật cơ bản  Khái niệm con trỏ, địa chỉ vùng nhớ.  Các phép toán số học trên con trỏ.  Con trỏ và mảng một chiều.  Cấp phát bộ nhớ động. Tuần 11, 12: Kỹ thuật lập trình trên chuỗi ký tự  Ký tự và chuỗi.  Các hàm cơ bản trên chuỗi ký tự. Giới thiệu môn học CuuDuongThanCong.com //fb.com/tailieudientucntt
  • 7. học Tuần 13, 14: Kiểu dữ liệu cấu trúc  Khái niệm.  Truy xuất và truyền cấu trúc cho hàm.  Mảng cấu trúc. Tuần 15: Một số kỹ thuật lập trình hữu ích khác  Kỹ thuật lập trình đệ quy cơ bản.  Kỹ thuật lập trình với tập tin.  Kỹ thuật lập trình trên bit. Giới thiệu môn học CuuDuongThanCong.com //fb.com/tailieudientucntt
  • 8. khảo Tự học lập trình C trong 21 ngày, NXB Đà Nẵng. Slides bài giảng, code mẫu, tài liệu tham khảo: www.mediafire.com/dang2 Giới thiệu môn học CuuDuongThanCong.com //fb.com/tailieudientucntt
  • 9. Khoa học Tự nhiên Khoa Công nghệ thông tin Bộ môn Tin học cơ sở 1 Đặng Bình Phương dbphuong@fit.hcmus.edu.vn NHẬP MÔN LẬP TRÌNH CÁC KHÁI NIỆM CƠ BẢN VỀ MÁY TÍNH CuuDuongThanCong.com //fb.com/tailieudientucntt
  • 10. niệm cơ bản về máy tính Vài nét lịch sử máy tính 1 Các thế hệ máy tính điện tử 2 Phân loại 3 Các thành phần cơ bản 4 CuuDuongThanCong.com //fb.com/tailieudientucntt
  • 11. sử máy tính Các khái niệm cơ bản về máy tính 1642 Blaise Pascal [1623 – 1662] Máy cộng cơ học đầu tiên trên thế giới Gottfried Leibritz [1646 – 1716] Cải tiến máy của Pascal để +, -, *, / Charle Babbage Không nên phát triển máy cơ học Máy tính với chương trình bên ngoài John von Neumann Nguyên lý có tính chất quyết định . Chương trình lưu trữ trong máy . Sự gián đoạn quá trình tuần tự 1670 1833 1945 CuuDuongThanCong.com //fb.com/tailieudientucntt
  • 12. máy tính điện tử Các khái niệm cơ bản về máy tính Thế hệ thứ nhất [1950 – 1958] Sử dụng đèn chân không Tốc độ thấp: 103 phép tính/s Chtrình viết bằng ngôn ngữ máy Máy ENIAC nặng 30 tấn! 1 CuuDuongThanCong.com //fb.com/tailieudientucntt
  • 13. máy tính điện tử Các khái niệm cơ bản về máy tính Thế hệ thứ hai [1959 – 1963] Sử dụng đèn bán dẫn Tốc độ nhanh: 106 phép tính/s Chtrình viết bằng COBOL, ALGOL Máy IBM151 [Mỹ], MINSK22 [LX] 1 2 CuuDuongThanCong.com //fb.com/tailieudientucntt
  • 14. máy tính điện tử Các khái niệm cơ bản về máy tính Thế hệ thứ ba [1964 – 1977] Sử dụng mạch tích hợp IC Tốc độ cao: 109 tính toán/s Ngôn ngữ lập trình cấp cao & các phần mềm ứng dụng IBM360 [Mỹ], MINSK32 [LX] 1 2 3 CuuDuongThanCong.com //fb.com/tailieudientucntt
  • 15. máy tính điện tử Các khái niệm cơ bản về máy tính Thế hệ thứ tư [1978 - 1983] Mạch tích hợp quy mô lớn LSI Tốc độ cao: 1012 phép tính/s Nhỏ gọn và bộ nhớ tăng dần Phần mềm phong phú, đa dạng Mạng máy tính ra đời 1 2 3 4 CuuDuongThanCong.com //fb.com/tailieudientucntt
  • 16. máy tính điện tử Các khái niệm cơ bản về máy tính 1 Thế hệ thứ năm [1984 đến nay] Mạch tích hợp quy mô rất lớn WSI Tốc độ: 100Mega –> 1Giga LIPS Xử lý theo cơ chế song song 2 3 4 5 CuuDuongThanCong.com //fb.com/tailieudientucntt
  • 17. niệm cơ bản về máy tính Máy tính lớn [Mainframe] Kích thước vật lý lớn. Thực hiện hàng tỉ phép tính/s Phục vụ tính toán phức tạp. Trong cơ quan nhà nước. Siêu máy tính [Super Computer] Nhiều máy lớn ghép song song. Tốc độ tính toán cực lớn. Dùng trong lĩnh vực đặc biệt như quân sự, vũ trụ. CuuDuongThanCong.com //fb.com/tailieudientucntt
  • 18. niệm cơ bản về máy tính Máy tính cá nhân [Personal Computer - PC] Còn gọi là máy tính để bàn [Desktop] Dùng ở văn phòng, gia đình. Máy tính xách tay [Laptop] Còn gọi là “Notebook”. Là loại máy tính nhỏ, có thể mang theo người. Chạy bằng pin. CuuDuongThanCong.com //fb.com/tailieudientucntt
  • 19. niệm cơ bản về máy tính Máy tính bỏ túi [Pocket PC] Thiết bị kỹ thuật số cá nhân có chức năng rất phong phú như kiểm tra email, xem phim, nghe nhạc, duyệt web. Nhiều máy còn tính hợp chức năng điện thoại di động. CuuDuongThanCong.com //fb.com/tailieudientucntt
  • 20. cơ bản Các khái niệm cơ bản về máy tính Máy tính điện tử Phần cứng [Hardware] • Bộ nhớ [Memory] • Đơn vị xử lý trung ương CPU [Central Processing Unit] • Thiết bị nhập xuất [Input/Ouput Device]. Phần mềm [Software] • Phần mềm hệ thống • Phần mềm ứng dụng CuuDuongThanCong.com //fb.com/tailieudientucntt
  • 21. trung ương CPU [Central Processing Unit] Phần cứng - Cấu trúc Các khái niệm cơ bản về máy tính Thiết bị nhập [Input] Thiết bị xuất [Output] Bộ nhớ trong [ROM, RAM] Bộ nhớ ngoài [FDD, HDD, CD/DVD] Các thanh ghi [Registers] Khối điều khiển CU [Control Unit] Khối làm tính ALU [Arithmetic Logic Unit] CuuDuongThanCong.com //fb.com/tailieudientucntt
  • 22. bị lưu trữ thông tin trong quá trình máy tính xử lý. Bộ nhớ trong Bộ nhớ ngoài Bộ nhớ Phần cứng - Bộ nhớ Các khái niệm cơ bản về máy tính CuuDuongThanCong.com //fb.com/tailieudientucntt
  • 23. Bộ nhớ trong Các khái niệm cơ bản về máy tính Bộ nhớ trong ROM [Read Only Memory] • Chỉ đọc thông tin • Lưu chương trình hệ thống • Không mất khi mất điện. RAM [Random Access Memory] • Bộ nhớ truy xuất ngẫu nhiên. • Bị mất khi mất điện. CuuDuongThanCong.com //fb.com/tailieudientucntt
  • 24. Bộ nhớ ngoài Các khái niệm cơ bản về máy tính Đĩa mềm [Floppy Disk] Đường kính 3.5” Dung lượng 1.44 MB. Đĩa cứng [Hard Disk] Dung lượng lớn khoảng: 20 GB, 30 GB, 750 GB... Đĩa quang [Compact Disk] CD [700 MB] DVD [4.7 GB] CuuDuongThanCong.com //fb.com/tailieudientucntt
  • 25. Bộ nhớ ngoài Các khái niệm cơ bản về máy tính Thẻ nhớ [Memory Stick hay Compact Flash Card] Dung lượng khoảng 32 MB, 64 MB, 128 MB… USB Flash Drive Dung lượng khoảng 256 MB, 512 MB, 1GB… CuuDuongThanCong.com //fb.com/tailieudientucntt
  • 26. CPU Các khái niệm cơ bản về máy tính Các thanh ghi [Registers] Khối điều khiển [CU – Control Unit] Khối tính toán số học và logic [ALU – Arithmetic Logic Unit] CuuDuongThanCong.com //fb.com/tailieudientucntt
  • 27. CPU Đơn vị xử lý trung ương CPU:  Gắn với một đồng hồ [clock] hay còn gọi là bộ xung nhịp. Tần số đồng hồ càng cao thì tốc độ xử lý thông tin càng nhanh.  Pentium 4/D, Dual Core, Core 2 Duo, Core 2 Quad. Tốc độ: 2.0 GHz, …, 3.0 GHz… Các khái niệm cơ bản về máy tính CuuDuongThanCong.com //fb.com/tailieudientucntt
  • 28. Thiết bị nhập Các khái niệm cơ bản về máy tính Bàn phím [Keyboard] Nhập dữ liệu và câu lệnh Loại phổ biến có 104 phím Chuột [Mouse] Kích thước vừa nắm tay Dùng để di chuyển con trỏ chuột trong môi trường đồ họa. CuuDuongThanCong.com //fb.com/tailieudientucntt
  • 29. Thiết bị nhập Các khái niệm cơ bản về máy tính Máy quét hình [Scanner] Nhập văn bản hay hình vẽ, hình chụp vào máy tính. Camera & Webcam Quay hình ảnh bên ngoài đưa vào máy tính Máy chụp hình kỹ thuật số Chụp hình ảnh bên ngoài đưa vào máy tính. CuuDuongThanCong.com //fb.com/tailieudientucntt
  • 30. Thiết bị xuất Các khái niệm cơ bản về máy tính Màn hình [Screen hay Moniter] Thể hiện thông tin ra màn hình bằng kỹ thuật ánh xạ bộ nhớ [memory mapping] Các loại màn hình phổ biến hiện nay là SVGA 15”, 17”, 19”… CRT LCD CuuDuongThanCong.com //fb.com/tailieudientucntt
  • 31. Thiết bị xuất Các khái niệm cơ bản về máy tính Máy chiếu [Projector] Tương tự như màn hình nhưng phóng to hình ảnh. Máy in [Printer] Xuất thông tin ra giấy. Loa [Speaker] Phát âm thanh. CuuDuongThanCong.com //fb.com/tailieudientucntt
  • 32. niệm cơ bản về máy tính Phần mềm hệ thống • Hệ điều hành [OS] • PM đi kèm thiết bị phần cứng [Driver] • Ví dụ: MSDOS, Linux, Windows… Phần mềm ứng dụng • Soạn thảo văn bản • Tính toán, phân tích • Đồ họa • Bảo mật • Trò chơi CuuDuongThanCong.com //fb.com/tailieudientucntt
  • 33. vài nét lịch sử phát triển máy tính và phân loại máy tính điện tử. 2. Mô tả cấu tạo và chức năng CPU? 3. Phân biệt bộ nhớ trong và bộ nhớ ngoài. Kể tên và mô tả một số bộ nhớ ngoài mà bạn biết. 4. Kể tên và mô tả một số thiết bị nhập và thiết bị xuất mà bạn biết. Các khái niệm cơ bản về máy tính CuuDuongThanCong.com //fb.com/tailieudientucntt
  • 34. Khoa học Tự nhiên Khoa Công nghệ thông tin Bộ môn Tin học cơ sở 1 Đặng Bình Phương dbphuong@fit.hcmuns.edu.vn NHẬP MÔN LẬP TRÌNH GIỚI THIỆU NGÔN NGỮ LẬP TRÌNH C CuuDuongThanCong.com //fb.com/tailieudientucntt
  • 35. Giới thiệu ngôn ngữ lập trình C Giới thiệu 1 Bộ từ vựng của C 2 Cấu trúc chương trình C 3 Một số ví dụ minh họa 4 CuuDuongThanCong.com //fb.com/tailieudientucntt
  • 36. Dennis Ritchie tại Bell Telephone năm 1972.  Tiền thân của ngôn ngữ B, KenThompson, cũng tại Bell Telephone.  Là ngôn ngữ lập trình có cấu trúc và phân biệt chữ Hoa - thường [case sensitive]  ANSI C. NMLT - Giới thiệu ngôn ngữ lập trình C CuuDuongThanCong.com //fb.com/tailieudientucntt
  • 37. của C  Rất mạnh và linh động, có khả năng thể hiện bất cứ ý tưởng nào.  Được sử dụng rộng rãi bởi các nhà lập trình chuyên nghiệp.  Có tính khả chuyển, ít thay đổi trên các hệ thống máy tính khác nhau.  Rõ ràng, cô đọng.  Lập trình đơn thể, tái sử dụng thông qua hàm. NMLT - Giới thiệu ngôn ngữ lập trình C CuuDuongThanCong.com //fb.com/tailieudientucntt
  • 38. phát triển tích hợp IDE [Integrated Development Environment]  Biên tập chương trình nguồn [Trình EDIT].  Biên dịch chương trình [Trình COMPILE].  Chạy chương trình nguồn [Trình RUNTIME].  Sửa lỗi chương trình nguồn [Trình DEBUG]. NMLT - Giới thiệu ngôn ngữ lập trình C .C/.CPP .OBJ .EXE CuuDuongThanCong.com //fb.com/tailieudientucntt
  • 39. lập trình  Borland C++ 3.1 for DOS.  Visual C++ 6.0, Win32 Console Application. NMLT - Giới thiệu ngôn ngữ lập trình C CuuDuongThanCong.com //fb.com/tailieudientucntt
  • 40. của C Các ký tự được sử dụng  Bộ chữ cái 26 ký tự Latinh A, B, C, …, Z, a, b, c, …, z  Bộ chữ số thập phân : 0, 1, 2, …, 9  Các ký hiệu toán học : + – * / = < > [ ]  Các ký tự đặc biệt : . , : ; [ ] % # $ „  Ký tự gạch nối _ và khoảng trắng „ ‟ NMLT - Giới thiệu ngôn ngữ lập trình C CuuDuongThanCong.com //fb.com/tailieudientucntt
  • 41. của C Từ khóa [keyword]  Các từ dành riêng trong ngôn ngữ.  Không thể sử dụng từ khóa để đặt tên cho biến, hàm, tên chương trình con.  Một số từ khóa thông dụng: • const, enum, signed, struct, typedef, unsigned… • char, double, float, int, long, short, void • case, default, else, if, switch • do, for, while • break, continue, goto, return NMLT - Giới thiệu ngôn ngữ lập trình C CuuDuongThanCong.com //fb.com/tailieudientucntt
  • 42. của C Tên/Định danh [Identifier]  Một dãy ký tự dùng để chỉ tên một hằng số, hằng ký tự, tên một biến, một kiểu dữ liệu, một hàm một hay thủ tục.  Không được trùng với các từ khóa và được tạo thành từ các chữ cái và các chữ số nhưng bắt buộc chữ đầu phải là chữ cái hoặc _.  Số ký tự tối đa trong một tên là 255 ký tự và được dùng ký tự _ chen trong tên nhưng không cho phép chen giữa các khoảng trắng. NMLT - Giới thiệu ngôn ngữ lập trình C CuuDuongThanCong.com //fb.com/tailieudientucntt
  • 43. của C Ví dụ Tên/Định danh [Identifier]  Các tên hợp lệ: GiaiPhuongTrinh, Bai_Tap1  Các tên không hợp lệ: 1A, Giai Phuong Trinh  Phân biệt chữ hoa chữ thường, do đó các tên sau đây khác nhau: • A, a • BaiTap, baitap, BAITAP, bAItaP, … NMLT - Giới thiệu ngôn ngữ lập trình C CuuDuongThanCong.com //fb.com/tailieudientucntt
  • 44. của C Dấu chấm phẩy ;  Dùng để phân cách các câu lệnh.  Ví dụ: printf[“Hello World!”]; printf[“n”]; Câu chú thích  Đặt giữa cặp dấu /* */ hoặc // [C++]  Ví dụ: /*Ho & Ten: NVA*/, // MSSV: 0712078 Hằng ký tự và hằng chuỗi  Hằng ký tự: „A‟, „a‟, …  Hằng chuỗi: “Hello World!”, “Nguyen Van A”  Chú ý: „A‟ khác “A” NMLT - Giới thiệu ngôn ngữ lập trình C CuuDuongThanCong.com //fb.com/tailieudientucntt
  • 45. trình C NMLT - Giới thiệu ngôn ngữ lập trình C

    include “…”; // Khai báo file tiêu đề int x; // Khai báo biến hàm void Nhap[]; // Khai báo hàm void main[] // Hàm chính { // Các lệnh và thủ tục } CuuDuongThanCong.com //fb.com/tailieudientucntt

  • 46. Giới thiệu ngôn ngữ lập trình C

    include

    include void main[] { int x, y, tong; printf[“Nhap hai so nguyen: ”]; scanf[“%d%d”, &x, &y]; tong = x + y; printf[“Tong hai so la %d”, tong]; getch[]; } CuuDuongThanCong.com //fb.com/tailieudientucntt

  • 47. thuyết 1. Tên [định danh] nào sau đây đặt không hợp lệ, tại sao?  Tin hoc co SO A, 1BaiTapKHO  THucHaNH, NhapMon_L@pTrinH 2. Câu ghi chú dùng để làm gì? Cách sử dụng ra sao? Cho ví dụ minh họa. 3. Trình bày cấu trúc của một chương trình C. Giải thích ý nghĩa của từng phần trong cấu trúc. NMLT - Giới thiệu ngôn ngữ lập trình C CuuDuongThanCong.com //fb.com/tailieudientucntt
  • 48. Khoa học Tự nhiên Khoa Công nghệ thông tin Bộ môn Tin học cơ sở 1 Đặng Bình Phương dbphuong@fit.hcmus.edu.vn NHẬP MÔN LẬP TRÌNH CÁC KHÁI NIỆM CƠ BẢN VỀ HỆ ĐIỀU HÀNH CuuDuongThanCong.com //fb.com/tailieudientucntt
  • 49. hành Khái niệm & các chức năng chính 1 Phân loại 2 Hệ thống tập tin 3 Một số hệ điều hành thông dụng 4 CuuDuongThanCong.com //fb.com/tailieudientucntt
  • 50. điều hành Khái niệm  Một chương trình chạy trên máy tính, dùng để điều hành, quản lý các thiết bị phần cứng và các tài nguyên phần mềm.  Vai trò trung gian trong việc giao tiếp giữa người sử dụng và phần cứng máy tính.  Cung cấp môi trường cho phép người sử dụng phát triển và thực hiện các ứng dụng của họ một cách dễ dàng. Hệ điều hành CuuDuongThanCong.com //fb.com/tailieudientucntt
  • 51. chính của HĐH Hệ điều hành Hệ điều hành Quản lý chia sẻ tài nguyên • Tài nguyên là hữu hạn. • Người sử dụng yêu cầu nhiều tài nguyên đồng thời. • Chia sẻ tài nguyên phần mềm [thông tin] với nhau. Giả lập một máy tính mở rộng • Hệ thống nhiều máy tính trừu tượng xếp thành nhiều lớp chồng lên nhau. • Ẩn đi các chi tiết phần cứng qua giao diện làm việc đơn giản và không phụ thuộc vào thiết bị. CuuDuongThanCong.com //fb.com/tailieudientucntt
  • 52. tính Phân loại Hệ điều hành Hệ điều hành HĐH dành cho máy Mainframe HĐH dành cho máy Server HĐH dành cho máy nhiều CPU HĐH dành cho máy tính cá nhân HĐH dành cho thẻ chip [SmartCard] HĐH dành cho máy PDA HĐH dành cho máy chuyên biệt CuuDuongThanCong.com //fb.com/tailieudientucntt
  • 53. trình sử dụng cùng lúc Phân loại Hệ điều hành Hệ điều hành HĐH đơn nhiệm HĐH đa nhiệm CuuDuongThanCong.com //fb.com/tailieudientucntt
  • 54. xuất tài nguyên cùng lúc] Phân loại Hệ điều hành Hệ điều hành Máy đơn [một người dùng] Mạng ngang hàng và mạng có máy chủ CuuDuongThanCong.com //fb.com/tailieudientucntt
  • 55. lý Phân loại Hệ điều hành Hệ điều hành Hệ thống xử lý theo lô Hệ thống chia sẻ Hệ thống song song Hệ thống phân tán Hệ thống xử lý thời gian thực CuuDuongThanCong.com //fb.com/tailieudientucntt
  • 56. tin – Tập tin Khái niệm  Viết tắt của tập thông tin.  Còn gọi là tệp, tệp tin, file.  Tập hợp của thông tin [dữ liệu] được tổ chức theo một cấu trúc nào đó.  Nội dung có thể là chương trình, dữ liệu, văn bản… Hệ điều hành CuuDuongThanCong.com //fb.com/tailieudientucntt
  • 57. tin - Tập tin Hệ điều hành • Bắt buộc phải có. • Hệ điều hành MS-DOS: dài tối đa 8 ký tự. • Hệ điều hành Windows: dài tối đa 128 ký tự. • Gồm các ký tự A đến Z, số 0 đến 9, ký tự khác như #, $, %, ~, ^, @, [, ], !, _, khoảng trắng. Tên [name] . Mở rộng [extension] • Không bắt buộc. • Thường có 3 ký tự. • Thường do chương trình ứng dụng tạo tập tin tự đặt CuuDuongThanCong.com //fb.com/tailieudientucntt
  • 58. tin – Tập tin Ví dụ  Có phần mở rộng: TinA.bat, Bai Tap.pas, …  Không có phần mở rộng: TinA, Bai Tap, … Các phần mở rộng thông dụng  COM, EXE  TXT, DOC, PDF  PAS, BAS, CPP  WK1, XLS  BMP, GIF, JPG  MP3, DAT, WMA Hệ điều hành CuuDuongThanCong.com //fb.com/tailieudientucntt
  • 59. tin – Tập tin Ký tự đại diện [Wildcard]  Chỉ một nhóm tập tin.  Sử dụng 2 ký hiệu: • Dấu ? đại diện cho một ký tự bất kỳ. • Dấu * đại diện một chuỗi ký tự bất kỳ [có thể rỗng].  Ví dụ: • Bai?.doc: Bai1.doc, Bai9.doc, Bain.doc, Bai.doc, Bai10.doc, Bai1.txt, … • Bai*.doc: Bai.doc, Bai9.doc, Bai10.doc, Bai Tap.doc, … Hệ điều hành CuuDuongThanCong.com //fb.com/tailieudientucntt
  • 60. tin – Tập tin Thuộc tính  Là đặc tính và giới hạn của tập tin.  Khác nhau tùy hệ thống  Ví dụ trong hệ thống tập tin FAT: • Archive [lữu trữ]. • Hidden [ẩn]. • Read-only [chỉ đọc]. • System [thuộc về hệ thống]. • Sub-directory/directory [thư mục con/thư mục]. Hệ điều hành CuuDuongThanCong.com //fb.com/tailieudientucntt
  • 61. tin – Thư mục Một số lưu ý  Thư mục là tập tin ở dạng đặc biệt.  Không chứa dữ liệu thông thường mà chứa các tập tin và các thư mục khác.  Thư mục cấp cao nhất trên đĩa là thư mục gốc, ký hiệu  Thư mục đang làm việc là thư mục hiện hành.  Tên thư mục tuân thủ quy tắc đặt tên của tập tin nhưng không có phần mở rộng.  Ví dụ: BAITAP, BAI THI, THUC HANH… Hệ điều hành CuuDuongThanCong.com //fb.com/tailieudientucntt
  • 62. và đường dẫn Hệ điều hành CHUONG2.DOC SV LYTHUYET DECUONG.PDF C: DECUONG.PDF WINDOWS SYSTEM AUTOEXEC.BAT C: SV LYTHUYET CuuDuongThanCong.com //fb.com/tailieudientucntt
  • 63. điều hành thông dụng MS-DOS Microsoft Windows  3.x [1980], 95 [1995], 98 [1998], Me [2000], 2000 Pro [2000], XP [2001], Vista [2007].  NT 4.0 [1996], 2000 Server [2000], 2003 Server [2003]: máy chủ - hệ điều hành mạng. Linux, Unix, OS/2 Hệ điều hành CuuDuongThanCong.com //fb.com/tailieudientucntt
  • 64. điều hành là gì? Hãy nêu các chức năng chính yếu của một hệ điều hành. 2. Hãy nêu vài ví dụ của tập tin có dạng đại diện như sau: a] Bai??p*.??s b] *T?p.doc c] *.?x? d] *.* Hệ điều hành CuuDuongThanCong.com //fb.com/tailieudientucntt
  • 65. Khoa học Tự nhiên Khoa Công nghệ thông tin Bộ môn Tin học cơ sở 1 Đặng Bình Phương dbphuong@fit.hcmuns.edu.vn NHẬP MÔN LẬP TRÌNH CÁC KIỂU DỮ LIỆU CƠ SỞ CuuDuongThanCong.com //fb.com/tailieudientucntt
  • 66. Các kiểu dữ liệu cơ sở Các kiểu dữ liệu cơ sở 1 Biến, Hằng, Câu lệnh & Biểu thức 2 Các lệnh nhập xuất 3 Một số ví dụ minh họa 4 CuuDuongThanCong.com //fb.com/tailieudientucntt
  • 67. liệu cơ sở Turbo C có 4 kiểu cơ sở như sau:  Kiểu số nguyên: giá trị của nó là các số nguyên như 2912, -1706, …  Kiểu số thực: giá trị của nó là các số thực như 3.1415, 29.12, -17.06, …  Kiểu luận lý: giá trị đúng hoặc sai.  Kiểu ký tự: 256 ký tự trong bảng mã ASCII. NMLT - Các kiểu dữ liệu cơ sở CuuDuongThanCong.com //fb.com/tailieudientucntt
  • 68. kiểu số nguyên [có dấu]  n bit có dấu: –2n – 1 … +2n – 1 – 1 NMLT - Các kiểu dữ liệu cơ sở Kiểu [Type] Độ lớn [Byte] Miền giá trị [Range] char 1 –128 … +127 int 2 –32.768 … +32.767 short 2 –32.768 … +32.767 long 4 –2.147.483.648 … +2.147.483.647 CuuDuongThanCong.com //fb.com/tailieudientucntt
  • 69. kiểu số nguyên [không dấu]  n bit không dấu: 0 … 2n – 1 NMLT - Các kiểu dữ liệu cơ sở Kiểu [Type] Độ lớn [Byte] Miền giá trị [Range] unsigned char 1 0 … 255 unsigned int 2 0 … 65.535 unsigned short 2 0 … 65.535 unsigned long 4 0 … 4.294.967.295 CuuDuongThanCong.com //fb.com/tailieudientucntt
  • 70. kiểu số thực [floating-point]  Ví dụ • 17.06 = 1.706*10 = 1.706*101 • [*] Độ chính xác đơn [Single-precision] chính xác đến 7 số lẻ. • [**] Độ chính xác kép [Double-precision] chính xác đến 19 số lẻ. NMLT - Các kiểu dữ liệu cơ sở Kiểu [Type] Độ lớn [Byte] Miền giá trị [Range] float [*] 4 3.4*10–38 … 3.4*1038 double [**] 8 1.7*10–308 … 1.7*10308 CuuDuongThanCong.com //fb.com/tailieudientucntt
  • 71. điểm  C ngầm định một cách không tường minh: • false [sai]: giá trị 0. • true [đúng]: giá trị khác 0, thường là 1.  C++: bool Ví dụ  0 [false], 1 [true], 2 [true], 2.5 [true]  1 > 2 [0, false], 1 < 2 [1, true] NMLT - Các kiểu dữ liệu cơ sở CuuDuongThanCong.com //fb.com/tailieudientucntt
  • 72. điểm  Tên kiểu: char  Miền giá trị: 256 ký tự trong bảng mã ASCII.  Chính là kiểu số nguyên do: • Lưu tất cả dữ liệu ở dạng số. • Không lưu trực tiếp ký tự mà chỉ lưu mã ASCII của ký tự đó. Ví dụ  Lưu số 65 tương đương với ký tự „A‟…  Lưu số 97 tương đương với ký tự „a‟. NMLT - Các kiểu dữ liệu cơ sở CuuDuongThanCong.com //fb.com/tailieudientucntt
  • 73. kiểu dữ liệu cơ sở Biến Cú pháp ; , ; Ví dụ int i; int j, k; unsigned char dem; float ketqua, delta; CuuDuongThanCong.com //fb.com/tailieudientucntt
  • 74. Các kiểu dữ liệu cơ sở Hằng thường Ví dụ int a = 1506; // 150610 int b = 01506; // 15068 int c = 0x1506; // 150616 [0x hay 0X] float d = 15.06e-3; // 15.06*10-3 [e hay E] Cú pháp = ; CuuDuongThanCong.com //fb.com/tailieudientucntt
  • 75. Các kiểu dữ liệu cơ sở Hằng ký hiệu Ví dụ

    define MAX 100 // Không có ;

    define PI 3.14 // Không có ; const int MAX = 100; const float PI = 3.14; Cú pháp

    define hoặc sử dụng từ khóa const. CuuDuongThanCong.com //fb.com/tailieudientucntt

  • 76. Tạo thành từ các toán tử [Operator] và các toán hạng [Operand].  Toán tử tác động lên các giá trị của toán hạng và cho giá trị có kiểu nhất định.  Toán tử: +, –, *, /, %….  Toán hạng: hằng, biến, lời gọi hàm... Ví dụ  2 + 3, a / 5, [a + b] * 5, … NMLT - Các kiểu dữ liệu cơ sở CuuDuongThanCong.com //fb.com/tailieudientucntt
  • 77. niệm  Thường được sử dụng trong lập trình.  Gán giá trị cho biến. Cú pháp  = ;  = ;  = ;  Có thể thực hiện liên tiếp phép gán. NMLT - Các kiểu dữ liệu cơ sở CuuDuongThanCong.com //fb.com/tailieudientucntt
  • 78. dụ NMLT - Các kiểu dữ liệu cơ sở void main[] { int a, b, c, d, e, thuong; a = 10; b = a; thuong = a / b; a = b = c = d = e = 156; e = 156; d = e; c = d; b = c; a = b; } CuuDuongThanCong.com //fb.com/tailieudientucntt
  • 79. toán học Toán tử 1 ngôi  Chỉ có một toán hạng trong biểu thức.  [tăng 1 đơn vị], -- [giảm 1 đơn vị]  Đặt trước toán hạng • Ví dụ ++x hay --x: thực hiện tăng/giảm trước.  Đặt sau toán hạng • Ví dụ x hay x--: thực hiện tăng/giảm sau. Ví dụ  x = 10; y = x++; // y = 10 và x = 11  x = 10; y = ++x; // x = 11 và y = 11 NMLT - Các kiểu dữ liệu cơ sở CuuDuongThanCong.com //fb.com/tailieudientucntt
  • 80. toán học Toán tử 2 ngôi  Có hai toán hạng trong biểu thức.  +, –, *, /, % [chia lấy phần dư]  x = x + y  x += y; Ví dụ  a = 1 + 2; b = 1 – 2; c = 1 * 2; d = 1 / 2;  e = 1*1.0 / 2; f = float[1] / 2; g = float[1 / 2];  h = 1 % 2;  x = x * [2 + 3*5];  x *= 2 + 3*5; NMLT - Các kiểu dữ liệu cơ sở CuuDuongThanCong.com //fb.com/tailieudientucntt
  • 81. trên bit Các toán tử trên bit  Tác động lên các bit của toán hạng [nguyên].  & [and], | [or], [xor], ~ [not hay lấy số bù 1]  >> [shift right], >=, 2;// 0000 0000 0000 0001 z6 = a , =, = 2];  s5 = [1 < 2]; s6 = [1 2] && [3 > 4]; • s2 = [1 > 2] || [3 > 4]; • s3 = ![1 > 2]; NMLT - Các kiểu dữ liệu cơ sở && 0 1 0 0 0 1 0 1 || 0 1 0 0 1 1 1 1 CuuDuongThanCong.com //fb.com/tailieudientucntt
  • 85. kiện Toán tử điều kiện  Đây là toán tử 3 ngôi [gồm có 3 toán hạng]  ? : • đúng thì giá trị là . • sai thì giá trị là . Ví dụ  s1 = [1 > 2] ? 2912 : 1706;  int s2 = 0;  1 < 2 ? s2 = 2912 : s2 = 1706; NMLT - Các kiểu dữ liệu cơ sở CuuDuongThanCong.com //fb.com/tailieudientucntt
  • 86. tử phẩy  Các biểu thức đặt cách nhau bằng dấu ,  Các biểu thức con lần lượt được tính từ trái sang phải.  Biểu thức mới nhận được là giá trị của biểu thức bên phải cùng. Ví dụ  x = [a++, b = b + 2];   a++; b = b + 2; x = b; NMLT - Các kiểu dữ liệu cơ sở CuuDuongThanCong.com //fb.com/tailieudientucntt
  • 87. của các toán tử Toán tử Độ ưu tiên [] [] -> . ! ++ -- - + * [cast] & sizeof * / % + - > < >= == != & | ^ && || ?: = += -= *= /= %= &= … ,                NMLT - Các kiểu dữ liệu cơ sở CuuDuongThanCong.com //fb.com/tailieudientucntt
  • 88. của các toán tử Quy tắc thực hiện  Thực hiện biểu thức trong [ ] sâu nhất trước.  Thực hiện theo thứ tự ưu tiên các toán tử. => Tự chủ động thêm [ ] Ví dụ  n = 2 + 3 * 5; => n = 2 + [3 * 5];  a > 1 && b < 2 => [a > 1] && [b < 2] NMLT - Các kiểu dữ liệu cơ sở CuuDuongThanCong.com //fb.com/tailieudientucntt
  • 89. cho các mệnh đề x lớn hơn hay bằng 3 x >= 3 a và b cùng dấu [[a>0] && [b>0]] || [[a0] || [a –5 && x < 5] NMLT - Các kiểu dữ liệu cơ sở CuuDuongThanCong.com //fb.com/tailieudientucntt
  • 90. Là một chỉ thị trực tiếp, hoàn chỉnh nhằm ra lệnh cho máy tính thực hiện một số tác vụ nhất định nào đó.  Trình biên dịch bỏ qua các khoảng trắng [hay tab hoặc xuống dòng] chen giữa lệnh. Ví dụ NMLT - Các kiểu dữ liệu cơ sở a=2912; a = 2912; a = 2912; CuuDuongThanCong.com //fb.com/tailieudientucntt
  • 91. Câu lệnh đơn: chỉ gồm một câu lệnh.  Câu lệnh phức [khối lệnh]: gồm nhiều câu lệnh đơn được bao bởi { và } Ví dụ NMLT - Các kiểu dữ liệu cơ sở a = 2912; // Câu lệnh đơn { // Câu lệnh phức/khối lệnh a = 2912; b = 1706; } CuuDuongThanCong.com //fb.com/tailieudientucntt
  • 92. viện 

    include [standard input/output] Cú pháp  printf[[, , , …]];  là cách trình bày thông tin xuất và được đặt trong cặp nháy kép “ ”. • Văn bản thường [literal text] • Ký tự điều khiển [escape sequence] • Đặc tả [conversion specifier] NMLT - Các kiểu dữ liệu cơ sở CuuDuongThanCong.com //fb.com/tailieudientucntt

  • 93. bản thường [literal text]  Được xuất y hệt như lúc gõ trong chuỗi định dạng. Ví dụ  Xuất chuỗi Hello World  printf[“Hello ”]; printf[“World”];  printf[“Hello World”];  Xuất chuỗi a + b  printf[“a + b”]; NMLT - Các kiểu dữ liệu cơ sở CuuDuongThanCong.com //fb.com/tailieudientucntt
  • 94. tự điều khiển [escape sequence]  Gồm dấu và một ký tự như trong bảng sau: Ví dụ  printf[“t”]; printf[“n”];  printf[“tn”]; NMLT - Các kiểu dữ liệu cơ sở Ký tự điều khiển Ý nghĩa a b n t ? ” Tiếng chuông Lùi lại một bước Xuống dòng Dấu tab In dấu In dấu ? In dấu “ CuuDuongThanCong.com //fb.com/tailieudientucntt
  • 95. tả [conversion specifier]  Gồm dấu % và một ký tự.  Xác định kiểu của biến/giá trị muốn xuất.  Các đối số chính là các biến/giá trị muốn xuất, được liệt kê theo thứ tự cách nhau dấu phẩy. NMLT - Các kiểu dữ liệu cơ sở Đặc tả Ý nghĩa %c %d, %ld %f, %lf %s %u Ký tự Số nguyên có dấu Số thực Chuỗi ký tự Số nguyên không dấu char int, short, long float, double char[], char* unsigned int/short/long CuuDuongThanCong.com //fb.com/tailieudientucntt
  • 96. dụ  int a = 10, b = 20;  printf[“%d”, a];  Xuất ra 10  printf[“%d”, b];  Xuất ra 20  printf[“%d %d”, a, b];  Xuất ra 10 20  float x = 15.06;  printf[“%f”, x];  Xuất ra 15.060000  printf[“%f”, 1.0/3];  Xuất ra 0.333333 NMLT - Các kiểu dữ liệu cơ sở CuuDuongThanCong.com //fb.com/tailieudientucntt
  • 97. pháp  Định dạng xuất số nguyên: %nd  Định dạng xuất số thực: %n.kd NMLT - Các kiểu dữ liệu cơ sở int a = 1706; float x = 176.85; printf[“%10d”, a];printf[“n”]; printf[“%10.2f”, x];printf[“n”]; printf[“%.2f”, x];printf[“n”]; 1 7 0 6 7 6 . 8 5 1 7 6 . 8 5 1 CuuDuongThanCong.com //fb.com/tailieudientucntt
  • 98. hợp các thành phần  int a = 1, b = 2;  Xuất 1 cong 2 bang 3 và xuống dòng. • printf[“%d”, a]; // Xuất giá trị của biến a • printf[“ cong ”]; // Xuất chuỗi “ cong ” • printf[“%d”, b]; // Xuất giá trị của biến b • printf[“ bang ”]; // Xuất chuỗi “ bang ” • printf[“%d”, a + b]; // Xuất giá trị của a + b • printf[“n”]; // Xuất điều khiển xuống dòng n  printf[“%d cong %d bang %dn”, a, b, a+b]; NMLT - Các kiểu dữ liệu cơ sở CuuDuongThanCong.com //fb.com/tailieudientucntt
  • 99. viện 

    include [standard input/output] Cú pháp  scanf[[, , , …]];  giống định dạng xuất nhưng chỉ có các đặc tả.  Các đối số là tên các biến sẽ chứa giá trị nhập và được đặt trước dấu & NMLT - Các kiểu dữ liệu cơ sở CuuDuongThanCong.com //fb.com/tailieudientucntt

  • 100. dụ, cho a và b kiểu số nguyên  scanf[“%d”, &a]; // Nhập giá trị cho biến a  scanf[“%d”, &b]; // Nhập giá trị cho biến b   scanf[“%d%d”, &a, &b];  Các câu lệnh sau đây sai • scanf[“%d”, a]; // Thiếu dấu & • scanf[“%d”, &a, &b];// Thiếu %d cho biến b • scanf[“%f”, &a]; // a là biến kiểu số nguyên • scanf[“%9d”, &a]; // không được định dạng • scanf[“a = %d, b = %d”, &a, &b”]; NMLT - Các kiểu dữ liệu cơ sở CuuDuongThanCong.com //fb.com/tailieudientucntt
  • 101. hữu ích khác Các hàm trong thư việc toán học 

    include  1 đầu vào: double, Trả kết quả: double • acos, asin, atan, cos, sin, … • exp, log, log10 • sqrt • ceil, floor • abs, fabs  2 đầu vào: double, Trả kết quả: double • double pow[double x, double y] NMLT - Các kiểu dữ liệu cơ sở CuuDuongThanCong.com //fb.com/tailieudientucntt

  • 102. hữu ích khác Ví dụ  int x = 4, y = 3, z = -5;  float t = -1.2;  float kq1 = sqrt[x1];  int kq2 = pow[x, y];  float kq3 = pow[x, 1/3];  float kq4 = pow[x, 1.0/3];  int kq5 = abs[z];  float kq6 = fabs[t]; NMLT - Các kiểu dữ liệu cơ sở CuuDuongThanCong.com //fb.com/tailieudientucntt
  • 103. thuyết 1. Trình bày các kiểu dữ liệu cơ sở trong C và cho ví dụ. 2. Trình bày khái niệm về biến và cách sử dụng lệnh gán. 3. Phân biệt hằng thường và hằng ký hiệu. Cho ví dụ minh họa. 4. Trình bày khái niệm về biểu thức. Tại sao nên sử dụng cặp ngoặc đơn. 5. Trình bày cách định dạng xuất. NMLT - Các kiểu dữ liệu cơ sở CuuDuongThanCong.com //fb.com/tailieudientucntt
  • 104. hành 4. Nhập năm sinh của một người và tính tuổi của người đó. 5. Nhập 2 số a và b. Tính tổng, hiệu, tính và thương của hai số đó. 6. Nhập tên sản phẩm, số lượng và đơn giá. Tính tiền và thuế giá trị gia tăng phải trả, biết: a. tiền = số lượng * đơn giá b. thuế giá trị gia tăng = 10% tiền NMLT - Các kiểu dữ liệu cơ sở CuuDuongThanCong.com //fb.com/tailieudientucntt
  • 105. hành 7. Nhập điểm thi và hệ số 3 môn Toán, Lý, Hóa của một sinh viên. Tính điểm trung bình của sinh viên đó. 8. Nhập bán kính của đường tròn. Tính chu vi và diện tích của hình tròn đó. 9. Nhập vào số xe [gồm 4 chữ số] của bạn. Cho biết số xe của bạn được mấy nút? NMLT - Các kiểu dữ liệu cơ sở CuuDuongThanCong.com //fb.com/tailieudientucntt
  • 106. - Các kiểu dữ liệu cơ sở

    include

    include void main[] { int NamSinh, Tuoi; printf[“Nhap nam sinh: ”]; scanf[“%d”, &NamSinh]; Tuoi = 2007 – NamSinh; printf[“Tuoi cua ban la %d”, Tuoi]; getch[]; } CuuDuongThanCong.com //fb.com/tailieudientucntt

  • 107. - Các kiểu dữ liệu cơ sở

    include

    include void main[] { int a, b; printf[“Nhap hai so nguyen: ”]; scanf[“%d%d”, &a, &b]; Tong = a + b; Hieu = a – b; Tich = a * b; Thuong = a / b; printf[“Tong cua a va b: %d”, Tong]; printf[“Hieu cua a va b: %d”, Hieu]; printf[“Tich cua a va b: %d”, Tich]; printf[“Thuong cua a va b: %d”, Thuong]; } CuuDuongThanCong.com //fb.com/tailieudientucntt

  • 108. - Các kiểu dữ liệu cơ sở

    include

    include void main[] { int SoLuong, DonGia, Tien; float VAT; printf[“Nhap so luong va don gia: ”]; scanf[“%d%d”, &SoLuong, &DonGia]; Tien = SoLuong * DonGia; VAT = Tien * 0.1; printf[“Tien phai tra: %d”, Tien]; printf[“Thue phai tra: %.2f”, VAT]; } CuuDuongThanCong.com //fb.com/tailieudientucntt

  • 109. - Các kiểu dữ liệu cơ sở

    include

    include void main[] { float T, L, H, DTB; int HsT, HsL, HsH; printf[“Nhap diem Toan, Ly, Hoa: ”]; scanf[“%f%f%f”, &T, &L, &H]; printf[“Nhap he so Toan, Ly, Hoa: ”]; scanf[“%d%d%d”, &HsT, &HsL, &HsH]; DTB = [T * HsT + L * HsL + H * HsH] / [HsT + HsL + HsH]; printf[“DTB cua ban la: %.2f”, DTB]; } CuuDuongThanCong.com //fb.com/tailieudientucntt

  • 110. - Các kiểu dữ liệu cơ sở

    include

    include

    define PI 3.14 void main[] { float R, ChuVi, DienTich; printf[“Nhap ban kinh duong tron: ”]; scanf[“%f”, &R]; ChuVi = 2*PI*R; DienTich = PI*R*R; printf[“Chu vi: %.2f”, ChuVi]; printf[“Dien tich: %.2f”, DienTich]; } CuuDuongThanCong.com //fb.com/tailieudientucntt

  • 111. - Các kiểu dữ liệu cơ sở

    include

    include void main[] { int n; int n1, n2, n3, n4, SoNut; printf[“Nhap bien so xe [4 so]: ”]; scanf[“%d”, &n]; n4 = n % 10; n = n / 10; n3 = n % 10; n = n / 10; n2 = n % 10; n = n / 10; n1 = n; SoNut = [n1 + n2 + n3 + n4] % 10; printf[“So nut la: %d”, SoNut]; } CuuDuongThanCong.com //fb.com/tailieudientucntt

  • 112. Khoa học Tự nhiên Khoa Công nghệ thông tin Bộ môn Tin học cơ sở 1 Đặng Bình Phương dbphuong@fit.hcmus.edu.vn NHẬP MÔN LẬP TRÌNH CÁC KHÁI NIỆM CƠ BẢN VỀ MẠNG MÁY TÍNH CuuDuongThanCong.com //fb.com/tailieudientucntt
  • 113. tính Khái niệm mạng máy tính 1 Phân loại 2 Các lợi ích của mạng máy tính 3 Một số ứng dụng 4 CuuDuongThanCong.com //fb.com/tailieudientucntt
  • 114. máy tính Khái niệm  Computer Network hay Network System.  Liên kết nhiều máy tính lại với nhau nhằm: • Trao đổi thông tin • Chia sẻ tài nguyên phần cứng, phần mềm. • Tạo điều kiện làm việc theo hình thức kết hợp. Các thành phần  Các thiết bị đầu cuối [end system].  Môi trường truyền [media].  Giao thức [protocol]. Mạng máy tính CuuDuongThanCong.com //fb.com/tailieudientucntt
  • 115. quy mô Mạng cục bộ - LAN [Local Area Network]  Mạng tư nhân trong một tòa nhà, một khu vực [trường học, cơ quan].  Phạm vi từ vài mét đến 1 km.  Một đường dây cáp [cable] nối tất cả máy.  Tốc độ truyền: 10 Mbps, 100 Mbps, 1 Gbps, gần đây là 10 Gbps.  Kiến trúc mạng thông dụng: mạng bus [tuyến tính] và mạng vòng. Mạng máy tính CuuDuongThanCong.com //fb.com/tailieudientucntt
  • 116. LAN Mạng máy tính Mạng tuyến tính Mạng vòng CuuDuongThanCong.com //fb.com/tailieudientucntt
  • 117. quy mô Mạng đô thị - MAN [Metropolitan Area Network]  Lớn hơn LAN, nhóm các văn phòng gần nhau trong phạm vi vài km.  Tối đa hai dây cáp nối.  Không dùng kỹ thuật nối chuyển.  Hỗ trợ vận chuyển dữ liệu và đàm thoại, truyền hình. Có thể dùng cáp quang [fiber optical] để truyền tín hiệu.  Tốc độ hiện nay đạt đến 10 Gbps. Mạng máy tính CuuDuongThanCong.com //fb.com/tailieudientucntt
  • 118. MAN Mạng máy tính A B Bus A Bus B 2 3 1 n CuuDuongThanCong.com //fb.com/tailieudientucntt
  • 119. quy mô Mạng diện rộng – WAN [Wide Area Network]  Dùng trong vùng địa lý lớn như quốc gia, châu lục.  Phạm vi vài trăm đến vài ngàn km. Mạng máy tính CuuDuongThanCong.com //fb.com/tailieudientucntt
  • 120. WAN Mạng máy tính A B F E D C CuuDuongThanCong.com //fb.com/tailieudientucntt
  • 121. mạng máy tính Trong các tổ chức  Chia sẻ tài nguyên.  Độ tin cậy và an toàn của thông tin cao hơn.  Tiết kiệm. Cho nhiều người  Cung cấp thông tin từ xa giữa các cá nhân.  Liên lạc trực tiếp và riêng tư giữa các cá nhân  Phương tiên giải trí chung: trò chơi, chia sẻ phim ảnh qua mạng. Mạng máy tính CuuDuongThanCong.com //fb.com/tailieudientucntt
  • 122. dụng của mạng Thư tín điện tử [email]  Chuyển phát nhanh chóng, không phụ thuộc vị trí, sao lưu và hiệu chỉnh dễ dàng. Tham chiếu từ xa [e-conference, chat…]  Đối thoại từ xa, chủ động về thời gian. Các ứng dụng khác  Thông báo, quảng cáo điện tử.  Thương mại điện tử.  Truyền thông multimedia.  … Mạng máy tính CuuDuongThanCong.com //fb.com/tailieudientucntt
  • 123. máy tính là gì? Tại sao cần thiết phải có hệ thống mạng máy tính?. 2. Hãy phân loại khái quát các hệ thống mạng máy tính [theo quy mô]. 3. Hãy nêu một số lợi ích của mạng máy tính. Mạng máy tính CuuDuongThanCong.com //fb.com/tailieudientucntt
  • 124. Khoa học Tự nhiên Khoa Công nghệ thông tin Bộ môn Tin học cơ sở 1 Đặng Bình Phương dbphuong@fit.hcmus.edu.vn NHẬP MÔN LẬP TRÌNH BIỂU DIỄN THÔNG TIN BÊN TRONG MÁY TÍNH CuuDuongThanCong.com //fb.com/tailieudientucntt
  • 125. thông tin bên trong MTĐT Khái niệm thông tin 1 Đơn vị đo thông tin 2 Hệ thống số đếm 3 Biểu diễn thông tin trong MTĐT 4 CuuDuongThanCong.com //fb.com/tailieudientucntt
  • 126. [information]  Khái niệm sử dụng thường ngày.  Thông qua báo chí, phim ảnh, giao tiếp... Dữ liệu [data]  Biểu diễn thông tin bằng các tín hiệu vật lý.  Không có ý nghĩa nếu chúng không được tổ chức và xử lý. Hệ thống thông tin [information system]  Hệ thống ghi nhận dữ liệu, xử lý nó để tạo thông tin có ý nghĩa hoặc dữ liệu mới. Biểu diễn thông tin bên trong MTĐT CuuDuongThanCong.com //fb.com/tailieudientucntt
  • 127. lý thông tin Biểu diễn thông tin bên trong MTĐT Xuất dữ liệu/ thông tin [Output] Nhập dữ liệu [Input] Xử lý [Processing] Lưu trữ [Storage] CuuDuongThanCong.com //fb.com/tailieudientucntt
  • 128. thông tin Biểu diễn thông tin bên trong MTĐT Số học nhị phân sử dụng hai ký số 0 và 1. Bit [Binary Digit] Đơn vị chứa thông tin nhỏ nhất. Các đơn vị đo thông tin lớn hơn: Tên gọi Ký hiệu Giá trị Byte B 8 bit KiloByte KB 210 B = 1024 Byte MegaByte MB 210 KB = 220 Byte GigaByte GB 210 MB = 230 Byte TeraByte TB 210 GB = 240 Byte CuuDuongThanCong.com //fb.com/tailieudientucntt
  • 129. thông tin Biểu diễn thông tin bên trong MTĐT 1 bit 2 bit 3 bit n bit … 0 0 1 0 1 2 0 1 3 4 5 n-1 2 2 22 23 2n 0…000  1…111 = 2n – 1 CuuDuongThanCong.com //fb.com/tailieudientucntt
  • 130. đếm tổng quát a N* biểu diễn duy nhất dưới dạng:  a = anbn + an-1bn-1 + … + a1b1 + a0b0 hay a = [anan-1…a1a0]b  Trong đó: • b là cơ sở của biểu diễn, b N, b ≥ 2. • ai là các ký số và ai N, 0 i n, 0 ai < b. • Cách viết trên được gọi là biểu diễn cơ sở b của a. • Chiều dài của biểu diễn bằng n + 1. • Nếu có số lẻ thì vị trí đầu tiên sau dấu phẩy là -1, các vị trí tiếp theo là -2, -3, … Biểu diễn thông tin bên trong MTĐT CuuDuongThanCong.com //fb.com/tailieudientucntt
  • 131. – DECimal Biểu diễn thông tin bên trong MTĐT Hệ đếm quen thuộc của con người. Sử dụng 10 ký số từ 0 đến 9. Ví dụ  120810 = 1*103 + 2*102 + 0*101 + 8*100 120810 = 1*1000 + 2*100 + 0*10 + 8*1 120810 = 1000 + 200 + 0 + 8 = 120810  12.0810 = 1*101 + 2*100 + 0*10-1 + 8*10-2 12.0810 = 1*10 + 2*1 + 0*1/10 + 8*1/100 12.0810 = 10 + 2 + 0 + 0.08 = 12.0810 CuuDuongThanCong.com //fb.com/tailieudientucntt
  • 132. – BINary Biểu diễn thông tin bên trong MTĐT Hệ đếm sử dụng trong máy tính điện tử. Sử dụng 2 ký số là 0 và 1. Ví dụ  101102 = 1*24 + 0*23 + 1*22 + 1*21 + 0*20 101102 = 1*16 + 0*8 + 1*4 + 1*2 + 0*1 101102 = 16 + 0 + 4 + 2 + 0 = 2210  10.1102 = 1*21 + 0*20 + 1*2-1 + 1*2-2 + 0*2-3 10.1102 = 1*2 + 0*1 + 1*1/2 + 1*1/4 + 0*1/8 10.1102 = 2 + 0 + 0.5 + 0.25 + 0 = 2.7510 CuuDuongThanCong.com //fb.com/tailieudientucntt
  • 133. – OCTal Biểu diễn thông tin bên trong MTĐT Sử dụng 8 ký số từ 0 đến 7. Ví dụ  22708 = 2*83 + 2*82 + 7*81 + 0*80 22708 = 2*512 + 2*64 + 7*8 + 0*1 22708 = 1024 + 128 + 56 + 0 = 120810  22.708 = 2*81 + 2*80 + 7*8-1 + 0*8-2 22.708 = 2*8 + 2*1 + 7*1/8 + 0*1/64 22.708 = 16 + 2 + 0.875 + 0 = 18.87510 CuuDuongThanCong.com //fb.com/tailieudientucntt
  • 134. phân – HEXadecimal Biểu diễn thông tin bên trong MTĐT Sử dụng 16 ký số từ 0 đến 9 và từ A đến F Ví dụ  4B816 = 4*162 + B*161 + 8*160 4B816 = 4*256 + 11*16 + 8*1 4B816 = 1024 + 176 + 8 = 120810  4B.816 = 4*161 + B*160 + 8*16-1 4B.816 = 4*16 + 11*1 + 8*1/16 4B.816 = 64 + 11 + 0.5 = 75.510 CuuDuongThanCong.com //fb.com/tailieudientucntt
  • 135. các hệ đếm Biểu diễn thông tin bên trong MTĐT Đặc điểm  Con người sử dụng hệ thập phân.  Máy tính sử dụng hệ nhị phân, bát phân, thập lục phân. Nhu cầu  Chuyển đổi qua lại giữa các hệ đếm. • Hệ khác sang hệ thập phân [... ~> dec] • Hệ thập phân sang hệ khác [dec ~> ...] • Hệ nhị phân sang hệ khác và ngược lại [bin …] • … CuuDuongThanCong.com //fb.com/tailieudientucntt
  • 136. cơ sở b -> DEC Biểu diễn thông tin bên trong MTĐT Cách 1  Khai triển biểu diễn và tính giá trị biểu thức.  Ví dụ chuyển từ hệ nhị phân sang thập phân • 1011.012 = 1*23 + 0*22 + 1*21 + 1*20 + 0*2-1 + 1*2-2 1011.012 = 8 + 0 + 2 + 1 + 0 + 0.25 = 11.2510 Cách 2  Nhân/Chia lồng nhau.  Ví dụ • 1011.012 = [[1*2 + 0]*2 + 1]*2 + 1 + [1/2 + 0]/2 1011.012 = 11 + 0.25 = 11.2510 CuuDuongThanCong.com //fb.com/tailieudientucntt
  • 137. -> hệ cơ sở b Biểu diễn thông tin bên trong MTĐT Đổi phần nguyên  Chia phần nguyên của số đó cho b và tiếp tục lấy phần nguyên của kết quả chia cho b.  Dãy các số dư ở mỗi lần chia là a0, a1, ..., an.  Phần nguyên của số hệ cở sở b là [an…a1a0]. Đổi phần lẻ  Nhân phần lẻ của số đó cho b và tiếp tục lấy phần lẻ của kết quả nhân cho b.  Dãy các số nguyên ở mỗi lần nhân là a-1, a-2, …, a-m tạo thành phần lẻ ở hệ cơ sở b. CuuDuongThanCong.com //fb.com/tailieudientucntt
  • 138. -> hệ cơ sở b Biểu diễn thông tin bên trong MTĐT Đổi 11.2510 sang hệ nhị phân [b = 2]  Đổi phần nguyên 1110 • 11 : 2 = 5 dư 1, vậy a0 = 1 05 : 2 = 2 dư 1, vậy a1 = 1 02 : 2 = 1 dư 0, vậy a2 = 0 01 : 2 = 0 dư 1, vậy a3 = 1 => phần nguyên 1110 = 10112  Đổi phần lẻ 0.2510 • 0.25 * 2 = 0.5, vậy a-1 = 0 0.50 * 2 = 1.0, vậy a-2 = 1 => phần lẻ 0.2510 = .012  Vậy 11.2510 = 1011.012 CuuDuongThanCong.com //fb.com/tailieudientucntt
  • 139. -> hệ cơ sở b Biểu diễn thông tin bên trong MTĐT Đổi 1208.67610 sang hệ 16 [lấy 2 số lẻ].  Đổi phần nguyên 120810 • 1208 : 16 = 75 dư 08, vậy a0 = 8 0075 : 16 = 04 dư 11, vậy a1 = B 0004 : 16 = 00 dư 04, vậy a2 = 4 => phần nguyên 120810 = 4B816  Đổi phần lẻ 0.67610 • 0.676 * 16 = 10.816, vậy a-1 = A 0.816 * 16 = 13.056, vậy a-2 = D do ta chỉ muốn lấy 2 số lẻ nên không nhân tiếp. => phần lẻ 0.67610 = .AD16  Vậy 1208.67610 = 4B8.AD16 CuuDuongThanCong.com //fb.com/tailieudientucntt
  • 140. hệ cơ sở b Biểu diễn thông tin bên trong MTĐT Từ hệ nhị phân sang thập lục phân [24]  Nhóm từng bộ 4 bit trong biểu diễn nhị phân rồi chuyển sang ký số tương ứng trong hệ thập lục phân [0000 ~> 0,…, 1111 ~> F]  Ví dụ • 1001011.12 = 0100 1011 . 1000 = 4B.816 HEX BIN HEX BIN HEX BIN HEX BIN 0 0000 4 0100 8 1000 C 1100 1 0001 5 0101 9 1001 D 1101 2 0010 6 0110 A 1010 E 1110 3 0011 7 0111 B 1011 F 1111 CuuDuongThanCong.com //fb.com/tailieudientucntt
  • 141. hệ cơ sở b Từ hệ nhị phân sang thập bát phân [23]  Nhóm từng bộ 3 bit trong biểu diễn nhị phân rồi chuyển sang ký số tương ứng trong hệ bát phân [000 ~> 0,…, 111 ~> 7].  Ví dụ • 1101.112 = 001 101 . 110 = 15.68 Biểu diễn thông tin bên trong MTĐT OCT BIN OCT BIN 0 000 4 100 1 001 5 101 2 010 6 110 3 011 7 111 CuuDuongThanCong.com //fb.com/tailieudientucntt
  • 142. đổi Biểu diễn thông tin bên trong MTĐT 0 22 21 20 0 0 1 0 0 0 1 0 1 1 0 0 0 1 1 0 1 0 1 1 1 1 1 0 1 2 3 4 5 6 7 CuuDuongThanCong.com //fb.com/tailieudientucntt
  • 143. diễn thông tin bên trong MTĐT Từ hệ Sang hệ Cách thực hiện b bất kỳ 10 Khai triển theo cơ sở b Phần nguyên: nhân lồng -> Phần lẻ: chia lồng b ta tính b – a rồi đảo dấu kết quả.  Tra bảng cộng từng hệ đếm để có kết quả nhanh chóng. Biểu diễn thông tin bên trong MTĐT CuuDuongThanCong.com //fb.com/tailieudientucntt
  • 150. trên các hệ đếm Phép nhân  Ví dụ nhân 2 số thập phân Biểu diễn thông tin bên trong MTĐT 2 9 1 2 1 8 5 9 2 8 4 3 2 9 1 2 CuuDuongThanCong.com //fb.com/tailieudientucntt
  • 151. trên các hệ đếm Phép nhân  Ví dụ nhân 2 số nhị phân Biểu diễn thông tin bên trong MTĐT 0 1 1 0 0 1 1 0 1 0 1 0 0 0 1 1 1 0 0 0 0 0 0 0 0 1 1 0 0 0 1 1 0 0 0 0 1 1 0 1 1 0 1 1 0 0 CuuDuongThanCong.com //fb.com/tailieudientucntt
  • 152. trên các hệ đếm Phép nhân  Nhân các số ở hệ khác được thực hiện tương tự như ở hệ thập phân.  Ở mỗi hệ nên lập bảng nhân các ký số và tra trong bảng này để được ngay kết quả.  Bảng nhân số bát phân và số thập lục phân [xem trong giáo trình]. Phép chia  Tương tự như phép chia trong hệ thập phân [xem trong giáo trình]. Biểu diễn thông tin bên trong MTĐT CuuDuongThanCong.com //fb.com/tailieudientucntt
  • 153. tin trong MTĐT Đặc điểm  Được lưu trong các thanh ghi hoặc trong các ô nhớ. Thanh ghi hoặc ô nhớ có kích thước 1 byte [8 bit] hoặc 1 word [16 bit].  Biểu diễn số nguyên không dấu, số nguyên có dấu, số thực và ký tự. Hai loại bit đặc biệt  msb [most significant bit]: bit nặng nhất [bit n]  lsb [least significant bit]: bit nhẹ nhất [bit 0] Biểu diễn thông tin bên trong MTĐT CuuDuongThanCong.com //fb.com/tailieudientucntt
  • 154. nguyên không dấu Đặc điểm  Biểu diễn các đại lương luôn dương.  Ví dụ: chiều cao, cân nặng, mã ASCII…  Tất cả bit được sử dụng để biểu diễn giá trị.  Số nguyên không dấu 1 byte lớn nhất là 1111 11112 = 28 – 1 = 25510.  Số nguyên không dấu 1 word lớn nhất là 1111 1111 1111 11112 = 216 – 1 = 6553510.  Tùy nhu cầu có thể sử dụng số 2, 3… word.  lsb = 1 thì số đó là số đó là số lẻ. Biểu diễn thông tin bên trong MTĐT CuuDuongThanCong.com //fb.com/tailieudientucntt
  • 155. nguyên có dấu Đặc điểm  Lưu các số dương hoặc âm.  Bit msb dùng để biểu diễn dấu • msb = 0 biểu diễn số dương. VD: 0101 0011 • msb = 1 biểu diễn số âm. VD: 1101 0011  Số âm trong máy được biểu diễn ở dạng số bù 2. Biểu diễn thông tin bên trong MTĐT CuuDuongThanCong.com //fb.com/tailieudientucntt
  • 156. và số bù 2 Biểu diễn thông tin bên trong MTĐT 0 0 0 0 0 1 0 1 Số 5 [byte] 1 1 1 1 1 0 1 0 Số bù 1 của 5 1 1 1 1 1 0 1 1 Số bù 2 của 5 1 + 0 0 0 0 0 1 0 1 + Số 5 0 0 0 0 0 0 0 0 1 Kết quả CuuDuongThanCong.com //fb.com/tailieudientucntt
  • 157. nguyên có dấu Nhận xét  Số bù 2 của x cộng với x là một dãy toàn bit 0 [không tính bit 1 cao nhất do vượt quá phạm vi lưu trữ]. Do đó số bù 2 của x chính là giá trị âm của x hay – x.  Đổi số thập phân âm –5 sang nhị phân? • => Đổi 5 sang nhị phân rồi lấy số bù 2 của nó.  Thực hiện phép toán a – b? • a – b = a + [–b] => Cộng với số bù 2 của b. Biểu diễn thông tin bên trong MTĐT CuuDuongThanCong.com //fb.com/tailieudientucntt
  • 158. có dấu và không dấu Tính giá trị không dấu và có dấu của 1 số?  Ví dụ số word [16 bit]: 1100 1100 1111 0000  Số nguyên không dấu ? • Tất cả 16 bit lưu giá trị. • => giá trị là 52464.  Số nguyên có dấu ? • Bit msb = 1 do đó số này là số âm. • => độ lớn là giá trị của số bù 2. • Số bù 2 = 0011 0011 0001 0000 = 13072. • => giá trị là –13072. Biểu diễn thông tin bên trong MTĐT CuuDuongThanCong.com //fb.com/tailieudientucntt
  • 159. có dấu và không dấu Nhận xét  Bit msb = 0 thì giá trị có dấu bằng giá trị không dấu.  Bit msb = 1 thì giá trị có dấu bằng giá trị không dấu trừ đi 256 [byte] hay 65536 [word]. Tính giá trị không dấu và có dấu của 1 số?  Ví dụ số word [16 bit]: 1100 1100 1111 0000  Giá trị không dấu là 52464.  Giá trị có dấu: vì bit msb = 1 nên giá trị có dấu bằng 52464 – 65536 = –13072. Biểu diễn thông tin bên trong MTĐT CuuDuongThanCong.com //fb.com/tailieudientucntt
  • 160. thực Khái niệm  Để lưu trữ các số lẻ.  Sử dụng dấu chấm động [floating-point].  Chia làm 3 phần: • 1 bit để biểu diễn dấu. • Một chuỗi bit để biểu diễn số mũ. • Một chuỗi bit để biểu diễn phần định trị.  Đọc thêm phần 4.4.1.3 Số thực trong giáo trình Tin học cơ sở A. Biểu diễn thông tin bên trong MTĐT CuuDuongThanCong.com //fb.com/tailieudientucntt
  • 161. tin chữ số Khái niệm  Để biểu diễn các ký tự như chữ thường, chữ hoa, ký hiệu… Các hệ mã  Hệ thập phân mã nhị phân BCD [Binary Coded Decimal]: dùng số nhị phân 4 bit thay thế một số thập phân.  Hệ thập phân mã nhị phân mở rộng EBCDIC [Extended Binary Coded Decimal Interchange Code]: dùng 8 bit biểu diễn 1 ký tự. Biểu diễn thông tin bên trong MTĐT CuuDuongThanCong.com //fb.com/tailieudientucntt
  • 162. tin chữ số Các hệ mã [tiếp theo]  Hệ chuyển đổi thông tin theo mã chuẩn của Mỹ ASCII [American Standard Code for Information Interchange] • 1 – 31: ký tự điều khiển. • 32 – 47: khoảng trắng, “ # $ % & ‘ [ ] * +, - . / • 48 – 57: ký số từ 0 đến 9 • 58 – 64: các dấu : ; < = > ? @ • 65 – 90: các chữ in hoa từ A đến Z • 91 – 96: các dấu [ ] _ ` • 97 – 122: các chữ thường từ a đến z • 123 – 127: các dấu { | } ~ DEL Biểu diễn thông tin bên trong MTĐT CuuDuongThanCong.com //fb.com/tailieudientucntt
  • 163. tin là gì? Hãy vẽ mô hình và mô tả khái quát quá trình xử lý thông tin trong máy tính? 2. Đơn vị đo thông tin trong máy tính điện tử là gì? Kể tên một số đơn vị đo thông tin mà bạn biết. 3. Trình bày hệ đếm nhị phân, bát phân, thập phân, thập lục phân. 4. Số nguyên trong máy tính. 5. Bảng mã ASCII. Biểu diễn thông tin bên trong MTĐT CuuDuongThanCong.com //fb.com/tailieudientucntt
  • 164. sang hệ thập phân [lấy 2 số lẻ] e. 320316 f. 80.07A16 7. Đổi sang hệ thập lục phân a. 1940510 b. 194.0510 9. Tính giá trị không dấu, có dấu của word b. F95616 10.Thực hiện phép cộng, trừ, nhân c. C216 và 9C16 Biểu diễn thông tin bên trong MTĐT CuuDuongThanCong.com //fb.com/tailieudientucntt
  • 165. 6e 320316 = 3*163 + 2*162 + 0*161 + 3*160 320316 = 3*4096 + 2*256 + 0 + 3*1 320316 = 12288 + 512 + 3 = 1280310 320316 = [[3*16 + 2]*16 + 0]*16 + 3 320316 = [50*16 + 0]*16 + 3 320316 = 800*16 + 3 = 1280310 Biểu diễn thông tin bên trong MTĐT CuuDuongThanCong.com //fb.com/tailieudientucntt
  • 166. 6f 80.07A16 = 8*161 + 0*160 80.07A16 + 0*16-1 + 7*16-2 + A*16-3 80.07A16 = 8*16 + 7/256 + 10/4096 80.07A16 = 128 + 0.027 + 0.002 80.07A16 = 128.0310 80.07A16 = 8*16 + 0 80.07A16 + [[A/16 + 7]/16 + 0]/16 80.07A16 = 128 + [7.625/16 + 0]/16 80.07A16 = 128 + 0.4766/16 80.07A16 = 128.0310 Biểu diễn thông tin bên trong MTĐT CuuDuongThanCong.com //fb.com/tailieudientucntt
  • 167. 7a Đổi 1940510 sang hệ 16  19405 : 16 = 1212 dư 13, vậy a0 = D 01212 : 16 = 0075 dư 12, vậy a1 = C 00075 : 16 = 0004 dư 11, vậy a2 = B 00004 : 16 = 0000 dư 04, vậy a3 = 4 Vậy 1940510 = 4BCD16 Biểu diễn thông tin bên trong MTĐT CuuDuongThanCong.com //fb.com/tailieudientucntt
  • 168. 7b Đổi phần nguyên 19410 sang hệ 16  194 : 16 = 12 dư 02, vậy a0 = 2 012 : 16 = 00 dư 12, vậy a1 = C Vậy 19410 = C216 Đổi phần lẻ 0.0510 sang hệ 16  0.05 * 16 = 00.8, vậy a-1 = 0 0.80 * 16 = 12.8, vậy a-2 = C Vậy 0.0510 = 0.0C16 Vậy 194.0510 = C2.0C16 Biểu diễn thông tin bên trong MTĐT CuuDuongThanCong.com //fb.com/tailieudientucntt
  • 169. 9b F95616 = 1111 1001 0101 01102 Giá trị không dấu: 6383010 Giá trị có dấu:  Nhận xét: bit msb = 1 nên đây là số âm.  Cách 1: Tính số bù 2 của nó.  Cách 2: 63830 – 65536 = –170610 Biểu diễn thông tin bên trong MTĐT CuuDuongThanCong.com //fb.com/tailieudientucntt
  • 170. 10c Biểu diễn thông tin bên trong MTĐT C 2 9 C E 5 1 C 2 9 C 1 6 2 C 2 9 C 1 8 1 2 D 8 3 6 9 6 7 CuuDuongThanCong.com //fb.com/tailieudientucntt
  • 171. Khoa học Tự nhiên Khoa Công nghệ thông tin Bộ môn Tin học cơ sở 1 Đặng Bình Phương dbphuong@fit.hcmus.edu.vn NHẬP MÔN LẬP TRÌNH CÁC KHÁI NIỆM CƠ BẢN VỀ LẬP TRÌNH CuuDuongThanCong.com //fb.com/tailieudientucntt
  • 172. niệm cơ bản về lập trình Các khái niệm cơ bản 1 Các bước xây dựng chương trình 2 Biểu diễn thuật toán 3 Cài đặt thuật toán bằng NNLT 4 CuuDuongThanCong.com //fb.com/tailieudientucntt
  • 173. cơ bản Lập trình máy tính  Gọi tắt là lập trình [programming].  Nghệ thuật cài đặt một hoặc nhiều thuật toán trừu tượng có liên quan với nhau bằng một ngôn ngữ lập trình để tạo ra một chương trình máy tính. Thuật toán  Là tập hợp [dãy] hữu hạn các chỉ thị [hành động] được định nghĩa rõ ràng nhằm giải quyết một bài toán cụ thể nào đó. Các khái niệm cơ bản về lập trình CuuDuongThanCong.com //fb.com/tailieudientucntt
  • 174. cơ bản Ví dụ  Thuật toán giải PT bậc nhất: ax + b = 0 [a, b là các số thực]. Các khái niệm cơ bản về lập trình • Nếu a = 0 • b = 0 thì phương trình có nghiệm bất kì. • b ≠ 0 thì phương trình vô nghiệm. • Nếu a ≠ 0 • Phương trình có nghiệm duy nhất x = -b/a Đầu vào: a, b thuộc R Đầu ra: nghiệm phương trình ax + b = 0 CuuDuongThanCong.com //fb.com/tailieudientucntt
  • 175. của thuật toán Bao gồm 5 tính chất sau:  Tính chính xác: quá trình tính toán hay các thao tác máy tính thực hiện là chính xác.  Tính rõ ràng: các câu lệnh minh bạch được sắp xếp theo thứ tự nhất định.  Tính khách quan: được viết bởi nhiều người trên máy tính nhưng kết quả phải như nhau.  Tính phổ dụng: có thể áp dụng cho một lớp các bài toán có đầu vào tương tự nhau.  Tính kết thúc: hữu hạn các bước tính toán. Các khái niệm cơ bản về lập trình CuuDuongThanCong.com //fb.com/tailieudientucntt
  • 176. dựng chương trình Các khái niệm cơ bản về lập trình Xác định vấn đề - bài toán Lựa chọn phương pháp giải Cài đặt chương trình Hiệu chỉnh chương trình Thực hiện chương trình Lỗi cú pháp Lỗi ngữ nghĩa Biểu diễn bằng: • Ngôn ngữ tự nhiên • Lưu đồ - Sơ đồ khối • Mã giả Xây dựng thuật toán/ thuật giải CuuDuongThanCong.com //fb.com/tailieudientucntt
  • 177. ngữ tự nhiên Các khái niệm cơ bản về lập trình 1. Nhập 2 số thực a và b. 2. Nếu a = 0 thì 2.1. Nếu b = 0 thì 2.1.1. Phương trình vô số nghiệm 2.1.2. Kết thúc thuật toán. 2.2. Ngược lại 2.2.1. Phương trình vô nghiệm. 2.2.2. Kết thúc thuật toán. 3. Ngược lại 3.1. Phương trình có nghiệm. 3.2. Giá trị của nghiệm đó là x = -b/a 3.3. Kết thúc thuật toán. Đầu vào: a, b thuộc R Đầu ra: nghiệm phương trình ax + b = 0 CuuDuongThanCong.com //fb.com/tailieudientucntt
  • 178. đồ - sơ đồ khối Các khái niệm cơ bản về lập trình Khối giới hạn Chỉ thị bắt đầu và kết thúc. Khối vào ra Nhập/Xuất dữ liệu. Khối lựa chọn Tùy điều kiện sẽ rẽ nhánh. Khối thao tác Ghi thao tác cần thực hiện. Đường đi Chỉ hướng thao tác tiếp theo. CuuDuongThanCong.com //fb.com/tailieudientucntt
  • 179. đồ - sơ đồ khối Các khái niệm cơ bản về lập trình Bắt đầu Đọc a,b a = 0 Tính x = -b/a Xuất “VN” b = 0 Xuất “VSN” Kết thúc Xuất x S Đ Đ S CuuDuongThanCong.com //fb.com/tailieudientucntt
  • 180. giả Vay mượn ngôn ngữ nào đó [ví dụ Pascal] để biểu diễn thuật toán. Các khái niệm cơ bản về lập trình If a = 0 Then Begin If b = 0 Then Xuất “Phương trình vô số nghiệm” Else Xuất “Phương trình vô nghiệm” End Else Xuất “Phương trình có nghiệm x = -b/a” Đầu vào: a, b thuộc R Đầu ra: nghiệm phương trình ax + b = 0 CuuDuongThanCong.com //fb.com/tailieudientucntt
  • 181. toán bằng C/C++ Các khái niệm cơ bản về lập trình

    include

    include void main[] { int a, b; printf[“Nhap a, b: ”]; scanf[“%d%d”, &a, &b]; if [a == 0] if [b == 0] printf[“Phương trình VSN”]; else printf[“Phương trình VN”]; else printf[“x = %.2f”, -float[b]/a]; } CuuDuongThanCong.com //fb.com/tailieudientucntt

  • 182. toán là gì? Trình bày các tính chất quan trọng của một thuật toán? 2. Các bước xây dựng chương trình? 3. Các cách biểu diễn thuật toán? Ưu và khuyết điểm của từng phương pháp? Cho ví dụ minh họa. Các khái niệm cơ bản về lập trình CuuDuongThanCong.com //fb.com/tailieudientucntt
  • 183. năm sinh của một người. Tính tuổi người đó. 5. Nhập 2 số a và b. Tính tổng, hiệu, tính và thương của hai số đó. 6. Nhập tên sản phẩm, số lượng và đơn giá. Tính tiền và thuế giá trị gia tăng phải trả, biết: a. tiền = số lượng * đơn giá b. thuế giá trị gia tăng = 10% tiền Các khái niệm cơ bản về lập trình CuuDuongThanCong.com //fb.com/tailieudientucntt
  • 184. điểm thi và hệ số 3 môn Toán, Lý, Hóa của một sinh viên. Tính điểm trung bình của sinh viên đó. 8. Nhập bán kính của đường tròn. Tính chu vi và diện tích của hình tròn đó. 9. Nhập vào số xe [gồm 4 chữ số] của bạn. Cho biết số xe của bạn được mấy nút? 10.Nhập vào 2 số nguyên. Tính min và max của hai số đó. Các khái niệm cơ bản về lập trình CuuDuongThanCong.com //fb.com/tailieudientucntt
  • 185. khái niệm cơ bản về lập trình Bắt đầu Nhập năm sinh Tính Tuổi = 2008 – năm sinh Xuất Tuổi Kết thúc CuuDuongThanCong.com //fb.com/tailieudientucntt
  • 186. khái niệm cơ bản về lập trình Bắt đầu Nhập a và b Tính Tổng = a + b Hiệu = a – b Tích = a * b Thương = a / b Kết thúc Xuất Tổng, Hiệu, Tích, Thương CuuDuongThanCong.com //fb.com/tailieudientucntt
  • 187. khái niệm cơ bản về lập trình Bắt đầu Nhập Tên sản phẩm Số lượng Đơn giá Tính Tiền = Số lượng * Đơn giá VAT= Tiền * 0.1 Kết thúc Xuất Tiền và VAT CuuDuongThanCong.com //fb.com/tailieudientucntt
  • 188. khái niệm cơ bản về lập trình Bắt đầu Nhập Điểm T, L, H Hệ số T, Hệ số L, Hệ số H Tính ĐTB = [T*HsT + L*HsL + H*HsH] / [HsT + HsL + HsH] Kết thúc Xuất ĐTB CuuDuongThanCong.com //fb.com/tailieudientucntt
  • 189. khái niệm cơ bản về lập trình Bắt đầu Nhập Bán kính R Tính PI = 3.1415 Chu vi = 2*PI*R Diện tích = PI*R*R Kết thúc Xuất Chu vi và Diện tích CuuDuongThanCong.com //fb.com/tailieudientucntt
  • 190. khái niệm cơ bản về lập trình Bắt đầu Nhập số xe N [gồm 4 chữ số] Tính Số thứ 4: n4 = N % 10, N = N / 10 Số thứ 3: n3 = N % 10, N = N / 10 Số thứ 2: n2 = N % 10, N = N / 10 Số thứ 1: n1 = N Số nút S = [n1 + n2+ n3 + n4] % 10 Kết thúc Xuất Số nút S CuuDuongThanCong.com //fb.com/tailieudientucntt
  • 191. khái niệm cơ bản về lập trình Bắt đầu Đọc a,b a > b Xuất a max, b min Kết thúc S Đ Xuất a min, b max CuuDuongThanCong.com //fb.com/tailieudientucntt
  • 192. Khoa học Tự nhiên Khoa Công nghệ thông tin Bộ môn Tin học cơ sở 1 Đặng Bình Phương dbphuong@fit.hcmus.edu.vn NHẬP MÔN LẬP TRÌNH CÂU LỆNH LẶP CuuDuongThanCong.com //fb.com/tailieudientucntt
  • 193. lặp Câu lệnh for 1 Câu lệnh while 2 Câu lệnh do… while 3 Một số kinh nghiệm lập trình 4 CuuDuongThanCong.com //fb.com/tailieudientucntt
  • 194. dụ  Viết chương trình xuất các số từ 1 đến 10 => Sử dụng 10 câu lệnh printf  Viết chương trình xuất các số từ 1 đến 1000 => Sử dụng 1000 câu lệnh printf ! Giải pháp  Sử dụng cấu trúc lặp lại một hành động trong khi còn thỏa một điều kiện nào đó.  3 lệnh lặp: for, while, do… while Câu lệnh lặp CuuDuongThanCong.com //fb.com/tailieudientucntt
  • 195. lệnh lặp Đ S for [; ; ] ; , , : là biểu thức C bất kỳ có chức năng riêng : đơn hoặc khối lệnh. CuuDuongThanCong.com //fb.com/tailieudientucntt
  • 196. lệnh lặp void main[] { int i; for [i = 0; i < 10; i++] printf[“%dn”, i]; for [int j = 0; j < 10; j = j + 1] printf[“%dn”, j]; for [int k = 0; k < 10; k += 2] { printf[“%d”, k]; printf[“n”]; } } CuuDuongThanCong.com //fb.com/tailieudientucntt
  • 197. - Một số lưu ý Câu lệnh for là một câu lệnh đơn và có thể lồng nhau. Câu lệnh lặp if [n < 10 && m < 20] { for [int i = 0; i < n; i++] { for [int j = 0; j < m; j++] { printf[“%d”, i + j]; printf[“n”]; } } } CuuDuongThanCong.com //fb.com/tailieudientucntt
  • 198. - Một số lưu ý Trong câu lệnh for, có thể sẽ không có phần Câu lệnh lặp int i; for [i = 0; i < 10; i++] printf[“%dn”, i]; int i = 0; for [; i < 10; i++] printf[“%dn”, i]; Đ S CuuDuongThanCong.com //fb.com/tailieudientucntt
  • 199. - Một số lưu ý Trong câu lệnh for, có thể sẽ không có phần Câu lệnh lặp int i; for [i = 0; i < 10; i++] printf[“%dn”, i]; for [i = 0; i < 10; ] { printf[“%dn”, i]; i++; } Đ S CuuDuongThanCong.com //fb.com/tailieudientucntt
  • 200. - Một số lưu ý Trong câu lệnh for, có thể sẽ không có phần Câu lệnh lặp int i; for [i = 0; i < 10; i++] printf[“%dn”, i]; for [i = 0; ; i++] printf[“%dn”, i]; for [i = 0; ; i++] { if [i >= 10] break; printf[“%dn”, i]; } CuuDuongThanCong.com //fb.com/tailieudientucntt
  • 201. - Một số lưu ý Lệnh break làm kết thúc câu lệnh. Lệnh continue bỏ qua lần lặp hiện tại. Câu lệnh lặp for [i = 0; i < 10; i++] { if [i % 2 == 0] break; printf[“%dn”, i]; } for [i = 0; i < 10; i++] { if [i % 2 == 0] continue; printf[“%dn”, i]; } CuuDuongThanCong.com //fb.com/tailieudientucntt
  • 202. - Một số lưu ý Không được thêm ; ngay sau lệnh lệnh for. => Tương đương câu lệnh rỗng. Câu lệnh lặp for [i = 0; i < 10; i++]; { printf[“%d”, i]; printf[“n”]; } for [i = 0; i < 10; i++] { }; { printf[“%d”, i]; printf[“n”]; } CuuDuongThanCong.com //fb.com/tailieudientucntt
  • 203. - Một số lưu ý Các thành phần , , cách nhau bằng dấu ; Nếu có nhiều thành phần trong mỗi phần thì được cách nhau bằng dấu , Câu lệnh lặp for [int i = 1, j = 2; i + j < 10; i++, j += 2] printf[“%dn”, i + j]; CuuDuongThanCong.com //fb.com/tailieudientucntt
  • 204. lệnh lặp Đ S while [] ; Câu lệnh đơn hoặc Câu lệnh phức [kẹp giữa { và }] Biểu thức C bất kỳ, thường là biểu thức quan hệ cho kết quả 0 [sai] và != 0 [đúng] CuuDuongThanCong.com //fb.com/tailieudientucntt
  • 205. lệnh lặp int i = 0; while [i < 10] { printf[“%dn”, i]; i++; } for [int i = 0; i < 10; i++] printf[“%dn”, i]; int i = 0; for [; i < 10; ] { printf[“%dn”, i]; i++; } CuuDuongThanCong.com //fb.com/tailieudientucntt
  • 206. - Một số lưu ý Câu lệnh while là một câu lệnh đơn và có thể lồng nhau. Câu lệnh lặp if [n < 10 && m < 20] { while [n >= 1] { while [m >= 1] { printf[“%d”, m]; m--; } n--; } } CuuDuongThanCong.com //fb.com/tailieudientucntt
  • 207. - Một số lưu ý Câu lệnh while có thể không thực hiện lần nào do điều kiện lặp ngay từ lần đầu đã không thỏa. Câu lệnh lặp void main[] { int n = 1; while [n > 10] { printf[“%dn”, n]; n--; } … } CuuDuongThanCong.com //fb.com/tailieudientucntt
  • 208. - Một số lưu ý Không được thêm ; ngay sau lệnh lệnh while. Câu lệnh lặp int n = 0; while [n < 10]; { printf[“%dn”, n]; n++; } while [n < 10] { }; { printf[“%dn”, n]; n++; } CuuDuongThanCong.com //fb.com/tailieudientucntt
  • 209. - Một số lưu ý Câu lệnh while có thể bị lặp vô tận [loop] Câu lệnh lặp void main[] { int n = 1; while [n < 10] { printf[“%d”, n]; n--; } n = 1; while [n < 10] printf[“%d”, n]; } CuuDuongThanCong.com //fb.com/tailieudientucntt
  • 210. while Câu lệnh lặp S Đ do ; while []; Câu lệnh đơn hoặc Câu lệnh phức [kẹp giữa { và }] Biểu thức C bất kỳ, thường là biểu thức quan hệ cho kết quả 0 [sai] và != 0 [đúng] CuuDuongThanCong.com //fb.com/tailieudientucntt
  • 211. while Câu lệnh lặp int i = 0; do { printf[“%dn”, i]; i++; } while [i < 10]; int i = 0; printf[“%dn”, i]; i++; for [; i < 10; ] { printf[“%dn”, i]; i++; } CuuDuongThanCong.com //fb.com/tailieudientucntt
  • 212. while - Một số lưu ý Câu lệnh do… while là một câu lệnh đơn và có thể lồng nhau. Câu lệnh lặp int a = 1, b; do { b = 1; do { printf[“%dn”, a + b]; b = b + 2; } while [b < 20]; a++; } while [a < 20]; CuuDuongThanCong.com //fb.com/tailieudientucntt
  • 213. while - Một số lưu ý Câu lệnh do… while sẽ được thực hiện ít nhất 1 lần do điều kiện lặp được kiểm tra ở cuối. Câu lệnh lặp void main[] { int n; do { printf[“Nhap n: ”]; scanf[“%d”, &n]; } while [n < 1 || n > 100]; } CuuDuongThanCong.com //fb.com/tailieudientucntt
  • 214. while - Một số lưu ý Câu lệnh do… while có thể bị lặp vô tận [loop] Câu lệnh lặp … int n = 1; do { printf[“%d”, n]; n--; } while [n < 10]; n = 1; do printf[“%d”, n]; while [n < 10]; … CuuDuongThanCong.com //fb.com/tailieudientucntt
  • 215. while Đều có khả năng lặp lại nhiều hành động. Câu lệnh lặp int n = 10; for [int i = 1; i 0] { donvi = sogoc % 10; sodao = sodao*10 + donvi; sogoc = sogoc / 10; } if [sodao == n] printf[“Doi xung”]; else printf[“Khong doi xung”]; } CuuDuongThanCong.com //fb.com/tailieudientucntt
  • 222. lệnh lặp

    include void main[] { int n, n_can_nguyen; printf[“Nhap n: ”]; scanf[“%d”, &n]; n_can_nguyen = int[sqrt[n]]; if [n_can_nguyen*n_can_nguyen == n] printf[“%d la so CP”, n]; else printf[“%d khong la so CP”, n]; } CuuDuongThanCong.com //fb.com/tailieudientucntt

  • 223. lệnh lặp void main[] { int n, i, souoc; printf[“Nhap n: ”]; scanf[“%d”, &n]; souoc = 0; for [i = 1; i 0] { donvi = n % 10; n = n / 10; if [donvi < min] min = donvi; if [donvi > max] max = donvi; } printf[“So NN = %d, So LN = %d”, min, max]; } CuuDuongThanCong.com //fb.com/tailieudientucntt
  • 225. lệnh lặp void main[] { int n, sotruoc, sosau; … // Nhập n sotruoc = n % 10; do { sosau = sotruoc; n = n / 10; sotruoc = n % 10; } while [n != 0 && sotruoc < sosau]; if [sotruoc < sosau] printf[“Cac chu so tang dan”]; else printf[“Cac chu so ko tang dan”]; } CuuDuongThanCong.com //fb.com/tailieudientucntt
  • 226. lệnh lặp void main[] { int n, i, s; printf[“Nhap n: ”]; scanf[“%d”, &n]; s = 0; for [i = 1; i

Chủ Đề