1
1
NGÔN NGLP TRÌNH
C/C++
NguynHi Châu
Khoa Công nghthông tin
Trường Đạihc Công ngh
2
Mctiêucamônhc
zTrang bcho sinh viên kiếnthcvlp
trình trên ngôn ngC và mtphnm
rng caC++
zKết thúc môn hc: Sinh viên khnăng
sdng thành tho ngôn ngC để gii
quyết các bài toán cvavành
3
Ni dung môn hc
z thuyết: 30 tiết trong 10 tun
zThc hành: 30 tiết trong 10 tun
zThc hành btđầu sau thuyết 1 tun
zPhương thcthi vàkimtra:
{Vnđáp
{Lp trình 2 bài tpti phòng máy trong thi
gian 45 phút
zDo đósinhviêncnchútrng làm bài
tpđể rèn luynknăng lptrình 4
Tài liuthamkho
zPhmHng Thái, Bài ging Ngôn nglp
trình C/C++, Hà Ni, 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 cpđếngiáotrình
zWebsite cabmôn Các hthng thông
tin: http://coltech.vnu.edu.vn/httt
zChn“Góchctp” menu bên trái
zChn“Tin hccơs2” phnni dung
chính ca trang web
zChnBàiging Tin hccơs2 (NNLT
C/C++)
6
2
7 8
Lch scangônnglptrìnhC
zNgôn nglptrìnhC rađờinăm 1972, do
Dennis Ritchie khixướng
zC đượctorađể sdng nhưmtphn
cănbncahệđiuhànhUNIX (Ken
Thompson, Dennis Ritchie và Douglas
McIlroy, 1969)
zC đượcsdng rng rãi nh hưởng
lnđếnnhiu ngôn nglp trình hinđại,
trong đócóC++, đượcxemlàmrng
caC
9
Dennis Ritchie
zSinh ngày 9/9/1941
zHinnay làmvicti
Bell Lab (AT&T)
zWebsite:
http://plan9.bell-
labs.com/who/dmr/
z ngườito ra ngôn
ngC và người
tham gia phát trinh
điuhànhUNIX
10
Các cng sca Dennis Ritchie
zKen Thompson
zhttp://plan9.bell-
labs.com/who/bwk/
zBrian Kernighan
zhttp://plan9.bell-
labs.com/who/ken/
11
Dennis Ritchie (gia) và Ken Thompson (trái) nhngii
thưởng qucgiavcông nghdo đãphátminh rah
điu hành UNIX và ngôn ngC (ngày 27/4/1999) 12
Lch sngôn nglptrìnhC++
zC++ được Bjarne Stroustrup phát minh
vào năm 1979 ti Bell Lab.
zC++ được xem nhưmrng caC vi
các tính năng mivlptrìnhhướng đối
tượng (Chú ý C là ngôn nglptrình
hướng cutrúc)
3
13
Bjarne Stroustrup
zSinh ngày 30/12/1950
tiĐan Mch
zĐang làm victi
hãng AT&T
zWebsite:
http://www.research.a
tt.com/~bs/
14
Các yếutcơbncaC++
15
Bng t
zCác chcái La Tinh viếtthường hoa
(a-z, A-Z). C++ phân bitchthường
chhoa
zDugch dưới“_
zCác chs0, 1, 2,…, 9
zCáckýhiu toán hcvàkýhiuđặcbit:
+, -, *, /, %, &, |, !, [], {}, #, ducách
16
Tkhóa
zTkhóa từđưc qui định trước trong
ngôn nglp trình (NNLT) dùng cho các
mcđích đặcbitca ngôn ng
zTkhó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 gitrongC++
z dãy tliên tiếp(khôngchadu
cách) và phibtđầubng chcái hoc
gch dưới.
zPhân bitkítin hoa thường.
zKhông được trùng vitkhóa.
zSlượng chcái dùng để phân bittên
gicóthểđưcđặttuý.
zChú ý các tên gicósnca C++ cũng
tuân ththeo đúng qui tctrên 18
dvtên gitrongC++
zTên giđúng: i, i1, j, tinhoc, tin_hoc,
luu_luong
zTên gisai: 1i, tin hoc, luu-luong-nuoc
zCác tên sau đây khác nhau: ha_noi,
Ha_noi, HA_Noi, HA_NOI, ...
4
19
Chú thích trong chương trình
zRt quan trng khi lptrình
zNếuchúthíchlàmtđonkítbtkliên
tiếp nhau (trong 1 dòng hoc trên nhiu
dòng) ta đặtđon chú thích đógiacp
duđóng mchú thích /* (m) và */
(đóng).
zNếu chú thích btđầutmtvtrí nào đó
cho đếnhết dòng, thì ta đặtdu// vtrí
đó.
20
Môi trường làm viccaC/C++
zMôi trường C:
{Borland C (còn gi Turbo C)
{Microsoft C (còn gilàMS C)
zMôi trường C/C++:
{Dev-C++ (sthc hành trên môi trường này)
{Visual C++ caMicrosoft
zCách làm vic trên các môi trường này s
đượchướng dn trong githc hành
21
Dev-C++
z mtphnmm ngunm
z môi trường phát trintíchhp
(Integrated Development Environment-IDE)
cho C và C++ ca BloodShedSoftware
zhttp://www.bloodshed.net/devcpp.html
zPhiên bnminht: Dev-C++ 5 (beta)
zPhiên bnnđịnh: Dev-C++ 4
zSinh viên download để thc hành ti nhà
22
Cutrúcmtchương trình C++
zMtchương trình C++ có thểđưcđặt
trong mt hay nhiutp
zMtchương trình nhiu hàm đảm
nhimcácchcnăng khác nhau ca
chương trình
zmain() hàm đặcbit: Hàm này được
thchinđầutiênvàbtbucphicóđể
hoàn chnh mtchương trình C++
23
Cutrúcmtchương trình C++
zPhn khai báo: Khai báo tên tpchacác
thành phncósn
zKhai báo kiudliu, hng, biến… do
ngườisdng (NSD) định nghĩa
zDanh sách các hàm cachương trình,
trong đócóchàm main()
24
dmtchương trình C++
#include <iostream.h> // khai báo tpnguyênmu
void main() // để đượcsdng toán tin cout <<
{
int h = 3; // Khai báo khitobiếnh = 2
cout << “Chào các bn, bây gi << 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àđầuracachương trình (input
output)
zXác định thut toán gii
zViếtchươngtrìnhtrênmáy
zDch chương trình ngunđể tìm sacácligilà
li pháp
zChychương trình, kimtrakếtquin ra trên màn
hình
zNếusai, salichương trình, dch chyliđể
kim tra. Quá trình này đượcthchinlpđilpli
cho đếnkhichương trình chytt26
Các hàm vào/ra cơbn trong
C++
27
Nhpdliutbàn phím (C++)
Để nhpdliu vào cho các biếncótên
biến_1, biến_2, biến_3 chúng ta sdng
câu lnh:
cin >> biến_1 ;
cin >> biến_2 ;
cin >> biến_3 ;
hoc:
cin >> biến_1 >> biến_2 >> biến_3 ;
28
In dliuramànhình(C++)
Để in giá trcacácbiuthcra màn hình
ta dùng câu lnh sau:
cout << bt_1 ;
cout << bt_2 ;
cout << bt_3 ;
hoc:
cout << bt_1 << bt_2 << bt_3 ;
29
dvào/ra trong C++
cin >> cd >> cr ;
cout << "Hãy nhpchiu dài: "; cin >> cd;
cout << "Và nhpchiurng: "; cin >> cr;
cout << "Chiu dài 23 mét" ;
cout << "Chiu dài là" << cd << "mét" ;
cout << "Chiurng là" << cr << "mét" ;
Xem thêm dụởtrang 12 ca bài ging.
30
Định dng thông tin in ra màn hình (C++)
zCn khai báo chth: #include <iomanip.h>
zCác định dng:
{endl: Tương đương vikítxung dòng '\n'
{setw(n): Sdng n ctđể in kếtqu
{setprecision(n): Chỉđnh in ra n chsthpphân
{setiosflags(ios::showpoint): Do setprecision(n)
ch tác dng trên mt dòng, do đó dùng
setiosflags(ios::showpoint) để đặtđịnh dng cho
mi dòng
zXem dtrang 13 trong bài ging