Ngoài ra, TurboăPascalăchoăphépătaăkhaiăbáoăcácăbi năconătr ăkhôngăđ nhăki uă v iăki uăchuẩnăđƣăđ căđ nhănghĩaălƠăPOINTER.ăCácăbi năconătr ălo iănƠyăchỉăđ că s ădụngăđ ăqu năđ aăchỉăc aă[r]
Trang 1TR NGăĐ IăH CăPH MăVĔNăĐ NG
KHOA CÔNG NGH THÔNG TIN
BÀI GIẢNG:
NGÔN NGỮ LẬP TRÌNH PASCAL
Nguy n Ánh
Tháng 12/2013
Trang 22
Mục lục
L IăGI IăTHI U 4
CH NGă 1.ă CÁCă KI Nă TH Că CHUNGă V ă NGỌNă NG ă L Pă TRÌNHă PASCAL 6
1.1.ăGi iăthi u 6
1.2.ăCácăb căl pătrìnhăgi iăbƠiătoán 6
1.3.ăCácăkháiăni măăvƠăcácăthƠnhăphầnăc ăb n 7
1.4.ăC uătrúcătổngăquátăc aăm tăch ngătrình: 8
CH NGă2.ăCÁCăKI UăD ăLI UăĐ NăGI N 10
2.1.ăTổngăquanăv ăcácăki uăd ăli uătrongăTurboăPascal 10
2.2.ăCácăki uăd ăli uăđ năgi năchuẩn 11
2.3.ăKi uăli tăkêăvƠăki uăđo năcon 13
2.4 CácăhƠmăvƠăth ătụcăchuẩn 15
BÀIăT PăCH NGă2 16
CH NGă3.ăBI UăTH CăVÀăCỂUăL NHăĐ NăGI N 18
3.1.ăBi uăth c 18
3.2.ăCơuăl nh 19
BÀIăT PăCH NGă3 23
CH NG 4.ăCỂUăL NHăCịăC UăTRỎC 27
4.1.ăL nhăghép 27
4.2.ăL nhăIFă(cơuăl nhăr ănhánh) 27
4.3.ăL nhăCASEă(cơuăl nhălựaăch n) 29
4.4.ăL nhăFORă(Lặpăbi tătr căs ălần) 31
4.5.ăL nhăREPEATă(lặpăv iăs ălầnăkhôngăbi tătr c) 33
4.6.ăL nhăWHILEă(lặpăv iăs ălầnăkhôngăbi tătr c) 35
BÀIăT PăCH NGă4 37
CH NGă5.ăKI UăD ăLI UăT PăH P,ăKI UăM NG,ăKI UăXỂU 42
5.1.ăKi uăt păh p 42
5.2.ăKi uăm ng 44
5.3.ăKi uăxơu 50
BÀIăT PăCH NGă5 54
CH NGă6.ăCH NGăTRÌNHăCON 62
6.1.ăCácăkháiăni măm ăđầu 62
6.2.ăTh ătục 63
Trang 33
6.3.ăBi nătoƠnăcụcăvƠăbi năđ aăph ng 66
6.4 Hàm 69
6.5.ăCh ngătrìnhăconăl ngănhau 70
6.6.ăCh ngătrìnhăconăđ ăqui 71
6.7.ăĐ năv ăch ngătrìnhăc aăng iădùng 73
BÀIăT PăCH NGă6 81
CH NGă7.ăKI UăB NăGHIă(RECORD) 83
7.1.ăĐ nhănghĩaăki uăvƠăkhaiăbáoăbi năki uăb năghi 83
7.2.ăCácăthaoătácătrênăki uăb năghi: 84
7.3.ăKi uăb năghiăbi năđổi 86
BÀIăT PăCH NG 7 90
CH NGă8.ăKI UăT PăTINă(FILE) 91
8.1.ăĐ nhănghĩaăki uăvƠăkhaiăbáoăbi n 91
8.2.ăM tăs ăth ătụcăvƠăhƠmăchuẩn 92
8.3.ăT pătinăđ nhăki u 94
8.4.ăT pătinăvĕnăb n 101
BÀIăT PăCH NG 8 108
CH NGă9 KI UăCONăTR ă(POINTER) 111
9.1.ăM ăđầu 111
9.2.ăKi uăconătr 112
9.3.ăDanhăsáchăliênăk t 119
BÀIăT PăCH NG 9 124
TÀIăLI UăTHAMăKH O 124
Trang 44
L I GI I THI U
Ngônăng ăl pătrìnhăPascalădoăNiklausăWirthăphátătri năc aăngônăng 60ă(ngônăng ăEuler)ăđ aăraăvƠoănĕmă1970.ăPascalălƠăngônă ng ăđặcăbi tăthíchăh pă
ăAlgol-choăki uăl pătrìnhăcóăc uătrúcăvƠălƠăngônăng ăchoăphépămôăt ăthu tătoánăr tăthu nă
ti n.ă Choă đ nă nay,ă Pascală v nă đ că dùngă đ ă gi ngă d yă v ă l pă trìnhă trongă m tă s ă
tr ngăPhổăthôngăvƠăĐ iăh cătrênăth ăgi i
BƠiăgi ngănƠy,ăcungăc păchoăSinhăviênăchuyênăngƠnhăS ph mătinăcácăki nă
th căc ăb năv ăngônăng ăl pătrìnhăPascalăc ălýăthuy tăvƠăbƠiăt păthựcăhƠnh.ă Trong bƠiăgi ngă nầyăchúngătôiăcóăđ aăthêmă m tăs ă bƠiăt pătinăh că11, đ ă sinhă viênă lƠmăquen dần v iăcácăd ngăbƠiă ăphổ thông N iădungănƠyăđ căh cătrongăph măviă3 tín chỉ,ăphụcăvụăchoăvi căd yăvƠăh cătheoăph ngăphápăđƠoăt oătínăchỉ
BƠiăgi ngăbaoăg mă9ăch ngănh ăsau:
Ch ngă1.ăCácăki năth căchungăv ăngônăng ăl pătrìnhăPascal: Gi iăthi uăcácă
thƠnhăphầnăc ăb năc aăm tăngônăng ăl pătrình.ăC uătrúcătổngăquátăc aăm t ch ngătrìnhăvi tăbằngăngônă ng ăl pătrìnhăPascal.ăCáchăbiênăd chăvƠăthựcăthiăm tăch ngătrìnhăvi tăbằngăngônăng ăl p trình Pascal
Ch ngă2.ăCácăki uăd ăli uăđ năgi n:ăCh ngănầyăgi iăthi uătổngăquanăv ăcácăki uăd ăli uăc aăPascalăvƠăđiăsơuămôăt ăcácăki u d ăli uăđ năgi năchuẩn cùng cácăki uăd ăli uădoăng iădùngăđ nhănghĩa.ăĐ iăv iămỗiăki uăd ăli uăgi iăthi uăcáchăkhaiăbáo,ăcáchăs ădụng,ămi năgiáătr ăcùngăcácăphépătoánătácăđ ngălênăki uăd ăli uă
đó
Ch ngă3.ăBi uăth căvƠăcơuăl nhăđ năgi n:ăCh ngănầyăđ aăraăcácăki năth că
v ăcácăthƠnhăphầnăt oăthƠnhăm tăbi uăth cătrongăPascal,ăcáchătácăđ ngăc aăcácătoánă
t ălênăcácătoánăh ngătrongăm tăbi uăth c.ăĐ ngăth iăgi iăthi uăcácălo iăcơuăl nhăđ nă
gi n,ăcáchăkhaiăbáoăvƠăs ădụngăcácăcơuăl nhănƠyătrongăch ngătrình
Ch ngă4.ăCơuăl nhăcóăc uătrúc:ăN iădungăch ngănầyăđ aăraăcácăcơuăl nhăcóăc uătrúc.ăTrongămỗiăl nhăđ aăraăcúăphápăc aătừngăl nh.ăTi păđ năphân tích cách
s ădụngăcácăcơuăl nhănh ăth ănƠoăchoăphùăh p
Ch ngă5.ăKi uăd ăli uăt păh p,ăki uăm ng,ăki uăxơu: N iădungăch ngănầyă
đ aăraăcácăki uăd ăli uăcóăc uătrúc Trongămỗiăki uăd ăli uăđ aăcúăphápăc aătừngă
ki u,ăcáchăđ nhănghĩaăvƠăkhaiăbáoăchúng và môăt ăcácăthaoătácătrênătừngăki uăd ăli uă
đó
Ch ngă 6.ă Ch ngă trìnhă con:ă Ch ngă nƠyă đ aă raă cáchă đ nhă nghĩaă m tă
ch ng trìnhăconăd ngăth ătục,ăch ngătrìnhăconăd ngăhƠm.ăĐ ngăth iăh ngăd năcáchăs ădụngăcácăch ngătrìnhăconănƠyătrongăm tăch ngătrìnhăsaoăchoăphùăh p
Ch ngă7.ăKi uăb năghi:ăN iădungăch ngănƠyăgi iăthi uăki uăd ăki uăb năghi.ăCáchăđ nhănghĩaăvƠăkhaiăbáoăki uăb năghiăvƠăcácăthaoătácătrênăki uăb năghi
Trang 55
Ch ngă8.Ki uăt pătin:ăCh ngănƠyăgi iăthi uăki uăd ăli uăt pătinăcùngăcácăthao tác trên t pătinăđ nhăki uăvƠăt pătinăvĕnăb n
Ch ngă9.ăKi uăconătr :ăCh ngănƠyăgi iăthi uăki uăconătr ălƠăm tăki uăd ă
li uăđ ngă(bi năđ ng).ăCáchăđ nhănghĩaăvƠăkhaiăbáoăki u conătr ăcùng các thao tác trên nó
Đ ăhoƠnăthƠnhăbƠiăgi ngănƠy,ăchúngătôiăxinăchơnăthƠnhăc mă năThầyăNguy năThanhă Tiênă vƠă ThầyăNguy năH iăL căđƣăđóngă gópăýăki nă vƠăs aăch aăchoăhoƠnăchỉnhă bƠiă gi ng.ă Tuyă nhiên,ă doă h nă ch ă v ă th iă gian,ă cũngă nh ă trìnhă đ ă nênă bƠiă
gi ngăchắcăchắnăcònănhi uăsaiăsót.ăChúngătôiămongănh năđ căcácăýăki năđóngăgópă
c aăcácăb năđ c,ănhằmăhoƠnăthi năh năn aăn iădungăbƠiăgi ngănƠy
Nguy năÁnh
Trang 66
CH NG 1 CÁC KI N TH C CHUNG V NGÔN NG L P TRÌNH
PASCAL
Mở đầu: Gi iăthi uăcácăki năth căchungăv ăngônăng ăl pătrìnhăPascal.ăCácăthƠnhă
phầnăc ăb năc aăm tăngônăng ănh :ăB ăkýătự,ătừ,ătừăkhóa,ătên,ătênăchuẩn.ăC uătrúcătổngăquátăc aăm tăch ngătrìnhăvi tăbằngăngônăng ăl pătrìnhăPascal Cách biên d chă
vƠăthựcăthiăm tăch ngătrình vi tăbằngăngônăng ăl p trình Pascal
Mục tiêu: H căxongăch ngănƠyăSinhăviênă
- Hi uăđ căcácăkháiăni măc ăb năv ăngônăng ăl pătrìnhăPascal
- Bi tăcách s ădụngăTurboăPascală7.0
- Bi tăt o,ăl uăvƠăm ăt pătinăch ngătrình
- Bi tăbiênăd chăch ngătrìnhăvƠăthựcăthiăch ngătrình
- Bi tăđ căcácăkýătựăđ căs ădụngătrongăNNLTăPascal
- Bi tăc uătrúcăc aăm tăch ngătrìnhăPascal
1.1 Gi i thi u
b ăvƠo đầuănĕmă1970.ă(L yătênăPascalălƠăđ ăkỷăni mănhƠătoánăh căPascală ăth ăkỷăXVII)
BanăđầuănóăchỉălƠăm tăngônăng ăd yăh c,ăv ăsauăvìănh ngă uăđi mămƠănhi uăhƣngăđƣăphátătri nănóăthƠnhăcácăphầnăm măriêngăbi tăđ ăphụcăvụăchoăcôngăvi căriêngă
c aămình
Turbo Pascală lƠă m tă s nă phẩmă c aă hƣngă Borlandă (Mỹ)ă đ că phátă tri nă từăPascal.ă Đơyă lƠă m tă ngônă ng ă l pă trìnhă b că caoă cóă c uă trúc,ă đ că dùngă phổă bi nătrongăn căcũngănh ătrênăth ăgi iăđặcăbi tălƠătrongălĩnhăvựcăd yăh căl pătrình
TurboăPascalăg măcácăfileăchínhăsau:
- Turbo.exe:ăLƠăfileăch ngătrìnhăso năth o,ăd chăvƠăliênăk tăv iăb ngăch n
- Turbo.tplă:ăLƠăfileăth ăvi năl uăcácăđ năv ăch ngătrìnhăchuẩnăđ ăch yăv iăTurbo.exe
- Graph.tpu:ăLƠăfileăđ năv ăch ngătrìnhăx ălíăđ ăh a
- *.chr : Là các fileăch aăcácăfontăch ătrongăch ăđ ăd ăh a
- *.bgiăăăăăăăă:ăLƠăfileăch aăcácăfontăch ămƠnăhình
NgoƠiăraăcònăcácăfileăkhácăv iăcácăch cănĕngăriêngăbi t.ă
1.2.1 Các bước lập trình tổng quát
- B că1:ăPhơnătíchăbƠiătoán;ăXácăđ nhăd ăli uăvƠo,ăd ăli uăraălƠmăc ăs ăchoă
vi căhìnhăthƠnhăgi iăthu t
Trang 77
- B că2:ăXơyădựngăthu tătoánă:ăTrênăc ăs ăxácăđ nhăd ăli uăvƠo, ra;ăcácăgi ăthi tăc aăbƠiătoán,ăcácăm iăliênăh ăgi aăchúngăvƠănh ngăki năth căliênăquanătaăcầnă
đ aăraăthu tătoánăt ngă ng
- B că3:ăTổăch căd ăli uăvƠăl păch ngătrìnhătheoăthu tătoánăđƣăđ ăra
1.2.2 Các bước lập trình và thực hiện (với Turbo Pascal)
Bước 1: Kh iăđ ngăTurboăPascală(Turbo.exe)
Bước 2: So năth oăch ngătrình
Bước 3: Biênăăd chă(nh nătổăh păphím ALT - F9)
- N uăthƠnhăcôngăthìăchuy năquaăb că4
- N uăkhôngăthƠnhăcôngăquayăl iăb că2
Bước 4: Ch yăth ăch ngătrình (CTRL - F9)
- N uăt tăchuy năquaăb că5
- N uăch aăt tăthìăquayăv ăb că2
Bước 5: GhiăvƠoăđĩa,ăD chăthƠnhăfileă*.exe
Bước 6: K tăthúc
(M ă fileă m iă đ ă so nă th oă ch ngă trìnhă khácă hoặcă thoátă kh iă Turboă Pascală bằngă
vi cănh nătổăh păphímăALTă- Xăđ ăthoát)
1.3.1 Bộ ký tự (dùng để soạn thảo chương trình)
Baoăg măcácălo iăkýătựăsauăđơy:
Cácăch ăcái:ăa z;ăăăA Ză(Tuyănhiênăkhiăso năth oăch ngătrình,ăTurboăPascalăkhôngăphơnăbi tăch ăhoaăhayăch ăth ng)
LƠăătừădƠnhăriêngăc aăPascalăv iăch cănĕngăvƠăcúăphápăđ căquyăđ nhăsẵn.ăVìă
v yăkhiăs ădụngăph iătheoăđúngăquyăđ nh, vƠăkhôngăđ căs ădụngăcácătừăkhóaăvƠoăcácăcôngăvi căkhác
Víădụ:ăBegin,ăend, if, then, const, var, function
Trang 8LƠătênămƠăTurboăPascalăđƣăđ nhănghĩaăsẵnăđ ăchỉăcácăhƠm,ăhằng,ăbi n,ăth ătụcă
th ăvi năc aănó
Chú ý: Turbo Pascal cho phépă ng iă s ă dụngă cóă th ă đ nhă nghĩaă l iă cácă tênăchuẩnăđ ădùngăvƠoăcácăcôngăvi căkhác
(Chú ý: tênăc aăch ngătrìnhăph iătheoăđúngăquyăcáchătênăc aăTurboăPascal)
1.4.2 Phần khai báo và định nghĩa:
Uses: Dùngăđ ăkhaiăbáoăcácăUnită(đ năv ăch ngătrình)ăc aăTurboăPascal.ăN uăcóănhi uăunităthìăs ădụngăd uăphẩyă","ăđ ăngĕnăcách
Const:Dùngăđ ăkhaiăbáoăcácăhằng
Cúăpháp:ăTên_hằngă=ăGiáătr
Trang 99
Type:Dùngăđ ăđ nhănghĩaăcácăki uăd ăli uăc aăng iădùng
Cúăpháp:ăTênă_ki uă=ăđ nhănghĩaăcụăth ăchoătừngăki u
Var:Khaiăbáoăbi n
Cú pháp: Tên bi n:ăKi u_d ăli u;
(Hoặcăkhaiăbáoătrựcăti păkhôngăthôngăquaăki u.)
N uăcóănhi uăbi năcùngăki uăthìăs ădụngăd uăphẩyă“,”ăđ ăngĕnăcách
Proedure:Đ nhănghĩaăch ngătrìnhăconăd ngăth ătục
Function:Đ nhănghĩaăch ngătrìnhăconăd ngăhƠm
cóăcácăphầnăkhaiăbáoăvƠăđ nhănghĩaăphùăh p,ăcóănh ngăch ngătrìnhăcóăphầnăkhaiăbáo,ăđ nhănghĩaănƠyămƠăkhôngăcóăkhaiăbáo,ăđ nhănghĩaăkiaăhoặcăng căl i,ăth măchíăcóănh ngăch ngătrìnhăkhôngăcầnăđ năm tăkhaiăbáoăhayăđ nhănghĩaănƠoăc
Trang 10- Đ aăraăm tăs ăth ătụcăvà hàm chuẩnătrênăki uăd ăli uăđ năgi năchuẩn và cáchă s ă dụngă cácă th ă tụcă vƠă hƠmă chuẩn nầy đ ă vi tă m tă bi u th că s ă h că thôngă
th ngăsangăcúăphápăc aăngônăng ăPascal
Mục tiêu: H căxongăch ngănƠyăSinhăviên
- Bi t đ cătênăc aăm tăs ăki uăd ăli uăchuẩn:ăănguyên,ăthực,ăkíătự,ălogicăbi tă
đ căgi iăh năbi uădi năc aămỗiălo iăki uăd ăli uăđó
- Bi tăcách khai báo bi năđ ădùngătrongăch ngătrìnhătr căkhiăs ădụng
- Bi tăc uătrúcăchungăc aăkhaiăbáoăbi nătrongăngônăng ăPascal
- Bi tăs ădụngăm tăs ăth ătụcăvƠăhƠmătrênăcácăki uăd ăli u
Trong Turbo Pascal các ki uăd ăli uăđ căchiaălƠmă2ălo i:
- Cácăki uăd ăli uăđ năgi n
- Cácăki uăd ăli uăcóăc uătrúc
2.1.1 Các kiểu dữ liệu đơn giản gồm:
Trang 1111
2.2.1 Kiểu logic:
- Từăkhóa:ăBoolean
- Mi nătr :ăChỉăcóă2ăgiáătr ălƠătrueăvƠăfalse
- Các phép toán:ăAND,ăOR,ăNOT,ăXOR.ă(Xemăb ngăd iăđơy)
(Quyă căFalseăbéăh năTrue.)
Cóă5ăki uăs ănguyên:
- Mi năgiá tr vƠătừăkhóaădùngăđ ăkhaiăbáoăc aăcácăki uăđóănh ăsau:
Trang 12(1) Trênăd ăli uăki uăs ănguyênăkhôngăt năt iăphépăchiaăthựcă(/)
(2).ă Thôngă th ngă cácă s ă nguyênă đ că bi uă di nă trongă h ă c ă s ă th pă phơn.ă
N uămu năbi uădi nătrongăc ăs ă16ăthìătaăthêmăd uă"$"ăphíaătr c.ăVíădụă$Aă(t călƠă
s ă10ătrongăh ăth păphơn)
(3).ăV i ki uăs ănguyênăcònăcóăcácăphépătoánăAND,ăOR,ăNOT,ăXOR
2.2.3 Kiểu số thực: Cóă5ăki uăs ăthực
- Mi năgiá tr vƠătừăkhóaădùngăđ ăkhaiăbáoăc aăcácăki uăđóănh ăsau:
Real 2.9*10-39 1.7*1038 6 byte Single 1.5*10-47 3.4*1038 4 byte Double 5*10-324 1.7*10380 8 byte Extended 3.4*10-4932 1.1*104932 10 byte Comp -9.2*1018 9.2*1018 4 byte
N uăm tăs ă<-maxăhoặcă>ămaxăthìăs ăkhôngăbi uădi năđ căvƠăxemănh ălƠătrƠnăs
N uăm tăs ă>-minănh ăh nă0ăhoặcăl năh nă0ănh ăh năminăthìăđ căxemănh ălƠă0 (2).ăCh ăđ ămặcăđ nhăc aă TurboPascală lƠăchỉăchoăphépă lƠmă vi că v iăki uăs ăthựcă REAL.ă Mu nă s ă dụngă cácă ki u khácă taă vƠoă b ngă ch nă OPTIONă -> COMPILER ->ă NUMERICă PROCESINGă r iă đánhă d uă [x]ă vƠoă mụcă 8087/80287.ăKhiăso năth oăch ngătrìnhătaăph iăthêmăvƠoăchỉăth ăd chă{$N+}ă vƠoăđầuăch ngătrìnhăngayăsauăphầnătiêuăđ
(3).ăTrongămáyătínhăs ăthựcăđ căbi uădi năd iăhaiăd ng:
- D uăch mătĩnh,ăvíădụ:ă3.14,ăă123.456
Trang 13soăsánh:ăT ngătựăs ănguyênăg m: =,ă<,ă>,ă>=ă(l năh năhoặcăbằng),ă<=ă(nh ăh năhoặcăbằng),ă<>ă(khácănhau)
quyăđ nhăkhiăbi uădi năchúngăph iăđặtătrongăcặpăd uănháyăđ n,ăăvíădụăă'a',ă'abc'
- Phép so sánh:Mu năsoăsánhă2ăkýătựătaăsoăsánhăcácămƣăASCIIăt ngă ngăc aăchúng,ăkýătựănƠoăcóămƣăASCIIăl năh năđ căxemălƠăl năh n.ăVíădụă'a'ă>ă'A'ăVìă97ă>ă
65
lƠăm tăt păh păđ măđ căvƠătrênăđóăt năt iăquanăh ăth ătự.ăVíădụ:ăKi uăByte,ăki uăInteger;ăki uăChar;ăki uăBoolean
2.3 Ki u li t kê vƠ ki u đo n con
2.3.1 Kiểu liệt kê:
a Định nghĩa kiểu và khai báo biến:
- Định nghĩa kiểu:
Type ten_kieu = (Danh sách các giá trị);
Gi iăthích:ă
- ten_kieuăkýăhi uăchoătênăki uădoăng iădùngătựăđặt
- Danhăsáchăcácăgiáătr ălƠăt păh păcácăgiáătr ăđ căphơnăcáchăb iăd uăphẩyă","
- Khai báo biến:
Var ten_bien : ten_kieu;
Trang 14Ví dụ: Var gioitinh: (nam, nu)
Mau: (xanh, do, tim, vang);
b Các tác động lên dữ liệu kiểu liệt kê:
- Cóăth ăthựcăhi năphép gán giáătr ăchoăbi n
tr ăđiăsau
Ví dụ: V iăkhaiăbáoă ătrênăthìăsună<ămon;ăxanh<ădo
c Chú ý:
(1).ăKhôngăth ănh p,ăxu tăv iăd ăli uăki uăli tăkê
(2).ăGiáătr ăki uăli tăkêăth ngăđ cădùngăđ ălƠmăchỉăs ăchoăl nhălặpăfor,ăcácă
tr ngăh păch nălựaătrongăl nhăCase,ăhoặcăchỉăs ăchoăm ng
2.3.2 Kiểu đoạn con:
a Định nghĩa kiểu và khai báo biến:
- Định nghĩa kiểu:
Type ten_kieu = hang_duoi hang_tren;
Gi iăthích:
Hang_duoiăt călƠăkýăhi uăgiáătr ăhằngăc năd i,ăhang_trenăt călƠăgiáătr ăhằngă
c nătrênăt tă nhiênă lƠăhang_trênă hang_duoiăvƠăph iăcóăcùngăki uăvôăh ngăđ mă
đ c
- Khai báo biến:
Var ten_bien : ten_kieu; (ten_kieuăđƣăđ căkhaiăbáo)
Trang 152.4.1 Các hàm trên kiểu số nguyên và số thực:
Gi ăs ăxălƠăm tăs ănƠoăđóăkhíăđóătaăcóăcácăhƠmăsauăđơy:
ROUND(x) - Choăgiáătr ălƠăs ănguyênăgầnăxănh tă
TRUNC(x) - Choăgiáătr ălƠăphầnănguyênăc aăs ăxăăăă
INT(x) - Choăgiáătr ălƠăphầnănguyênăc aăs ăxă
FRAC(x) - Choăgiáătr ălƠăphầnăth păphơnăc aăs ăx
ABS(x) - Choăgiáătr ălƠăgiáătr ătuy tăđ iăc aăs ăx
SIN(x) - Choăgiáătr ălƠăăsinx
COS(x) - - Choăgiáătr ălƠăcosx
EXP(x) - Choăgiáătr ălƠăex
SQR(x) - Choăgiáătr ălƠăăx2
SQRT(x) - Choăgiáătr ălƠăcĕnăb căhaiăc aăs ăxă(x>=0)
LN(x) - Choăgiáătr ălƠălnxă(x>0)
2.4.2 Các hàm khác:
Gi ăs ăvarălƠ bi năcóăki uăvôăh ngăđ măđ c
INC(var, r) Tĕngăgiáătr ăc aăbi năvarălênăr
DEC(var, r) Gi măgiáătr ăc aăbi năvarăđiărăă(varăcóăki uăvôăh ngăđ mă
đ c)
PRED(var) Choăgiáătr ăđiăngayătr căvar.ăVíădụ:ăpred('c')ă='b'
SUCC(var) Choăgiáătr ăđiăngayăsauăvar.ăVíădụ:ăsucc('c')='d'
ORD(ch) - Choăgiáătr ălƠămƣăASCIIăc aăkýătựăchă(chăki uăchar)
CHR(n) - ChoăkýătựăcóămƣăASCIIăbằngăs ănă(0<=n<=255)
UPCASE(ch) Choăk tăqu ălƠăăch ăchănh ngălƠăch ăinăhoaă(chălƠăch ăcái) ODD(n) - Choăk tăqu ăTRUEăn uănălƠăs ălẻ,ăbằngăFALSEăn uănălƠăs ăchẵnă(nălƠăs ănguyên)
ki uăs ănguyên
Trang 1616
RANDOM(n) Choăk tăqu ălƠăm tăs ăng uănhiênăl yătrongăđo nă[0,n]ă(nălƠă
s ă nguyên;ă ă Chúă ýă đ ă s ă dụngă đ că hƠmă nƠyă thìă tr că đóă ph iă kh iă t oă th ă tụcăRandomize)
KEYPRESSED tr ăv ăgiáătr ătrueăn uăcóănh năphímăb tăkỳ,ăng căl iăchoăgiáătr ăfalseă(mu năs ădụngăph iăkhaiăbáoăunităcrt)
2.4.3 Sử dụng hàm để viết các biểu thức bằng cú pháp của Turbo Pascal:
1 ab = ebln(a) = exp(b*ln(a)) (a,b>0)
2 logab = logae*logeb = 1/ln(a)*ln(b)
3 (x3+ sin(x2y))2 = sqr(sqr(x)*x+sin(sqr(x)*y))
BÀI T P CH NG 2
1 N uăchălƠăm tăbi năki uăcharăthìăcácăhƠmăsauăđơyăchr(ord(ch)),ăord(chr(ch)) cho
k tăqu ăgì?ăT iăsao?
2 Tìmăcôngăth căđ ăđổiăm tăkýătựălƠăch ăhoaăthƠnhăch ăth ng
3 DùngăcácăhƠmăvƠăcácăphépătoánăđ ăbi uădi năcácăcôngăth căsau:
a.ăCh ă'A'ăvƠăch ă'a'
b.ăCh ăă'A'ăăvƠăch ăs '1'
a var X, P: byte; b var P, X: real;
c var P: real; d var X: real;
X: byte; P: byte;
Trang 1717
8 Đ ătínhădi nătíchăSăc aăhìnhăvuôngăcóăc nhăAăv iăgiáătr ănguyênănằmătrong ph măviătừă100ăđ nă200,ăcáchăkhaiăbáoăSănƠoăd iăđơyălƠăđúngăvƠăítăt năb ănh ănh t
a var S: integer; b var S: real; c var S: word;
d var S: longint; e var S: boolean;
1.ăChr(ord(ch))ăchoăkăqu ălƠăch,ăăcònăord(chr(ch))ăsaiăcúăphápăvìăhƠmăchrăcóăđ iălƠă
m tăs ăki uăbyte
2 Chr(ord(ch)+ord('a') - ord('A'))ă(trongăđóăchălƠăkýătựăch ăhoaăcầnăđổi)
4 a k=250;
b.ăKhôngăxácăđ nhăvìătrƠnăs
c.ăKhôngăxácăđ nhăvìăsaiăki u
5.ăXemăb ngămƣăASCIIăvƠăcáchăsoăsánhăcácăkýătự
Trang 18- Gi iăthi uăcácă lo iăcơuă l nhăđ năgi n,ăcáchăkhaiă báo vƠăs ădụngă cácăcơuă
l nhănƠyătrongăch ngătrình.ăĐ ngăth iămôăt ăcáchăs ădụngăcácăcơuăl nhănƠyăbằngăcácăvíădụăminhăh a
Mục tiêu: H căxongăch ngănƠyăSinhăviênă
- Bi tă đ că nh ngă kháiă ni mă v ă phépă toán, bi uă th că s ă h c,ă hƠmă s ă h căchuẩn,ăbi uăth căquanăh
- Nắmăđ căcácăphépătoánăthôngădụngătrongăngônăng ăl pătrình
- Bi tădùngăcácăcơuăl nhăvƠăcácăphátăbi uăcóăth ădùngătrongăthơnăc aăch ngătrình
- Bi tăcácăl nhănh păd ăli uătừăbƠnăphím,ăl nhăxu tăd ăli uăraămƠnăhìnhămáyătính và máy in
Bi nă lƠă đ iă l ng cóă th ă thayă đổiă giáă tr ă vƠoă từngă th iă đi mă khácă nhauă c aă
ch ngătrình.ăBi nădùngăđ ăl uătr ăd ăli u,ăbi năđ căkhaiăbáoăsauătừăkhóaăVAR.ă
Vi căkhaiăbáoăcácăbi nălƠănhằmăcungăc păcácăvùngănh ăđ ăl uătr ăd ăli uătrongăqúaătrìnhăthựcăhi năch ngătrình
3.1 3 Toán tử:
Là các phép toánătácăđ ngălênăd ăli uă(hayăcònăg iălƠătoánăh ng)
Ví dụ: Các phép +, -, *, /, and, or, not
Trang 19(3).ăM tăbi uăth căchoăk tăqu ăbằngăs ăđ căg iălƠăbi uăth căs ăh c,ăchoăk tă
qu ăki uălogicăthìăđ căg iălƠăbi uăth călogic
Ví dụ: Tính giá tr ăc aăbi uăth căsau:
((18 mod 4 div 2 < 3) >= false) = true
((2 div 2 < 3) >= false) = true
< 3) >= false) = true
(true >= false) = true
true = true - true
3.2 Cơu l nh
3.2.1 Phân loại câu lệnh:
TrongăPascalăcóăhaiălo iăcơuăl nhăđóălƠăcơuăl nhăđ năgi năvƠăcơuăl nhăcóăc uătrúc
Trang 2020
- Cơuăl nhăđ năgi năg m:ăL nhăgán,ăl nhăxu t,ănh păd ăli u,ăl nhănh yăvƠăl iă
g i ch ngătrìnhăconăd ngăth ătục
- Cơuăl nhăcóăc uătrúcăg m:ăL nhăghép,ăl nhăr ănhánh,ăl nhălựaăch n,ăcácăl nhălặpăvƠăl nhăWITH
3.2.2 Câu lệnh đơn giản:
a Lệnh gán:
Cú pháp: ten_bien := bt;
Gi iăthíchăbtălƠăkýăhi uăchoăbi uăth c
Ýănghĩa:ăL nhăs ăthựcăhi năvi căgánăgiáătr ăc aăbtăchoăbi năten_bien
Chú ý:
(1).ăBi năten_bienăvƠăgiáătr ăc aăbtăph iăcùngăki uăd ăli u
(2).ăV ătráiăluônălƠăbi năcònăv ăph iălƠăbi uăth c,ăđ oăng căl iălƠăsaiăcúăpháp Víădụ:ăa:=ă5;ăăSă:ă=ăsă+ăd*i;ăi:=i+1;
b Lệnh ghi dữ liệu lên màn hình:
(1):ăLầnăl tăghiălênămƠnăhìnhăgiáătr ăc aăcácăbi uăth căăt iăv ătríăconătr
(2): T ngătựăd ngă(a)ăchỉăkhácă ăchổăsauăkhiăghiăxongăconătr ăđ căđ aăv ăđầuădòngăti pătheo
(3):ăKhôngăghiăgìălênămƠnăhìnhăc ,ăchỉălƠmăthaoătácăđ aăconătr ăv ăđầuădòngă
Trang 21* Với dữ liệu kiểu số thực:
Ch ăđ ămặcăđ nhăc aăPascalălƠăghiătheoăd ngăd uăch măđ ng
Mu năghiăs ăthựcătheoăd ngăd uăch mătĩnhătaădùngăcáchăghiăsauăđơy:
đ căghiălênăđƣăđ căquyătròn (víădụătrên)ănh ngăgiáătr ăthựcăc aănóăv năđ căl uă
(1):ăChoăphépălầnăl tănh păd ăli uăchoăcácăbi n
(2):ăT ngătựăd ngă(a)ăchỉăkhácă ă la khiănh păxongăconătr ăđ căđ aăv ăđầuădòngăti pătheo
(3):ăăChỉălƠmăthaoătácăt mădừngăch ngătrình,ăch ăgõăphímăEnterăđ ăti pătục
Chú ý:
(1).ăNguyênătắcă nh păd ăli uă lƠătrongăcơuă l nhăcóă baoă nhiêuăbi năthìătaăph iă
nh păđ ăgiáătr ăchoăb yănhiêuăbi n.ăGi aăgiáătr ăc aăbi n nƠyăvƠăbi năkiaăđ căngĕnăcáchăb iăítănh tălƠăm tăkýătựătrắng;ăk tăthúcăvi cănh păbằngăcáchănh năphímăENTER
Trang 2222
(N uăch aănh păđ ăgiáătr ăchoăcácăbi năthìăch ngătrìnhăv năti pătụcădừngăl iăch ăă
nh pă ti p,ă chừngă nƠoă nh pă đ ă m iă ti pă tục,ă Víă dụă Khiă gặpă l nhă READ(a,b,c);
ch ngătrìnhăt mădừngăch ănh păd ăli uăvƠăkhiăđóătaănh păchẳngăh nă3ă 9 12 ) (2).ăThôngăth ngăkhiăthựcăhi năch ngătrìnhăđ ă nh păd ăli uătaănênăghiălênămƠnăhìnhăcơuăh ngăd năchoăng iăthựcăhi năch ngătrình,ănghĩaălƠătr căcơuăl nhăREAD, READLNăănênăcóăm tăcơuăl nhăWRITE
Ví dụ: Write(' nhâp n nguyên duong : '); readln(n);
(3).ă Cơuă l nhă READLNă th ngă đ că s ă dụngă t mă dừngă ch ngă trìnhă (mƠnăhình)ă đ ă xemă k tă qu ,ă vìă v yă th ngă đ că s ă dụngă ă cu iă c aă m tă ch ngă trìnhă(tr cătừăkhóaă"END.")
(4).ăV iăd ăli uăki uălogicăkhôngăchoăphépănh pătừăbƠnăphím
Các ví dụ:
Ví dụ 1: Vi tăch ngătrìnhănh păvƠoăchi uădƠiăvƠăchi uăr ngăc aăm tăhìnhăch ă
nh tăr iăinălênămƠnăhìnhăchuăviăvƠădi nătíchăc aăhìnhăch ănh tăđó
Hướng dẫn:
- Khaiăbáo:ăCácăbi năa,băki uăs ăthựcăđ ăl uăchi uădƠi,ăchi uăr ng
Bi năpăđ ăch aăchuăvi,ăbi năsăđ ăch aădi nătích
- Nh păd ăli uăchoăa,b
- Tínhăchuăviătheoăcôngăth căp:=2*(a+b);
- Tínhădi nătíchătheoăcôngăth căs:=ăa*b;
- Ghiăd ăli uălênămƠnăhìnhătheoăd ngăcóăquyăcáchă(s ăthực)
Chương trình:
Program hinh_chu_nhat;
Var a,b,p,s : real;
Begin
Write('nhap chieu dai a: '); readln(a);
Write('nhap chieu rong b: '); readln(b);
p:=2*(a+b); s:= a*b;
Writeln('chu vi cua hinh chu nhat la: ',p:10:2);
Writeln('Dien tich cua hinh chu nhat la: ',s:10:2); Readln
End
Ví dụ 2: Vi tăch ngătrìnhănh păvƠoăm tăs ănguyênăd ngăcóăbaăch ăs ăr iăinălênă
mƠnăhìnhăs ăđ oăng căc aăs ăđó
Hướng dẫn:
- Khaiăbáo:ăBi nănăđ ăch aăd ăli uămh păvƠo
- Nh pănănguyênăd ngăcóă3ăch ăs
Trang 23Write('nhap so nguyen co 3 chu so : '); readln(n);
Write('so dao nguoc cua so ',n,' la: ');
writeln(n mod 10,n mod 100 div 10,n div 100);
- Khai báo: Bi nănăki uăs ănguyênăđ ăch aăd ăli uănh păvƠo
Bi năSăki uăs ănguyênăđ ăl uăk tăqu
- Nh păd ăli uăchoăn
Trang 2424
3.ăa.ăVi tăch ngătrìnhănh păvƠoăs ănguyênăd ngăn,ăs ăthực aăr iăinălênămƠnăhìnhăgiáătr ăcĕnăb cănăc aăa.ă
b.ăVi tăch ngătrìnhănh păcácăs ăd ngăa,băr iăinălênămƠnăhìnhălogab
4.ăVi tăch ngătrìnhănh păvƠoă3ăc tăđi măv iăcácăh ăs ă1,2ăvƠă3.ăTínhăvƠăinălênămƠnăhìnhăđi mătrungăbìnhăc ng
5.ăVi tăch ngătrìnhănh păvƠoăs ănguyênăd ngăn,ăinălênămƠnăhìnhătổngăsau:
S= 12 + 22 +32 + +n2
(Bi tăcôngăth căs=n*(n+1)*(2*n+1)ădivă6)
6 Hƣyăvi tăbi uăth cătoánăh căd iăđơyătrongăPascal:
7.ăHƣyăchuy năcácăbi uăth cătrongăPascalăd iăđơyăsangăbi uăth cătoánăh căt ngă
Trang 2525
Hình 3
10.ăL pătrìnhăvƠăđ aăraămƠnăhìnhăv năt căvăkhiăch măđ tăc aăm tăv tăr iătừăđ ăcaoăh,ă
bi tărằngă ,ătrongăđóăgă lƠăgiaăt căr iătựădoă vƠăg = 9,8m2.ăĐ ăcaoăhă(m)ă
đ cănh păvƠoătừăbánăphím
H NG D N GI I BÀI T P
1 - Khaiăbáoăăbi nărăki uăs ăthựcăđ ănh păbánăkính,ăcácăbi năp,ăsăki uăs ăthựcăđ ă
ch aăchu viăvƠădi nătích
- Nh păbánăkínhăr
- TínhăchuăviăvƠădi nătíchătheoăcôngăth c
- Thôngăbáoăk tăqu ă
2a - Khaiăbáoăăbi năchăki uăcharăđ ănh păkýătựăb tăkỳ
- Dùng công th căăexp(1/n*ln(a))ăđ ătínhăvƠăthôngăbáoăk tăqu
3b - Khaiăbáoăăcácăbi năa,băki uăs ăthựcăđ ănh păd ăli u.ă
Trang 2626
4 - Khaiă báoăcácă bi năa,b,căki uăs ă thựcăđ ă nh pă3ăc tăđi m;ă bi nătbcă ki uăs ă
thựcăđ ăch aăk tăqu ă
Trang 27Mục tiêu: H căxongăch ngănƠyăSinhăviênă
- Hi uăkháiăni măr ănhánh,ăbi tăđ căc uătrúcăchungăc aăc uătrúcăr ănhánh
- Bi tăs ădụngăcácăcơuăl nhăr ănhánh choăphùăh p
- Hi uăđ căýănghĩaăvƠătácădụngăc aăc uătrúcălặp
- Bi tădùngăcácăcơuăl nhălặpăvƠăcáchădùngăvòngălặpănƠoăchoăphùăh păv iăyêuăcầuăbƠiătoán
(TrongăđóăCL1, CL2 ăkýăhi uăchoăcơuăl nh1,ăcơuălênh2, )
4.1.3 Ý nghĩa: Ghép nhiều lệnh thành một câu lệnh
4.2.1 Cú pháp: Cóă2ăd ng:
(1) If <BTLG> then CL1 else CL2;
(2) If <BTLG> then CL;
TrongăđóăBTLGăkýăhi uăchoăbi uăth călogic
D ngă(1)ăcònăđ căg iălƠăd ngăđầyăđ ,ăD ngă(2)ăđ căg iălƠăd ngăthi u
Trang 2828
4.2.4 Chú ý:
V iăl nhăIfăd ngă(1)ăsauăCL1ă(tr căelse)ăkhôngăcóăd uă";"ăvìăn uăcóăthìămáyă
s ăhi uălƠăl nhăifăăd ngă(2)ăsauăđóăgặpătừ khóaăelseămáyăs ăbáoălỗiăvìăkhôngăcóăl nhă
- Bi nălu nănghi mătheoăaăvƠăb
- Thôngăbáoăk tăqu ălênămƠnăhìnhăchoătừngătr ngăh p
If b<>0 then Writeln('phuong trinh vo nghiem') Else Writeln('pt vo dinh - nghiem la moi x '); Readln
T
T
Trang 29- Bi nălu nătheoăxăđ ătínhăf
- Thôngăbáoăk tăqu ălênămƠnăhìnhăs ăthựcăfătheoăd ngăcóăquyăcách
(1)ăTùyăthu căvƠoăgiáătr ăc aăbi uăth căbt thu căvƠoăt păhằngănƠoămƠămáyătínhă
s ăthựcăhi năcơuăl nhăt ngă ng.ăN uăkhôngăs ăthựcăhi năCLn+1ă;
x
f(x) = x>0
0 x
Trang 3030
(2)ăT ngătựăd ngă(1),ăchỉăkhácă ăchổăn uăgiáătr ăc aăbi uăth căkhôngăthu că
t păhằngănƠoăc ăthìămáyăs ăkhôngăthựcăhi năcơuăl nhănƠoăc ătrongăthơnăl nhăCASE vƠăs ăthoát
4.3.4 Chú ý:
(1).ăGiáătr ăc aăbtăph iăcóăcùngăki uăv iăcácăphầnăt ăc aăt păhằngăvƠăph iălƠă
ki uăvôăh ngăđ măđ c
(2).ăT păhằngăcóăth ălƠăm tăgiáătr ,ăm tăt păh păcácăgiáătr ,ăvƠăth măchíălƠăm tă
ki uăd ăli uă(ki uăđo năcon,ăli tăkê)
(3).ăL nhăCASEăcóăth ăđ căthayăth ăb iănhi uăl nhăăIFăl ngănhauăvƠăng că
l iăl nhăIFăcũngăcóăth ăđ căthayăth ăbằngăl nhăCASEăăvíădụăl nhăIFăd ngă(1)ăcóăth ă
Ví dụ 1: Vi tăch ngătrìnhănh păvƠoăm tăs ănăb tăkỳătrongăđo nă[0 255] và
thông báo lên màn hình:
- Câu thông báo: ' Day la ky tu dieu khien' (n uăn < 32);
- Câu thông báo: ' la ky tu thongădung'.ă(n uă127 n 32);
0 31 : Writeln(' Day la ky tu dieu khien');
32 127 : Writeln(chr(n),'la ky tu thong dung'); 128 255 : Writeln(chr(n),' la ky tu dac biet');
END;
Readln
Trang 31*ăt=2ăthìănh păthêmănĕmăn,ăn uănălƠănĕmănhu năthìăsn:=29,ăng căl i sn:=28;
- Thôngăbáoăk tăqu ăsnălênămƠnăhình
Trang 3232
(1)ăăCơuăl nhăCLăs ăđ călặpăđúngăbằngăs ălầnămƠăbdkăđ căgánătĕngădầnălầnă
l tătừăgiáătr ăc aăăbt1ăđ năgiáătr ăc aăbt2
(2)ăăCơu_l nhăs ăđ călặpăđúngă bằngăs ă lầnă mƠă bdkăđ căgánăgi mădầnă lầnă
l tătừăgiáătr ăc aăăbt2 đ năgiáătr ăc aăbt1
(2).ăTrongăthơnăcơuăl nhăforăkhôngăđ călƠmăthayăđổiăgiáătr ăc aăbdk vìănh ă
th ăs ăkhôngăki măsoátăđ c bi năđi uăkhi năvƠăcóăth ăd năđ nătrìnhătr ngălặpăvôă
h n Khiăđóătaăs ădụngătổăh păphímăCtrlă+ăBreakăđ ădừngăch ngătrình
(3).ăCóăth ăs ădụngăl nhăBREAKăđ ăthoátăkh iăl nhăFORăcũngănh ăthoátăkh iăcácăl nhăWHILE,ăREPEAT
4.4.5 Các ví dụ:
Ví dụ 1: Vi tăch ngătrìnhăhi năth ălênămƠnăhìnhămƣăASCIIăvƠăcácăkýătựăt ngă
ng,ăc ă20ăkýătựătrênăm tătrangămƠnăhình
Hướng dẫn:
- Khaiăbáoăbi năđi uăkhi năăl nhăFORălƠăăiăăăki uăbyte;
- Dùngăl nhăFORăăd ngă(1)ăv iăbi năđi uăkhi năiăch yătừăă0ăđ nă255,ăăv iămỗiăgiáătr ăc aăiătaăghiălênămƠnăhìnhăkýătựăcóămƣăASCIIăt ngă ng;ăSauăđóăki mătraăxemă
n uăi+1ăchiaăh tăchoă20ăthìădùngăl nhăreadlnăđ ăt mădừngămƠnăhình
Trang 33Writeln('ky tu tuong ung voi ma',i,' la:', chr(i));
If i+1 mod 20 = 0 then readln;
End;
End
Ví dụ 2: Vi tă ch ngă trìnhă tínhă tổng: S = 13
+23+33+ +n3 (nă nh pă từă bƠnăphím)
Hướng dẫn:
- Khaiăbáo:ăBi nănăki uăs ănguyênăintegerăđ ăch aăd ăli uănh păvƠo
Bi năSăki uălongintăđ ăl uăk tăqua
- Nh păn
- Kh iăgánăS:=0;
- Dùngăl nhăFORăăd ngă(1)ăv iăbi năđi uăkhi năiăch yătừă1ăđ năn,ăăv iămỗiăgiáă
tr ăc aăiătaăthựcăhi năl nhăc ngăd năS:=ăS+ăsqr(i)*i;
- Ghiăk tăqu ăSălênămƠnăhình
For i:=1 to n do s:=s+sqr(i)*i;
Write('Tong', n, ' so tu nhien dau tien la: ',s); Readln
4.5.2 Ý nghĩa: Thựcăhi nălầnăl tăcácăcơuăl nhătừăCL1ăđ năCLnăsauăđóăki mătraăgiáă
tr ăc aăbi uăth călogic,ăn uăsaiăthìălặpăl i,ăn uăđúngăthìăthoát.ă
4.5.3 Sơ đồ hoạt động:
Trang 3434
4.5.4 Chú ý:
(1).ăCácăcơuăl nhănằmăgi aărepeat ăuntilăkhôngăcầnăph iăs ădụngăcặpătừăkhóaăbegin end;
(2).ăTrongăthơnăc aăl nhărepeatăth ngăph iăcóăcơuă l nhă lƠmăthayăđổiăgiáătr ă
c aăbi uăth călogicăn uăkhôngăd ăd năđ nătìnhătr ngălặpăvôăh n
(3).ăKhiăthựcăhi n ch ngătrìnhăn uăb ălặpăvôăh năthìănh nătổăh BREAKăđ ădừngăch ngătrình
păphímăCTRL-(4).ăL nhărepeatăth ngăđ căs ădụngăkhiăph iăthựcăhi năítănh tălƠăm tălầnăcácăcơuăl nhătừăCL1ăđ năCLnăvƠăs ălầnălặpăkhôngăxácăđ nhăđ cătr c.ă(Trongătr ngă
h păbi tătr căs ălầnălặpătaănênădùngăl nhăfor)
4.5.5 Các ví dụ:
Ví dụ 1: S ădụngăl nhărepeatăđ ăl căd ăli uăvƠoătheoăyêuăcầu,ăchẳngăh năcầnă
nh pănănguyênăd ngătaăvi tănh ăsau:
Trang 35Ví dụ 3: Vi tăch ngătrìnhă nh pă vƠoă m tăs ă nguyênăd ngă b tăkỳăr iă ină lênă
mƠnăhìnhăs ăch ăs ăc aăs ăđó
Trang 3636
4.6.4 Chú ý:
(1).ăCũngăgi ngăl nhăRepeat,ătrongăthơnăc aăl nhăwhileăph iăcóăcơuăl nhălƠmăthayăđổiăgiáătr ăc aăbi uăth călogicăn uăkhôngăd ăd năđ nătìnhătr ngălặpăvôăh n (2).ă Khácă v iă l nhă repeată l nhă whileă ki mă traă đi uă ki nă c aă bi uă th că logică
tr c,ănênăcóăth ăcơuăl nhătrongăthơnăc aănóăkhôngăđ căthựcăhi năm tălầnănƠoăc ăkhiămƠăngayătừăđầuăbi uăth călogicănh năgiáătr ăsai.ă
4.6.5 Các ví dụ:
Ví dụ 1: S ădụngăl nhăwhile,ăvi tăch ngătrìnhănh păvƠoăm tăs ănguyênăd ngă
b tăkỳăr iăinălênămƠnăhìnhăs ăch ăs ăc aăs ăđó
Ví dụ 2: Vi tă ch ngă trìnhă nh pă vƠoă haiă s ă nguyênă d ngă r iă tìmă că s ă
chungăl nănh tăc aăchúng
Trang 37BÀI T P CH NG 4
4.1 L nh If vƠ Case:
1 Vi tăch ngătrìnhănh păvƠoă3ăs ănguyên,ăinăraămƠnăhìnhăs ăl nănh t
2 Vi tăch ngătrìnhăgi iăph ngătrìnhăb căhai
3 Vi tăch ngătrìnhănh pă3ăs ,ăchoăbi tăchúngăcóăth ălƠăđ ădƠiă3ăc nhăc aăm tătamăgiác hay không?
4 Vi tăch ngătrìnhănh păvƠoăs ăKWăđi nătiêuăthụăc aăm tăh ăgiaăđình,ăinăraămƠnăhìnhăs ăti năt ngă ng,ăbi tărằngăgiáăthƠnhăđ cătínhănh ăsau:
- TừăKWăth ăă1ăđ năth ă100ăgiáă0.5ănghìnăđ ng
- TừăKWăth ăă101ăđ năth ă200ăgiáă0.8ănghìnăđ ng
- TừăKWăth ăă201ătr ălênăgiáă1.5ănghìnăđ ng
5 Đo năch ng trìnhăsauăđơyăđúngăcúăphápăhayăkhông?ăN uăđúngăchoăbi tăýănghĩaă
Trang 38(S ăhoƠnăh oălƠăs ăbằngătổngăt tăc ăcácă căc aănóă(trừăs ăđó)ăchẳngăh nă6,ă28, )
5 Vi tăch ngătrìnhăki mătraăxemăm tăs ănguyênănănƠoăđóăcóăph iălƠăs ănguyênăt ăhay không?
6 Vi tăch ngătrìnhătìmăt tăc ăcácăs ănguyênăt ănằmătrongăđo nă[1,n]ă(nănh pătừăbƠnăphím)
7 Tìmăs ăc aădƣyăFIBONACCIăl nănh tăth aămƣnăbéăh nă2000.ă(Dãy Fibonacci là dãy a1=1, a2=1, an=an-1+an-2 (n>=3))
8 M tăng iăcóăs ăti nătăđemăg iăngơnăhƠngăv iălƣiăsu tăk/thángă(bi tărằngălƣiăc aăthángătr căđ cănh păvƠoăti năg căđ ătínhălƣiăchoăthángăti pătheo).ăH iăđ ăcóăđ că
s ăti nămaxă(max>t)ăthìăng iăđóăph iăg iăti tăki măbaoănhiêuătháng?ă(t,ăk,ămaxăđ uă
nh pătừăbƠnăphím)
9 Vi tăch ngătrìnhătìmăcácăs ăa, b, căth aămƣn:
10 Vi tăch ngătrìnhăphơnătíchăm tăs ănguyênăthƠnhătíchăc aăcácăs ănguyênăt
11 Vi tăch ngătrìnhăgi i bài toán:
Trang 3915.ăM tăng iăg iăti tăki măkhôngăkìăh năv iăs ăti năAăđ ngăv iălƣiăsu tă0,3%ămỗiătháng H iăsauăbaoănhiêuătháng,ăng iăđóărútăh tăs ăti năthìăs ănh năđ căs ăti năítă
nh tă lƠăBăđ ng?ăBi tărằngă v iă vi căg iăti tăki măkhôngăkìăh năthìălƣiăkhôngăđ că
c ngăvƠoăv n
H NG D N GI I BÀI T P
1 - Nh păvƠoă3ăs ăa,b,c
- Kh iăgánămax:=a;
- Soăsánhămaxăv iăb,căn uămaxăbéăh năthìăgánăl iămax
2 - Nh păcácăh ăs ăa,b,c
- Tính dt:=b*b - 4*a*c;
- S ădụngăl nhăIfăăbi nălu nănghi mătheoădtăvƠăthôngăbáoăk tăqu
3 - Nh p cácăh ăs ăa,b,c
- S ădụngă l nhă Ifă bi nă lu n:ăN uăđ ngăth iăx yăraăa+b>c,ă b+c>a,ăc+a>băthìăthôngăbáoăa,b,căđúngălƠăđ ădƠiă3ăc nhăc aăm tătamăgiácănƠoăđó.ăNg căl iăthìăkhôngă
ph i
4 - Nh păvƠoăs ăKWăđi nătiêuăthụ
- Dùngăl nhăIfăhoặcăcaseăđ ăbi nălu năvƠătínhăti nătheoăgíaăthƠnh
- Thôngăbáoăk tăqu
5 - Đo năch ngătrìnhătrênăhoƠnătoƠnăđúngăcúăpháp;
- Ýă nghĩaă c aă nóă lƠă choă phépă nh pă vƠoă haiă s ă nguyênă a,b.ă N uă aă <bă thìă s ăthôngăbáoălênămƠnăhìnhăb tădẳngăth căđó,ăng căl iăthôngăbáoăb tăđẳngăth căbă<=ăa
8 - Nh păvƠoăm tăs ănguyênăd ng
- Dùngăl nhăRepeatăhoặcăWhileăđ ălặpăl iăcôngăvi căsauăđơyăchoăđ năkhiăn=0ăthìădừng:
+ăGhiălênămƠnăhìnhăch ăs ăcu iăcùngăc aănă(nămodă10)ăbằngăl nhăwrite; +ăLo iăb ăch ăs ăcu iăcùngăbằngăcáchăgánăl iăn:=ănădivă10
9 - Nh păs ăm,ănănguyênăd ngă(m<n);
Trang 4040
- Dùngăl nhăforălầnăl tăduy tăt tăc ăcácăs ătừămăđ năn,ăn uăđúngălƠăs ăhoƠnă
h oăthìăthôngăbáo,ăn uăkhôngăthìăb ăqua
10 - Nh păs ăn
- Kh iăgánăi:=2;
- S ădụngăl nhăWhileălặpăl i:ăChừngănƠoăi<=round(sqrt(n))ăvƠăn mod i <>0 thì tĕngăiălênă1;ăSauăđóăki mătraăn uăđ ngăth iăi<>1ăvƠăiă>ăround(sqrt(n))iănăăthìănălƠăs ănguyênăt ;ăNg căl iănăkhôngăph iălƠăs ănguyênăt
11 - Nh păs ăănănguyênăd ng;
- Dùngăl nhăforălầnăl tăduy tăt tăc ăcácăs ătừă1ăđ năn,ăn uăđúngălƠăs nguyên
t ăthìăthôngăbáoăn uăkhôngăthìăb ăqua
- Thôngăbáoăk tăqu ălƠăst
14 - G iăs ăcầnătìmăcóăcácăch ăs ălƠăa,b,c
- S ădụngă3ăl nhăforăl ngănhauăđ ăth ăh tăt tăc ăcácăkh ănĕngăc aăa,b,cătừă1ă
đ nă9,ăn uăth a mƣnă100*a+10*b+c=11*(a+b+c)ăthìăthôngăbáoăk tăqu