Giaùo trỗnh Lỏỷp trỗnh Pascal cn baớn 11 Trang 11 - ODD(x) Traớ vóử giaù trở True nóỳu x laỡ sọỳ leớ vaỡ traớ vóử giaù trở False nóỳu x laỡ sọỳ chụn. IV. Sổớ duỷng haỡm Random(n) õóứ lỏỳy mọỹt giaù trở nguyón ngỏựu nhión: Haỡm Random(n) seợ traớ vóử mọỹt giaù trở nguyón maỡ maùy lỏỳy ngỏựu nhión coù giaù trở tổỡ 0 õóỳn n. Trong õoù, n laỡ mọỹt sọỳ kióứu Word tổùc laỡ trong khoaớn tổỡ 0 65535. Trổồùc khi sổớ duỷng haỡm Random ta phaới goỹi thuớ tuỷc Randomize õóứ khồới taỷo bọỹ taỷo sọỳ ngỏựu nhión _________ oo _________ BAèI 3: HềNG S, BIN S, BIỉU THặẽC VAè CU LNH N GIAN TRONG NGN NGặẻ PASCAL I. Hũng sọỳ: 1. Khaùi nióỷm: - Hũng sọỳ laỡ caùc giaù trở khọng thay õọứi trong quaù trỗnh chaỷy chổồng trỗnh. - Coù hai phổồng phaùp sổớ duỷng hũng : + Gaùn trổỷc tióỳp giaù trở hũng.Vờ duỷ: DT := R * R * 3.14; ChuVi := D * 3.14; + ỷt cho hũng mọỹt tón goỹi vaỡ trong quaù trỗnh soaỷn chổồng trỗnh ta duỡng tón goỹi thay cho vióỷc duỡng trổỷc tióỳp giaù trở õoù. Vờ duỷ: ChuVi := D * Pi; trong õoù, Pi laỡ mọỹt hũng sọỳ chuỏứn cuớa Pascal (tổùc laỡ ta coù thóứ duỡng maỡ khọng cỏửn khai baùo vaỡ gaùn giaù trở). - Hũng sọỳ luọn luọn õổồỹc khai baùo trổồùc phỏửn khai baùo bióỳn nóỳu sổớ duỷng theo phổồng phaùp õỷt tón cho hũng. 2. Cuù phaùp khai baùo: Const a 1 = Trở_sọỳ_1, a 2 = Trở_sọỳ_2, a n = Trở_sọỳ_n; Trong õoù: a 1 . a n laỡ tón caùc hũng sọỳ, caùc trở _ sọỳ _ 1,2, .,n laỡ caùc giaù trở gaùn cho caùc tón hũng a 1 .a n . F Vờ duỷ mọỹt caùch khai baùo hũng sọỳ: Const Pi = 3.1416, Max = 500; 4 Vờ duỷ: chổồng trỗnh tờnh chu vi õổồỡng troỡn coù sổớ duỷng hũng sọỳ Pi do ta õởnh nghộa: Program TinhCV_DT_HT; Const Pi = 3.1416; Var R :Real; Begin Giaùo trỗnh Lỏỷp trỗnh Pascal cn baớn 12 Trang 12 Write ( Nhap ban kinh hinh tron : ); Readln (R); Writeln ( Dien tich hinh tron = , Pi * R * R ); Writeln ( Chu vi hinh tron = , 2 * R * Pi); Readln; End. ệ Ghi chuù: - Ta traùnh vióỳt: z := Exp(1.23) + Sin(2.34) * Sin(2.34); - Ta seợ thỏỳy tai haỷi ngay vỗ khi muọỳn tờnh laỷi z vồùi giaù trở mồùi cuớa x , vờ duỷ x = 1.55 , khọng leợ laỷi õi thay hóỳt 3 vở trờ vồùi 2.34 (laỡ giaù trở cuỷ thóứ cuớa x maỡ ta õaợ khọng sổớ duỷng hũng sọỳ) thaỡnh 1.55 !! - Trong chổồng trỗnh trón, baỷn coù thóứ tọỳi ổu hoaù thóm õóứ chổồng trỗnh chaỷy nhanh hồn bũng caùch thay hai lỏửn tờnh Sin(x) bũng mọỹt lỏửn. Cuỷ thóứ, ta thổỷc hióỷn nhổ sau: t := Sin(x); z := Exp(a + t * t - x); Taùc phong tọỳi ổu hoaù naỡy seợ rỏỳt coù ờch cho baỷn khi baỷn coù mọỹt chổồng trỗnh vồùi khọỳi lổồỹng tờnh toaùn õọử sọỹ, coù thóứ chaỷy vaỡi ngaỡy õóm lión tuỷc nhổng nóỳu bióỳt tọỳi ổu ngay tổỡ õỏửu thỗ seợ giaớm bồùt xuọỳng coỡn mọỹt ngaỡy chúng haỷn. Luùc naỡy baỷn mồùi thỏỳu hióứu tọỳi ổu hoaù õóứ laỡm gỗ ? II. Bióỳn sọỳ: 1. Khaùi nióỷm: - Laỡ õaỷi lổồỹng maỡ giaù trở cuớa noù coù thóứ thay õọứi trong quaù trỗnh thổỷc hióỷn chổồng trỗnh . Bióỳn õổồỹc khai baùo bũng tổỡ khoaù VAR. - Bióỳn laỡ tón cuớa mọỹt vuỡng bọỹ nhồù lổu trổợ dổợ lióỷu. - Bióỳn õổồỹc truy xuỏỳt trong chổồng trỗnh thọng qua tón bióỳn. - Bióỳn laỡ mọỹt cỏỳu truùc ghi nhồù dổợ lióỷu vỗ vỏỷy phaới õổồỹc quy õởnh theo mọỹt kióứu dổợ lióỷu naỡo õoù, vờ duỷ kióứu Integer, Byte, Char, . 2. Cuù phaùp khai baùo cho caùc bióỳn: VAR Tón_bióỳn_1, Tón_bióỳn_2, Tón_bióỳn_n : Kióứu_dổợ_lióỷu_cuớa_bióỳn; Trong õoù: Tón _ bióỳn _ 1 , Tón_bióỳn_2, Tón_bióỳn_ n laỡ tón caùc bióỳn cỏửn khai baùo õóứ sổớ duỷng trong chổồng trỗnh, Kióứu _ dổợ _ lióỷu _ cuớa _ bióỳn laỡ mọỹt trong caùc kióứu dổợ lióỷu – Giạo trçnh Láûp trçnh Pascal càn bn — – 13 — Trang 13 chøn (â âỉåüc nãu trong pháưn II ca bi 2) ca Pascal hồûc do ngỉåìi dng âënh nghéa. F Vê dủ mäüt cạch khai bạo biãún: Var a,b : Integer; c : Real; Ten : String [10]; 4 Vê dủ: chỉång trçnh tênh täøng hai säú ngun âỉåüc nháûp tỉì bn phêm. Trong bi ny, ta cáưn khai bạo hai biãún a v b âãø tênh toạn. Uses CRT; Var a, b : Integer; Begin ClrScr; Write( ‘ Nhap so thu nhat : ‘ ); Readln(a); Write( ‘ Nhap so thu hai : ‘ ); Readln(b); Write( ‘ Ket qua : ‘, a ,’ + ‘, b ,’ = ‘, a + b); Readln; End. III. Biãøu thỉïc: Mäüt biãøu thỉïc âỉåüc tảo båíi cạc toạn tỉí (phẹp toạn) v cạc toạn hảng dng âãø thãø hiãûn mäüt cäng thỉïc toạn hc. Toạn hảng cọ thãø l hàòng, hm hồûc biãún . 4 Vê dủ: Sau khi khai cọ bạo: Const Max = 120; Var x: Integer; ta cọ thãø viãút biãøu thỉïc sau: 5 + Max * Exp(x); Trong âọ: + v * l hai toạn tỉí, cạc hàòng säú 5 , Max v hm Exp(x) l cạc toạn hảng. Ư Chụ : - Mäüt hàòng, mäüt biãún, mäüt hm cng âỉåüc xem l biãøu thỉïc, âọ l biãøu thỉïc âån gin . - Cạc phẹp toạn trong mäüt biãøu thỉïc âỉåüc sàõp xãúp theo thỉï tỉû ỉu tiãn nhỉ sau: – Giạo trçnh Láûp trçnh Pascal càn bn — – 14 — Trang 1 4 + Cạc phẹp toạn mäüt ngäi âỉåüc ỉu tiãn thỉï nháút l: dáúu dỉång (+), dáúu ám (- ), phẹp ph âënh (not). + Cạc phẹp toạn nhán chia: nhán (*), chia (/) , láúy pháưn ngun (div), láúy pháưn dỉ (mod), phẹp v (and). + Cạc phẹp cäüng trỉì: cäüng (+), trỉì (-), phẹp hồûc (or). + Cạc phẹp so sạnh: <, <= , > , >= , = , < >. - Biãøu thỉïc trong càûp dáúu ngồûc ( ) âỉåüc thỉûc hiãûn trỉåïc tiãn nãúu cọ. - Cạc toạn tỉí cng thỉï tỉû ỉu tiãn thç âỉåüc thỉûc hiãûn tỉì trại qua phi. 4 Vê dủ viãûc sỉí dủng cạc toạn tỉí v toạn hảng: 3 + 5 * 3 = 18 (3 + 5) * 3 = 24 5 / 2 * 3 = 7.5 (5 + 2 > 4) and not (true or (5 - 3 = 8)) = false ( -b + sqrt(d) ) / 2 * a ( cọ nghéa: ) IV. Cáu lãûnh âån gin: Sau pháưn khai bạo dỉỵ liãûu l pháưn lãûnh ca chỉång trçnh. Pháưn ny xạc âënh cạc cäng viãûc m chỉång trçnh phi thỉûc hiãûn xỉí l cạc dỉỵ liãûu â âỉåüc khai bạo. Cáu lãûnh âỉåüc chia thnh hai loải: - Cáu lãûnh âån gin: + Lãûnh gạn (:=) + Lãûnh Nháûp - Xút (READ, READLN, WRITE, WRITELN). + Gi th tủc. + Lãûnh nhy (GOTO). - Cáu lãûnh cọ cáúu trục: + Lãûnh ghẹp (BEGIN . END) + Lãûnh lỉûa chn (IF . ELSE, CASE . OF) + Lãûnh làûp (FOR, REPEAT . UNTIL, WHILE . DO) + Lãûnh WITH. Ư Ghi chụ: Näüi dung bi ny chè âãư cáûp âãún cạc lãûnh âån gin. Cạc lãûnh cọ cáúu trục âỉåüc trçnh by åí bi 4. 1. Lãûnh gạn: a db 2 +− – Giạo trçnh Láûp trçnh Pascal càn bn — – 15 — Trang 1 5 Lãûnh gạn dng âãø gạn giạ trë ca mäüt biãøu thỉïc (cọ thãø l hm, biãún hồûc giạ trë) cho mäüt biãún. Cụ phạp: Biãún := biãøu_thỉïc; F Âáưu tiãn, mạy tênh giạ trë ca biãøu thỉïc åí vãú phi, sau âọ , giạ trë tênh âỉåüc tỉì vãú phi âỉåüc gạn cho vãú trại (biãún). Ư Chụ : - Vãú trại ca lãûnh gạn chè cọ thãø l biãún. Vê dủ: viãút x + y = 7; l sai vç vãú trại ca cáu lãûnh ny l mäüt biãøu thỉïc chỉï khäng phi l mäüt biãún . - Kiãøu giạ trë ca biãøu thỉïc (hm, biãún hồûc giạ trë) åí vãú phi phi trng våïi kiãøu ca biãún â âỉåüc khai bạo , trỉì mäüt säú trỉåìng håüp nhỉ biãún kiãøu thỉûc (Single, Real, Double) cọ thãø nháûn giạ trë kiãøu ngun (Shorint, Byte, Integer, Word, Longint), . do táûp håüp säú ngun l táûp con ca säú thỉûc. 4 Vê dủ: Sau khi â cọ khai bạo: Var c1, c2 : Char; i, j : Integer; x, y : Real; thç ta cọ thãø thỉûc hiãûn cạc phẹp gạn sau: c1 := ‘A’; c2 := Chr(97); i := (23 + 6) * 2 mod 3; j := Round(20 / 3); x := i; y := j; 2. Lãûnh Xút: Lãûnh xút dng âãø in lãn mn hçnh cạc dỉỵ liãûu, kãút qu hay cạc thäng bạo. Cụ phạp (1). WRITE(Biãøu_thỉïc_1, Biãøu_thỉïc_2, ., Biãøu_thỉïc_n); (2) . WRITELN(Biãøu_thỉïc_1, Biãøu_thỉïc_2, ., Biãøu_thỉïc_n); (3). WRITELN; – Giạo trçnh Láûp trçnh Pascal càn bn — – 16 — Trang 1 6 Dảng (1) : In lãn mn hçnh giạ trë cạc biãøu thỉïc tải vë trê hiãûn hnh ca con tr theo thỉï tỉû viãút trong lãûnh. Sau khi thỉûc hiãûn xong lãûnh WRITE( . ); con tr âënh vë tải sau giạ trë biãøu _ thỉïc _ n ca cáu lãûnh. Dảng (2) : In lãn mn hçnh giạ trë cạc biãøu thỉïc tải vë trê hiãûn hnh ca con tr theo thỉï tỉû viãút trong lãûnh. Sau khi thỉûc hiãûn xong lãûnh WRITELN( . ); con tr âënh vë tải âáưu dng kãú tiãúp. Dảng (3) : Dng âãø chuøn con tr xúng dng. 4 Vê dủ: Var a, b : Byte; Begin A := 2; B := 4; Write ( ‘ Day la ket qua phep nhan A voi B: ‘, a * b); Writeln; Writeln( ‘ * * * * ‘ ); Write ( ‘ ------------------------------------------------- ‘ ); End. 1 Kãút qu sau khi chảy chỉång trçnh trãn: Day la ket qua phep nhan A voi B: 8 * * * * -------------------------------------------- Ư Chụ : Cọ hai dảng viãút trong th tủc Write v Writeln l viãút khäng quy cạch v viãút cọ quy cạch. Âiãưu ny ta xẹt qua tỉìng kiãøu dỉỵ liãûu. (1). Vê dủ vãư cạc dảng viãút khäng cọ quy cạch: Uses CRT; Var I : Integer; R : Real; Ch : Char; B : Boolean; Begin I := 123; R := 123.456; Ch := ‘A’; B := 2<5; Writeln( I ); {1} – Giạo trçnh Láûp trçnh Pascal càn bn — – 17 — Trang 17 Writeln( R); {2} Writeln( 3.14 ); {3} Writeln( 20 * 2.5); {4} Writeln; Writeln( Ch ); {5} Writeln( B ); {6} Writeln( #7 ); {7} End. F Cạch viãút khäng quy cạch s canh näüi dung theo lãư bãn trại. - Säú ngun âỉåüc viãút ra våïi säú chäù âụng bàòng säú chỉỵ säú gạn vo, kãø tỉì vë trê bãn trại. Lãûnh {1} in ra: 123 - Säú thỉûc âỉåüc viãút ra våïi trçnh tỉû sau: mäüt dáúu cạch , tiãúp âãún l mäüt säú pháưn ngun, dáúu cháúm, 10 vë trê säú tháûp phán, tiãúp âãún l chỉỵ E , dáúu ca pháưn m (+,-), hai säú biãøu diãùn giạ trë pháưn m: + Lãûnh {2}in ra: 1.2345600000E+02 + Lãûnh {3}in ra: 3.1400000000E+00 + Lãûnh {4}in ra: 5.0000000000E+01 - Kiãøu k tỉû in bçnh thỉåìng, mäüt k tỉû chiãúm mäüt chäù. Lãûnh {5}in ra: A - Kiãøu Boolean in ra mäüt trong hai tỉì True hồûc False . Lãûnh {6}in ra: True - Lãûnh {7}: phạt ra mäüt tiãúng Beep åí loa. (2). Vê dủ vãư cạc dảng viãút cọ quy cạch: Var I : Integer; R , Z : Real; Ch : Char; B : Boolean; Begin I := 123; R := 123.456; Ch := ‘A’; B := 2<5; Z := 543621.342; Writeln( I :8 ); {1} Writeln( -23564:8 ); {2} Writeln( R:12:6); {3} – Giạo trçnh Láûp trçnh Pascal càn bn — – 18 — Trang 1 8 Writeln( 35.123456789:12:6 ); {4} Writeln( R:12 ); {5} Writeln( Ch:5); {6} Writeln(‘ABC’:5); {7} Writeln( B:7 ); {8} Writeln( Z:1:2 ); {9} End. F Cạch viãút cọ quy cạch s canh näüi dung theo lãư bãn phi, nãúu thỉìa chäù thç pháưn lãư bãn trại âỉåüc âãø tràõng. - Lãûnh {1} v {2} dnh 8 k tỉû trãn mn hçnh âãø in cạc säú ngun. - Lãûnh {3} v {4} dnh 12 k tỉû trãn mn hçnh âãø in cạc säú thỉûc våïi 6 säú l pháưn tháûp phán, kãút qu in ra: 123.456000 v 35.123457 (do pháưn tháûp phán >6 chäù nãn âỉåüc lm trn säú). - Lãûnh {5}in giạ trë ca R våïi 12 chäù dảng m säú: 1.23456E+02 - Lãûnh {6},{7} dnh 5 chäù âãø in chỉỵ A v xáu k tỉû ABC. - Lãûnh {8} dnh 7 k tỉû âãø in giạ trë True. - Lãûnh {9} in säú thỉûc Z nhỉ sau: Writeln( Z : m : n ). Nãúu m < n thç säú thỉûc Z âỉåüc in våïi n säú l, cn säú chäù trãn mn hçnh thç tu vo âäü di ca säú Z . Trong trỉåìng håüp m > n v âäü di ca säú låïn hån m thç säú âỉåüc tỉû âäüng canh phi. Trỉåìng håüp m > n v âäü di ca säú nh hån m thç säú âỉåüc canh phi dỉ bao nhiãu k tỉû mạy âãø träúng bãn trại. Ư Trỉåìng håüp trong cáu cáưn hiãøn thë dáúu ‘ thç ta phi viãút hai dáúu ‘ liãưn nhau (“). 4 Vê dủ: Write( ‘ Don‘’t forget me ! ’ ); 1 Kãút qu: Trãn mn hçnh hiãøn thë: Don‘t forget me ! Ư Ghi chụ: Mún in dỉỵ liãûu ra mạy in ta dng lãûnh Write hồûc Writeln våïi tham säú LST vo trỉåïc. Biãún LST âỉåüc khai bạo trong Unit Printer , vç váûy, âãø sỉí dủng lãûnh in ta cáưn phi khai bạo thỉ viãûn Printer trong chỉång trçnh. 4 Vê dủ: Uses Printer; – Giạo trçnh Láûp trçnh Pascal càn bn — – 19 — Trang 19 Begin Writeln(Lst,’ Welcome to Turbo Pascal Language ! ‘ ); End. 1 Kãút qu: Khi chảy mạy in ra giáúy cáu Welcome to Turbo Pascal Language ! 3. Lãûnh Nháûp: Lãûnh nháûp dng âãø âỉa dỉỵ liãûu tỉì bn phêm vo cạc biãún. Cụ phạp: (1) Readln(Biãún_1, biãún_2, biãún_n); (2) Read(Biãún_1, biãún_2, biãún_n); Khi thỉûc hiãûn lãûnh ny, mạy dỉìng lải chåì ngỉåìi dng nháûp vo â n láưn nháûp dỉỵ liãûu tỉång ỉïng våïi n biãún. Ngoi ra, ta cọ thãø sỉí dủng th tủc Readln âãø dỉìng chỉång trçnh v chåì ngỉåìi dng áún mäüt phêm báút k âãø tiãúp tủc, k tỉû âỉåüc áún khäng hiãøn thë lãn mn hçnh. Ư Chụ : - Cạc biãún trong th tủc Readln phi thüc kiãøu ngun, thỉûc, k tỉû hồûc xáu k tỉû . Do âọ, ta khäng thãø nảp tỉì bn phêm giạ trë True hồûc False cạc biãún kiãøu Boolean . - Dỉỵ liãûu nháûp vo phi tỉång ỉïng våïi kiãøu â khai bạo. Phi áún phêm Enter âãø thỉûc hiãûn lãûnh nháûp sau khi g xong giạ trë cáưn nháûp. 4 Vê dủ 1: Våïi a, b l hai biãún ngun, x l biãún thỉûc. Xẹt âoản chỉång trçnh sau: Readln(a, b); Readln(x); Nãúu ta g cạc phêm: 2 24 6.5 14 < Enter > 1 Kãút qu: a nháûn giạ trë 2, b nháûn giạ trë 24 . Cạc k tỉû cn lải bë b qua v khäng âỉåüc xẹt trong th tủc Readln(x) tiãúp theo. Nhỉ váûy, mạy dỉìng lải åí cáu lãûnh Readln(x) âãø chåì nháûp säú liãûu cho biãún x. 4 Vê dủ 2: Gi sỉí ta â khai bạo: Var s1, s2, s3 : String[5]; Xẹt cáu lãûnh: Readln(s1, s2, s3); Nãúu ta khäng nháûp k tỉû m chè áún < Enter > thç c 3 biãún s1, s2, s3 âãưu l xáu räùng. – Giạo trçnh Láûp trçnh Pascal càn bn — – 20 — Trang 20 Nãúu ta g ABCDE1234567 v áún phêm < Enter > thç: s1 = ‘ABCDE’, s2 = ‘12345’, s3 = ‘67’. 4 Vê dủ 3: Viãút chỉång trçnh tênh diãûn têch S ca hçnh thang våïi âạy di a , âạy ngàõn b , chiãưu cao h , táút c âỉåüc nháûp tỉì bn phêm. Program DienTichHinhThang; Uses CRT; Var a, b, h, s : Real; Begin ClrScr; Write( ‘ Nhap gia tri cua a, b, h :‘ ); Readln(a, b, h); S := (a + b) * h / 2; Write( ‘ Dien tich S = ‘,S:1:5); Readln; End. 1 Kãút qu khi chảy chỉång trçnh: Nhap gia tri cua a, b, h : 5 3 4 < Enter > Dien tich S = 16.00000 Ư Chụ : Våïi cạch láúy 3 giạ trë bàòng mäüt lãûnh Readln( a, b, c); thç cạc giạ trë ta cáưn nháûp cho mäùi biãún phi cạch våïi cạc giạ trë khạc êt nháút mäüt k tỉû tràõng. Ta cọ thãø nháûp a, b, c bàòng 3 lãûnh Readln(a); Readln(b); Readln(c); _________ o ² o _________ BI 4: CẠC LÃÛNH CỌ CÁÚU TRỤC TRONG NGÄN NGỈỴ PASCAL I. Lãûnh ghẹp: Lãûnh ghẹp l mäüt nhọm cạc cáu lãûnh âỉåüc âàût giỉỵa hai tỉì khoạ BEGIN v END . Lãûnh ghẹp âỉåüc thỉûc hiãûn bàòng cạch thỉûc hiãûn tưn tỉû cạc cáu lãûnh nàòm giỉỵa BEGIN v END. Cụ phạp: Begin <cáu lãûnh 1>; <cáu lãûnh 2>; . bióỳn laỡ mọỹt trong caùc kióứu dổợ lióỷu – Giạo trçnh Láûp trçnh Pascal càn bn — – 13 — Trang 13 chøn (â âỉåüc nãu trong pháưn II ca bi 2) ca Pascal hồûc. BIỉU THặẽC VAè CU LNH N GIAN TRONG NGN NGặẻ PASCAL I. Hũng sọỳ: 1. Khaùi nióỷm: - Hũng sọỳ laỡ caùc giaù trở khọng thay õọứi trong quaù trỗnh chaỷy chổồng