giao trinh tin dai cuong

36
TRƯỜNG ĐẠI HỌC XÂY DỰNG KHOA CÔNG NGHỆ THÔNG TIN ------------ ------------ GIÁO TRÌNH MÔN HỌC: NHẬP MÔN TIN HỌC PHẦN III – NGÔN NGỮ LẬP TRÌNH PASCAL -1 Giảng viên: ĐÀO TĂNG KIỆM Bộ môn : TIN HỌC XÂY DỰNG Hà nội 2011 ----------

Upload: da-quy-thien-nhien

Post on 08-Nov-2015

215 views

Category:

Documents


0 download

DESCRIPTION

Phan III_Pascal -1chuong 1: các khái niệm cơ bản1 ngôn ngữ lập trình pasca

TRANSCRIPT

  • TRNG I HC XY DNG KHOA CNG NGH THNG TIN

    ------------ ------------

    GIO TRNH

    MN HC: NHP MN TIN HC

    PHN III NGN NG LP TRNH PASCAL -1

    Ging vin: O TNG KIM B mn : TIN HC XY DNG

    H ni 2011

    ----------

  • Gio trnh Nhp mn Tin hc: Phn III Ngn ng lp trnh Pascal - 1 GVC: o Tng Kim

    B mn Tin hc Xy dng 2

    PHN 3

    NGN NG LP TRNH PASCAL

    Chng 1 CC KHI NIM C BN

    I. Ngn ng lp trnh Pascal:

    1. Gii thiu chung v ngn ng lp trnh: T trc ti nay c hng nghn ngn ng lp trnh khc nhau c thit k v s dng. Hng nm li c nhiu ngn ng mi ra i. Cc ngn ng c dng ph bin c th k n : Ngn g Ada, Angol, APL, Asembly Basic, C, C++,Cobol, Fortran, Delphi, Java, Lisp,Pascal,Perl,PHP,Prolog, Python, Ruby S pht trin ca ngn ng gn lin vi s pht trin ca tin hc v phn cng. Mi loi ngn ng thch hp vi mt lnh vc v mt s dng bi ton nht nh. V d, trong khi k thut, cc ngn ng c s dng nhiu l Algol, Fortran, C++, Basic, Visual Basic, Java, Pascal Cc ngn ng lp trnh c th xy dng da trn Lp trnh tuyn tnh, Lp trnh c cu trc : Pascal; Lp trnh hng i tng : Java, Delphi,Visual Basic; Lp trnh trn nn Web: HTML.

    2. Cc u im ca Pascal v yu cu h thng: - Pascal l do Niklaus Wirth pht trin da trn Algol nm 1970, n l ngn ng lp trnh c cu trc. Pascal ph hp vi cc dng bi ton k thut v d din t cc s thut ton, ph hp cho vic ging dy trong cc trng ph thng v i hc. - Vi cc phin bn khc nhau ca Pascal n c th dng trong cc h iu hnh DOS, Window c cng c mt s h iu hnh dng Pascal vit (nh Macintosh). - Pascal l ngn ng lp trnh nh kiu v c trnh bin dch mnh, c th gii c cc bi ton qui. - Tu theo tng phin bn ca Pascal m c th chy trn mi trng DOS hoc Window 3. Khi ng v giao din Turbo Pascal: T DOS : C:\ > CD TP

    C:\ TP > CD BIN

    C:\ TP \ BIN > TURBO

    Trn mn hnh xut hin mn hnh son tho ca Turbo Pascal. Bn c th bt u g

    chng trnh .

    T WINDOWS c th bng nhiu cch :

    Chn v nhn vo biu tng ca PASCAL trn mn hnh (nu c)

  • Gio trnh Nhp mn Tin hc: Phn III Ngn ng lp trnh Pascal - 1 GVC: o Tng Kim

    B mn Tin hc Xy dng 3

    Nhn Start Run Browse m hp hi thoi, t Look in tm th mc v tp cha

    Turbo Pascal ( Turbo.exe ) nhn OPEN s hin mn hnh Pascal (nn xanh):

    II. Cc thnh phn c bn ca ngn ng:

    1. K hiu c s ca Pascal B k t : - Cc ch : 26 ch ci t A-W khng phn bit ch hoa v ch thng. - S t 0-9 - Cc du : . , ( ) / [, ], *, v mt s k t c bit. Khng c s dng cc k hiu

    ton hc v vt l nh , , , Trong : du phy (,) dng nhn cch cc thnh phn trong danh sch; Du chm (.) ngn phn nguyn- thp phn; du nht n ( ..) gii hn hng xu k t; Du ngoc trn ( ( ..) ) cha cc biu thc, i s ca hm ; du bng (=) php so snh; du chm phy (;) dng ngn cch cc cu; du ngoc vung ( [ ] ) gii hn ch s ca mng.

    - Du ca php tnh s hc : + - / * Div Mod - Du ca php tnh so snh: > ,= ,

  • Gio trnh Nhp mn Tin hc: Phn III Ngn ng lp trnh Pascal - 1 GVC: o Tng Kim

    B mn Tin hc Xy dng 4

    T chun: l cc t m Pascal t tn sn nhng ngi s dng c th thay i c, nh: READ, WRITE, INTEGER, REAL

    Tn (Identifier): Mi i lng s dng trong chng trnh Pascal (hng, bin, kiu, hm, tn chng trnh ) u phi t tn chng trnh c th nhn dng c. Tn do ngi s dng t t, tu tng phin bn ca Pascal m qui nh v tn l khc nhau.Vi Turbo 7.0 tr ln, tn c di tu , c th n 127 k t, nhng ch c 40 k t u l c ngha (phn bit s khc nhau gia cc tn). Thng thng tn t ngn v vit tt cho ngha ca cc hm, bin, kiu cho d nhn dng.

    Du chm phy v li gii thch: - Kt thc mi cu lnh ca Pascal l du ; C th vit nhiu lnh trn mt dng v ngn cch nhau bng du ;. Sau cc t khai bo nh Var, Type, ConstBegin khng c du ; - Trong chng trnh, ngi s dng c th a vo mt s dng gii thch cho tng phn ca chng trnh, hoc gii thch cho cc bin, qu trnh thc hin , nhng dng ny ch hin trong listing chng trnh, khng c tc dng vi trnh dch v qu trnh thc hin. Nhng dng ny c t trong cp ngoc { } hoc {* *} v s hin mu ghi nht nhn bit. Khi gp nhng dng ny chng trnh b qua phn bin dch v thc hin.

    2. Hng v bin: Hng l mt i lng c gi tr khng i trong cc ln thc hin chng trnh.

    Hng c th s dng qua mt tn v c gn gi tr c th. Cc tn ca hng tham gia trong chng trnh s t ng c gn gi tr khai bo. Khi cn thay i gi tr ca hng, ch cn thay trong phn khai bo, chng trnh s t ng cp nht.

    Bin l mt i lng c gi tr thay i trong mi ln thc hin chng trnh. Bin c th l bin n (m,i), bin mng (A[i], B[i,j]), bin bn ghi (DS[i].HT)Tt c cc bin dng trong chng trnh u phi t tn (khc nhau) v phi khai bo. Tn bin dng xc lp quan h gia bin, a ch b nh lu gi bin.

    3. Ton t v biu thc: Ton t l du cc php tnh ca cc php ton s hc, quan h, logic, xu, dng

    kt ni cc hng, bin, hm thnh cc biu thc phc tp. Biu thc l mt thnh phn hu nh c mt trong mi chng trnh. N c th l

    mt hng, mt bin, hoc kt hp gia hng, bin, hm mu v cc ton t. Pascal c 4 loi biu thc: biu thc s hc, biu thc so snh (quan h), biu thc xu, biu thc logic. Ty tng loi biu thc m kt qu ca n c th l mt gi tr s, xu hoc nhn mt trong hai gi tr logic ng (True) v sai (False).

    4. Hm mu v th tc: Hm mu: l nhng modul chng trnh, c vit sn, c dch v ci t trong

    th vin ca chng trnh. Khi s dng ngi dng ch vic gi n ra qua tn hm v a vo cc i s (t trong cp ngoc trn) theo qui nh ca chng trnh. Sau khi

  • Gio trnh Nhp mn Tin hc: Phn III Ngn ng lp trnh Pascal - 1 GVC: o Tng Kim

    B mn Tin hc Xy dng 5

    tnh ton, chng trnh tr li kt qu ti v tr ca hm mu. Hm mu c th c gi ring hoc l mt thnh phn trong biu thc. Mi loi biu thc li c mt s hm mu khc nhau.

    Th tc: cng ging nh hm mu, n cng dng thc hin mt nhim v no , c Pascal vit sn hoc ngi s dng t to v sau c th c s dng nhiu ln qua tn v cc tham s (khng bt buc).

    5. Cc lnh: Lnh l mt trong cc thnh phn quan trng to nn chng trnh. Lnh dng xc

    nh cc cng vic m chng trnh cn thc hin. Lnh trong Pascal phn thnh 2 nhm: Lnh n gin v lnh c cu trc. Lnh thc hin v lnh khng thc hin.

    Lnh n gin l lnh khng cha lnh khc : lnh gn, cc lnh nhp, xut d liu, li gi th tc, chng trnh con.

    Lnh c cu trc l lnh c cha cc lnh khc trong : cc lnh iu khin, chu trnh

    Lnh khng thc hin: l cc lnh khai bo, khng thc hin g, khng c kt qu. Lnh thc hin: l cc lnh thc hin mt hoc nhiu thao tc no theo yu cu ca

    chng trnh. 6. Cu trc chung ca chng trnh Pascal: Ni chung chng trnh Pascal c 3 phn:

    Phn tiu : khai bo tn ca chng trnh chnh hoc chng trnh con (khng bt buc): PROGRAM Tn_CT_chnh ; PROCEDURE Tn_CT_Con ; .

    Phn khai bo: tu tng chng trnh c th m c th c phn ny v s lng nhiu t khc nhau, theo mt trt t nht nh (Label,Const, Type, Var, Procedure). Mi hm, bin, kiu s dng trong chng trnh u phi bo theo nhng qui nh ca chng trnh (xem chng 2).

    Phn thn chng trnh: Mi chng trnh u phi c phn thn, bt u bng BEGIN v kt thc bng END. Trong thn chng trnh thng thng c 3 mng chnh :

    - Nhp cc d liu ban u - Tnh ton, x l cc yu ca bi ton - Xut, in kt qu ra mn hnh, giy in, ghi vo tp trn a. Ngoi ra c th thm cc dng ch gii. V d: Program Chuong_trinh_con_sap_xep_ma_tran;

    { Phan khai bao }

    Type k1=array[1..15,1..15] of real; var n,m,i,j,k:integer; a:k1; c:real;

  • Gio trnh Nhp mn Tin hc: Phn III Ngn ng lp trnh Pascal - 1 GVC: o Tng Kim

    B mn Tin hc Xy dng 6

    Procedure NhapDL ( Var n,m:integer;Var A:k1); begin write('n,m=?'); readln(n,m); for i:=1 to n do for j:=1 to m do begin write('A[',i,',',j,']=?'); readln(a[i,j]); end end; . . . . { Phan than chuong trinh } BEGIN { Cac loi goi chuong trinh con } NhapDL(n,m,A); Xuly(n,m,A); InKetqua (n,m,A); readln END.

  • Gio trnh Nhp mn Tin hc: Phn III Ngn ng lp trnh Pascal - 1 GVC: o Tng Kim

    B mn Tin hc Xy dng 7

    Chng 2 CC KIU D LIU V CCH KHAI BO BIU THC

    I. Cc kiu d liu

    1. Khi nim: Mi i lng tnh ton trong chng trnh u c 3 c trng : tn- kiu d liu v gi tr. Pascal l ngn ng lp trnh c nh kiu mnh. Kiu d liu xc nh cch ghi, nhn v x l d liu trong my. D liu c 2 loi: D liu chun (khng c cu trc) v D liu c cu trc.

    D liu chun l DL khng th phn nh ra thnh cc b phn, n l d liu nguyn thy hay v hng.

    D liu c cu trc l DL c lp ra t DL nguyn thy theo mt cch no , c cu trc phc tp hn. Khi dng DL ny, ngi lp trnh phi m t trc cu trc chng trnh c cch x l ring.

    Ngoi ra Pascal cn c kiu d liu con tr l loi DL c cu trc thay i trong qu trnh x l.

    2. S cu trc cc kiu d liu: Kiu chun (Nguyn Thc Logic -K t)

    Kiu v hng Kiu t to - Min con (Subrange) Lit k ( Enumerated) Kiu c cu trc - Kiu mng (Array) - Kiu tp hp (Set) - Kiu bn ghi (Record) - Kiu tp (File) Kiu xu (String) Kiu con tr ng (Pointer)

    3. Cch khai bo cc kiu d liu: Khai bo trc tip: i vi cc d liu v hng, hoc kiu ca d liu xc nh,

    c th khai bo trc tip theo dng : Danh sch d liu : kiu d liu; V d : Var I, m : integer; T: real; A : aray [1 .. 20 ] of real;

    Khai bo gin tip: cch khai bo ny c th p dng cho mi loi d liu xc nh kiu hoc cha xc nh kiu. Dng cch ny, bc u l m t kiu cho DL (to kiu mi) bng t kha Type, sau khai bo.

    V d: Type CS = integer ;

  • Gio trnh Nhp mn Tin hc: Phn III Ngn ng lp trnh Pascal - 1 GVC: o Tng Kim

    B mn Tin hc Xy dng 8

    VT= aray [1.. 20] of real; Var m,i : CS ; A, B : VT; II. Cc d liu n gin chun (v hng) Khai bo

    1. D liu nguyn: L kiu biu din mt min s nguyn. Gi tr ti a ca n ph thuc vo phm

    vi ca my. S nguyn c th dng cho cc hng, bin, hm, kiu. S nguyn c th dng trong cc php tnh s hc ( +, -, *, div, mod), cc php tnh

    so snh (>, =, ,

    =, ,

    =,

  • Gio trnh Nhp mn Tin hc: Phn III Ngn ng lp trnh Pascal - 1 GVC: o Tng Kim

    B mn Tin hc Xy dng 9

    Var A: array [ max] of real; TD,TC : thang;

    5. Kiu lit k: L mt tp hp hu hn cc gi tr t trong cp ngoc trn, c sp xp theo mt

    th t ty ngn cch nhau bi du phy. Cch khai bo: kiu lit k cng c th khai bo trc tip hoc gin tip c dng

    Tn kiu = (Gi tr1, gi tr2,. . . gi tr n); V d: Type Caukien = ( tuong, cot, dam,san, panen )

    Var Btong, Thep: caukien ; 6. Kiu xu k t (String): Xu l mt dy k t c di ti a l 255 k t ( theo bng m ASCII). Xu c th

    dng cha cc tiu , li nhc (hng xu); cha cc d liu ch, s, du nh h tn, a ch, Xu c th l hng, bin (n,mng).

    Khai bo xu dng t kha STRING . Cch khai bo: Danh sch d liu: String [n] ; trong n l di ca xu V d Ten:= Dai hoc xay dung ;

    Var HT : array [1 .. 10 ] of string [30] ; III. Cc kiu d liu c cu trc Cch khai bo

    1. Khi nim : Trong Turbo Pascal c 6 kiu d liu c cu trc: Array, Set, Record, File, String, Pointer. Mun lm vic vi cc d liu ny, trc tin phi khai bo tng minh chng, mt s loi c th khai bo trc tip nh Array, String, cn mt s khc phi khai bo gin tip (m t cu trc m t kiu ca d liu trc khi khai bo chng qua t kha Type). 2. Khai bo - m t kiu: m t mt kiu d liu mi do ngi lp trnh t to dng t kha TYPE c cu

    trc nh sau: TYPE Tn kiu = M t cu trc V d: Type

    Thang = [1..12] ; VT = array [1.. 50] of Real ; Hoso = Record HT : string [25] ; NS: integer; LT : array [1.. 30 ] of real ; End;

  • Gio trnh Nhp mn Tin hc: Phn III Ngn ng lp trnh Pascal - 1 GVC: o Tng Kim

    B mn Tin hc Xy dng 10

    3. Kiu mng (Array): Khi nim:

    - Mng l loi d liu c cu trc, l mt tp hp cc phn t c cng kiu d liu. Mi mng c mt tn chung v cc ch s phn bit gia cc phn t mng. Mng c th l 1 chiu vc t), 2 chiu (ma trn) hoc n chiu.

    - Cng nh cc bin khc, khi s dng mng, phi khai bo, tuy nhin, khc vi cc bin n, ngoi vic khai bo tn, kiu ca bin mng cn phi khai bo s chiu, kch thc mi chiu ca mng my dnh sn b nh cho cc mng. Mng c th khai bo trc tip trong Var hoc khai bo gin tip qua Type.

    - Cc ch s ca phn t mng phi t trong cp ngoc vung [ ]; Ch s mng phi l s nguyn , c th l cc hng, bin, biu thc n gin. Cc ch s ngn cch nhau bi du phy. V d A[i], C[i, j], B[1] ; HT [i+1] ;

    - Tn v ch s mng c th vit hoa hoc ch thng (nh nhau) Cch khai bo mng:

    - Khai bo trc tip: Var Danh_sch_bin_mng : array [n1 .. n2, m1.. m2, ..] of kiu_phn_t ; Trong n1,m1 l cc ch s u, n2,m2 l cc ch s cui ca mng. Kiu phn t phi l mt trong cc kiu n gin chun hoc kiu mi (th phi khai bo trc ). V d : Var A,B : array [ 1.. 30 ] of real; HT: array [ 1.. 50 ] of string [20]; C: array [ 1.. 30, 1..5 ] of integer ; - Khai bo gin tip: Type Kiu_mng = array [n1 .. n2, m1.. m2, ..] of kiu_phn_t ; Var Danh_sch_bin_mng : Kiu_mng ;

    V d : Type VT1 = array [ 1.. 30 ] of real; VT2 = array [ 1.. 50 ] of string [20]; VT3 = array [ 1.. 30, 1..5 ] of integer ; HS = record HT, DC, Lop : string ; Diem: real ; End;

    Var A,B : VT1 ; HT :VT2 ; C: VT3; DSSV : HS;

    4. D liu kiu bn ghi Khi nim:

    - Bn ghi (Record) l d liu c cu trc trong mi bn ghi c th c nhiu trng (Field), mi trng c th c kiu d liu v cu trc khc nhau (n, mng, bn ghi). - Bn ghi c th l n (1 bn ghi) hoc tp hp vi nhau trong mt mng, trong mi phn t mng l mt bn ghi. - Bn ghi c th lng nhau: trong cc trng ca bn ghi li c th c bn ghi con.

  • Gio trnh Nhp mn Tin hc: Phn III Ngn ng lp trnh Pascal - 1 GVC: o Tng Kim

    B mn Tin hc Xy dng 11

    - Trc khi s dng bn ghi di dng bin (n, mng) , phi khai bo hay m t cu trc bn ghi qua t kha Type. - Tn ca kiu v tn trng bn ghi cng tun theo cch t tn thng thng ca Pascal.

    Cch khai bo - m t cu trc bn ghi: Type Tn_bn ghi = Record Tn trng 1 : Kiu ; Tn trng 2 : Kiu ; . . . . . . . . Tn trng n : Kiu ; End;

    V d: Khai bo gin tip Type

    HosoCB = record Hoten : string [30] ; Diachi : string [ 50 ] ; Gioi_tinh : Char ; SPthang: array [1.. 12] of integer ; Luong : real ; End; Var Canbo: HosoCB ; DS: array [ 1..50] of HosoCB ;

    Khai bo trc tip Var Canbo: record Hoten : string [30] ; Diachi : string [ 50 ] ; Gioi_tinh : Char ; SPthang: array [ 1.. 12 ] of integer ; Luong : real ; End;

    5. D liu kiu tp hp

    Khi nim: Tp hp l mt s phn t c cng mt s tnh cht no , c th l cc s t nhin, hoc mt trong cc kiu d liu v hng (tr kiu thc Real). Trong tp hp khng c phn t trng. S lng phn t cc i trong tp ty thuc vo cu hnh my (vi Turbo Pascal l 256). Mt tp c t trong cp ngoc vung [ ]. Cc thnh phn ca tp ngn cch nhau bi du phy (,).

    Khai bo : tp cng c th khai bo trc tip hoc gin tip qua t kha SET OF

    Khai bo trc tip Var Danh_sch_bin: SET OF < kiu v hng>

    Khai bo gin tip Type Tn_kiu = SET OF < kiu v hng> Var Danh_sch_bin: Tn_kiu

    V d

  • Gio trnh Nhp mn Tin hc: Phn III Ngn ng lp trnh Pascal - 1 GVC: o Tng Kim

    B mn Tin hc Xy dng 12

    Type T1 = Set of 5..10 ; T2 = Set of 7.. 15

    Var Mon _BB: T1 ; Mon_TC :T2 ; Cc php tnh vi tp: Tp c th tham gia cc php ton s hc nh : php gn, php

    hp (+), hiu (-), giao (*) v cc php tnh so snh (, = >= .), V d : Php gn : T:= T1 kt qu : tp T ging ht T1 Php hp : A:= T1+ T2 kt qu A [5 .. 15] : cc phn t thuc T1 hoc T2 Php hiu: B:= T1- T2 kt qu B [5,6] : cc phn t thuc T1khng thuc T2 Php hp : C:= T1* T2 kt qu C [7 .. 10] : cc phn t thuc c T1 v T2 Php so snh T1= T2 kt qu : Sai False Php so snh T1> T2 kt qu : Sai - False Php so snh T1< T2 kt qu : ng True v T1 l tp con ca T2

    IV. Khai bo

    1. Khai bo nhn : Nhn l mt s nguyn khng du (ti a l 4 ch s) mt k t hoc mt tn gi

    ca Pascal c dng lm mc trong chng trnh, nh du v tr cn chuyn n ca chng trnh. Cc cu lnh u c th c gn nhn. Nhn t u dng, cch cu lnh bng du hai chm ( :). Cc nhn khng c trng nhau.

    Khai bo nhn : bng t kha Label, c dng: Label : danh_sch_nhn ; Danh sch nhn : tn cc nhn ngn cch nhau bi du phy.

    V d : Label : 10, A ; 2. Khai bo hng:

    Hng l mt i lng c gi tr khng i trong cc ln thc hin chng trnh. Hng c th s dng qua mt tn v c gn gi tr c th. Cc tn ca hng tham gia trong chng trnh s t ng c gn gi tr khai bo. Khi cn thay i gi tr ca hng, ch cn thay trong phn khai bo, chng trnh s t ng cp nht.

    Cch khai bo: CONST Tn hng = gi tr ; V d : CONST SoPT= 30 ; SoHS= 50 ;

  • Gio trnh Nhp mn Tin hc: Phn III Ngn ng lp trnh Pascal - 1 GVC: o Tng Kim

    B mn Tin hc Xy dng 13

    3. Khai bo bin: Tt c cc bin dng trong chng trnh u phi t tn (khc nhau) v phi khai

    bo. Tn bin dng xc lp quan h gia bin, a ch b nh lu gi bin. Bin l mt i lng c gi tr thay i trong mi ln thc hin chng trnh.

    Cu trc v cch khai bo - Khi nhp d liu, vi mt tn, Bin ch nhn 1 gi tr ti mi thi im gi l bin n. - Vi cng mt tn nhng bin c nhiu phn t khc nhau, ng vi mi phn t l mt gi tr ring gi l bin mng. - Khai bo bin dng t kho VAR. Khai bo bin chng trnh xc lp mi quan h gia tn bin v kiu s c gn v s dng cho bin sau ny. Cch khai bo: VAR Danh_sch_bin: Kiu_bin;

    + Danh sch bin l tp hp nhiu tn bin c cng kiu, ngn cch nhau bi du phy ( , )

    + Kiu ca bin phi l mt trong cc kiu d liu chun (c sn trong Pascal) hoc kiu d liu mi do ngi lp trnh nh ngha trc .

    V d: Var I, m : integer ; A,B,C : real ; X, Y: arrray [ 1.. SoPT ] of real; Z : V1;

    V. Biu thc

    1. Khi nim chung: Biu thc c th l mt hng, mt bin, mt hm mu hoc kt hp cc hng, bin, hm bng cc php tnh (ton t) v cc cp ngoc trn. C 4 loi biu thc: biu thc s hc, biu thc so snh (BT quan h), biu thc xu, biu thc logic. Ty tng loi biu thc m kt qu c th l cc gi tr s, k t hoc mt trong 2 gi tr ng (True) hoc sai (False). 2. Biu thc s hc :

    c im: - C 2 loi, biu thc nguyn v biu thc thc. - Cc du (php tnh) ca bi thc nguyn : +, -, *, div, mod - Cc du (php tnh) ca bi thc nguyn : +, -, *, / Qui tc vit: - Khng vit hai bin hoc hai php tnh lin nhau;

    - Ch s dng cc du ngoc trn, s lng ty Qui tc thc hin: Thc hin cc php tnh trong ngoc t trong ra ngoi. Trong

    cng mt cp ngoc, u tin thc hin: - Thc hin cc hm mu - Cc php nhn, chia, div, mod theo trt t t tri sang phi.

  • Gio trnh Nhp mn Tin hc: Phn III Ngn ng lp trnh Pascal - 1 GVC: o Tng Kim

    B mn Tin hc Xy dng 14

    - Cc php tnh cng, tr t tri sang phi. Ch : - ab khc vi a*b ; b/2a khc vi b/2*a v b/(2*a) - Khng s dng cc k hiu ton hc ,,,v k hiu vt l nh,,

    trong biu thc ca Pascal. - Khng s dng cc ch s trn x2, ch s di x2 trong biu thc. Cc thnh phn ca

    biu thc phi vit trn cng mt dng ( khng c t s, mu s). V d:

    Biu thc ton hc Vit theo Pascal

    (sin()- cos())( x2 +y2) (x+y)

    (sin(alpha) - cos(beta)*( x*x +y*y))/ (sqrt(x+y)

    1 a + b2 c2

    1/( a+ ( sqr(b) /sqr(c) ))

    3. Biu thc so snh (quan h) c im: - L biu thc c hai v c th so snh vi nhau v gi tr hoc th t. Cc

    v ca biu thc so snh c th l biu thc s hc hoc biu thc xu. - Kt qu ca biu thc so snh ch nhn mt trong hai gi tr ng (True) hoc sai

    (False). Cc du (php tnh) ca bi thc so snh: >, >=,

  • Gio trnh Nhp mn Tin hc: Phn III Ngn ng lp trnh Pascal - 1 GVC: o Tng Kim

    B mn Tin hc Xy dng 15

    - Kt qu ca biu thc logic ch nhn mt trong hai gi tr ng (True) hoc sai (False).

    Cc du (php tnh) ca bi thc logic: NOT, AND, OR : ph nh, nhn logic (v), cng logic (hoc).

    Qui tc vit: - Tun theo qui tc ca biu thc s hc, biu thc so snh. - Khng c vit 2 php tnh lin nhau. - Khi kt hp nhiu php tnh phi kt hp vi cc du ngoc trn. Qui tc thc hin: - u tin thc hin cc php tnh s hc theo cc qui c ca

    php tnh s hc. - Thc hin cc php tnh so snh. - Thc hin cc php tnh logic. V d:

    Biu thc ton hc Vit theo Pascal

    Li 45 (L[i] 45) Aij >0 v Aij < Tbc (A[i,j] > 0) AND (A[i,j] < Tbc)

    5. Biu thc xu

    c im: - Trong biu thc xu cc thnh phn ch c th l cc hng, bin, hm xu v cc php ton xu.

    - Cc du (php tnh) ca bi thc xu: php + (ghp) v cc php tnh so snh. - Kt qu ca BT xu c gi tr xu. Qui tc thc hin: - Thc hin cc php tnh trong ngoc t trong ra ngoi. - Thc hin cc hm mu xu - Cc php cng, so snh t tri sang phi.

    6. Hm mu Hm mu l nhng modul chng trnh hay c s dng, c vit sn, dch v ci trong th vin chng trnh dch ca ngn ng. Khi dng, ngi lp trnh ch cn gi n ra theo qui nh: qua tn c t cho hm mu v cc i s trong cp ngoc trn. Kt qu tnh s c tr v ni gi hm mu. Cc i s c th l hng, bin, biu thc.

    Cc hm mu ca biu thc s hc: X l i s K hiu ton

    hc Hm mu K hiu ton

    hc Hm mu K hiu ton

    hc Hm mu

    X2 Sqr (X) X Abs (X) Cos x Cos (X) x Sin x Sin (X) Ln x Ln (X) ex Exp (X)

  • Gio trnh Nhp mn Tin hc: Phn III Ngn ng lp trnh Pascal - 1 GVC: o Tng Kim

    B mn Tin hc Xy dng 16

    Chng 3 MT S LNH C BN CA PASCAL

    I. Cc lnh (th tc) nhp xut (In) d liu

    1. Th tc vit d liu ra mn hnh: 1.1. Mn hnh v con tr: Vng lm vic ca Pascal chim phn ln mn hnh, ngi s

    dng c th g ni dung ca tng chng trnh hoc l ni hin kt qu. Con tr trong mn hnh Pascal nh v v tr lm vic hin thi, n c th ch thay th (overwrite) hoc ch chn (insert). C th dng cc phm mi tn di chuyn con tr n v tr mong mun.

    Trong , cc t kha hin mu trng, cn li cc cu lnh mu vng. Mt s qui c vit trong dng tng qut ca cc cu lnh: < Ni dung > : nhng thnh phn bt buc ca cu lnh. [ ] : nhng thnh phn khng bt buc.

    1.2. Cc th tc in d liu:

    Dng tng qut : WRITE [LN] < Danh sch biu thc> ; WRITELN;

    ngha: - Lnh dng in cc dng vn bn, thng bo, ch gii, cc kt qu tnh ton trn mn hnh,

    - Danh sch biu thc l tp hp cc biu thc ngn cch nhau bi du phy, c th l cc hng, cc bin hoc biu thc n gin (ca mt trong cc loi biu thc). - Nu l gi tr hng, lnh s in nguyn gi tr. - Nu l bin, lnh s in gi tr ca bin c (ang nm trong b nh trong).

  • Gio trnh Nhp mn Tin hc: Phn III Ngn ng lp trnh Pascal - 1 GVC: o Tng Kim

    B mn Tin hc Xy dng 17

    - Nu l biu thc, lnh s tnh ton biu thc v in ln mn hnh kt qu tnh. - Cu trc v cch thc hin ca Write hoc Writeln l ging nhau. - Lnh Writeln khng c tham s ch c tc dng chuyn con tr xung dng di hoc in ra mt dng trng. V d :

    Writeln ( Moi ban nhap du lieu) ; ( Xut d liu dng hng xu - dng vn bn ) Writeln ( Nam nay la , 2012); ( Hng xu+ gi t s ) Writeln ( X[1]) ; Write (C[i]) ; ( Xut cc d liu l cc phn t mng ) Writeln ( Tong cac phan tu la : , T:8:2); ( Hin trn mn hnh : Ch gii + kt qu tnh ) Write ( SV[i]. Hoten : 20, SV[i]. DTB : 6:1); ( Xut DL l cc trng ca bin bn ghi)

    Cc lu : Nu l lnh Write, sau khi in kt qu, con tr vn nm trn cng dng, cn nu dng lnh Writeln, sau khi in, con tr s t ng xung dng di.

    - Khi in kt qu ln mn hnh bng lnh Write c th in khng qui cch hoc c qui cch. - Thng kt hp lnh Write vi lnh Read nhp d liu, lc ny lnh Write ng vai tr l li nhc. - Khi in cc mng ra mn hnh, phi kt hp lnh Wwite vi cc lnh chu trnh v mi lnh write ch in c 1 phn t. - C th vit nhiu lnh Write trn 1 dng lnh, tuy nhin cc kt qu in trn cng hay khc dng ph thuc vo s dng Write hay Writeln. V d: Write (A) ; Write (B) ; Write (C) (3 gi tr ca A,B,C in trn cng 1 dng) Writeln (A) ; Writeln (B) ; Writeln (C) (3 gi tr ca A,B,C in trn 3 dng)

    1.3. Cch in d liu trn mn hnh In khng quy cch (khng nh dng): Cc gi tr trong mt cu lnh ln lt in ra

    ni tip nhau theo chn tri. - Nu biu thc l hng xu v hng nguyn, n in ng gi tr ang c. Nu l s thc, n s in theo dng khoa hc (mi gi tr chim 18 trn mn hnh, dng ly tha). V d :

    Lnh ca Pascal Gi tr ca biu thc Kt qu hin trn mn hnh Writeln ( Ket qua tinh toan ); Ket qua tinh toan Ket qua tinh toan Writeln ( SL) ; 12 12 Wwiteln ( Max,Min) ;

    Max = 125.7 , Min =23.3 0.125700000000E03 0.233000000000E02

    In theo quy cch: (C nh dng): Cc gi tr trong mt cu lnh ln lt in ra lin tip nhau, mi gi tr s c t trong mt vng qui nh trong cu lnh, theo chn phi.

    - Nu biu thc l hng xu v hng nguyn, n in theo dng (Tn hng :n). Nu l s thc, n s in theo dng : Tn bin : n :TP . Trong n l tng s trn mn hnh dnh

  • Gio trnh Nhp mn Tin hc: Phn III Ngn ng lp trnh Pascal - 1 GVC: o Tng Kim

    B mn Tin hc Xy dng 18

    cho in gi tr ca bin (k c du, phn thp phn, du chm thp phn), TP l s dnh ring cho phn thp phn. - Nu cc gi tr khng s dng ht phn nh dng, s trng pha trc, nu s v tr nh dng khai bo khng , s bo li. V d :

    Lnh ca Pascal Gi tr ca biu thc Kt qu hin trn mn hnh

    Writeln ( Ket qua tinh toan :20 ); Ket qua tinh toan - - - Ket qua tinh toan Writeln ( SL: 6) ; 12 - - - -12 Wwiteln ( Max : 8:2, Min:8:1) ;

    Max= 125.7 , Min =23.3 - - 125.70 - - - - 23.3

    For i:= 1 to 3 Do Write ( X[i]: 6:1);

    X[1]=124 X[2]= -35.6 X[3]= 298.32

    _124.0_-35.6_298.3

    1.4. In d liu ra giy (My in) : cu trc v cch s dng lnh ging nh in trn mn hnh, trong trng hp ny ch thm vo cc cu lnh tham s ca my in (LST, hoc LP1, LP2...)

    Dng : WRITE [LN] ( LST, < Danh sch biu thc>);

    2. Th tc nhp d liu t bn phm

    Dng tng qut : READ [LN] < Danh sch bin> ; READLN;

    ngha: - Lnh READ [LN] < Danh sch bin > dng nhp d liu t bn phm vo b nh trong.

    - Danh sch bin l tp hp cc bin ngn cch nhau bi du phy (khng c l hng hay biu thc). - Lnh READLN; khng phi nhp d liu, c th t cui chng trnh (trc lnh

    END. ) ch c tc dng dng mn hnh ( xem kt qu ). - Cu trc v cch thc hin ca Read hoc Readln l ging nhau, ch khc l lnh Readln sau khi nhp d liu con tr t chuyn xung dng di. V d :

    Readln ( A,B,C) ; ( Nhp cho bin n) Read ( X[i] ) ; ( Bin mng) Readln ( SV[i]. Hoten , SV[i]. MS); ( Bin bn ghi )

    Cc lu v v d minh ha: - Lnh Read ch c kch hot khi chy chng trnh. Mi ln gp lnh Read, chng

    trnh dng thc hin, chuyn mn hnh v i ngi dng nhp cc gi tr ca cc bin trong lnh Read. Cc gi tr ny phi tng ng vi danh sch bin v s lng,

  • Gio trnh Nhp mn Tin hc: Phn III Ngn ng lp trnh Pascal - 1 GVC: o Tng Kim

    B mn Tin hc Xy dng 19

    th t v kiu khai bo. Nu mt trong cc yu t ny khng ph hp, chng trnh vn dng khng thc hin tip.

    - Khi nhp d liu (ng vi danh sch bin trong lnh Read), cc d liu phi ngn cch nhau t nht mt trng. Khi nhp xong d liu, nhn phm Enter thc hin lnh. V d : Var m : interger ; X : real ; Ten : string [10] ; Readln ( m, X) ; Nhp d liu: 20 15.5 Readln ( Ten ) ; Nhp d liu: Xay dung

    - V bn thn lnh Read [ln] khng thng bo c cho ngi dng bit ang i bin g, bao nhiu bin nn ngi dng thng kt hp lnh Write vi lnh Read trong qu trnh nhp d liu. Lc ny lnh Write ng vai tr l li nhc, tuy nhin lnh Write c th c hoc khng, nhng Read bt buc phi c. V d : Write ( Dua vao so phan tu mang ); Readln ( n ) ;

    - Khi nhp cc mng d liu, phi kt hp lnh Read vi cc lnh chu trnh v mi lnh read ch nhn c hu hn phn t.

    V d: For i:= 1 to n Do Begin Write ( A[ , i , ] ); Readln ( A [i] ); End ; - Trong 1 cu lnh Read ch nn nhp cho mt loi bin: String, hoc Char hoc bin

    s (Integer Real). - Gi tr logic khng nhp c t bn phm.

    3. Th tc xa mn hnh ngha : Sau khi chy mt bi ton, cc d liu nhp vo v kt qu xut ra ca bi

    ton vn nm trn mn hnh khi ta thc hin bi ton tip theo. bi ton ca mnh lun bt u t mt mn hnh mi ta phi xa mn hnh trc khi thc hin.

    Dng lnh : CLRSCR; Lnh thng c t u chng trnh. Khi lnh thc hin, mi thng tin c trn mn

    hnh s xa sch, con tr tr v gc tri dng trn cng. Ch : Lnh ch thc hin khi ta khai bo trnh USES CRT; V d Uses Crt;

    Var a,b,c : real; BEGIN Clrscr; Write (a,b) ; Readln ( a,b); C:= a*a + b*b ; Writeln ( C= , C:6:1); . END.

  • Gio trnh Nhp mn Tin hc: Phn III Ngn ng lp trnh Pascal - 1 GVC: o Tng Kim

    B mn Tin hc Xy dng 20

    II. Lnh gn

    Khi nim: Lnh dng gn gi tr ca mt biu thc cho mt bin.

    Dng lnh: Tn_bin := Biu thc ;

    Cch thc hin lnh: Khi gp lnh chng trnh tnh ton gi tr ca biu thc v gn gi tr ny cho tn bin.

    Cc lu : - Du ca php gn trong Pascal l := - Tn bin ch c th l mt tn v bin c th l bin n hc phn t mng, l gi tr

    cn tm. - Biu thc c th l mt trong 4 loi biu thc. n gin n c th l mt hng, mt

    bin. - Kiu ca bin v biu thc phi cng loi. V d: - Mt s lnh gn minh ho cho cu lnh I := 1 ; T:= 0 ; X1 := -b + sqrt ( Del) / (2*a) ( Gn d liu n ) Max := A[1] ; Z [i] := X [i,j ] + Y[i] ( Gn d liu mng ) SV[i]. Ten := HT[i].Ten ; (Gn d liu bn ghi) - S dng cc lnh va hc vit chng trnh Pascal tnh cc i lng Chu vi y,

    Din tch y, Din tch xung quanh, Din tch ton phn, Th tch cho mt hnh tr c chiu cao H, bn knh R. (V d 1 phn thut ton ).

    Program Tinh_hinh_tru; Uses Crt; Var R,H, CVD, DTD, DTXQ, DTTT, TT : real ; BEGIN

    Clrscr;

    Write ( Nhap kich thuoc R,H cua hinh tru ) ; Readln (R,H);

    CVD := 2* PI* R ; DTD := PI* R*R ; DTXD := CVD*H ;

    DTTP := DTXQ + 2* DTD ; TT := DTD*H ; Writeln ( Cac ket qua tinh toan );

    Writeln ( Chu vi day = , CVD:8:2 );

    Writeln ( Dien tich day = , DTD:8:2 ); Writeln ( Dien tich xung quanh = , DTXQ:8:2 );

    Writeln ( Dien tich toan phan = , DTTT:8:2 ); Writeln ( The tich = , TT:8:2 ); Readln

    END.

  • Gio trnh Nhp mn Tin hc: Phn III Ngn ng lp trnh Pascal - 1 GVC: o Tng Kim

    B mn Tin hc Xy dng 21

    III. Cc lnh iu khin (R nhnh) 1. Lnh GOTO Khi nim ngha: Lnh GOTO l lnh chuyn iu khin khng iu kin. Dng lnh :

    GOTO n ; Cch s dng v cch thc hin: - Trong n l tn nhn t u cu lnh mun chuyn n. - Lnh c dng khi chuyn hng thc hin ca chng trnh n mt v tr bt k

    trong chng trnh. Cc lu : Khi dng lnh GOTO th nhn n phi c khai bo trc trong t kha

    Label. V d: S dng lnh IF v GOTO nhp d liu cho mng mt chiu c 10phn t Program Nhap_du_lieu_cho_mang_A; Uses Crt; Label 10 ; Const m= 10; Var i: integer ; A: array [1..m ] of Real ; BEGIN Clrscr;

    Write ( Nhap gia tri cac phan tu cua A ) ; i := 1 ; 10:Read ( A[ i] ); i := i + 1 ; If i THEN Nhm lnh 1 ELSE Nhm lnh 2 ; IF < Biu thc iu kin > THEN Nhm lnh ; Gii thch cc i lng : - Trong IF THEN ELSE l cc t kho, Biu thc iu kin l mt trong 4 loi biu

    thc, thng thng hay s dng biu thc so snh v BT logic. Kt qu ca cc biu thc ny ch nhn mt trong 2 gi tr ng hoc sai . Vi biu thc s hc, gi tr m l sai, gi tr dng ( c bng 0) l ng.

  • Gio trnh Nhp mn Tin hc: Phn III Ngn ng lp trnh Pascal - 1 GVC: o Tng Kim

    B mn Tin hc Xy dng 22

    - Nhm lnh c th l mt hoc nhiu lnh phi thc hin trong nhnh. Nu ch c 1 lnh, vit ngay sau Then, Else, nu t hai lnh tr ln phi t trong khi Begin End;

    Cch thc hin : Khi gp lnh, chng trnh tnh ton v kim tra biu thc iu kin, nu kt qu ca biu thc l ng b qua Nhm lnh 2, thc hin Nhm lnh 1 v thc hin tip cc lnh sau IF; nu kt qu ca biu thc iu kin l sai b qua Nhm lnh 1, thc hin Nhm lnh 1v thc hin tip cc lnh sau IF;

    Cc lu : - Trong cu lnh c c Then, Else l lnh y , dng lnh khng y l ch c

    nhnh Then. - Nu l lnh y th End ca Begin End ca nhnh Then khng c vit du

    chm phy (; ). - Nu Nhm lnh c t 2 lnh tr ln th cc lnh ny phi t trong khi Begin

    End; - Cc lnh IF c th lng nhau. V d: - Cc lnh IF minh ho cho cu lnh:

    + IF a>b THEN Max := a ELSE Max := b ; + IF a [i ,j ] >0 THEN begin T:= T+ a [i ,j ] ; SL := SL +1 ; End; - Vit chng trnh Tm gi tr ln nht, nh nht trong 3 s a,b,c bt k.

    Program Tim_Max_Min_trong 3_so_abc; Uses Crt; Var a, b, c, Max, Min : real ; BEGIN Clrscr;

    Write ( Nhap cac gia tri cua a, b, c ) ; Readln (a, b, c );

    IF a>b THEN Begin Max := a ; Min := b ;

    End

    ELSE Begin

    Max := b ; Min := a End;

    IF c > Max Then Max := c ;

    IF c < Min Then Min := c ; Writeln ( Gia tri lon nhat trong 3 so la : , Max:8:2 );

    Writeln ( Gia tri nho nhat trong 3 so la : , Min:8:2 ); Readln

    END.

  • Gio trnh Nhp mn Tin hc: Phn III Ngn ng lp trnh Pascal - 1 GVC: o Tng Kim

    B mn Tin hc Xy dng 23

    - Vit chng trnh Gii phng trnh bc 2 : ax2 +bx + c =0 (Thut ton V d 3)

    Program GPTbac2; Var a, b, c, delta, x1, x2: real; BEGIN repeat write ( 'nhap gia tri cho a: ' ); readln(a); until a0; write ( 'nhap gia tri cho b: ' ); readln(b); write ( 'nhap gia tri cho c: '); readln(c); delta:=b*b-4*a*c; IF delta>=0 Then begin x1:=(-b+sqrt(delta))/(2*a); x2:=(-b-sqrt(delta))/(2*a); writeln('Nghiem x1= ',x1:7:1); writeln('Nghiem x2= ',x2:7:1); end Else writeln( ' Phuong trinh vo nghiem! ' ); readln end.

    2. Cu lnh la chn CASE (CASE OF) Khi nim ngha: Lnh CASE OF l lnh chuyn iu khin c iu kin, thng

    dng vit cho cc bi ton cn phn nhiu nhnh theo mt iu kin no . Dng lnh :

    CASE < Biu thc chn > OF M1 : Nhm lnh 1 ; M2 : Nhm lnh 2 ; . Mn : Nhm lnh n ; [ ELSE Nhm lnh n+1 ; ] END;

    Gii thch cc i lng : - Biu thc chn thng l biu thc nguyn hoc BT xu. - Mi: l gi tr c th c ca biu thc chn, n c th l mt hng nguyn, k t hoc

    tp hp con ca cc s nguyn, cc k t. Tp hp ny c th c kiu min con (5..10, 15..20) , (a .. h) hoc kiu lit k (4,7,9 ) , ( a , h, g).

    - Cu lnh c c Else l lnh y , lnh khng c Else l lnh khng y . Cch thc hin: - Chng trnh xt biu thc chn, ln lt kim tra gi tr ca biu thc chn c thuc

    mt trong cc gi tr ca Mi hay khng, nu ng th Nhm lnh i tng ng c

  • Gio trnh Nhp mn Tin hc: Phn III Ngn ng lp trnh Pascal - 1 GVC: o Tng Kim

    B mn Tin hc Xy dng 24

    thc hin v kt thc lnh. Nu gi tr ca biu thc chn khng nm trong Mi no th Thot khi lnh ( dng khng y ) hoc thc hin Nhm lnh n+1 (nhnh Else) vi dng y .

    - Mi ln thc hin ch c mt nhnh (Mt nhm lnh) c thc hin. - Vi dng y lc no cng c t nht mt nhnh thc hin, cn dng khng y

    , c th khng c nhnh no c thc hin. Cc lu : - Biu thc chn l cc bin nguyn hoc k t. Tu tng phin bn m n c th l

    bin mng. - Nu Nhm lnh c t 2 lnh tr ln th cc lnh ny phi t trong khi Begin

    End; - Cc lnh CASE c th lng nhau. Cc lnh Case nh cc cp ngoc trn v thc hin

    t trong ra ngoi. Tuy nhin t nhm trong c th chuyn ra ngoi nhng cm cc lnh t nhm ngoi chuyn vo trong.

    V d : - Cc v d minh ho cho lnh :

    CASE Tuoi OF 1..5 : Writeln (Cha i hc 1); 6..10 : Writeln (Hoc sinh cap 1); 11..14 : Writeln (Hoc sinh cap 2); 15..17 : Writeln (Hoc sinh cap 3); 18..23 : Writeln (Sinh vin);

    ELSE Writeln ( Cac loai hinh khac); End;

    CASE Dthi [i] OF 0..4 : Writeln (Sinh vien kem); 5..6 : Writeln (Sinh vien trung binh); 7..8 : Begin Slk := Slk + 1; j:= j+1; HSk [j] := HT [i] ; End 9..10 : Begin Slg := Slg + 1; k:= k+1; HSg [j] := HT [i] ; End

    END;

    III. Cc lnh chu trnh (Cu trc lp)

    phn trn ta mi xt n cc dng bi ton thc hin n l cc php tnh hoc cc php x l. Trong nhiu bi ton (c bit khi x l d liu mng), ta phi lp li nhiu ln mt s lnh no vi dng tng qut khng thay i. Nu vit lp li cc cng thc ny th di, nhm chn v khng th nu cha bit s ln lp. th hin dng thut ton lp, ngi ta a ra cu trc cho mt hoc nhiu vng lp lng nhau. Vi cc dng thut ton lp, Pascal x dng cc lnh For To Do, While Do, Repeat Until hoc cc lnh gn kt hp vi IF Goto th hin cho vng lp bit trc s ln lp hoc vng lp khng xc nh.

  • Gio trnh Nhp mn Tin hc: Phn III Ngn ng lp trnh Pascal - 1 GVC: o Tng Kim

    B mn Tin hc Xy dng 25

    1. Cu lnh lp vi s ln lp xc nh FOR ( FOR TO DO) Khi nim: Lnh For To Do dng cho cc bi ton lp vi s ln lp xc nh v

    bc nhy (s gia) ca bin iu khin ch l +1 hoc -1. Cu trc lnh :

    FOR Bk := n1 TO n2 DO Cc lnh lp ; FOR Bk := n1 DOWNTO n2 DO Cc lnh lp ;

    Gii thch cc i lng : - Bk l bin iu khin hay bin m ca chu trnh. n1 v n2 l gi tr u v gi tr cui ca bin iu khin, chng phi l cc hng, bin hoc biu thc n gin c kiu nguyn hoc k t. - Min tc ng ca lnh (Cc lnh lp) c th l 1 hoc nhiu lnh s c thc hin vi s vng lp |n1-n2| ln. Cch thc hin ca lnh: Khi gp lnh, chng trnhc thc hin cng gm 4 bc

    nh trong phn thut ton. C th hiu l: Cc lnh lp s c thc hin nhiu ln vi gi tr ca bin iu khin t n1 n n2. Cu lnh s t ng thc hin cc bc: gn gi tr u, tng v kim tra gi tr cui ca bin iu khin (m khng th hin tng bc ny trong cu lnh).

    Cc lu : - Nu Min tc ng c 1 lnh th vit ngay sau Do, nu c t 2 lnh tr ln th cc

    lnh ny phi t trong khi Begin End; - Khngc du ; sau Do - Cc lnh c th lng nhau, tuy nhin cc vng lp khng c ct nhau. - Vng lp trong c th kt thc trc khi n gi tr cui ca bin iu khin v

    chuyn ra vng lp ngoi, tuy nhin khng th chuyn t vng lp ngoi vo vng lp trong.

    - Lnh For to Do l loi lnh thc hin trc, kim tra sau, do vy t nht s thc hin 1 ln.

    - Trong min tc ng ca lnh khng c c lnh no lm bin i gi tr u, cui ca bin iu khin.

    V d: - Cc v d minh ho cho cu lnh. + FOR i := 1 TO n DO T:=T + A[i] ; (Tnh tng 1 vc t) + FOR i := 1 m DO (Nhp d liu v tnh tng cho mng A)

    Begin Write ( A[ , I , ] = ); Readln ( A[i] ); T:=T + A[i] ; End;

    - Cc bi tp: + Bi tp 1: Vit chng trnh Tm gi tr ln nht ca mt vecto (V d 6 phn thut ton)

  • Gio trnh Nhp mn Tin hc: Phn III Ngn ng lp trnh Pascal - 1 GVC: o Tng Kim

    B mn Tin hc Xy dng 26

    Program tim_max_cua_vec_to; Var i,n: integer; a: array [1 .. 50] of real; ln:real; BEGIN write('Nhap so phan tu n='); readln (n); for i:=1 to n do Begin Write ( 'Nhap gia tri cua phan tu thu ', i, ': ' ); Readln (a[i]); End; ln:= a [1]; for i:=1 to n do if a[i]> ln then ln := a[i]; writeln ('Gia tri lon nhat cua day so la ', ln: 10:2); readln; END.

    + Bi tp 2: Cho mt ma trn B c mxn phn t. Vit chng trnh Pascal tnh s lng cc phn t > K trong tng hng v tch cc phn t < K trong c ma trn.

    Program Tim_so_luong_Tich ; Var i, j, m, n, dem : integer; B: array [1.. 10, 1.. 10 ] of real; Sl: array [1.. 10 ] of integer; K, Tich :real ; BEGIN Write ( ' Nhap so phan tu cua ma tran m, n= ' ); Readln (m, n); Write ( ' Nhap gia tri K = ' ); Readln (k); for i:=1 to m do for j:=1 to n do Begin Write ('Nhap gia tri cua phan tu B [', i, ',' , j , ] ); Readln ( B [ i,j ] ); End; For i := 1 to m do

    Begin SL [i] := 0 ; for j := 1 n do If B [ i, j ] > K Then SL [i] := SL [i] +1 ; End; Tich := 1 ; dem := 0 ;

    For i := 1 to m do for j := 1 n do If B [ i, j ] < K Then Begin Tich := Tich * B [I,j] ; Dem := Dem + 1 ; End;

  • Gio trnh Nhp mn Tin hc: Phn III Ngn ng lp trnh Pascal - 1 GVC: o Tng Kim

    B mn Tin hc Xy dng 27

    { Xuat ket qua } Wwiteln ( So luong cac phan tu cua tung hang > K ); For i:= 1 to m do Writeln ( Hang , i , : , SL [[i] :5 ) ; If Dem 0 Then Writeln ( Tich cac phan tu < K = , Tich : 8:2 ) Else Writeln ( Khong co phan tu nao < K , Tich = 0 ) . Readln END. 2. Cu lnh lp kim tra iu kin trc - WHILE (WHILE DO) Khi nim: Lnh While Do dng cho c 2 dng bi ton lp vi s ln lp xc

    nh v khng xc nh . Cu trc lnh :

    WHILE < Biu thc iu kin > DO Cc lnh lp ; Gii thch cc i lng : - Biu thc iu kin l biu thc so snh hoc Logic, kt qu ca n ch nhn mt trong 2 gi tr ng hoc sai. - Min tc ng ca lnh (Cc lnh lp) c th l 1 hoc nhiu lnh s c thc hin khi iu kin ng. Cch thc hin ca lnh: Khi gp lnh, chng trnh kim tra gi tr ca BTK, cc

    lnh lp s c thc hin khi gi tr ca biu thc iu kin vn l ng v s dng thc hin ngay khi gi tr ca BTK nhn gi tr sai .

    Cc lu : - Khi s dng lnh While Do cho cc thut ton chu trnh phi ch , trong cu lnh

    cha c cc bc gn gi tr u v tng bin iu khin. Do vy chng ta phi t b sung nu cn. Bc nhy ca bin iu khin l bt k.

    - Nu Min tc ng c 1 lnh th vit ngay sau Do, nu c t 2 lnh tr ln th cc lnh ny phi t trong khi Begin End;

    - Khngc du ; sau Do - Cc lnh c th lng nhau, tuy nhin cc vng lp khng c ct nhau. - Vng lp trong c th kt thc trc khi gi tr ca bin iu khin nhn gi tr sai

    v chuyn ra vng lp ngoi, tuy nhin khng th chuyn t vng lp ngoi vo vng lp trong.

    - Lnh While Do l loi lnh kim tra trc,thc hin sau, do vy c th khng c vng lp no c thc hin.

    V d: - Cc v d minh ho cho cu lnh: + WHILE i

  • Gio trnh Nhp mn Tin hc: Phn III Ngn ng lp trnh Pascal - 1 GVC: o Tng Kim

    B mn Tin hc Xy dng 28

    Readln (Hoi) ; End; + i:= 1 ; WHILE i Until < Biu thc iu kin>; Gii thch cc i lng : - Biu thc iu kin l biu thc so snh hoc Logic, kt qu ca n ch nhn mt trong 2 gi tr ng hoc sai. - Min tc ng ca lnh (Cc lnh lp nm gia Repeat v Until) c th l 1 hoc nhiu lnh, cc lnh ny s c thc hin khi iu kin l sai. Cch thc hin ca lnh: Khi gp lnh, chng trnh thc hin t nht mt ln cc

    lnh trong min tc ng (gia Repeat ti Until), sau kim tra gi tr ca BTK, cc lnh s c thc hin lp li khi gi tr ca biu thc iu kin l sai v s dng thc hin ngay khi gi tr ca BTK nhn gi tr ng .

    Cc lu : - Khi s dng lnh Repeat .. Until cho cc thut ton chu trnh phi ch , trong cu

    lnh cha c cc bc gn gi tr u v tng bin iu khin. Do vy chng ta phi t b sung nu cn. Bc nhy ca bin iu khin c th l bt k.

    - Min tc ng ca lnh khng phi t trong khi Begin End; - Cc lnh c th lng nhau, tuy nhin cc vng lp khng c ct nhau. - Vng lp trong c th kt thc trc khi gi tr ca biu thc iu kin nhn gi tr

    ng v chuyn ra vng lp ngoi, tuy nhin khng th chuyn t vng lp ngoi vo vng lp trong.

    - Lnh Repeat Until l loi lnh thc hin trc, kim tra sau, do vy cc lnh lp s thc hin t nht 1 ln.

    V d: - Cc v d minh ho cho cu lnh: + REPEAT T:= T + i / X[i] Until i > n ; + REPEAT Write (Nhap du lieu, Ho ten ); Readln ( SV[i] . Hoten);

  • Gio trnh Nhp mn Tin hc: Phn III Ngn ng lp trnh Pascal - 1 GVC: o Tng Kim

    B mn Tin hc Xy dng 29

    Readln (Hoi) ; Until Hoi = K; + i:= 1 ; Repeat

    Write ( A[ , i , ] = ); Readln ( A[i] ); T:=T + A[i] ; i := i+ 1 Until i > n ;

    - V d s dng c 3 lnh chu trnh: Cho mt vc t A c n phn t. Vit chng trnh to ra 2 vc t mi t A l vc t B ch cha cc phn t dng v vc t C ch cha cc phn t m.

    Program Tach_vec_to; Var i,j,k, n: integer; A, B, C : array [1..10] of real; BEGIN Write (' Nhap so phan tu n= '); Readln (n); i:=1; { Nhap du lieu mang A su dung Repeat } Repeat Write (' Nhap gia tri cua phan tu thu A[ ', i, ' ] : ' ); Readln (a[i]); i:= i+ 1 Until i >n ; { Tach vec to Su dung While Do } i:=1; j:= 1 ; k:= 1; While i 0 Then Begin J:= j + 1; B [j] := A[i] End Else If a[i]

  • Gio trnh Nhp mn Tin hc: Phn III Ngn ng lp trnh Pascal - 1 GVC: o Tng Kim

    B mn Tin hc Xy dng 30

    If k 0 Then Begin Writeln ( Cac phan tu cua vec to B ); For i:= 1 to k Do Write (C [i] :6:1); Writeln; End Else Writeln ( Khong co phan tu am trong vec to A ); Readln END. IV. D liu kiu bn ghi (Record) v ng dng:

    1. Khi nim: Khc vi mt s d liu bit cc phn trc nh mng, tp hp l cc phn t phi cng kiu, Bn ghi l cch n gin kt hp nhiu d liu c cc kiu khc nhau thnh mt kiu mi do ngi dng t nh ngha.

    c im ca d liu bn ghi : - Mi bn ghi c mt tn chung v mi mc d liu trong BG c gi l mt trng

    (field). Mi trng c th c kiu bt k. - Mi bn ghi c th c nhiu trng, trong cc trng li c th c trng con. - Bn ghi c th c cu trc khng i hoc thay i. - Cc bn ghi c th lng nhau (trong cc trng li l mt bn ghi khc). - Trc khi lm vic vi d liu bn ghi, chng ta phi khai bo chng. 2. Khai bo d liu kiu bn ghi:

    Khai bo trc tip Khai bo gin tip

    Var Tn_bn_ghi : Record Tn_trng_1: Kiu; Tn_trng_2: Kiu; . . . . . . Tn_trng_n: Kiu; End;

    Type Tn_bn_ghi = Record Tn_trng_1: Kiu; Tn_trng_2: Kiu; . . . . . Tn_trng_n: Kiu; End; Var Danh_sch_bin_BG : Kiu_bn_ghi;

    Trong : tn ca bn ghi v tn trng tun theo qui nh t tn ca Pascal. Kiu phi l mt trong cc kiu v hng, mng hoc mt kiu mi khai bo trc . - Minh ha: + To v khai bo 1 bn ghi lu tr d liu cho tng cn b trong mt c quan bao gm cc thng tin: H tn, a ch, nm sinh, lng, gii tnh, tnh trng gia nh:

  • Gio trnh Nhp mn Tin hc: Phn III Ngn ng lp trnh Pascal - 1 GVC: o Tng Kim

    B mn Tin hc Xy dng 31

    Type TTHS = Record Ho_ten : string [ 25]; D_chi : string [ 40 ]; N_sinh: integer; Luong : real ; G_tinh : Char ; TTGD : integer End ; + lu tr d liu cho c c quan c m ngi, dng mt mng Ho_so, trong mi phn t ca mng l mt record c cu trc TTHS v khai bo mng qua Var nh sau: Var Ho_so : Array [1.. m] of TTHS ; ( m l hng s)

    3. Truy nhp d liu bn ghi:

    truy nhp bn ghi cng s dng cc lnh Read, Write v cc lnh chu trnh. Mun nhp hoc xut d liu bn ghi, phi lm vic vi tng trng thng qua cc bin bn ghi. Cu trc lnh nh sau: Read[ln] ( Bin_bn_ghi. Trng1. trng1_1); Write[ln] ( Bin_bn_ghi. Trng1. trng1_1); Bin bn ghi c th l bin n hoc bin mng. - Nhp d liu cho tng cn b vo mng h s ca c quan khai bo trn nh sau: For i:= 1 to m Do Begin Writeln ( Dua vao Ho ten, Dia chi cua can bo thu , i , : ); Readln (Ho_so [i] . Ho_ten, Ho_so[i] . D_chi ); End; - In ln mn hnh danh sch cn b gm H tn, Nm sinh, Lng ca c c quan : For i:= 1 to m Do Writeln(Ho_so [i].Ho_ten :25, Ho_so[i].N_sinh :6, Ho_so[i].Luong :8:2);

    4. Tnh ton, x l d liu bn ghi:

    tnh ton, x l cc d liu bn ghi, c th dng tt c cc lnh ca Pascal nh cc lnh iu khin, lnh chu trnh, lnh gn Tuy nhin trong cc cu lnh vi kiu bn ghi thng xuyn phi nhc li tn ca bin, tn trng lm cu lnh di, rm r Trong Pascal c th dng cu lnh With khc phc iu ny. Khi s dng With < cc tham s> th cc tham s khng cn xut hin trong cc cu lnh oc ph trong min With. Cu trc ca lnh With WITH Tn_bin_bn_ghi . Tn_trng . [tn_trng . . .] DO < Cc lnh trong min tc ng ca With>

  • Gio trnh Nhp mn Tin hc: Phn III Ngn ng lp trnh Pascal - 1 GVC: o Tng Kim

    B mn Tin hc Xy dng 32

    Vit li cc cu lnh trn dng With For i:= 1 to m Do With Ho_so[i] Do

    Writeln (Ho_ten: 25,N_sinh: 6, Luong: 8:2); 5. V d: Cc v d minh ho cho cu lnh:

    Khai bo gin tip bn ghi n Khai bo bn ghi kp

    Type SV = Record HT : string [15]; D : array [ 1.. 50 ] of real ; TB : real; PL : Char;

    End ; VT = array [1..60] of SV ; Var DS1,DS2 : VT ;

    Type HT = Record Ho : String [15] ; Dem : String [10] ; Ten : String [15] ; End; SV = Record Hoten : HT; D : array [ 1.. 50 ] of real ; TB : real; PL : Char;

    End ; Var DS : array [1..60] of SV;

    Cc bi tp v d:

    - Bi tp 1: Cho mt lp hc sinh, bit m s SV, tn v im thi 3 mn ca mi sinh vin. Vit chng trnh (cu trc d liu kiu bn ghi) tnh im trung bnh ca tng ngi v sp xp li danh sch theo im trung bnh tng dn .

    Program Vi_du_Ban_ghi_Sapxep; type sinhvien = record masv:string[10]; tensv: string[30]; dt,dl,dh,dtb:real; end; var temp:sinhvien; sv:array[1..100] of sinhvien; n, i, j: integer; BEGIN {Nhap du lieu n sinh vien} write('Nhap so sinh vien:'); readln(n); for i:=1 to n do begin writeln('Nhap thong tin cua sv thu ' , i);

  • Gio trnh Nhp mn Tin hc: Phn III Ngn ng lp trnh Pascal - 1 GVC: o Tng Kim

    B mn Tin hc Xy dng 33

    write('Ma sv:'); readln(sv[i].masv); write('Ten sv:'); readln(sv[i].tensv); write('Diem toan:'); readln(sv[i].dt); write('Diem ly:'); readln(sv[i].dl); write('Diem hoa:'); readln(sv[i].dh); sv[i].dtb := (sv[i].dt+sv[i].dl+sv[i].dh)/3; end; {in ra danh sach sinh vien vua nhap} writeln; writeln(' Danh sach sinh vien vua nhap'); writeln(' STT ','Masv':5,'Tensv':10,' DT DL DH DTB'); for i:=1 to n do writeln(i:4, sv[i].masv:5, sv[i].tensv:10, sv[i].dt:6:1, sv[i].dl:6:1, sv[i].dh:6:1, sv[i].dtb:6:1); {sap xep danh sach sinh vien theo diem trung binh tang dan} for i:= 1 to n do for j:=i+1 to n do if (sv[i].dtb >sv[j].dtb) then begin temp:=sv[i]; sv[i]:=sv[j]; sv[j]:=temp; end; {in ket qua sau danh sach sinh vien sau khi sap xep} writeln; writeln(' Danh sach sinh vien sap theo thu tu dtb tang dan'); writeln(' STT ','Masv':5,'Tensv':10,' DT DL DH DTB'); for i:=1 to n do writeln(i:4, sv[i].masv:5, sv[i].tensv:10, sv[i].dt:6:1, sv[i].dl:6:1, sv[i].dh:6:1, sv[i].dtb:6:1); readln; END. - Bi tp 2 : Cho mt lp hc sinh c n ngi, bit m s SV, tn v im thi m mn ca mi sinh vin. Vit chng trnh (cu trc d liu kiu bn ghi) tnh im trung bnh ca tng ngi v tch danh sch lp thnh 3 danh sch: nhng SV c DTB nh hn 5 t 5-7,v DTB >8. Program Ban_ghi_Tao_danh_sach; type sv=record ms:integer; ht:string[25]; d:array[1..20] of real; dtb:real end; var n,m,n1,n2,n3,i,j,k:integer;

  • Gio trnh Nhp mn Tin hc: Phn III Ngn ng lp trnh Pascal - 1 GVC: o Tng Kim

    B mn Tin hc Xy dng 34

    ds,ds1,ds2,ds3:array[1..30] of sv; ttsv:sv; t:real; BEGIN Write ( ' Nhap so nguoi n, somon m= '); readln(n,m); for i:=1 to n do begin write ( 'ms[',i,']=? ' ); readln(ds[i].ms); write ( 'ht[',i,']=? ' ); readln(ds[i].ht); for j:=1 to m do begin write('d[',j,']=? '); readln(ds[i].d[j]); end end; { Tinh diem trung binh cho tung nguoi } for i:=1 to n do begin t:=0; for j:=1 to m do t:=t+(ds[i].d[j]); ds[i].dtb:=t/m end; { Lap cac danh sach } n1:=0; n2:=0; n3:=0; for i:=1 to n do if ds[i].dtb

  • Gio trnh Nhp mn Tin hc: Phn III Ngn ng lp trnh Pascal - 1 GVC: o Tng Kim

    B mn Tin hc Xy dng 35

    if n30 then begin writeln('3. DS SINH VIEN CO DTB: 8-10:'); for i:=1 to n3 do writeln(ds3[i].ms:5,ds3[i].ht:15,ds3[i].dtb:10:1); end; writeln; readln END.

    4. Bi tp t lm - Vit chng trnh Pascal cho cc bi tp sau:

    4.1. Nhp t bn phm 3 s nguyn a, b, c. Tm gi tr Max - Min ca chng.

    4.2. Vit chng trnh tnh tng ca dy s: 1+2+...+n (Vi n c nhp vo t bn phm, n>=1). Vit bng 3 lnh chu trnh khc nhau So snh Nhn xt .

    4.3. Vit chng trnh tnh tng cc s chn trong khong t 1- n .

    4.4. Vit chng trnh tnh tng cc s chn v chia ht cho 3 trong khong t 1->n, vi n c nhp t bn phm.

    4.5. Vit chng trnh tnh tng S = 1 + 1/2 + 1/3 + 1/4 +.....+1/n. Vi n l s nguyn v chn.

    4.6. Vit chng trnh tnh tng S = 1 + 1/x + 1/x2 + 1/x3 +.....+1/xn. Vi n c nhp t bn phm.

    4.7. Cho mt mng X (nguyn) c m phn t. Hy tch mng X thnh 2 mng Y cha cc phn t chn ca X v mng Z cha cc phn t chia ht cho 2.

    4.8. Cho d liu ca mt lp hc sinh c m ngi. Bit cc thng tin H tn, M s sinh vin, im trung bnh c nm ca mi ngi. Tm s ngi c im trung bnh >B. Lp 2 danh sch cho nhng ngi c im trung bnh t 5..7 v t 8..10.

    4.9. Cho mt dy s (mng 1 chiu) cc s thc. Tm s ln nht, b nht trong dy s . Sp xp dy s theo chiu tng dn ca cc gi tr.

    4.10. Cho mt mng X c m phn t, mt mng Y c n phn t. Hy to ra mng Z c m+n phn t c ghp t 2 mng X, Y. Tnh tng cc phn t >A ca mng Z v tch cc phn t8 .

  • Gio trnh Nhp mn Tin hc: Phn III Ngn ng lp trnh Pascal - 1 GVC: o Tng Kim

    B mn Tin hc Xy dng 36

    - Sp xp li danh sch lp theo im trung bnh gim dn.

    4.12. Cho mt ma trn A vung (mng 2 chiu) c m hng, m ct.

    - Tnh trung bnh cng ca c ma trn.

    - Tnh tng cc phn t nm pha trn ng cho chnh.

    - Tm gi tr ln nht ca cc phn t nm pha di ng cho chnh.

    4.13. Cho d liu ca mt phng dn c c m ngi. Bit cc thng tin Tn ch h, a ch, Tng s nc tiu th (m3) mi thng ca mi nh trong 12 thng.

    - Nhp cc thng tin ca tng h v In ln mn hnh (Tn CH., a ch ,Thng 1 ..Thng 12)

    - Tm s lng nc tiu th trung bnh c phng trong nm.

    - Tm tng s nc tiu th traong 12 thng ca tng h.

    - Lp danh sch nhng h c lng tiu thu nc > X m3

    4.14. Cho mt ma trn B (mng 2 chiu) c m hng, n ct.

    - Tm gi tr nh nht ca B

    - Xo i hng v ct cha gi tr nh nht u tin (Xt theo hng) ca ma trn (Ma trn ch cn m-1 hng v n-1 ct).