Download - LẬP TRÌNH C
![Page 2: LẬP TRÌNH C](https://reader036.vdocuments.pub/reader036/viewer/2022081504/56814900550346895db62a62/html5/thumbnails/2.jpg)
•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.
•Ví dụ ngôn ngữ lập trình C.
Mục tiêu
![Page 3: LẬP TRÌNH C](https://reader036.vdocuments.pub/reader036/viewer/2022081504/56814900550346895db62a62/html5/thumbnails/3.jpg)
- “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ỹ năng lập trình.
Học
![Page 4: LẬP TRÌNH C](https://reader036.vdocuments.pub/reader036/viewer/2022081504/56814900550346895db62a62/html5/thumbnails/4.jpg)
Nội dungCh1- Các khái niệm cơ bản.
Ch2- Các thành phần của một chương trình C/C++ đơn giản
Ch3- Biến và hằng
Ch4- Phép toán và 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 về mảng.
![Page 5: LẬP TRÌNH C](https://reader036.vdocuments.pub/reader036/viewer/2022081504/56814900550346895db62a62/html5/thumbnails/5.jpg)
Tài liệu tham khảo1. Brian W.Kernigan & Dennis M.Ritchie
(2000), The C Programming Language.
2. Quách Tuấn Ngọc (1998), Ngôn ngữ lập trình C, NXB Giáo Dục.
3. Hoàng Kiếm (2001), Giải một bài toán trên máy tính như thế nào ?, tập 1, NXB Giáo Dục.
4. H.M. Deitel and P.J. Deitel (1998), C++ How to program, 2nd Edition, Prentice Hall.
![Page 6: LẬP TRÌNH C](https://reader036.vdocuments.pub/reader036/viewer/2022081504/56814900550346895db62a62/html5/thumbnails/6.jpg)
Đánh giá
KT giữa kì: thi trên máy, 20%
Thi cuối kì: thi trên giấy, 70%
Bài tập trên lớp, BT về 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 1 &
2.
![Page 7: LẬP TRÌNH C](https://reader036.vdocuments.pub/reader036/viewer/2022081504/56814900550346895db62a62/html5/thumbnails/7.jpg)
Chương 1
Các khái niệm cơ bản
![Page 8: LẬP TRÌNH C](https://reader036.vdocuments.pub/reader036/viewer/2022081504/56814900550346895db62a62/html5/thumbnails/8.jpg)
Máy tính (computer) ?Máy tính:
- Là thiết bị có khả năng thực hiện các phép tính và đưa
ra các quyết định có tính logic.
- Xử lí dữ liệu dưới sự điều khiển của tập các chỉ thị (câu
lệnh) - được gọi là chương trình máy tính.
Phần cứng:
- Các thiết bị khác nhau cấu thành máy tính (các đơn vị
xử lí, bộ nhớ, ổ đĩa, bàn phím,…)
Phần mềm:
- Các chương trình chạy trên máy tính.
![Page 9: LẬP TRÌNH C](https://reader036.vdocuments.pub/reader036/viewer/2022081504/56814900550346895db62a62/html5/thumbnails/9.jpg)
Các đơn vị cơ bản của máy tính
Control Unit
Arith. & Logic Unit
Main memory
Input Output
Secondary Memory
![Page 10: LẬP TRÌNH C](https://reader036.vdocuments.pub/reader036/viewer/2022081504/56814900550346895db62a62/html5/thumbnails/10.jpg)
Ngôn ngữ lập trình
Ngôn ngữ máy
Ngôn ngữ tổ hợp
Ngôn ngữ cấp cao
+1300042774+1400593419+1200274027
LOAD AADD BSTORE C
C=A+B
![Page 11: LẬP TRÌNH C](https://reader036.vdocuments.pub/reader036/viewer/2022081504/56814900550346895db62a62/html5/thumbnails/11.jpg)
• Ba loại ngôn ngữ lập trình:
– Ngôn ngữ máy:
• Dùng các chuỗi số làm chỉ thị cho máy tính.
Ví dụ:
» +1300042774
» +1400593419
» +1200274027
![Page 12: LẬP TRÌNH C](https://reader036.vdocuments.pub/reader036/viewer/2022081504/56814900550346895db62a62/html5/thumbnails/12.jpg)
– Ngôn ngữ tổ hợp:
• Dùng các từ viết tắt của những từ tiếng Anh làm
chỉ thị cho máy tính. Ví dụ:
» MOV AX, 0123
» ADD AX, 0025
» MOV CX, AX
– Ngôn ngữ cấp cao:
• Các chỉ thị được dùng như tiếng Anh hàng ngày.
Ví dụ:
» SUM = A + B
![Page 13: LẬP TRÌNH C](https://reader036.vdocuments.pub/reader036/viewer/2022081504/56814900550346895db62a62/html5/thumbnails/13.jpg)
Ngôn ngữ lập trình
Ngôn ngữ máy
Ngôn ngữ tổ hợp
Ngôn ngữ cấp cao
+1300042774+1400593419+1200274027
LOAD AADD BSTORE C
C=A+B
![Page 14: LẬP TRÌNH C](https://reader036.vdocuments.pub/reader036/viewer/2022081504/56814900550346895db62a62/html5/thumbnails/14.jpg)
Trình dịch
hello.ocompile hellohello.c
C libaray
Link
Source File
(High-Level Languages)
Object File
(Machine Languages)
Executable
Edit
Trình biên dịch
![Page 15: LẬP TRÌNH C](https://reader036.vdocuments.pub/reader036/viewer/2022081504/56814900550346895db62a62/html5/thumbnails/15.jpg)
• 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 một chương trình ở
NN cấp cao sang ngôn máy.
• Trình thông dịch (interpreter): phân tích và thực thi từng
câu lệnh của chương trình NN cấp cao.
C là ngôn ngữ cấp cao, dùng trình biên dịch.
![Page 16: LẬP TRÌNH C](https://reader036.vdocuments.pub/reader036/viewer/2022081504/56814900550346895db62a62/html5/thumbnails/16.jpg)
Kiểu tổ chức chương trình(1) Lập trình thủ tục
- Tập trung vào xử lí đối với từng bài toán cụ thể.
- Bài toán có thể được phân thành những bài toán nhỏ
hơn để giải quyết Xác định các thủ tục (hàm) cần
thiết tương ứng.
- Dùng giải thuật tốt nhất tìm được.
- Cần quan tâm: cách truyền tham số, kiểu tham số,
kiểu hàm,…
![Page 17: LẬP TRÌNH C](https://reader036.vdocuments.pub/reader036/viewer/2022081504/56814900550346895db62a62/html5/thumbnails/17.jpg)
(2) LT cấu trúc (mô hình ẩn dữ liệu)
-Tập {thủ tục} có liên quan tới dữ liệu mà chúng tác
động được gom nhóm = “mô-đun”.
- Xác định mô-đun cần Phân chương trình sao cho
dữ liệu ẩn trong mô-đun.
- Các kĩ thuật xây dựng thủ tục “tốt” vẫn được áp
dụng cho từng thủ tục trong mô-đun.
Kiểu tổ chức chương trình
![Page 18: LẬP TRÌNH C](https://reader036.vdocuments.pub/reader036/viewer/2022081504/56814900550346895db62a62/html5/thumbnails/18.jpg)
(3) LT HĐT
- Đối tượng làm cơ 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 trên mỗi lớp.
- Làm cho lớp hoạt động hiệu quả nhờ thừa kế.
Kiểu tổ chức chương trình
![Page 19: LẬP TRÌNH C](https://reader036.vdocuments.pub/reader036/viewer/2022081504/56814900550346895db62a62/html5/thumbnails/19.jpg)
Lịch sử của CNgôn ngữ C được thiết kế bởi Dennis Ritchie tại phòng
thí nghiệm Bell (công ty AT&T - Mỹ) vào đầu
những năm 1970.
Chịu ảnh hưởng phát triển của một 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 bởi ANSI (American
National Standards Institute) và được gọi “ANSI C”
![Page 20: LẬP TRÌNH C](https://reader036.vdocuments.pub/reader036/viewer/2022081504/56814900550346895db62a62/html5/thumbnails/20.jpg)
C và C++
C++ mở rộng từ C, được phát triển bởi Bjarne
Stroustrup tại PTN. Bell – đầu 1980s.
C++ có thêm nhiều khái niệm cơ bản mới, tạo cơ sở
cho lập trình hướng đối tượng và một số đặc
tính thuận lợi khác cho những dự án phát triển
phần mềm.
Một chương trình C tương thích trong cả C++ và C.
![Page 21: LẬP TRÌNH C](https://reader036.vdocuments.pub/reader036/viewer/2022081504/56814900550346895db62a62/html5/thumbnails/21.jpg)
Lập trình
?- Phát biểu bài toán.
- Giải được bài toán.
- Viết thuật toán cho lời giải bài toán.
- Viết chương trình (soạn thảo mã nguồn) cho máy
tính bằng một NNLT (C), lưu vào máy tính, gọi đây
là chương trình nguồn.
![Page 22: LẬP TRÌNH C](https://reader036.vdocuments.pub/reader036/viewer/2022081504/56814900550346895db62a62/html5/thumbnails/22.jpg)
hello.ocompile hellohello.c
C libaray
Link
Source File Object File Executable
Edit
- 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, đây là bước chạy chương trình.
- Nếu trình biên dịch báo lỗi, đây là lỗi cú pháp xem & sửa chương trình nguồn.
- KQ mà MT giải được là không đúng yêu cầu, đây là lỗi logic xem lại cách giải, thuật toán & chương trình.
![Page 23: LẬP TRÌNH C](https://reader036.vdocuments.pub/reader036/viewer/2022081504/56814900550346895db62a62/html5/thumbnails/23.jpg)
![Page 24: LẬP TRÌNH C](https://reader036.vdocuments.pub/reader036/viewer/2022081504/56814900550346895db62a62/html5/thumbnails/24.jpg)
Thuật toán
Vấn đề
Những vướng mắc, khó khăn trong cuộc sống mà
ta cần giải quyết.
Bài toán
Một loại vấn đề mà để giải quyết, cần đến tính
toán (phép toán số, luận lí, quan hệ).
![Page 25: LẬP TRÌNH C](https://reader036.vdocuments.pub/reader036/viewer/2022081504/56814900550346895db62a62/html5/thumbnails/25.jpg)
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 để có thể thực thi được trên máy tính.
Bài toán giải phương trình bậc 1- 1 ẩn. (??)
![Page 26: LẬP TRÌNH C](https://reader036.vdocuments.pub/reader036/viewer/2022081504/56814900550346895db62a62/html5/thumbnails/26.jpg)
Đặc trưng của thuật toán
- Tính hữu hạn: có hữu hạn bước và phải dừng.
- Tính xác định: các bước rõ ràng, thực thi được.
- Tính đúng: quá trình thực thi theo các bước đã chỉ
ra phải đi đến kết quả như ý.
![Page 27: LẬP TRÌNH C](https://reader036.vdocuments.pub/reader036/viewer/2022081504/56814900550346895db62a62/html5/thumbnails/27.jpg)
Đặc trưng của thuật toán
- Nhận dữ liệu đầu vào, xử lí và cho kết quả cuối cùng.
- Tính hiệu quả: khối lượng, không gian, thời gian tính toán không quá “lớn”.
- Tính tổng quát: áp dụng được cho mọi trường hợp của bài toán.
![Page 28: LẬP TRÌNH C](https://reader036.vdocuments.pub/reader036/viewer/2022081504/56814900550346895db62a62/html5/thumbnails/28.jpg)
Các phương pháp bểu diễn thuật toá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 toán.
Biểu diễn thao tác xử lí.
Biểu diễn vào ra dữ liệu.
Thao tác chọn lựa theo điều kiện.
Chỉ đến bước thực thi tiếp theo.
![Page 29: LẬP TRÌNH C](https://reader036.vdocuments.pub/reader036/viewer/2022081504/56814900550346895db62a62/html5/thumbnails/29.jpg)
Ví dụ: ()
Một công ty, mỗi giờ làm việc của một công nhân
được trả 10,000 đồng/giờ trong 8 giờ đầu làm việc theo
qui định.
Nếu làm tăng ca (phải làm nhiều hơn 8 giờ qui định),
thì mỗi giờ vượt qui định được trả thêm 30%.
Tính tiền công cho một công nhân tùy theo giờ làm
việc của họ.