Bài giảng Nhập môn về lập trình - Chương 1: Giới thiệu về máy tính và lập trình

Giꢀi thiꢁu vꢂ  
máy tính và lꢃp trình  
Presenter:  
Nhập môn về lập trình (C1)  
Slide 1  
Learning outcomes  
Đây là môn học đầu tiên về lập trình, dành cho  
sinh viên chưa có kiến thức nào về lập trình  
trước đó.  
Môn học giúp sinh viên có kiến thức về máy  
tính và rꢀn luyꢁn kꢂ năng lập trình thông qua  
ngôn ngꢃ C.  
Nhập môn về lập trình (C1)  
Slide 2  
Nꢄi dung  
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.  
Nhập môn về lập trình (C1)  
Slide 3  
Tꢅ chꢆc máy tính  
Máy tính là gì?  
Máy tính là thiết bị có khả năng thực hiꢁn tính toán và ra quyết  
định.  
Máy tính hoꢄt đꢅng dựa trên nguyên lꢆ là chꢄy các chương trình  
đꢇ đưꢈc định sꢉn.  
Hiꢁn nay, máy tính có thꢊ đưꢈc “nhꢋng” vào các thiết bị dân  
dꢌng như xe hơi, đồng hồ, điꢁn thoꢄi, máy tính phổ thông, v.v.  
Nhập môn về lập trình (C1)  
Slide 4  
Tꢅ chꢆc máy tính  
Phꢀn cꢁng (hardware)  
Gồm các bꢅ phận dꢍng đꢊ lꢎp ráp thành bꢅ máy tính như :  
• Hꢅp máy (case),  
• Bo mꢄch chꢏ (mainboard, motherboard),  
• Bàn phím (keyboard),  
• Màn hình (display),  
• Chuꢅt (mouse),  
• Thanh bꢅ nhớ (memory),  
• ꢐ đꢑa cứng HDD (Hard Disk Drive),  
• Bꢅ cꢒp nguồn (power supply),  
• Dây nꢓi (cables),  
• . . .  
Nhập môn về lập trình (C1)  
Slide 5  
Tꢅ chꢆc máy tính  
Phꢀn mꢂm (software)  
Gồm các chương trình cài đꢔt sꢉn giꢋp vận hành máy  
tính theo nhiều mꢌc đích khác nhau.  
Hꢀ điều hꢁnh (operating system) : cho phꢕp quản lꢆ  
và khai thác tꢒt cả phần cứng có trong máy tính.  
Công cꢂ lập trình (programming tools) : cho phꢕp  
ngưꢖi sꢗ dꢌng tꢄo ra thêm phần mềm mới trên máy,  
mꢘ rꢅng phꢄm vi ứng dꢌng cꢏa máy tính.  
Phꢃn mềm ꢄng dꢂng (applications) : cho phꢕp khai  
thác máy tính theo mꢌc đích cꢌ thꢊ.  
Nhập môn về lập trình (C1)  
Slide 6  
Tꢅ chꢆc máy tính  
Thành phꢀn cơ bꢃn cꢄa máy tính  
1. Khꢅi nhập Input Unit  
. Gồm nhꢃng thiết bị (devices) cho phꢕp  
ngưꢖi dùng đưa dꢃ liꢁu vào máy tính.  
. Các thiết bị điꢊn hình: bàn phím, chuꢅt,  
màn hình cảm ứng, v.v.  
2. Khꢅi xuꢆt Output Unit  
. Là tập hꢈp các thiết bị giúp máy tính trình  
bày kết quả với ngưꢖi dùng hay điều khiꢊn  
các thiết bị khác.  
. Các thiết bị điꢊn hình: màn hình, máy in,  
các cổng điều khiꢊn USB, ...  
Nhập môn về lập trình (C1)  
Slide 7  
Tꢅ chꢆc máy tính  
Memory - ALU  
3. Bꢇ nhꢈ chꢉnh Main memory  
. Là bꢅ phận giúp máy tính lưu trꢃ thông  
tin (chương trình và dꢃ liꢁu) dꢍng trong  
quá trình tính toán.  
. Phân loꢄi :  
ROM (Read Only Memory)  
RAM (Random Access Memory).  
4. Bꢇ sꢅ hꢊc luận lꢋ Arithmetic and  
Logic Unit (ALU)  
. Là đơn vị đảm nhiꢁm chức năng tính  
toán các phꢕp sꢅ hꢊc (+, -, *, /, ...) và  
luận lꢋ (Not, And, Or, Xor).  
Nhập môn về lập trình (C1)  
Slide 8  
Tꢅ chꢆc máy tính  
CPU - Storage  
5. Bꢇ xꢌ lý trung tâm - Central  
Processing Unit (CPU)  
. Giám sát và điều hành mọi hoꢄt đꢅng  
trong máy tính.  
6. Bꢇ nhꢈ thꢄ cꢆp - Secondary  
memory/storage Unit  
. Gồm nhꢃng thiết bị giúp máy tính  
lưu trꢃ lưꢈng lớn dꢃ liꢁu lâu dài.  
. Các thiết bị điꢊn hình: Đꢑa cứng  
(HDD), SSD, USB drive, CD R/W,  
...  
Nhập môn về lập trình (C1)  
Slide 9  
Tꢅ chꢆc máy tính  
Sơ đꢅ khꢆi cꢄa mꢇt máy tính  
Để điꢂu khiển các  
thiết bị phần cꢆng  
như hình bên, chúng  
ta cần chương trình  
máy tính.  
Để tạo ra chương  
trình máy tính,  
chúng ta cần ngôn  
ngữ lꢃp trình.  
Nhập môn về lập trình (C1)  
Slide 10  
Ngôn ngữ lꢃp trình  
Tổng quan  
Ngôn ngữ lập trình (Programming language)  
• Là mꢅt ngôn ngꢃ hình thức (formal language), khác với ngôn  
ngꢃ tự nhiên (natural language), như ngôn ngꢃ lập trình C sẽ  
đưꢈc học trong môn học này.  
• Mꢌc đích: cho phꢕp con ngưꢖi (lập trình viên) tꢄo ra chương  
trình máy tính.  
Ba cꢒp đꢅ ngôn ngꢃ lập trình :  
1.Ngôn ngꢃ máy (machine language).  
2.Ngôn ngꢃ hꢈp ngꢃ (assembly language).  
3.Ngôn ngꢃ cꢒp cao (high-level language).  
Nhập môn về lập trình (C1)  
Slide 11  
Ngôn ngữ lꢃp trình  
Phân loꢈi  
Ngôn ngꢃ máy  
• Dꢄng thức là sꢓ, đꢔc tả các lꢁnh cꢏa máy tính.  
• Mỗi kiꢊu CPU có tập lꢁnh riêng.  
• Ngày nay, rꢒt khó có thꢊ ra lꢁnh trực tiếp kiꢊu này cho các  
chương trình thực tế và lớn. Chuỗi lꢁnh sꢓ sẽ đưꢈc sinh ra tự  
đꢅng từ bꢅ chuyꢊn ngꢃ (compiler) từ ngôn ngꢃ cꢒp cao sang.  
• Ví dꢌ:  
+1300042774  
+1400593419  
+1200274027  
Nhập môn về lập trình (C1)  
Slide 12  
Ngôn ngữ lꢃp trình  
Các loꢈi  
Ngôn ngꢃ Assembly (hꢈp ngꢃ)  
• Sꢗ dꢌng các từ viết tꢎc trong tiếng Anh đꢊ biꢊu diễn các tác  
vꢌ tính toán cơ bản  
• Bꢅ chuyꢊn ngꢃ (sang mã máy) cho ngôn ngꢃ này là  
“Assembler”.  
• Ngày nay, ngôn ngꢃ này vẫn còn đưꢈc sꢗ dꢌng, và thưꢖng  
kết hꢈp với ngôn ngꢃ cꢒp cao. Nó đưꢈc dùng đꢊ tꢓi ưu mꢅt  
sꢓ khꢓi xꢗ lý trong toàn bꢅ chương trình.  
• Ví dꢌ:  
LOAD BASEPAY  
ADD OVERPAY  
STORE GROSSPAY  
Nhập môn về lập trình (C1)  
Slide 13  
Ngôn ngữ lꢃp trình  
Các loꢈi  
Ngôn ngꢃ cꢒp cao  
• Mã đưꢈc viết ra gần với ngôn ngꢃ tự nhiên, so với mã cꢏa các loꢄi ngôn  
ngꢃ khác. Tên các biến, hằng, hàm, etc do ngưꢖi lập trình đꢔt có cú pháp  
dễ đọc. Các cꢒu trúc điều khiꢊn cũng dễ đọc hơn rꢒt nhiều.  
• Bꢅ chuyꢊn ngꢃ (sang mã máy hay mã trung gian) cho loꢄi ngôn ngꢃ này  
là bꢅ biên dịch (compiler) hay thông dịch (interpreter).  
• Ngày nay, ngôn ngꢃ loꢄi là phổ thông nhꢒt, như, C, C++, C#, Java, etc  
• Ví dꢌ:  
grossPay = basePay + overTimePay  
Nhập môn về lập trình (C1)  
Slide 14  
Ngôn ngữ lꢃp trình  
Ngôn ngꢉ lꢊp trình C  
Viết tꢎt trong môn học  
• Ngôn ngữ C  
• Hay ngꢎn gọn: C  
Lịch sꢗ  
• Tiến hóa từ ngôn ngꢃ lập trình trước đó là “B” và “BCPL”  
• “Traditional C” là mꢅt tiến hóa cꢏa C vào khoảng gần 1970  
• Có nhiều biến thꢊ cꢏa C tồn tꢄi và chꢋng không tương thích nhau, i.e., bꢅ  
chuyꢊn ngꢃ không hiꢊu mꢇ nguồn C đưꢈc viết cho bꢅ chuyꢊn ngꢃ khác.  
• “Standard C” xuꢒt hiꢁn vào khoảng 1989, cập lꢄi vào khoảng 1999.  
Ứng dꢌng quan trọng  
• Đưꢈc dꢍng đꢊ phát triꢊn các hꢁ điều hành nổi tiếng và hiꢁn đꢄi như UNIX  
và Linux  
• Đưꢈc dꢍng đꢊ phát triꢊn các chương trình chꢄy trên các thiết bị nhꢋng,  
như, nhꢋng vào xe hơi, máy móc y tế, etc.  
Nhập môn về lập trình (C1)  
Slide 15  
Ngôn ngữ lꢃp trình  
Ngôn ngꢉ lꢊp trình C  
C trong cái nhìn cꢏa ngưꢖi lập trình  
• Cung cꢒp ngôn ngꢃ, cꢋ pháp đơn giản, cung cꢒp  
Về điều khiꢊn: chỉ gồm 3 kiꢊu cꢒu trꢋc điều khiꢊn đꢊ chuyꢊn hướng  
thực thi  
Về dꢃ liꢁu: cung cꢒp các kiꢊu cơ bản, mảng, con trỏ, tập tin. Cho  
phép ngưꢖi dùng định nghꢑa kiꢊu mới.  
• Có bꢅ chuyꢊn ngꢃ đi kꢀm  
Đꢊ chuyꢊn mꢇ C sang mꢇ đích  
• Có thư viꢁn các hàm có sẵn đꢊ làm nhiều quan trọng.  
Sự thật là không có chương trình nào mà ngưꢖi dùng viết 100% các  
dòng mã. Tꢒt cả chúng điều dùng lꢄi (gọi hàm) các hàm có sẵn trong  
thư viꢁn đꢊ làm nhiều viꢁc.  
Nhập môn về lập trình (C1)  
Slide 16  
Ngôn ngữ lꢃp trình  
Ngôn ngꢉ lꢊp trình C  
C và ngôn ngꢃ mꢘ rꢅng cꢏa nó (là C++)  
• C là nền tảng cꢏa ngôn ngꢃ mꢘ rꢅng cꢏa nó là C++, khá nổi  
tiếng  
• C++ bổ sung thêm vào C nhꢃng khả năng mới giúp dễ dàng  
tổ chức các chương trình lớn. Nhꢃng tính năng khác, C++  
dùng cꢏa C. Do đó, dùng đưꢈc C là nền tảng đꢊ học C++  
• Nhꢃng tính năng mới  
Tham khảo (reference): Mꢅt chức năng mới cho phép truy xuꢒt mꢅt  
vùng nhớ qua mꢅt tên gọi khác.  
Hướng đꢓi tưꢈng (Object-Oriented): Đây là bổ sung quan trọng nhꢒt,  
hướng đến mꢅt triết lý lập trình khác. Ở đó, chương trình là tập các  
đꢓi tưꢈng tương tác nhau đꢊ hoàn thành công viꢁc.  
Nhập môn về lập trình (C1)  
Slide 17  
Các công viꢁc trong lꢃp trình  
Tạo lꢃp chương trình  
Soạn thảo mã nguồn  
• Đꢓi tưꢈng thực hiꢁn: Ngưꢖi lập trình  
• Công cꢌ cần đến:  
Trình soꢄn thảo đơn giản như NOTEPAD. Nhưng ít khi đưꢈc dꢍng  
Trình soꢄn thảo tích hꢈp trong IDE (Integrated Development  
Environment)  
• Đầu ra: tập tin mꢇ nguồn, dꢄng văn bản đọc đưꢈc  
Tiền xꢌ lꢋ (Preprocess)  
• Đꢓi tưꢈng thực hiꢁn: Preprocessor (bꢅ tiền xꢗ lý), thuꢅc IDE  
• Công viꢁc thực hiꢁn: tiền xꢗ lý chương trình, như, thay các “macro” trong  
bꢘi phần định nghꢑa cꢏa nó, chèn các tập tin khai báo thư viꢁn (v.d.,  
stdio.h)  
Nhập môn về lập trình (C1)  
Slide 18  
Các công viꢁc trong lꢃp trình  
Tạo lꢃp chương trình  
Biên dịch (Compile)  
• Đꢓi tưꢈng thực hiꢁn: Compiler (bꢅ biên dịch), thuꢅc IDE  
• Công viꢁc thực hiꢁn: Chuyꢊn mꢇ, từ mꢇ C sang mꢇ đꢓi tưꢈng, cho từng  
tập tin mꢇ nguồn  
Liên kết (Link)  
• Đꢓi tưꢈng thực hiꢁn: Linker (bꢅ liên kết), thuꢅc IDE  
• Công viꢁc thực hiꢁn: Liên kết các tập tin mꢇ đꢓi tưꢈng và thư viꢁn cꢏa C  
đꢊ tꢄo chương trình thực thi  
• Đầu ra: tập tin thực thi (*.exe)  
Nhập môn về lập trình (C1)  
Slide 19  
Dữ liꢁu và giꢇi thuꢃt  
Quan niꢁm vꢂ chương trình  
Quan điꢊm:  
• Chương trình là nhꢃng chuỗi lꢁnh, đưꢈc chọn lựa bꢘi các  
cꢒu trúc điều khiꢊn, đꢊ xꢗ lý dꢃ liꢁu  
Do đó, hai yếu tꢓ quan trọng tꢄo thành chương trình  
1. Dữ liꢀu và cꢒu trꢋc đꢊ tổ chức dꢃ liꢁu  
2. Giải thuật xꢌ lꢋ, nghꢑa là, các chuỗi cꢏa nhꢃng lꢁnh nào  
và chọn lựa thực thi ra sao  
Nhập môn về lập trình (C1)  
Slide 20  
Tải về để xem bản đầy đủ
pdf 30 trang baolam 22760 Free
Bạn đang xem 20 trang mẫu của tài liệu "Bài giảng Nhập môn về lập trình - Chương 1: Giới thiệu về máy tính và lập trình", để tải tài liệu gốc về máy hãy click vào nút Download ở trên

File đính kèm:

  • pdfbai_giang_nhap_mon_ve_lap_trinh_chuong_1_gioi_thieu_ve_may_t.pdf