Bài giảng Lập trình C của Dương Thị Thùy Vân với mục tiêu giải quyết những bài toán cơ bản với chương trình máy tính. Dùng một trong các ngôn ngữ lập trình để viết chương trình....
LẬP TRÌNH C GD: Dương Thị Thùy Vân Khoa CNTT vanduongthuy@yahoo.com Mục tiêu • Giải tốn với chương trình máy tính • Dùng ngơn ngữ lập trình để viết chương trình • Ví dụ ngơn ngữ lập trình C Học - “Ngơn ngữ” lập trình C - Tổ chức chương trình theo lập trình thủ tục - Những kỹ lập trình Nội dung Ch1- Các khái niệm Ch2- Các thành phần chương trình C/C++ đơn giản Ch3- Biến Ch4- Phép toán biểu thức Ch5- Cấu trúc điều khiển chương trình (*) Ch6- Hàm (*) Ch7- Giới thiệu mảng Tài liệu tham khảo Brian W.Kernigan & Dennis M.Ritchie (2000), The C Programming Language Quách Tuấn Ngọc (1998), Ngôn ngữ lập trình C, NXB Giáo Dục Hồng Kiếm (2001), Giải tốn máy tính ?, tập 1, NXB Giáo Dục H.M Deitel and P.J Deitel (1998), C++ How to program, 2nd Edition, Prentice Hall Đánh giá KT kì: thi máy, 20% Thi cuối kì: thi giấy, 70% Bài tập lớp, BT nhà, kiểm tra, …, 10% Điểm danh, vắng từ 30% số lấn cấm thi lần 1; vắng từ 50% số lần cấm thi lần & Chương Các khái niệm Máy tính (computer) ? Máy tính: - Là thiết bị có khả thực phép tính đưa định có tính logic - Xử lí liệu điều khiển tập thị (câu lệnh) - gọi chương trình máy tính Phần cứng: - Các thiết bị khác cấu thành máy tính (các đơn vị xử lí, nhớ, ổ đĩa, bàn phím,…) Phần mềm: - Các chương trình chạy máy tính Các đơn vị máy tính Control Unit Input Arith & Logic Unit Main memory Secondary Memory Output Ngơn ngữ lập trình Ngơn ngữ máy +1300042774 +1400593419 +1200274027 Ngôn ngữ tổ hợp LOAD A ADD B STORE C Ngơn ngữ cấp cao C=A+B • Chương trình dịch để chuyển đổi chương trình từ NN cấp cao (NN tổ hợp) thành NN máy • Trình biên dịch (compiler): chuyển chương trình NN cấp cao sang ngơn máy • Trình thơng dịch (interpreter): phân tích thực thi câu lệnh chương trình NN cấp cao C ngơn ngữ cấp cao, dùng trình biên dịch Kiểu tổ chức chương trình (1) Lập trình thủ tục - Tập trung vào xử lí tốn cụ thể - Bài tốn phân thành toán nhỏ để giải Xác định thủ tục (hàm) cần thiết tương ứng - Dùng giải thuật tốt tìm - Cần quan tâm: cách truyền tham số, kiểu tham số, kiểu hàm,… Kiểu tổ chức chương trình (2) LT cấu trúc (mơ hình ẩn liệu) -Tập {thủ tục} có liên quan tới liệu mà chúng tác động gom nhóm = “mơ-đun” - Xác định mơ-đun cần Phân chương trình cho liệu ẩn mơ-đun - Các kĩ thuật xây dựng thủ tục “tốt” áp dụng cho thủ tục mô-đun Kiểu tổ chức chương trình (3) LT HĐT - Đối tượng làm sở cho xây dựng thuật giải, chương trình lớp đối tượng - Xác định “lớp” cần - Cung cấp tập phép toán/thao tác lớp - Làm cho lớp hoạt động hiệu nhờ thừa kế Lịch sử C Ngôn ngữ C thiết kế Dennis Ritchie phịng thí nghiệm Bell (công ty AT&T - Mỹ) vào đầu năm 1970 Chịu ảnh hưởng phát triển số ngôn ngữ: – ALGOL 60 (1960), – CPL (Cambridge, 1963), – BCPL (Martin Richard, 1967), – B (Ken Thompson, 1970) Được chuẩn hóa năm 1983 ANSI (American National Standards Institute) gọi “ANSI C” C C++ C++ mở rộng từ C, phát triển Bjarne Stroustrup PTN Bell – đầu 1980s C++ có thêm nhiều khái niệm mới, tạo sở cho lập trình hướng đối tượng số đặc tính thuận lợi khác cho dự án phát triển phần mềm Một chương trình C tương thích C++ C Lập trình ? - Phát biểu tốn - Giải toán - Viết thuật toán cho lời giải tốn - Viết chương trình (soạn thảo mã nguồn) cho máy tính NNLT (C), lưu vào máy tính, gọi chương trình nguồn C libaray Edit hello.c Source File compile hello.o Object File Link hello Executabl e - Gọi trình biên dịch: dịch chương trình nguồn sang mã máy; gọi trình liên kết để thực thi, bước chạy chương trình - Nếu trình biên dịch báo lỗi, lỗi cú pháp xem & sửa chương trình nguồn - KQ mà MT giải không yêu cầu, lỗi logic xem lại cách giải, thuật toán & chương trình Thuật tốn Vấn đề Những vướng mắc, khó khăn sống mà ta cần giải Bài toán Một loại vấn đề mà để giải quyết, cần đến tính tốn (phép tốn số, luận lí, quan hệ) Thuật toán Thuật toán Cách biểu diễn lời giải "bài toán“ rõ ràng, chi tiết để thực thi máy tính Bài tốn giải phương trình bậc 1- ẩn (??) Đặc trưng thuật tốn - Tính hữu hạn: có hữu hạn bước phải dừng - Tính xác định: bước rõ ràng, thực thi - Tính đúng: trình thực thi theo bước phải đến kết ý Đặc trưng thuật tốn - Nhận liệu đầu vào, xử lí cho kết cuối - Tính hiệu quả: khối lượng, khơng gian, thời gian tính tốn khơng q “lớn” - Tính tổng quát: áp dụng cho trường hợp toán Các phương pháp bểu diễn thuật tốn 1) Ngơn ngữ tự nhiên (xem lại VD.PTB1) 2) Mã giả (NNTN + NN LT) 3) Sơ đồ khối: (chọn lựa & hành động) Khởi đầu & kết thúc thuật tốn Biểu diễn thao tác xử lí Biểu diễn vào liệu Thao tác chọn lựa theo điều kiện Chỉ đến bước thực thi Ví dụ: () Một cơng ty, làm việc công nhân trả 10,000 đồng/giờ đầu làm việc theo qui định Nếu làm tăng ca (phải làm nhiều qui định), vượt qui định trả thêm 30% Tính tiền cơng cho cơng nhân tùy theo làm việc họ ... t? ?c - Những kỹ lập trình Nội dung Ch 1- C? ?c khái niệm Ch 2- C? ?c thành phần chương trình C/ C++ đơn giản Ch 3- Biến Ch 4- Phép toán biểu th? ?c Ch 5- C? ??u tr? ?c điều khiển chương trình (*) Ch 6- Hàm (*) Ch 7-. ..M? ?c tiêu • Giải tốn với chương trình máy tính • Dùng ngơn ngữ lập trình để viết chương trình • Ví dụ ngơn ngữ lập trình C H? ?c - “Ngơn ngữ” lập trình C - Tổ ch? ?c chương trình theo lập trình. .. phân tích th? ?c thi c? ?u lệnh chương trình NN c? ??p cao C ngơn ngữ c? ??p cao, dùng trình biên dịch Kiểu tổ ch? ?c chương trình (1) Lập trình thủ t? ?c - Tập trung vào xử lí tốn c? ?? thể - Bài tốn phân