1. Trang chủ
  2. » Công Nghệ Thông Tin

Bài giảng ngôn ngữ lập trình pascal

70 383 0

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 70
Dung lượng 643,12 KB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

Ng !i ó làm th nào mang chúng sang sông... Ví d# vi t begin hay Begin hay BEGIN là nh nhau.. 5.Câu l nh trong Pascal... Các phép toán lôgic g m có: NOT, AND, OR và XOR... Ghi chú: Cách

Trang 1

- Các l nh c thi hành m t cách tu n t , thi hành xong m t l nh m i thi hành l nh k ti p

- Khi thi hành ch ng trình c n thêm d li u t bên ngòai, i u này làm cho ch ng trình tr nên phong phú và t ng quát

Ch ng trình có th c vi t b ng các ngôn ng l p trình khác nhau 2.Ngôn ng l p trình

Có hàng tr m lo i ngôn ng l p trình khác nhau, m i lo i ngôn ng u có

cú pháp riêng c a nó Ngôn ng l p trình có th c phân chia thành 3 lo i chính : ngôn ng máy, h p ng và ngôn ng c p cao

2.1 Ngôn ng máy

Ngôn ng máy (mã máy) là ngôn ng n n t ng c a b vi x lý Bao g m các câu l nh là nh ng dãy s nh phân 0 và 1 r t khó c, khó vi t Ch có các chuyên gia v máy tính m i vi t c u i m c a vi c vi t ch ng trình b ng ngôn ng máy là l p trình viên có th i u khi n máy tính tr c ti p và t c chính xác i u mình mu n làm, t c thi hành ch ng trình nhanh và kích

th c ch ng trinh nh Nh c i m c a ch ng trình ngôn ng máy là thông

th !ng s" m t r t nhi u th!i gian vi t, r t khó c, khó tìm l i và ch ng trình ph# thu c vào b vi x lý nên ch ng trình ch ch y c trên nh ng máy tính

có cùng b vi x lý mà thôi Ngôn ng máy còn c g i là ngôn ng c p th p (low-level language)

2.2 H p ng

H p ng c phát tri n nh m giúp các l p trình viên d$ nh các ch th

c a ch ng trình h n Các ch ng trình h p ng còn bao g m các ch th v% mô (macro instruction) có th t o ra nhi u l nh mã máy Các ch ng trình h p ng

c chuy n sang mã máy thông qua m t ch ng trình &c bi t g i là trình h p

d ch (assembler) M&c dù h p ng t ng i d$ dùng h n mã máy nh ng h p

ng v'n c xem là ngôn ng c p th p b i vì nó v'n còn r t g n v i t ng thi t

k c a máy tính

2.3 Ngôn ng c p cao

Ngôn ng c p cao g n g(i h n v i ý ni m ngôn ng mà h u h t m i

ng !i u bi t, nó bao g m các danh t , ng t , ký hi u h c, liên h và các thao tác lu n lý Các y u t này có th c ph i h p, liên k t v i nhau t o thành m t hình th)c c a câu Các "câu" này c g i là các m nh c a

ch ng trình (program statement) Chính vì nh ng &c i m này, các l p trình viên d$ dàng c và d$ h c ngôn ng c p cao h n so v i ngôn ng máy ho&c

h p ng M t l i i m quan tr ng là ngôn ng c p cao thông th !ng không ph# thu c vào máy tính, ngh%a là các ch ng trình vi t b ng ngôn ng c p cao có

th ch y trên các lo i máy tính khác nhau (s d#ng các b vi x lý khác nhau) 2.4 Các ngôn ng l p trình thông d ng

Hi n nay có r t nhi u ngôn ng l p trình c p cao là :BASIC, COBOL, C, FORTRAN, PASCAL.v.v Ngày này còn có thêm r t nhi u các ngôn ng l p trình h ng i t ng r t ti n l i cho các l p trình viên nh : C++, Visual Basic , Visual C, Denphi, Javal v.v

Trang 2

3.Trình thông d ch và biên d ch

M i ch ng trình c vi t b ng các ngôn ng không ph i là ngôn ng máy cu i cùng u ph i c chuy n i sang ngôn ng máy tr c khi c thi hành Ch ng trình ngôn ng c p cao c d ch sang ngôn ng máy b ng m t trong hai cách: b ng trình biên d ch (compiler) ho&c trình thông d ch (interpreter) 3.1 Trình biên d ch :

S" chuy n i toàn b ch ng trình sang mã máy, r i ch)a k t qu vào

%a có th thi hành v sau Trình biên d ch t o ra m t danh sách l i c a t t c

m nh trong ch ng trình vi ph m cú pháp c a ngôn ng Danh sách này giúp

b ng ng l i và trình thông d ch s" thông báo l i ng !i l p trình c n c) vào l i

Trong khoa h c máy tính, thu t gi i c nh ngh a là m t dãy h u h n các

b c rõ ràng và có th thi hành c, quá trình hành ng theo các b c này

Ng !i l p trình dùng ngôn ng c a mình mô t thu t Ng !i l p trình

li t kê có th) t các b c c a thu t gi i Tuy v y thu t gi i th !ng dài dòng khó

hi u và th !ng không theo m t qui t*c nh t nh.

Ví d 1 : Thu t gi i ph ng trình b c hai ax 2 +bx+c=0 (a<>0)

Trang 3

3.2 N u ∆ > 0 thì

3.2.1 Ph ng trình có hai nghi m phân bi t x 1 và x 2 3.2.2 Giá tr c a hai nghi m c tính theo công th)c sau

3.2.3 K t thúc

3.3 N u ∆ = 0 thì

3.3.1 Ph ng trình có nghi m kép x 0 3.3.2 Giá tr c a nghi m kép là : x=-b/2a 3.3.3 K t thú c

L u hay s kh i là m t công c# tr c quan di$n t các thu t gi i

Bi u di$n thu t gi i b ng l u s" giúp ng !i c theo dõi c s phân c p các tr !ng h p và quá trình x lý c a thu t Ph ng pháp l u th !ng c dùng trong nh ng thu t có tính r*c r i, khó theo dõi c quá trình x lý

Trong thu t gi i dùng l u th !ng dùng các hình v" qui c sau mô

2

1

∆+

=

a

bx

2

2 − − ∆

=

Trang 4

x1,2=-b/2a D>0 Pt có 2 nghi m

Trang 5

2.Vi t thu t gi i tim s l n nh t trong 3 s a, b, c

3.Vi t thu t gi i tìm s Pibonanci th) n v i

F 0 =0, F 1 =1, F n =F n-2 +F n-1

4.Vi t thu t gi i tim các s nguyên t trong dãy s n s t a 1 a n

5.Vi t gi i thu t tìm USCLN, BSCNN c a 2 s a, b

6.Vi t gi i thu t tính t ng l0 , t ng ch1n c a dãy n s t nhiên a 1 a n

7.Vi t thu t gi i tìm n! =1*2*3* .*n

8.Xác nh d li u và d li u ra cho các thu t gi i sau

a.Ki m tra xem ba s cho tr c a, b, c có th là dài ba c nh c a m t tam giác hay không ?

10.Vi t thu t gi i vi t gi i thu t xác nh ma tr n n v

11.Vi t thu t gi i in ra ma tr n chuy n v c a ma tr n ã nh p tr c

12.Vi t thu t gi i In ra ma tr n tích cu hai ma tr n ã nh p tr c

13 Có 3 bình A, B, C Bình A có dung tích 8 lít và ng y 8 lít r u, bình B có dung tích 5 lít, bình C có dung tích 3 lít Trình bày các b c th c hi n có

c 4 lít r u bình A và 4 lít r u bình B

14 M t ng !i có 1 con g u, 1 con dê và 1 cái b*p c i N u không có ng !i bên chúng thì con g u s" n th t con dê ho&c con dê s" n b*p c i Thuy n ch

có th ch c ng !i ó v i con g u ho&c con dê ho&c b*p c i Ng !i ó làm

th nào mang chúng sang sông

D

Dx a b b a

c b b c

b a

b a

b c

b c

2 1 2 1

2 2

1 1

2 2

1 1

D

Dy a b b a

c a a a

b a

b a

a c

a c

2 1 2 1

2 2

1 1

2 2 1 1

Trang 6

Ch ng 2

GI I THI U NGÔN NG L P TRÌNH PASCAL

I.Gi i thi u chung

1.Xu t x : PASCAL là ngôn ng l p trình c p cao c giáo s Niklaus Wirth

tr !ng i h c K2 thu t Zurich (Th#y s%) thi t k và công b vào n m 1971 Ông

&t tên cho ngôn ng c a mình là Pascal t ng nh nhà h c n i ti ng ng !i Pháp th k3 17: Blaise Pascal, ng !i ã sáng ch ra chi c máy tính c khí u tiên c a nhân lo i

Thành công c a ngôn ng Pascal là ch : nó là ngôn ng u tiên a

ra và th hi n c khái ni m l p trình có c u trúc Ý t ng v m t ch ng trình có c u trúc xu t phát t suy ngh% cho r ng có th chia m t bài l n, ph)c

t p thành nhi u bài nh , n gi n h n N u m i bài nh c gi i quy t b ng

m t ch ng trình con, thì khi liên k t các ch ng trình con này l i s" t o nên m t

ch ng trình l n gi i quy t c bài ban u

II.S d ng ph!n m"m Turbo Pascal

1 Kh#i $ng Turbo Pascal:

Trong ph n này s" trình bày cách s d#ng Turbo Pascal 7.0.phiên b n

th !ng c dùng ph bi n hi n nay

1.1 Các t p tin chính c a Turbo Pascal: TP có hàng tr m t p tin nh ng

ch y c Turbo Pascal 7.0, ch c n hai t p tin sau là :

- TURBO.EXE : t p tin chính c a TP

- TURBO.TPL : t p tin ch)a các th vi n c a TP

N u mu n v" h a thì ph i có thêm các t p tin:GRAPH.TPU, t p tin ch)a th vi n h a *.BGI : các t p tin màn hình h a *.CHR : các t p tin t o

ki u ch

N u mu n xem h ng d'n s d#ng Turbo Pascal thì c n có thêm t p tin TURBO.HLP

1.2 Kh#i $ng Turbo Pascal:

Thông th !ng hi n nay các máy s d#ng h i u hành Windows nên có các kh i ng nh sau :

- Tr !ng h p có s1n m t Shortcut ch)a Turbo Pascal trên Desktop : hãy Double click vào bi u t ng Shortcut c a Turbo Pascal

- Tr !ng h p không có s1n m t Shortcut ch)a Turbo Pascal: hãy ch n

l nh Start, ch n ti p l nh Run, r i gõ vào !ng d'n y c a t p tin TURBO.EXE, ch4ng h n:

C:\TP\TURBO.EXE ↵ , n u kh i ng TP t %a C

Trang 7

A:\TP\TURBO.EXE ↵ , n u kh i ng TP t %a A

1.3 C a s màn hình Turbo Pascal và cách ch n l nh :

Trong c a s này, dòng trên cùng là m t th c n ngang, li t kê 9 nhóm

l nh chính c a TP Mu n ch n m t l nh trong th c n này, có th ti n hành theo m t trong hai cách:

+ Cách 1: Gõ phím F10 Lúc này, trên th c n xu t hi n m t khung sáng (th !ng là màu xanh) Mu n ch n l nh nào thì gõ các phím m(i tên ← , → d!i

khung sáng n l nh ó r i Enter M t th c n con c a l nh v a ch n hi n ra,

g i là th c n hàng d c Ví d#, khi ch n l nh File, ta c th c n con nh sau:

+ ch n m t l nh trong th c n hàng d c, hãy gõ các phím m(i tên ↑ , ↓ d!i khung sáng n l nh ó r i Enter Khi không mu n ch n l nh nào thì gõ phím ESC tr v vùng so n th o

+ Cách 2 : Ch n m t l nh trong th c n ngang b ng cách gõ ng th!i phím Alt v i phím ch cái u tiên c a tên l nh mu n ch n Ví d#, mu n ch n menu File thì gõ ng th!i hai phím Alt và F (vi t t*t là Alt-F), t ng t , mu n

ch n menu Compile thì gõ Alt-C

+ Cách 3 : Dùng phím gõ t*t

Có m t s l nh c gán cho nh ng phím &c bi t g i là phím "gõ t*t”, ví d# l nh Open: F3, l nh Save : F2, l nh Exit : Alt-X + th c hi n nh ng l nh này, thay vì ph i ch n nó t trong th c n, ta ch c n gõ phím nóng t ng )ng v i

Con tr dùng

so n th o

ch ng trình

Trang 8

nó Ví d#, thay vì ch n l nh Open thì gõ phím F3, thay vì ch n l nh Save thì gõ phím F2,

D i th c n ngang là vùng so n th o dùng gõ ch ng trình vào + u c a vùng này hi n tên c a t p tin ang so n, và n u ng !i th o ch ng

ch a &t tên thì TP s" &t m t tên m&c nhiên là NONAME00.PAS

Dòng cu i cùng tóm t*t m t s phím " gõ t*t" hay dùng, nh phím F1 xem h ng d'n, phím F2 l u t p tin lên %a, phím F3 dùng m xem m t

t p tin, phím F10 kh i ng th c n,.v.v

1.4 Thoát kh i Turbo Pascal

Ch n l nh File trong th c n ngang, ch n ti p l nh Exit trong th c n

d c (vi t g n là ch n l nh File/ Exit) ho&c gõ c&p phím gõ t*t Alt-X

Ch n l nh Compile/ Compile (ho&c gõ c&p phím Alt-F9 hay F9) Máy s"

d ch ch ng trình sang mã máy, n u g&p l i thì d ng và hi n thông báo l i màu

u màn hình, ng th!i con tr &t v trí có l i Ng !i th o ch ng ph i

t mình s a l i, r i gõ Alt-F9 d ch và s a l i ti p cho n khi h t l i D u hi u cho bi t vi c d ch ã xong là màn hình xu t hi n c a s thông báo có dòng ch

Trang 9

ki m tra xem k t q a in lên màn hình có úng không và có phù h p v i th c ti$n không? n u sai c n ki m tra l i

2 M$t vài k% thu t trong so&n th o

- +ánh d u kh i c n di chuy n

- + a con tr n n i c n chuy n kh i t i -Gõ l nh ^K_V

d) Xóa kh i:

- +ánh d u kh i c n xóa

- Gõ l nh ^K_Y e) Che ho&c hi n l i kh i ã ánh d u : l nh ^K_H

2.2 Các phím l nh so n th o thông d ng

- Phím Home : a con tr v u dòng hi n th!i

- Phím End : a con tr v cu i dòng hi n th!i

- Phím Delete : xóa ký t ngay t i v trí con tr N u con tr ang )ng

cu i c a dòng trên mà gõ phím Delete thì s" n i dòng d i vào cu i dòng trên

-Phím Back Space : Xóa ký t tr c con tr

- C&p phím Ctrl_Y:xóa toàn b dòng hi n th!i và ôn các dòng d i lên

- Nhóm phím Ctrl_Q_Y : xóa t v trí con tr n cu i dòng

- Các phím ← , ,↓ ,→ : d!i con tr theo h ng m(i tên

- Phím Insert :Dùng chuy n i ch chèn è

- Phím Enter : Xu ng dòng

Trong ch vi t chèn: gõ Enter có tác d#ng a con tr xu ng u dòng

d i, do ó toàn b các ch )ng sau con tr (n u có) s" b c*t xu ng dòng

d i Khi con tr ang )ng u m t dòng mà Enter thì s" t o ra m t dòng

tr ng ngay t i v trí ó

III Các ph!n t c b n c a ngôn ng Pascal

1.T p ký t c b n : M i ngôn ng u c xây d ng t m t t p ký t nào

ó Ngôn ng Pascal c xây d ng trên b ký t c b n, g m:

- Các ch cái la tinh: A, B, C, ,Z, a, b, c, , z

- Các ch s :0, 1, 2, 3, 4, 5, 6, 7, 8, 9

- Các ký hi u &c bi t: +, -, *, /, =, <, {, }, [, ], %, $, &, #,

- Ký t g ch n i ‘_’ và ký t tr*ng ‘ ‘ ( space)

Trang 10

2 T' khóa (Keyword)

Có m t s t c Pascal dành riêng cho vi c xây d ng các câu l nh, các khai báo, các phép tính, g i là t khóa Ng !i l p trình không c &t m t tên

m i (tên bi n, tên h ng, tên hàm, tên th t#c, ) trùng v i m t trong các t khóa

D i ây là danh sách các t khóa c a Pascal :

Absolute, and, array, begin, case, const, div, do, downto, else, end, file, for, forward, function, goto, if, implementation, in, inline, interface, interrupt, label, mod, nil, not, of, or, packed, procedure, program, record, repeat, set, shl, shr, string, then, to, type, unit, until, uses, var, while, with, xor

Các t khóa có th vi t d i d ng ch hoa hay ch th ng hay xen k ch hoa v i ch th ng u c Ví d# vi t begin hay Begin hay BEGIN là nh nhau

3.Tên (identifier)

Các bi n, các h ng, các hàm, các th t#c, c s d#ng trong ch ng trình u c n ph i &t tên, còn g i là nh danh hay danh hi u Các tên này do

ng !i th o ch ng t &t và ph i m b o úng quy t*c: tên ph i b*t u b ng

ch cái, k ó có th là ch cái, ch s , hay d u g ch n i ‘_’ Tên không c

&t trùng v i t khóa Chi u dài c a tên t i a là 127 ký t Thông th !ng tên nên &t ng*n g n và có tính g i nh

Ví d#:Delta, X1, X2, i, j , Chuc_vu, Luong,Phuong_Trinh_Bac_Hai…

4.Tên chu(n

Trong Pascal có m t s tên ã c &t s1n r i, g i là tên chu/n, ch4ng

h n : Abs, Arctan, Boolean, Byte, Char, Cos, Copy, Delete, Eof, False, Longint, Ord, Integer, Real, Readln, Writeln, True, Text,

Pasal có th cho phép ng i th o ch ng t l i tên chu n, nh ng không nên t l i

5.Câu l nh trong Pascal

Trang 11

Ví d# : Program Btap1; ho&c : Program Giai_pt_bac2;

Ph n tiêu chi m m t dòng, còn g i là ph n u c a ch ng trình, nó

có th không có.

1.2 Ph!n khai báo

Ph n khai báo có nhi m v# gi i thi u và mô t các i t ng, các i

l ng s" tham gia trong ch ng trình

Nó g m có 7 lo i khai báo sau

- USES Khai báo n v s d#ng (Unit)

- LABEL Khai báo nhãn,

- CONST Khai báo h ng

- TYPE khai báo ki u d li u m i,

- VAR Khai báo bi n

- PROCEDURE khai báo các ch ng trình con là th t#c

- PUNCTION Khai báo các ch ng trình con là hàm

Tùy theo yêu c u c# th mà m i khai báo này có th có ho c không có khai báo

1.3 Ph!n thân ch ng trình

+ây là ph n ch y u nh t c a m t ch ng trình, b t bu c ph i có

Thân ch ng trình b*t u b ng t khóa BEGIN và k t thúc b ng END (có d u

ch m cu i) Gi a kh i BEGIN và END là các l nh M i l nh ph i k t thúc b ng

d u ch m ph/y ‘;’

Begin

Các l nh;

End

2.Khai báo trong ch ng trình Turbo Pascal

2.1 Khai báo n v s d ng (Unit)

Turbo Pascal có s1n trên 300 hàm và th t#c chu/n, chúng c phân thành t ng nhóm theo ch)c n ng, g i là các th vi n hay n v ch ng trình ( Unit) bao g m : System ,Crt, Graph, Dos, Printer, v.v Mu n s d#ng các hàm hay th t#c c a n v nào, tr System còn l i ta ph i khai báo, Cách khai báo

Trang 12

- + nh mà cho dòng ch vi t lên màn hình theo b ng màu sau :

Bi n là i l ng có giá tr thay i trong ch ng trình, chúng c dùng trong ch ng trình l u tr các d li u, tham gia vào các bi u th)c tính và các quá trình x lý trong máy Cách khai báo bi n s nh sau :

Ngoài các ki u d li u mà b n thân ngôn ng ã có s1n nh ki u th c,

ki u nguyên, ki u ký t , ki u lôgic,.v.v ng !i dùng có th t xây d ng các ki u

d li u m i ph#c v# cho ch ng trình c a mình, nh ng ph i mô t sau t khóa TYPE cách khai báo nh sau

4.Ví d Vi t ch ng trình cho phép nh p vào h tên, mã s , các i m , Lý c a

m t sinh viên, tính i m trung bình theo công th)c : Dtb=(Toan+ly)/2

In H tên, mã s , các i m , Lý và i m trung bình c a sinh viên ó lên màn hình

PROGRAM VIDU;

Uses CRT;

Var Ho_ten, Maso : String[20];

Toan, Ly, Dtb : Real;

Begin

Write(‘ Nhap Ho va ten : ‘); Readln(Ho_ten);

Write(‘ Nhap ma so : ‘); Readln(Maso);

Write(‘ Nhap diem Toan : ‘); Readln(Toan);

Write(‘ Nhap diem Ly : ‘); Readln(Ly);

Dtb:= (Toan+Ly) / 2;

{ In lên màn hình các d li u v sinh viên }

TextBackGround(Green); { &t màu n n là Green }

TextColor(Red); { &t màu ch là Red}

Clrscr ;

Trang 13

Writeln(‘ KET QUA THI CUA SINH VIEN:’);

Writeln(‘Ho va ten : ‘, Ho_ten);

IV.Các ki u d li u n gi n dùng trong Pascal

Trong TP dùng m t s ki u d li u g i là d li u n gi n chu/n nh sau: 1.Ki u nguyên : Dùng bi u di$n các s nguyên, ph m vi bi u di$n c a s nguyên t 1 byte n 4 byte

- Phép chia l y ph n nguyên (DIV): 10 Div 3 =3, 10 div 5 =2

- Phép chia l y ph n d (Mod): 15 mod 5 =0, 16 mod 3 =1

V y, l nh Inc(k); t ng ng v i l nh k:=k+1; hay k:=Succ(k);

-Th t c DEC(k) : gi m k i m t n v Ví d#, sau khi th c hi n các l nh : k:=5; Dec(k); thì gía tr c a k s" là 4

V y, l nh Dec(k) ; t ng ng v i l nh k:=k-1; hay k:=Pred(k);

2.Ki u th c : Dùng bi u di$n các s th c, ph m vi bi u di$n c a s th c t 4

n 10 byte

Tên ki u Ph m vi gía tr S byte

Real 2.9*10 -39 1.7*10 38

6 Single 1.5*10 -45 3.4*10 38

4 Double 5.0*10-324 1.7*10308 8

Trang 14

+Các hàm có i s nguyên ho c th c

-Hàm ABS(x): tính tr tuy t i c a x Ví d#: Abs(5 - 8) = 3

-Hàm SQR(x): tính bình ph ng c a x: Ví d#: Sqr(4.0) = 16.0, Sqr(2) = 4 Trong các hàm d i ây, i s x có th là nguyên hay th c, nh ng gía tr tr

v luôn luôn là ki u th!c:

-Hàm SQRT(x): tính , (x ? 0)

- Hàm EXP(x) : tính ex

- Hàm LN(x): tính lnx, (x > 0)

- Các hàm SIN(x), COS(x), và ARCTAN(x): tính sinx, cosx và arctgx

- Hàm INT(x) : cho s th c b ng ph n nguyên c a x Ví d# :

Int(12.55) = 12.0

Int(1+10/3)=4.0

-Hàm FRAC(x) : cho s th c b ng ph n l0 c a x Ví d# :

Frac(12.55) = 0.55

Hai hàm c bi t d i ây cho k t q a là s nguyên:

-Hàm TRUNC(x): cho s nguyên là ph n nguyên c a x Ví d# :

Ví d#: Upcase( ‘a’ ) = ‘A’, Upcase( ‘b’ ) = ‘B’, Upcase( ‘A’ ) = ‘A’

-Hàm ORD(ch) : cho mã c a ký t ch Ví d#: Ord (‘A’) = 65, Ord (‘a’) = 97 -Hàm CHR(k) : i s k nguyên, 0< k < 255, cho ký t có mã b ng k

Ví d#: Chr (65)= ‘A’ , Chr (97)= ‘a’, Chr(32) là ký t tr*ng

4.Ki u logic (boolean)

Ki u boolean ch có hai gía tr là TRUE ( úng) và FALSE (sai), không phân

bi t ch hoa hay ch th !ng V quan h th) t thì FALSE< TRUE M i gía tr boolean chi m m t byte b nh

Các phép toán lôgic g m có: NOT, AND, OR và XOR N u A và B là hai i

l ng lôgic thì NOT A, A and B, A or B và A xor B c(ng là nh ng i l ng lôgic

có k t q a c cho b ng sau:

5.Ki u chu*i (String) : là m t chu i ký t Khi gán h ng chu i , h ng chu i ph i

c rào trong c&p d u nháy n

Ví d# : ‘Turbo Pacal’, ‘12345’

Trang 15

Trong ó x1,x2…xn ã c khai báo ki u d li u trong ph n khai báo

- D ng 1 và d ng 2 dùng nh p d li u cho các bi n s ã c khai báo

- D ng 1 khi nh p xong d li u ngay sau bi n s xn, còn d ng 2 khi nh p xong con tr t ng nh y xu ng u hàng k ti p

- D ng 3 không dùng nh p d li u, mà có tác d#ng d ng th c hi n ch ng trình ch! nh n phím enter

Ghi chú : Khi nh p d li u cho các bi n s , các giá tr vi t cách nhau ít

Trong ó n và k là các s t nhiên, n nh dùng n c t in gía tr c a

bi u th)c, trong ó có k c t dành cho ph n th p phân

Trang 16

y= -123.482 (tr c d u - có 2 ký t tr*ng)

N u n nh h n chi u dài c a s c n in thì s s" c in ra v i y các ch s trong ph n nguyên Ví d#, khi th c hi n các l nh sau :

Write(‘ Nhap ho va ten: ‘); Readln(Ten);

Write(‘ Nhap ma so sv : ‘); Readln(Maso);

Writeln;

Writeln(‘ ********************** ’); { in 22 d u * }

Writeln(‘*’, Ten:19, ‘*’:2); { in 1 d u *, in Ten chi m 19

c t, in ti p d u * chi m 2 c t }

Writeln(‘* Ma so:’ , Maso:12, ‘*’:2); { in * Ma so, in

Maso chi m 12 c t, in ti p d u * chi m 2 c t }

3 + c t bàn phím bàn kính R1, bán kính R2, là !ng sinh l và chi u cao h

c a m t hình chóp c#t Tính di n tích xung quanh và th tích hình chóp c#t theo công th)c sau:

Di n tích xung quanh S = (PI/2 * (R1R2) *I

Th tích V = (1/3) * (PI*h*(R1² + R2² + R1*R2))

4 Vi t ch ng trình nh p vào i m Toán, Lí, Hoá c a m t thí sinh theo h s

t ng )ng 3 : 2 : 1 Hãy tính và in i m trung bình

5.Vi t ch ng trình tính l c hút F gi a hai v t có kh i l ng M và N cách nhau

m t kh ang d theo công th)c :

V i G là l c h p d'n = 6.673* 10 –8 cm2 /gs2(M tính b ng gram,D tính b ng cm) 6.Vi t ch ng trình nh p 3 s nguyên d ng a, b, c sau ó tính và in ra màn hình giá tr trung bình c ng s , c và trung bình nhân p c a 3 s ó

Bi t r ng :

3

c b a

) (abc

p = 7.Vi t ch ng trình nh p 3 s nguyên d ng a, b, c là s ó 3 c nh c a m t tam giác Hãy tính và in ra màn hình di n tích s c a tam giác ó

Bi t r ng : s=sqrt(p*(p-a)*(p-a)*(p-c)) trong ó p=0.5*(a+b+c)

2

*d

NMG

F =

Trang 17

Ch ng III CÁC L NH +I,U KI N – VÒNG L-P

I Các l nh i"u ki n

1.L nh nh y không i"u ki n

- Cú pháp : Goto <Nhãn>

- Ch c n ng : Nh y ngay n l nh ã c ánh d u b ng nhãn ã c khai báo

Ghi chú: Cách khai báo nhãn trong ph n khai báo

Ði u ki n là m t bi u th)c lôgic cho k t

q a TRUE ( úng) hay FALSE (sai) L nh có th

Ví d : Nh p vào h tên và i m trung bình

(DTB) c a m t sinh viên Hãy phân lo i sinh viên theo DTB nh sau:

Lo i là Kém n u DTB<5,

là Tbình n u 5 =< DTB<7,

là Khá n u 7 <= DTB<9,

là Gi i n u DTB >= 9

In h tên, i m trung bình và phân lo i sinh viên

PROGRAM PhanloaiSinhvien; { Phân lo i sinh viên }

Var

Ho_ten: String[18]; DTB: Real; Loai: String[6];

Label aa;

Begin

Write(‘ Nhap ho va ten :’); Readln(Ho_ten);

aa:Write(‘ Nhap iem trung binh :’);Readln(DTB);

If (DTB>= 5) and (DTB<7) then Loai:=‘Tbinh’;

If (DTB >= 7) and (DTB< 9) then Loai:=‘Kha’;

If DTB >= 9 then Loai:=‘Gioi’;

Writeln(Ho_ten, #32 , DTB:4:1 , #32 , Loai); { #32 là ký t tr*ng }

Trang 18

Writeln(‘ So lon nhat la: ‘ , Max:6:2);

Writeln(‘ So nho nhat la: ‘ , Min:6:2);

Readln;

End

2.3 Câu l nh IF l ng nhau :

Trong câu l nh IF, n u L nh1 ho&c L nh2, ho&c c hai, l i là câu l nh IF thì ta

có c u trúc IF l ng nhau Ch4ng h n d i ây là hai câu l nh IF ELSE l ng nhau :

L nh k ti p

Trang 19

Write(‘ Nhap ho va ten :’); Readln(Ho_ten)

aa: Write(‘ Nhap ch s tháng tr c, ch s tháng này: ‘);Readln( chiso1, chiso2);

Chú ý - L nh CASE ph i k t thúc b ng END;

Trang 20

a) chuy n ngay sang l nh k ti p sau End ( n u là d ng 1)

b) th c hi n L nh n+1, r i chuy n sang l nh k ti p sau End

Write(‘Nh p Thang, Nam : ‘); Readln(Thang, Nam);

If (Thang<1) or ( Thang>12) then writeln(‘ Nh p sai ’)

Sai

Trang 21

Write('Nhap x va y:'); Readln(x, y);

Gotoxy(10, 3); Write('A TINH TONG HAI SO');

Gotoxy(10, 5); Write('B TINH HIEU HAI SO');

Gotoxy(10, 7); Write('C TINH TICH HAI SO');

Gotoxy(10, 9); Write('D TINH THUONG HAI SO');

Gotoxy(2,11); Write('-Ban chon muc nao (A, B, C, D) ?:'); Readln(Ch);

CASE Ch of

'A', 'a': Writeln('Tong =', x+y :6:2);

'B', 'b': Writeln(' Hieu =', x-y :6:2);

'C', 'c': Writeln(' Tich =', x*y :6:2);

'D', 'd': If y<>0 then Writeln(' Thuong =', x/y:6:2 )

else Writeln(' Khong xac dinh !');

2.3 Câu l nh CASE l ng nhau

Trong c u trúc CASE, khi m t trong các L nh1, L nh2, , L nhn hay

L nhn+1 l i là m t l nh CASE thì ta có c u trúc CASE l ng nhau

Ví d# 3: M t xí nghi p tính ti n th ng hàng tháng cho công nhân theo công th)c : Ti n th ng= H s * 200

Trong ó H s c tính d a vào k t q a bình ch n phân lo i lao ng (lo i

A, B hay C) và n i làm vi c (c s 1 hay c s 2) c a m i ng !i trong tháng, c#

th nh sau :

Trang 22

Ho_ten: String[20]; Loai : Char; Coso : Byte;

Heso, Thuong : Real;

Trang 23

-N u bi n s >Giá tr cu i thì thóat ra kh i vòng l&p , th c hi n l nh k ti p

Trang 24

Ví d# 1 : In các ch cái theo th) t ng c t Z n A thành hai dòng :

3 Câu l nh FOR l ng nhau

Trong c u trúc FOR, khi L nh c(ng là m t l nh FOR thì ta có c u trúc FOR

Write(‘Hay nhap chieu rong =’);Readln(n);

Write(‘Hay nhap chieu dai =’);Readln(m);

Trang 25

Sai

Thóat

Trang 26

Ví d# 1: Tìm b i s chung nh" nh t c a hai s nguyên d ng M và N

Bài này có nh ng cách gi i khác nhau, d i ây là m t cách n gi n Tr c

h t, hãy xem cách tìm BSCNN c a hai s M=5 và N=9

Thóat

Trang 27

Write(‘ Ti p t#c n a không (Y/N) ? :’); Readln(Traloi);

UNTIL (Traloi =‘N’) or ( Traloi=‘n’);

Ghi chú: Traloi là m t bi n ki u ký t (Char);

Sau khi th c hi n xong {các l nh c a ch ng trình }, n u mu n ch y ti p thì

ta gõ phím phím Y , n u mu n d ng thì gõ phím N

Chú ý : l nh Readln(Traloi); có th thay b ng: Traloi:=Readkey;

Hàm Readkey thu c th vi n CRT cho k t q a là m t ký t gõ t bàn phím,

nó khác l nh Readln(Traloi) ch là khi nh p ký t ta không c n ph i Enter

Ch ng trình d i ây cho phép th c hi n m t s l n vi c : in tam giác cân

&c có chi u cao m (0<m<20) :

Trang 28

UNTIL (Traloi=‘N’) or ( Traloi=‘n’);

End

5 So sánh các l nh For, While và Repeat

- L nh For dùng cho các vòng l&p có s l n l&p ã bi t tr c

- L nh While hay Repeat t ng quát h n l nh For, dùng c cho t t c các

lo i vòng l&p, nh ng th !ng dùng cho các vòng l&p có s l n l&p ch a bi t

tr c

- L nh While và Repeat khác nhau i m sau: L nh While ki m tra i u ki n

tr c , nên có th không th c hi n m t l n nào L nh Repeat ki m tra i u ki n sau nên ít nh t th c hi n m t l n

7.Vi t ch ng trình nh p vào m t s n , In ra các s nguyên t <= n

8.Vi t ch ng trình nh p vào m t s nguyên n , In ra các s nguyên ch1n ra

m t hàng, c s nguyên l0 ra m t hàng khác có giá tr t 1 n n

nn

n

3

3 2

2 100

3 2

Trang 29

l n )ng v i các gía tr khác nhau c a tham s

Ch4ng h n, n u ph i tính m t lo t các gía tr e1, e2, e3, , e10 thì ta nên vi t

m t ch ng trình con có nhi m v# tính ex v i x la i s b t k, & &t tên là EXP(x) M i khi c n tính m t trong các gía tr e1, e2, , e10 , ta ch c n g i tên

ch ng trình con ó nh ng thay x b ng m t giá tr c# th 1, 2, ,10

Vi c s d#ng ch ng trình con không ch có tác d#ng làm cho ch ng trình chính b t r !m rà, b t dài dòng mà còn &c bi t có ý ngh%a trong vi c t ch)c

ch ng trình

Khi ph i gi i quy t m t bài l n, ng !i ta tìm cách chia nó ra thành nhi u bài

nh M i bài nh c gi i quy t riêng r" b ng m t ch ng trình con s" d$ dàng h n khi ph i ki m tra l i và ki m tra thu t Vi c còn l i là ghép các ch ng trình con này t o thành m t ch ng trình l n, ó là ch ng trình chính

Có hai lo i ch ng trình con là hàm và th t#c S khác nhau c b n c a hàm và th t#c là ch : hàm luôn luôn tr v m t gía tr duy nh t thông qua tên hàm và do ó có th s d#ng hàm nh s d#ng m t bi u th)c, còn th t#c thì không tr v giá tr nào qua tên th t#c và nó c s d#ng nh m t l nh n

-Hàm Copy( St, k, n): cho chu i con g m n ký t c a St tính t v trí k Tên hàm

là Copy, có ba tham s là St ki u chu i, k và n ki u nguyên, và gía tr hàm ki u chu i ví d# Copy(‘ABCD’, 2, 3) = ‘BCD’

-Hàm Readkey : không có tham s , gía tr hàm ki u ký t , hàm nh n m t ký t

c gõ t bàn phím

Tóm l i, hàm có th không có tham s ho&c có m t n nhi u tham s , nh ng hàm luôn tr v m t gía tr duy nh t

2.2 Khai báo hàm t vi t

T t c các hàm có s1n trong Turbo Pascal g i là các hàm chu/n, chúng có th

c s d#ng mà không c n ph i khai báo Tuy nhiên s l ng các hàm chu/n

Trang 30

th !ng không áp )ng c yêu c u a d ng c a ng !i s d#ng, cho nên khi

th o ch ng, ta th !ng ph i t xây d ng thêm các hàm m i

Các hàm t vi t c n ph i c khai báo trong ph n khai báo c a ch ng trình chính, theo cú pháp sau:

Function Tênhàm(tênthams : ki uthams : ki ugíatr ;

{ Các khai báo dùng trong hàm }

For i:=1 to N do S:=S + Canba(x[i]);

V n còn l i là ph i vi t hàm tính c n ba c a z Hàm này có tên là Canba, tham s z ki u th c, và gía tr hàm c(ng ki u th c, nó c xây d ng trong

Trang 31

th t c l i không tr v m t gía tr nào thông qua tên g i c a nó mà nó có tác d#ng nh m t l nh

Th t#c Readln(x, y, z) có nhi m v# nh p các gía tr t bàn phím cho các

bi n x, y, z Th t#c Write(x, y, z) in gía tr c a x, y, z Th t#c Gotoxy(x, y) nh v con tr vào to c t x, dòng y trên màn hình Th t#c Clrscr thì ch n gi n là xóa màn hình v.v Nh v y th t#c có th không có tham s ho&c có t m t

n nhi u tham s

3.2 Th t c t vi t

Ngoài các th t#c chu/n ã có s1n trong Turbo Pascal, ng !i th o

ch ng có th t xây d ng các th t#c m i nh ng ph i khai báo theo cú pháp sau:

Procedure Tênth t#c( tênthams : ki uthams ) ;

{ Các khai báo Const, Type, Var dùng trong th t#c }

x1=x2=-b/2a -N u Denta<0 Ph ng trình vô nghi m

Trang 32

If Denta=0 then Dentakhong;

If Denta<0 then Dentaam;

If Denta >0 then Dentaduong;

Readln;

End

II Tham s tr s và tham s bi n s

Trong khai báo u c a ch ng trình con, các tham s hình th)c có t khóa Var )ng tr c g i là tham s bi n, ng c l i, n u không có t khóa Var i

tr c thì g i là tham s tr

Ví d#, trong khai báo hàm tính l(y th a zk, ta vi t :

Function Lt(z : Real ; k: Byte) : Real;

thì z và k u là các tham hình th)c s tr Còn theo khai báo c a th t#c Doicho :

Procedure Doicho(Var u, v : Real) ;

thì u và v u là các tham hình th)c s bi n

1 Tham s tr s

Tham s tr hình th)c c c p m t ô nh riêng khi ch ng trình con c

g i và b xóa b khi ch ng trình con ch y xong Nó c coi nh m t bi n a

ph ng, nh n gía tr ban u là tham s th c s c chuy n n t ch ng trình chính qua l!i g i ch ng trình con Sau ó ch ng trình con có th thay

i giá tr c a tham s tr hình th)c bên trong ch ng trình con, song i u ó không làm thay i gía tr c a tham s th c s

Trang 33

Doicho(a+1, b); { Sai vì a+1 là m t bi u th c}

Gi s trong ch ng trình chính có hai bi n th c a, b có gía tr a=4 và b=3

Ð hoán i gía tr c a a và b ta dùng l nh:

Doicho(a, b);

Vì u và v là các tham s bi n hình th c nên ch ng trình con s" ng nh t u

v i a và ng nh t v v i b M i thay i c a tham s u trong ch ng trình con

u là thay i c a chính bi n a, t ng t , m i thay i c a tham s v u là thay i c a chính bi n b K t q a là tr c khi g i th t#c Doicho(a,b) thì a=3, b=4, sau khi th c hi n th t#c xong thì a=4, b=3

V y, các bi n c truy n vào ch ng trình con d i d ng tham s bi n thì

s thay %i theo tham s bi n hình th c t ng ng trong ch ng trình con

Th!c ch t c a s! truy n tham s i v i các tham s bi n là s! truy n a ch#

+Ví d 1: Trong ch ng trình d i ây, th t#c TT có hai tham s a và b : a là tham s tr còn b là tham s bi n Hãy xem s thay i gía tr c a hai bi n x, y

Tính ch t trên ây c a tham s bi n cho phép khai thác thêm các kh

n ng c a th t#c và hàm Ta bi t th t#c không tr v gía tr nào thông qua tên

nó, còn hàm thì tr v m t gía tr duy nh t qua tên hàm Song m t ch ng trình con hoàn toàn có th tr v hai hay nhi u gía tr thông qua các tham s bi n,

nh ví d# 2

+Ví d 2: Ch ng trình sau nh p vào hai c nh a, b c a hình ch nh t và s d#ng m t th t#c tính c di n tích và chu vi

Trang 34

PROGRAM Vidu2 ;

Var

a,b, S, L: Real;

Procedure TINH( c1, c2 : Real ; Var DT, CV : Real);

{ Tính di n tích DT và chu vi CV theo hai c nh c1 và c2}

Trang 35

2 Ph&m vi tác d ng c a các khai báo

Ph m vi tác d#ng hay t m tác d#ng c a bi n (hay h ng, ki u d li u, ch ng trình con) là khu v c mà trong ó nó có th s d#ng c, ngoài khu v c ó nó

b xem là ch a khai báo V y ph m vi s d#ng c a bi n trong ch ng trình con ,

là các bi n ã khai báo trong ch ng trình con và “cha” c a nó

Ví d : N u ch ng trình chính và th t#c B có khai báo hai bi n trùng tên là x, thì trong th t#c B ch có bi n x a ph ng c a B là có tác d#ng, còn bi n x c a

Ngày đăng: 24/10/2014, 22:27

TỪ KHÓA LIÊN QUAN