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 đủ
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:
bai_giang_nhap_mon_ve_lap_trinh_chuong_1_gioi_thieu_ve_may_t.pdf

