
1
1
NGÔN NGỮLẬP TRÌNH
C/C++
NguyễnHải Châu
Khoa Công nghệthông tin
Trường Đạihọc Công nghệ
2
Mụctiêucủamônhọc
zTrang bịcho sinh viên kiếnthứcvềlập
trình trên ngôn ngữC và mộtphầnmở
rộng củaC++
zKết thúc môn học: Sinh viên có khảnăng
sửdụng thành thạo ngôn ngữC để giải
quyết các bài toán cỡvừavànhỏ
3
Nội dung môn học
zLý thuyết: 30 tiết trong 10 tuần
zThực hành: 30 tiết trong 10 tuần
zThực hành bắtđầu sau lý thuyết 1 tuần
zPhương thứcthi vàkiểmtra:
{Vấnđáp
{Lập trình 2 bài tậptại phòng máy trong thời
gian 45 phút
zDo đósinhviêncầnchútrọng làm bài
tậpđể rèn luyệnkỹnăng lậptrình 4
Tài liệuthamkhảo
zPhạmHồng Thái, Bài giảng Ngôn ngữlập
trình C/C++, Hà Nội, 2003.
zDownload:
http://coltech.vnu.edu.vn/httt/components/
com_joomlaboard/uploaded/files/THCS_2.
pdf
zTrao đổi:
http://coltech.vnu.edu.vn/httt/index.php?op
tion=com_joomlaboard&Itemid=100&func=
showcat&catid=6
5
Truy cậpđếngiáotrình
zWebsite củabộmôn Các hệthống thông
tin: http://coltech.vnu.edu.vn/httt
zChọn“Góchọctập” ởmenu bên trái
zChọn“Tin họccơsở2” ởphầnnội dung
chính của trang web
zChọnBàigiảng Tin họccơsở2 (NNLT
C/C++)
6

2
7 8
Lịch sửcủangônngữlậptrìnhC
zNgôn ngữlậptrìnhC rađờinăm 1972, do
Dennis Ritchie khởixướng
zC đượctạorađể sửdụng nhưmộtphần
cănbảncủahệđiềuhànhUNIX (Ken
Thompson, Dennis Ritchie và Douglas
McIlroy, 1969)
zC đượcsửdụng rộng rãi và có ảnh hưởng
lớnđếnnhiều ngôn ngữlập trình hiệnđại,
trong đócóC++, đượcxemlàmởrộng
củaC
9
Dennis Ritchie
zSinh ngày 9/9/1941
zHiệnnay làmviệctại
Bell Lab (AT&T)
zWebsite:
http://plan9.bell-
labs.com/who/dmr/
zLà ngườitạo ra ngôn
ngữC và là người
tham gia phát triểnhệ
điềuhànhUNIX
10
Các cộng sựcủa Dennis Ritchie
zKen Thompson
zhttp://plan9.bell-
labs.com/who/bwk/
zBrian Kernighan
zhttp://plan9.bell-
labs.com/who/ken/
11
Dennis Ritchie (giữa) và Ken Thompson (trái) nhậngiải
thưởng quốcgiavềcông nghệdo đãphátminh rahệ
điều hành UNIX và ngôn ngữC (ngày 27/4/1999) 12
Lịch sửngôn ngữlậptrìnhC++
zC++ được Bjarne Stroustrup phát minh
vào năm 1979 tại Bell Lab.
zC++ được xem nhưmởrộng củaC với
các tính năng mớivềlậptrìnhhướng đối
tượng (Chú ý C là ngôn ngữlậptrình
hướng cấutrúc)

3
13
Bjarne Stroustrup
zSinh ngày 30/12/1950
tạiĐan Mạch
zĐang làm việctại
hãng AT&T
zWebsite:
http://www.research.a
tt.com/~bs/
14
Các yếutốcơbảncủaC++
15
Bảng ký tự
zCác chữcái La Tinh viếtthường và hoa
(a-z, A-Z). C++ phân biệtchữthường và
chữhoa
zDấugạch dưới“_”
zCác chữsố0, 1, 2,…, 9
zCáckýhiệu toán họcvàkýhiệuđặcbiệt:
+, -, *, /, %, &, |, !, [], {}, #, dấucách
16
Từkhóa
zTừkhóa là từđược qui định trước trong
ngôn ngữlập trình (NNLT) dùng cho các
mụcđích đặcbiệtcủa ngôn ngữ
zTừkhóa C++: auto, break, case, char,
continue, default, do, double, else,
externe, float, for, goto, if, int, long,
register, return, short, sizeof, static, struct,
switch, typedef, union, unsigned, while...
17
Tên gọitrongC++
zLà dãy ký tựliên tiếp(khôngchứadấu
cách) và phảibắtđầubằng chữcái hoặc
gạch dưới.
zPhân biệtkítựin hoa và thường.
zKhông được trùng vớitừkhóa.
zSốlượng chữcái dùng để phân biệttên
gọicóthểđượcđặttuỳý.
zChú ý các tên gọicósẵncủa C++ cũng
tuân thủtheo đúng qui tắctrên 18
Ví dụvềtên gọitrongC++
zTên gọiđúng: i, i1, j, tinhoc, tin_hoc,
luu_luong
zTên gọisai: 1i, tin hoc, luu-luong-nuoc
zCác tên sau đây là khác nhau: ha_noi,
Ha_noi, HA_Noi, HA_NOI, ...

4
19
Chú thích trong chương trình
zRất quan trọng khi lậptrình
zNếuchúthíchlàmộtđoạnkítựbấtkỳliên
tiếp nhau (trong 1 dòng hoặc trên nhiều
dòng) ta đặtđoạn chú thích đógiữacặp
dấuđóng mởchú thích /* (mở) và */
(đóng).
zNếu chú thích bắtđầutừmộtvịtrí nào đó
cho đếnhết dòng, thì ta đặtdấu// ởvịtrí
đó.
20
Môi trường làm việccủaC/C++
zMôi trường C:
{Borland C (còn gọi là Turbo C)
{Microsoft C (còn gọilàMS C)
zMôi trường C/C++:
{Dev-C++ (sẽthực hành trên môi trường này)
{Visual C++ củaMicrosoft
zCách làm việc trên các môi trường này sẽ
đượchướng dẫn trong giờthực hành
21
Dev-C++
zLà mộtphầnmềm mã nguồnmở
zLà môi trường phát triểntíchhợp
(Integrated Development Environment-IDE)
cho C và C++ của BloodShedSoftware
zhttp://www.bloodshed.net/devcpp.html
zPhiên bảnmớinhất: Dev-C++ 5 (beta)
zPhiên bảnổnđịnh: Dev-C++ 4
zSinh viên download để thực hành tại nhà
22
Cấutrúcmộtchương trình C++
zMộtchương trình C++ có thểđượcđặt
trong một hay nhiềutệp
zMộtchương trình có nhiều hàm đảm
nhiệmcácchứcnăng khác nhau của
chương trình
zmain() là hàm đặcbiệt: Hàm này được
thựchiệnđầutiênvàbắtbuộcphảicóđể
hoàn chỉnh mộtchương trình C++
23
Cấutrúcmộtchương trình C++
zPhần khai báo: Khai báo tên tệpchứacác
thành phầncósẵn
zKhai báo kiểudữliệu, hằng, biến… do
ngườisửdụng (NSD) định nghĩa
zDanh sách các hàm củachương trình,
trong đócócảhàm main()
24
Ví dụmộtchương trình C++
#include <iostream.h> // khai báo tệpnguyênmẫu
void main() // để đượcsửdụng toán tửin cout <<
{
int h = 3; // Khai báo và khởitạobiếnh = 2
cout << “Chào các bạn, bây giờlà ” << h << " giờ";
// in ra màn hình
}

5
25
Các bướcviếtchương trình trong C++
zXác định đầuvàovàđầuracủachương trình (input
và output)
zXác định thuật toán giải
zViếtchươngtrìnhtrênmáy
zDịch chương trình nguồnđể tìm và sửacáclỗigọilà
lỗi cú pháp
zChạychương trình, kiểmtrakếtquảin ra trên màn
hình
zNếusai, sửalạichương trình, dịch và chạylạiđể
kiểm tra. Quá trình này đượcthựchiệnlặpđilặplại
cho đếnkhichương trình chạytốt26
Các hàm vào/ra cơbản trong
C++
27
Nhậpdữliệutừbàn phím (C++)
Để nhậpdữliệu vào cho các biếncótên
biến_1, biến_2, biến_3 chúng ta sửdụng
câu lệnh:
cin >> biến_1 ;
cin >> biến_2 ;
cin >> biến_3 ;
hoặc:
cin >> biến_1 >> biến_2 >> biến_3 ;
28
In dữliệuramànhình(C++)
Để in giá trịcủacácbiểuthứcra màn hình
ta dùng câu lệnh sau:
cout << bt_1 ;
cout << bt_2 ;
cout << bt_3 ;
hoặc:
cout << bt_1 << bt_2 << bt_3 ;
29
Ví dụvào/ra trong C++
cin >> cd >> cr ;
cout << "Hãy nhậpchiều dài: "; cin >> cd;
cout << "Và nhậpchiềurộng: "; cin >> cr;
cout << "Chiều dài là 23 mét" ;
cout << "Chiều dài là" << cd << "mét" ;
cout << "Chiềurộng là" << cr << "mét" ;
Xem thêm ví dụởtrang 12 của bài giảng.
30
Định dạng thông tin in ra màn hình (C++)
zCần khai báo chỉthị: #include <iomanip.h>
zCác định dạng:
{endl: Tương đương vớikítựxuống dòng '\n'
{setw(n): Sửdụng n cộtđể in kếtquả
{setprecision(n): Chỉđịnh in ra n chữsốthậpphân
{setiosflags(ios::showpoint): Do setprecision(n)
chỉcó tác dụng trên một dòng, do đó dùng
setiosflags(ios::showpoint) để đặtđịnh dạng cho
mọi dòng
zXem ví dụtrang 13 trong bài giảng

