SlideShare ist ein Scribd-Unternehmen logo
1 von 30
Nhập môn về lập trình (C1) Slide 1
Giới thiệu về
máy tính và lập trình
Presenter: Vương Bá Thịnh
vbthinh@hcmut.edu.vn
Nhập môn về lập trình (C1) Slide 2
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 3
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 4
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 5
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 6
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 7
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 8
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 9
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 10
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 11
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 12
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 13
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 14
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 15
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 16
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ó thu 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 17
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 18
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 19
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 20
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 21
Dữ liệu và giải thuật
Dữ liệu
 Kiểu dữ liệu cơ bản
Kiểu số
• Số nguyên: int
• Số thực chấm động: float, double
Kiểu ký tự / chuỗi : char
Kiểu void: void
Kiểu luận lý: bool (bổ sung bởi C++)
Kiểu enum
Kiểu dữ liệu do người lập trình định nghĩa: struct
Kiểu dẫn xuất: array, pointer
Xem thêm:
http://www.tutorialspoint.com/cprogramming/c_data_types.htm
Nhập môn về lập trình (C1) Slide 22
Dữ liệu và giải thuật
Giải thuật
 Giải thuật là gì?
• Là các bước để giải quyết một bài toán
 Bằng cách nào mô tả giải thuật
• Dùng mã giả (pseudocode)
• Dùng lưu đồ (flowchart)
• Dùng chính mã lập trình
Nhập môn về lập trình (C1) Slide 23
Dữ liệu và giải thuật
Mã giả
 Mã giả là ngôn ngữ nháy (bắt chước) theo một ngôn ngữ lập
trình nào đó nhưng không bị ràng buộc bởi quy định nào của cú
pháp.
 Ví dụ :
Nhập biến n cho đến khi n không nhỏ hơn 0
Gọi hàm n giai thừa
Hiện kết quả ra màn hình
Nhập môn về lập trình (C1) Slide 24
Dữ liệu và giải thuật
Mã giả
Pseudocode = English/Vietnamese + Code
Cú pháp không còn chặt chẽ
Để hổ trợ việc dễ đọc
Lệnh điều khiển thực thi
1.Tuần tự
2.Rẽ nhánh
3.Lặp
Nhập môn về lập trình (C1) Slide 25
Dữ liệu và giải thuật
Mã giả
Phần đầu của giải thuật
Phần thân của giải
thuật
Nhập môn về lập trình (C1) Slide 26
Dữ liệu và giải thuật
Mã giả
 Phần đầu của giải thuật
 Tên giải thuật
 Thông số và kiểu của nó
 Mục đích của giải thuật
 Điều kiện cần thỏa trước
khi giải thuật thực thi
 Điều kiện cần thỏa sau khi
giải thuật thực thi
 Giá trị trả về
 Phần thân của giải thuật
 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
Nhập môn về lập trình (C1) Slide 27
Dữ liệu và giải thuật
Mã giả
Algorithm average( N là số nguyên)
Preconsition: N lớn hơn hay bằng 0
Postcondition: các số được đọc và giá trị trung bình của chúng
được in ra màn hình
sum = 0
for i = 1 to N do
number = đọc một giá trị từ bàn phím
sum = sum + number
end-for
averaged = sum / N
xuất averaged ra màn hình
return
End average
Nhập môn về lập trình (C1) Slide 28
Dữ liệu và giải thuật
Các phần tử dùng trong lưu đồ
Bắt đầu
Kết thúc
Xuất / Nhập
Xử lý
Quyết
định
Đ
S 1
Sang trang
Luồng
điều
khiển
Nhập môn về lập trình (C1) Slide 29
Xác định số nguyên tố
Bắt đầu
Nhập n
đếm = 2
n MOD đếm = 0 ?
a
a
đếm = đếm + 1
đếm > n / 2 ?
b
Đ
S
S
Đ
Không nguyên tố
c
Nguyên tố
Kết thúc
c
b
Nhập môn về lập trình (C1) Slide 30
Dữ liệu và giải thuật
Mã lập trình
Mục tiêu:
• Mã được viết bởi ngôn ngữ lập trình như C
• Chỉ dùng để trao đổi giữa những người có chuyên môn với
nhau.
• Có thể chuyển ngữ dễ dàng và có chương trình thực thi ngay.
Không nên dùng mã này để trình bày cho các đối
tượng người dùng không chuyên nghiệp.

Weitere ähnliche Inhalte

Ähnlich wie Nhập môn lập trình - Vương Bá Thịnh

Tran Minh Thai Bai Giang Vc
Tran Minh Thai   Bai Giang VcTran Minh Thai   Bai Giang Vc
Tran Minh Thai Bai Giang VcNhat Thien
 
Nhat nghe c#
Nhat nghe   c#Nhat nghe   c#
Nhat nghe c#Hihi Hung
 
Nhat nghe c#
Nhat nghe   c#Nhat nghe   c#
Nhat nghe c#LanLT2011
 
Lập trình c# 2008 cơ bản (nhất nghệ) [thủ thuật it 360]
Lập trình c# 2008 cơ bản (nhất nghệ) [thủ thuật it 360]Lập trình c# 2008 cơ bản (nhất nghệ) [thủ thuật it 360]
Lập trình c# 2008 cơ bản (nhất nghệ) [thủ thuật it 360]leduyk11
 
Nhat nghe c#
Nhat nghe   c#Nhat nghe   c#
Nhat nghe c#LanLT2011
 
Bai giang lap_trinh_c_trong_window
Bai giang lap_trinh_c_trong_windowBai giang lap_trinh_c_trong_window
Bai giang lap_trinh_c_trong_windowHuy Feng
 
[Cntt] bài giảng lập trình c trong windows
[Cntt] bài giảng lập trình c trong windows[Cntt] bài giảng lập trình c trong windows
[Cntt] bài giảng lập trình c trong windowsHong Phuoc Nguyen
 
Kichbandayhoc
KichbandayhocKichbandayhoc
Kichbandayhocvothu123
 
Một số ngôn ngữ lập trình phổ biến hiện nay - Popular programming languages n...
Một số ngôn ngữ lập trình phổ biến hiện nay - Popular programming languages n...Một số ngôn ngữ lập trình phổ biến hiện nay - Popular programming languages n...
Một số ngôn ngữ lập trình phổ biến hiện nay - Popular programming languages n...Son Le
 
Bài giảng C - 01 - Giới thiệu
Bài giảng C - 01 - Giới thiệuBài giảng C - 01 - Giới thiệu
Bài giảng C - 01 - Giới thiệuDoan Trung Tung
 
Phan2 chuong1 gioithieu_c
Phan2 chuong1 gioithieu_cPhan2 chuong1 gioithieu_c
Phan2 chuong1 gioithieu_cLy hai
 
1. giới thiệu về ng￴n ngữ lập trình c#
1. giới thiệu về ng￴n ngữ lập trình c#1. giới thiệu về ng￴n ngữ lập trình c#
1. giới thiệu về ng￴n ngữ lập trình c#Duy Lê Văn
 
Bài 1 - Làm quen với C# - Lập trình winform
Bài 1 - Làm quen với C# - Lập trình winformBài 1 - Làm quen với C# - Lập trình winform
Bài 1 - Làm quen với C# - Lập trình winformMasterCode.vn
 

Ähnlich wie Nhập môn lập trình - Vương Bá Thịnh (20)

Chapter01 intro
Chapter01 introChapter01 intro
Chapter01 intro
 
Chg1. Tong quan ve CNTT.pdf
Chg1. Tong quan ve CNTT.pdfChg1. Tong quan ve CNTT.pdf
Chg1. Tong quan ve CNTT.pdf
 
Tran Minh Thai Bai Giang Vc
Tran Minh Thai   Bai Giang VcTran Minh Thai   Bai Giang Vc
Tran Minh Thai Bai Giang Vc
 
Nhat nghe c#
Nhat nghe   c#Nhat nghe   c#
Nhat nghe c#
 
Nhat nghe c#
Nhat nghe   c#Nhat nghe   c#
Nhat nghe c#
 
C# cơ bản hay
C# cơ bản hayC# cơ bản hay
C# cơ bản hay
 
Lập trình c# 2008 cơ bản (nhất nghệ) [thủ thuật it 360]
Lập trình c# 2008 cơ bản (nhất nghệ) [thủ thuật it 360]Lập trình c# 2008 cơ bản (nhất nghệ) [thủ thuật it 360]
Lập trình c# 2008 cơ bản (nhất nghệ) [thủ thuật it 360]
 
Nhat nghe c#
Nhat nghe   c#Nhat nghe   c#
Nhat nghe c#
 
Nhat nghe c#
Nhat nghe   c#Nhat nghe   c#
Nhat nghe c#
 
Bai giang lap_trinh_c_trong_window
Bai giang lap_trinh_c_trong_windowBai giang lap_trinh_c_trong_window
Bai giang lap_trinh_c_trong_window
 
[Cntt] bài giảng lập trình c trong windows
[Cntt] bài giảng lập trình c trong windows[Cntt] bài giảng lập trình c trong windows
[Cntt] bài giảng lập trình c trong windows
 
Kichbandayhoc
KichbandayhocKichbandayhoc
Kichbandayhoc
 
Một số ngôn ngữ lập trình phổ biến hiện nay - Popular programming languages n...
Một số ngôn ngữ lập trình phổ biến hiện nay - Popular programming languages n...Một số ngôn ngữ lập trình phổ biến hiện nay - Popular programming languages n...
Một số ngôn ngữ lập trình phổ biến hiện nay - Popular programming languages n...
 
Bài giảng C - 01 - Giới thiệu
Bài giảng C - 01 - Giới thiệuBài giảng C - 01 - Giới thiệu
Bài giảng C - 01 - Giới thiệu
 
005. LAP TRINH C#.pdf
005. LAP TRINH C#.pdf005. LAP TRINH C#.pdf
005. LAP TRINH C#.pdf
 
005. LAP TRINH C#.pdf
005. LAP TRINH C#.pdf005. LAP TRINH C#.pdf
005. LAP TRINH C#.pdf
 
Phan2 chuong1 gioithieu_c
Phan2 chuong1 gioithieu_cPhan2 chuong1 gioithieu_c
Phan2 chuong1 gioithieu_c
 
1. giới thiệu về ng￴n ngữ lập trình c#
1. giới thiệu về ng￴n ngữ lập trình c#1. giới thiệu về ng￴n ngữ lập trình c#
1. giới thiệu về ng￴n ngữ lập trình c#
 
Ltctwd
LtctwdLtctwd
Ltctwd
 
Bài 1 - Làm quen với C# - Lập trình winform
Bài 1 - Làm quen với C# - Lập trình winformBài 1 - Làm quen với C# - Lập trình winform
Bài 1 - Làm quen với C# - Lập trình winform
 

Nhập môn lập trình - Vương Bá Thịnh

  • 1. Nhập môn về lập trình (C1) Slide 1 Giới thiệu về máy tính và lập trình Presenter: Vương Bá Thịnh vbthinh@hcmut.edu.vn
  • 2. Nhập môn về lập trình (C1) Slide 2 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.
  • 3. Nhập môn về lập trình (C1) Slide 3 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.
  • 4. Nhập môn về lập trình (C1) Slide 4 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.
  • 5. Nhập môn về lập trình (C1) Slide 5 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), • . . .
  • 6. Nhập môn về lập trình (C1) Slide 6 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ể.
  • 7. Nhập môn về lập trình (C1) Slide 7 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, ...
  • 8. Nhập môn về lập trình (C1) Slide 8 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).
  • 9. Nhập môn về lập trình (C1) Slide 9 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, ...
  • 10. Nhập môn về lập trình (C1) Slide 10 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.
  • 11. Nhập môn về lập trình (C1) Slide 11 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).
  • 12. Nhập môn về lập trình (C1) Slide 12 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
  • 13. 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ữ 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
  • 14. Nhập môn về lập trình (C1) Slide 14 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
  • 15. 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  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.
  • 16. 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 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ó thu 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.
  • 17. Nhập môn về lập trình (C1) Slide 17 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.
  • 18. 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 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)
  • 19. Nhập môn về lập trình (C1) Slide 19 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)
  • 20. Nhập môn về lập trình (C1) Slide 20 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
  • 21. Nhập môn về lập trình (C1) Slide 21 Dữ liệu và giải thuật Dữ liệu  Kiểu dữ liệu cơ bản Kiểu số • Số nguyên: int • Số thực chấm động: float, double Kiểu ký tự / chuỗi : char Kiểu void: void Kiểu luận lý: bool (bổ sung bởi C++) Kiểu enum Kiểu dữ liệu do người lập trình định nghĩa: struct Kiểu dẫn xuất: array, pointer Xem thêm: http://www.tutorialspoint.com/cprogramming/c_data_types.htm
  • 22. Nhập môn về lập trình (C1) Slide 22 Dữ liệu và giải thuật Giải thuật  Giải thuật là gì? • Là các bước để giải quyết một bài toán  Bằng cách nào mô tả giải thuật • Dùng mã giả (pseudocode) • Dùng lưu đồ (flowchart) • Dùng chính mã lập trình
  • 23. Nhập môn về lập trình (C1) Slide 23 Dữ liệu và giải thuật Mã giả  Mã giả là ngôn ngữ nháy (bắt chước) theo một ngôn ngữ lập trình nào đó nhưng không bị ràng buộc bởi quy định nào của cú pháp.  Ví dụ : Nhập biến n cho đến khi n không nhỏ hơn 0 Gọi hàm n giai thừa Hiện kết quả ra màn hình
  • 24. Nhập môn về lập trình (C1) Slide 24 Dữ liệu và giải thuật Mã giả Pseudocode = English/Vietnamese + Code Cú pháp không còn chặt chẽ Để hổ trợ việc dễ đọc Lệnh điều khiển thực thi 1.Tuần tự 2.Rẽ nhánh 3.Lặp
  • 25. Nhập môn về lập trình (C1) Slide 25 Dữ liệu và giải thuật Mã giả Phần đầu của giải thuật Phần thân của giải thuật
  • 26. Nhập môn về lập trình (C1) Slide 26 Dữ liệu và giải thuật Mã giả  Phần đầu của giải thuật  Tên giải thuật  Thông số và kiểu của nó  Mục đích của giải thuật  Điều kiện cần thỏa trước khi giải thuật thực thi  Điều kiện cần thỏa sau khi giải thuật thực thi  Giá trị trả về  Phần thân của giải thuật  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
  • 27. Nhập môn về lập trình (C1) Slide 27 Dữ liệu và giải thuật Mã giả Algorithm average( N là số nguyên) Preconsition: N lớn hơn hay bằng 0 Postcondition: các số được đọc và giá trị trung bình của chúng được in ra màn hình sum = 0 for i = 1 to N do number = đọc một giá trị từ bàn phím sum = sum + number end-for averaged = sum / N xuất averaged ra màn hình return End average
  • 28. Nhập môn về lập trình (C1) Slide 28 Dữ liệu và giải thuật Các phần tử dùng trong lưu đồ Bắt đầu Kết thúc Xuất / Nhập Xử lý Quyết định Đ S 1 Sang trang Luồng điều khiển
  • 29. Nhập môn về lập trình (C1) Slide 29 Xác định số nguyên tố Bắt đầu Nhập n đếm = 2 n MOD đếm = 0 ? a a đếm = đếm + 1 đếm > n / 2 ? b Đ S S Đ Không nguyên tố c Nguyên tố Kết thúc c b
  • 30. Nhập môn về lập trình (C1) Slide 30 Dữ liệu và giải thuật Mã lập trình Mục tiêu: • Mã được viết bởi ngôn ngữ lập trình như C • Chỉ dùng để trao đổi giữa những người có chuyên môn với nhau. • Có thể chuyển ngữ dễ dàng và có chương trình thực thi ngay. Không nên dùng mã này để trình bày cho các đối tượng người dùng không chuyên nghiệp.