Bài giảng Kỹ thuật lập trình C/C++ - Chương 1: Máy tính và lập trình cung cấp cho người học các kiến thức: Tổ chức máy tính, ngôn ngữ lập trình, các công việc trong lập trình, dữ liệu và giải thuật. Mời các bạn cùng tham khảo.
Chương 01 MÁY TÍNH VÀ LẬP TRÌNH Lê Thành Sách Trường Đại Học Bách Khoa Trung Tâm Kỹ Thuật Điện Tốn CuuDuongThanCong.com © 2016 Lập trình C/C++ https://fb.com/tailieudientucntt Nội dung n n n n Tổ chức máy tính Ngơn ngữ lập trình Các cơng việc lập trình Dữ liệu giải thuật Trường Đại Học Bách Khoa Trung Tâm Kỹ Thuật Điện Tốn CuuDuongThanCong.com © 2016 Lập trình C/C++ https://fb.com/tailieudientucntt Tổ chức máy tính Máy tính gì? n n n Máy tính thiết bị có khả thực tính tốn định Máy tính xử lý liệu chuỗi lệnh gọi chương trình máy tinh Hiện nay, máy tính có mặt nhiều thiết bị với bề khác nhau, như, xe hơi, đồng hồ, điện thoại, máy tính phổ thơng, v.v Trường Đại Học Bách Khoa Trung Tâm Kỹ Thuật Điện Toán CuuDuongThanCong.com © 2016 Lập trình C/C++ https://fb.com/tailieudientucntt Tổ chức máy tính Phần cứng phần mềm n n Hai thành phần máy tính là: phần cứng (Hardware) phần mềm (Software) Phần cứng: n n n Có tổ chức nói slides Thiết bị điển hình: bàn phím (keyboard), hình (screen), v.v Phần mềm: n n Hệ điều hành (Operating System) n Là hệ thống điều khiển phần cứng làm trung gian phần cứng chương trình máy tính khác chạy máy tính Chương trình máy tính (Computer Program) n Gồm chuỗi lệnh để tính toán, xử lý liệu cho kết hay định Trường Đại Học Bách Khoa Trung Tâm Kỹ Thuật Điện Tốn CuuDuongThanCong.com © 2016 Lập trình C/C++ https://fb.com/tailieudientucntt Tổ chức máy tính Thành phần máy tính Thiết bị nhập & Input Unit n n Đây thiết bị giúp máy tính lấy liệu từ người dùng Các thiết bị điển hình: n Keyboard, mouse, barcode reader, v.v n Camera: ngày người dùng đứng trước camera để tương tác cử họ Thiết bị xuất & Output Unit n n Đây thiết bị giúp máy tính trình bày kết với người dùng hay điều khiển thiết bị khác Các thiết bị điển hình: n screen, printer, v.v Trường Đại Học Bách Khoa Trung Tâm Kỹ Thuật Điện Toán CuuDuongThanCong.com © 2016 Lập trình C/C++ https://fb.com/tailieudientucntt Tổ chức máy tính Thành phần máy tính Bộ nhớ & Memory Unit n n Đây thiết bị giúp máy tính lưu trữ thơng tin tạm thời q trình tính tốn Các thiết bị điển hình: n RAM (random access memory) Bộ tốn học logic & Arithmetic and Logic Unit (ALU) n Đây thiết bị giúp máy tính thực tính tốn tốn học định logic Trường Đại Học Bách Khoa Trung Tâm Kỹ Thuật Điện Toán CuuDuongThanCong.com © 2016 Lập trình C/C++ https://fb.com/tailieudientucntt Tổ chức máy tính Thành phần máy tính Bộ xử lý trung tâm & Central Processing Unit (CPU) n Đây thiết bị giúp máy tính giám sát phối hợp đơn vị khác máy tính Bộ nhớ thứ cấp – Secondary Storage Unit n n Đây thiết bị giúp máy tính lưu trữ lượng lớn liệu lâu dài Các thiết bị điển hình: Đĩa cứng (HDD), SSD Trường Đại Học Bách Khoa Trung Tâm Kỹ Thuật Điện Toán CuuDuongThanCong.com © 2016 Lập trình C/C++ https://fb.com/tailieudientucntt Tổ chức máy tính Thành phần máy tính Để điều khiển thiết bị phần cứng hình bên, cần chương trình máy tính Để tạo chương trình máy tính, cần ngơn ngữ lập trình Trường Đại Học Bách Khoa Trung Tâm Kỹ Thuật Điện Tốn CuuDuongThanCong.com © 2016 Lập trình C/C++ https://fb.com/tailieudientucntt Ngơn ngữ lập trình Tổng quan n Ngơn ngữ lập trình (Programming language) n n n Là ngơn ngữ hình thức (formal language), khác với ngơn ngữ tự nhiên (natural language), ngơn ngữ lập trình C học chương trình Mục đích: cho phép người (lập trình viên) tạo chương trình máy tính Ba kiểu ngơn ngữ lập trình Ngôn ngữ máy (Machine Language) Ngôn ngữ Assembly (Hợp ngữ, Assembly Language) Ngôn ngữ cấp cao (High-level Language) Trường Đại Học Bách Khoa Trung Tâm Kỹ Thuật Điện Toán CuuDuongThanCong.com © 2016 Lập trình C/C++ https://fb.com/tailieudientucntt Ngơn ngữ lập trình Các loại n Ngơn ngữ máy n n n n Là chuỗi số, đặc tả lệnh máy tính Phụ thuộc phần cứng Mỗi kiểu máy có tập lệnh riêng Ngày nay, khó lệnh trực tiếp kiểu cho chương trình thực tế lớn Chuỗi lệnh sinh tự động từ chuyển ngữ (compiler, nói sau) từ ngơn ngữ cấp cao Ví dụ: +1300042774 +1400593419 +1200274027 Trường Đại Học Bách Khoa Trung Tâm Kỹ Thuật Điện Toán CuuDuongThanCong.com © 2016 Lập trình C/C++ 10 https://fb.com/tailieudientucntt Dữ liệu giải thuật Giải thuật n Giải thuật gì? n n Là bước để giải tốn Bằng cách mơ tả giải thuật n n n Dùng mã giả (pseudocode) Dùng sơ đồ (flowchart) n Mục tiêu: tương tự mã giả Nhưng sơ đồ dể đọc cho người khơng quen lập trình Dùng mã lập trình n Mục tiêu: Mã viết ngơn ngữ lập trình C, trao đổi người có chun mơn với Mục tiêu mã để chuyển ngữ dễ dàng có chương trình thực thi n Khơng nên dùng mã để trình cho đối tượng người dùng phổ thông Trường Đại Học Bách Khoa Trung Tâm Kỹ Thuật Điện Tốn CuuDuongThanCong.com © 2016 Lập trình C/C++ 21 https://fb.com/tailieudientucntt Dữ liệu giải thuật Giải thuật - pseudocode Pseudocode = English/Vietnamese Cú pháp không chặt chẽ Để hổ trợ việc dễ đọc Trường Đại Học Bách Khoa Trung Tâm Kỹ Thuật Điện Toán CuuDuongThanCong.com © 2016 + Code Lệnh điều khiển thực thi Tuần tự Rẽ nhánh Lặp Lập trình C/C++ 22 https://fb.com/tailieudientucntt Dữ liệu giải thuật Giải thuật - pseudocode Phần đầu giải thuật Phần thân giải thuật Trường Đại Học Bách Khoa Trung Tâm Kỹ Thuật Điện Tốn CuuDuongThanCong.com © 2016 Lập trình C/C++ 23 https://fb.com/tailieudientucntt Dữ liệu giải thuật Giải thuật - pseudocode n Phần đầu giải thuật n n n n n n Tên giải thuật Thông số kiểu Mục đích giải thuật Điều kiện cần thỏa trước giải thuật thực thi Điều kiện cần thỏa sau giải thuật thực thi Giá trị trả Trường Đại Học Bách Khoa Trung Tâm Kỹ Thuật Điện Tốn CuuDuongThanCong.com © 2016 n Phần thân giải thuật n n n n n Các phát biểu Chỉ số phát biểu Các biến Chú thích Các cấu trúc điều khiển Lập trình C/C++ 24 https://fb.com/tailieudientucntt Dữ liệu giải thuật Giải thuật – pseudocode, ví dụ Algorithm average( N is integer) Preconsition: N lớn hay Postcondition: số đọc giá trị trung bình chúng in hình sum = for i = to N number = read from keyboard a value sum = sum + number end-for averaged = sum / N print averaged to screen return End average Trường Đại Học Bách Khoa Trung Tâm Kỹ Thuật Điện Toán CuuDuongThanCong.com © 2016 Lập trình C/C++ 25 https://fb.com/tailieudientucntt Dữ liệu giải thuật Giải thuật – flowchart n Flowchar biểu diễn hình bản, chúng có ý nghĩa quy định trước Trường Đại Học Bách Khoa Trung Tâm Kỹ Thuật Điện Tốn CuuDuongThanCong.com © 2016 Lập trình C/C++ 26 https://fb.com/tailieudientucntt Dữ liệu giải thuật Giải thuật – flowchart, phần tử n Terminal n n Input/output n n Nhập xuất liệu chương trình Flow line n n n Điểm đầu hay cuối Mơ tả dòng điều khiển chương trình Sự thực thi theo đường Decision n n Cho phép kiểm tra điều kiện Biểu thức luận lý dùng Trường Đại Học Bách Khoa Trung Tâm Kỹ Thuật Điện Tốn CuuDuongThanCong.com © 2016 Lập trình C/C++ 27 https://fb.com/tailieudientucntt Dữ liệu giải thuật Giải thuật – flowchart, phần tử n Process n n Predefined process n n Điểm tập kết dòng điều khiển (flow line) từ trang khác Preparation n n Điểm tập kết dòng điều khiển (flow line) flowchart Off-page connector n n Khối xử lý tạo sẵn (thư viện), mơ tả flowchart khác On-page connector n n Khối xử lý công việc Các bước chuẩn bị, thiết lập điều kiện đầu Annotation n Giải thích Trường Đại Học Bách Khoa Trung Tâm Kỹ Thuật Điện Tốn CuuDuongThanCong.com © 2016 Lập trình C/C++ 28 https://fb.com/tailieudientucntt Dữ liệu giải thuật Giải thuật – flowchart, cấu trúc tiêu biểu false true Cấu trúc if Trường Đại Học Bách Khoa Trung Tâm Kỹ Thuật Điện Tốn CuuDuongThanCong.com © 2016 Lập trình C/C++ 29 https://fb.com/tailieudientucntt Dữ liệu giải thuật Giải thuật – flowchart, cấu trúc tiêu biểu false true Cấu trúc if-else Trường Đại Học Bách Khoa Trung Tâm Kỹ Thuật Điện Tốn CuuDuongThanCong.com © 2016 Lập trình C/C++ 30 https://fb.com/tailieudientucntt Dữ liệu giải thuật Giải thuật – flowchart, cấu trúc tiêu biểu false true false true false true Cấu trúc switch-case Trường Đại Học Bách Khoa Trung Tâm Kỹ Thuật Điện Toán CuuDuongThanCong.com © 2016 Lập trình C/C++ 31 https://fb.com/tailieudientucntt Dữ liệu giải thuật Giải thuật – flowchart, cấu trúc tiêu biểu false true Cấu trúc for Trường Đại Học Bách Khoa Trung Tâm Kỹ Thuật Điện Tốn CuuDuongThanCong.com © 2016 Lập trình C/C++ 32 https://fb.com/tailieudientucntt Dữ liệu giải thuật Giải thuật – flowchart, cấu trúc tiêu biểu false true true false Cấu trúc while Trường Đại Học Bách Khoa Trung Tâm Kỹ Thuật Điện Tốn CuuDuongThanCong.com © 2016 Cấu trúc while Lập trình C/C++ 33 https://fb.com/tailieudientucntt Dữ liệu giải thuật Giải thuật – flowchart, toán đơn giản Bài toán gì? Đặc điểm kết nối? Trường Đại Học Bách Khoa Trung Tâm Kỹ Thuật Điện Tốn CuuDuongThanCong.com © 2016 Lập trình C/C++ 34 https://fb.com/tailieudientucntt Dữ liệu giải thuật Giải thuật – flowchart, toán đơn giản Hãy phân rã toán Trường Đại Học Bách Khoa Trung Tâm Kỹ Thuật Điện Tốn CuuDuongThanCong.com © 2016 Lập trình C/C++ 35 https://fb.com/tailieudientucntt ... Bách Khoa Trung Tâm Kỹ Thuật Điện Toán CuuDuongThanCong.com © 2 016 Lập trình C/C++ 13 https://fb.com/tailieudientucntt Ngơn ngữ lập trình Ngơn ngữ lập trình C n C nhìn người lập trình n n n Cung... tạo chương trình máy tính, cần ngơn ngữ lập trình Trường Đại Học Bách Khoa Trung Tâm Kỹ Thuật Điện Tốn CuuDuongThanCong.com © 2 016 Lập trình C/C++ https://fb.com/tailieudientucntt Ngơn ngữ lập trình. .. triết lý lập trình khác Ở đó, chương trình tập đối tượng tương tác để hoàn thành công việc Trường Đại Học Bách Khoa Trung Tâm Kỹ Thuật Điện Tốn CuuDuongThanCong.com © 2 016 Lập trình C/C++ 15 https://fb.com/tailieudientucntt