intTypePromotion=1
zunia.vn Tuyển sinh 2024 dành cho Gen-Z zunia.vn zunia.vn
ADSENSE

Tin học đại cương - Phần 2 Ngôn ngữ lập trình TURBO PASCAL - Chương 2

Chia sẻ: Nguyen Nhi | Ngày: | Loại File: PDF | Số trang:7

146
lượt xem
40
download
 
  Download Vui lòng tải xuống để xem tài liệu đầy đủ

Tài liệu tham khảo giáo trình Tin học đại cương dùng cho khối A do Đỗ Thị Mơ chủ biên - Bộ môn công nghệ phần mềm gồm 2 phần chia làm 13 chương - Phần 2 Ngôn ngữ lập trình TURBO PASCAL - Chương 2 Các kiểu dữ liệu cơ sở và cách khai báo

Chủ đề:
Lưu

Nội dung Text: Tin học đại cương - Phần 2 Ngôn ngữ lập trình TURBO PASCAL - Chương 2

  1. CHƯƠNG II CÁC KI U D LI U CƠ S VÀ CÁCH KHAI BÁO 1. Khái ni m d li u, ki u d li u 1.1. Khái ni m d li u D li u là t t c các thông tin có th t ñư c máy tính x lí. Chúng có nhi u d ng khác nhau, th hi n qua các ñ i tư ng c n x lí như văn b n, s li u, âm thanh, hình nh,... 1.2. Ki u d li u Ki u d li u là t p h p t t c các giá tr mà m t ñ i lư ng thu c ki u ñó có th nh n ñư c, trên ñó xác ñ nh m t s phép toán. ði u ñó có nghĩa là m t ñ i lư ng (bi n, h ng,...) ch có th nh n m t t p h p các giá tr nh t ñ nh (ch không ph i m i giá tr có th có) và trên t p h p các giá tr ñó có xác ñ nh m t s phép toán. Ch ng h n ki u s nguyên thông thư ng ch nh n các giá tr trong ph m vi -215 ñ n 215-1, trên ñó có các phép toán s h c +, -, *, /, div, mod và các phép so sánh =,. 1.3. Phân lo i các ki u d li u TURBO PASCAL phân lo i các ki u d li u như sau Ki u d li u Ki u vô hư ng ñơn gi n Ki u d li u có c u trúc Con tr Ki u cơ s Ki u do ngư i dùng ñ nh nghĩa Ki u Ki u s Ki u Ki u Ki u li t Ki u M ng Bn Tp Tp Ki u logic nguyên s kí t kê kho ng con ghi hp xâu Bool th c kí t 2. Các ki u d li u ñơn gi n 2.1. Ki u s nguyên Ki u s nguyên bao g m t t c các s nguyên có th bi u di n ñư c trên máy tính. T khoá : Integer Ph m vi bi u di n: t -32768 ñ n 32767 , t c -215 ñ n 215-1 ( dùng 2 byte=16 bit ) Như v y ki u integer ch là m t ño n c a t p s nguyên Các phép toán: Ki u integer ñư c th c hi n v i t t c các phép toán dành cho s nguyên thông thư ng 117 Trư ng ð i h c Nông nghi p 1 - Giáo trình Tin h c ñ i cương --------------------------------------------- 117
  2. + Các phép toán s h c: + ( c ng) , - ( tr ), * ( nhân ) , / ( chia ) , DIV ( phép chia l y ph n nguyên, ví d : 7 div 3=2), MOD ( phép chia l y ph n dư, ví d : 7 mod 3=1) + Các phép so sánh: = ( b ng ) , < ( nh hơn ) , ( l n hơn) , >= ( l n hơn ho c b ng ), ( khác ) Trong TURBO PASCAL, ngoài ki u s nguyên ñư c khai báo v i t khoá integer nói trên còn có các ki u s nguyên khác ( xem b ng ) ph c v cho các m c ñích tính toán khác nhau Ki u Ph m vi bi u di n Kích thư c (byte) ( t khoá ) Byte 0..255 1 Shortint -128..127 1 Integer -32768..32767 2 Word 0..65535 2 Longint -2147483648.. 2147483647 4 2.2. Ki u s th c Ki u s th c là t p h p t t c các s th c có th bi u di n ñư c trên máy tính. Không ph i t t c các s th c ñ u có th bi u di n ñư c trên máy tính mà ñ l n và ñ tinh xác c a nó ph thu c vào máy và chương trình d ch. - Ki u s th c ñư c khai báo v i t khoá real - Ph m vi bi u bi n: t 1.9x10-39 ñ n 1.7x1038 - Các phép toán: Ki u real có th th c hi n v i t t c các phép toán c a s th c thông thư ng: +, -, *, / và các phép so sánh ( không có phép div và mod dành cho s th c ). - Cách vi t s th c d ng d u ph y ñ ng: Trong máy tính s th c ñư c vi t dùng d u ch m ñ ngăn gi a ph n nguyên và ph n l th p phân. Trong d ng d u ph y ñ ng s th c ñư c vi t theo d ng: AE+b, trong ñó A g i là ph n ñ nh tr , E+b g i là ph n mũ. Ví d : Ta xem xét các cách vi t khác nhau c a cùng 1 s 824.12345=8.2412345x102 hay 8.2412345E+2 =824123.45x10-3 hay 824123.45E-3 Trong TURBO PASCAL, ngoài ki u s th c ñư c khai báo v i t khoá real nói trên còn có các ki u s th c khác ( xem b ng ) ph c v cho các m c ñích tính toán v i ñ l n và ñ chính xác khác nhau Ki u Ph m vi bi u di n Ch s có nghĩa Kích thư c ( byte ) ( t khoá ) Single 1.5E-45..3.4E+38 7-8 4 Real 2.9E-39..1.7E+38 11-12 6 Double 5.0E-324..1.7E+308 15-16 8 Extended 3.4E-4932..1.1E+4932 19-20 10 118 Trư ng ð i h c Nông nghi p 1 - Giáo trình Tin h c ñ i cương --------------------------------------------- 118
  3. * Các hàm s h c chu n dùng cho ki u s nguyên và s th c: ðây là nh ng hàm ñư c ñ nh nghĩa s n trong TURBO PASCAL, ta có th s d ng như các công c ñ tính toán Tên hàm ( trong TP ) Cho k t qu ( hàm) ABS(X) |X (giá tr tuy t ñ i c a X) 2 SQR(X) X ( X bình phương) SQRT(X) X (căn b c 2 c a X ) LN(X) lnX (Logarit Nepe) eX EXP(X) SIN(X) sinX ; X cho b ng radian COS(X) cosX; X cho b ng radian ARCTAN(X) arctangX SUCC(n) n+1 ( s ti p theo c a n ) , n nguyên PRED(n) n-1 ( s k trư c c a n ) , n nguyên TRUNC(X) c t, cho ph n nguyên c a X ROUND(X) Làm tròn ph n l c a X 2.3. Ki u kí t Ki u kí t là t p h p t t c các kí t c a b ng mã máy tính ( ASCII ) T khoá Char Có th s d ng các phép toán so sánh ñ i v i ki u kí t , kí t nào ñ ng trư c theo th t c a b ng mã máy tính s ñư c coi là nh hơn, kí t ñ ng sau ñư c xem là l n hơn Ví d : 'a' < 'b' H ng kí t ñư c vi t trong c p d u nháy ' ' Các hàm dùng cho ki u kí t : Tên hàm ( trong TP ) Cho k t qu ( hàm) ORD(C) cho s th t c a kí t C trong b ng mã CHR(n) cho kí t có s th t là n SUCC(C) cho kí t ñ ng k sau PRED(C) cho kí t ñ ng k trư c 2.4. Ki u logic (Boolean) T khoá Boolean Các phép toán logic: NOT , AND, OR, XOR Các phép toán so sánh: =, , ... Ki u logic boolean ch có 2 giá tr : True và False Ngư i ta ñ nh nghĩa: False < True 119 Trư ng ð i h c Nông nghi p 1 - Giáo trình Tin h c ñ i cương --------------------------------------------- 119
  4. 2.5. Ki u li t kê (Enumerated scalar type) Là ki u cho phépngư i l p trình có th t ñ nh nghĩa ra các ki u vô hư ng b ng cách li t kê các giá tr c a ki u vô hư ng ra thông qua các tên do ngư i l p trình t o ra. Danh sách các giá tr này ñư c ñ t trong ngo c ñơn và ñư c mô t b ng m t tên ki u trong ph n mô t (Ph n TYPE). T khoá: TYPE Ví d : TYPE Boolean=(False, True); Color=(Red, Blue, Green, While, Black); M t bi n vô hư ng có th ñ nh nghĩa thông qua các ki u ñã ñư c mô t trong ph n TYPE như sau: VAR Ketqua: Boolean; Mau1, Mau2: Color; Ho c khai bái tr c ti p v i mô t ki u d li u: VAR Gioitinh: (Nam, nu); Ngay: (Chunhat, Hai, Ba, Tu, Nam, Sau, Bay); Ví d : Ketqua:= True; Mau1:=Blue; Gioitinh:=Nam; Ngay:=Chunhat; 2.6. Ki u kho ng con (Sub- range Type) Là ki u vô hư ng ñư c d ng khi m t bi n ch ñư c láy giá tr trong m t kho ng (xác ñ nh b i c n trên và c n dư i). • Quy t c ñ nh nghĩa: Hang_can_duoi..Hang_can_tren; Trong ñó: Hang_can_duoi < Hang_can_tren, và cùng ki u. • Tác d ng: - Ti t ki m ô nh . - Có th ki m tra giá tr c a bi n khi ch y chương trình không ñư c vư t ra kh i gi i h n c a kho ng con. Ví d : TYPE Ngay= (Chunhat, Hai, Ba, Tu, Nam, Sau, Bay); Chu_cai_hoa='A'..'Z'; VAR ch: Chu_cai_hoa; Ngay_lam_viec: Hai..Bay; 120 Trư ng ð i h c Nông nghi p 1 - Giáo trình Tin h c ñ i cương --------------------------------------------- 120
  5. 3. Các khai báo 3.1. Khai báo ñơn v ðơn v là m t ki u t ch c c a chương trinh Pascal, trong ñó có các chương trình con, nh m th c hi n m t m t ch c năng nào ñó. Ta khai báo các ñơn v s d ng trong chương trình theo cú pháp sau: Uses Tên_ñơn_vi; CRT là ñơn v chu n qu n lý màn hình, bàn phím; GRAPH là ñơn v ñ h a. PRINTER là ñơn v khai báo máy in, máy in ñư c cài ñ t tên là LST. Ví d 1: Uses crt; Ví d 2: Uses crt, graph, printer; 3.2. Khai báo nhãn Nhãn là m t tên trong Pascal. Nhãn dùng ñánh d u m t câu l nh trong chương trình ñ có th chuy n ñi u khi n t i ñó. Khai báo nhãn trong chương trình theo cú pháp sau: Label Tên_nhãn; Cách ñánh d u nhãn cho câu l nh như sau: Tên_nhãn : Câu l nh; Ví d : Label Tiep; ... Tiep : Readln(x); 3.3. Khai báo h ng H ng là ñ i lư ng không thay ñ i giá tr trong quá trình x lí. Ta khai báo h ng theo cú pháp: const Tên_h ng=Giátr ; ñó: Tên_h ng do ta ñ t ra, Giátr là giá tr mà tên h ng s nh n và gi không ñ i su t quá trình x lí. Ví d : const n=10; { khai báo h ng s nguyên n=10} pi=3.1416; { khai báo h ng s pi } ki_tu='Y'; { khai báo h ng kí t ki_tu nh n kí t Y} 3.4. Khai báo ki u Khai báo ki u là ñ nh nghĩa m t ki u d li u do ngư i s d ng t o ra. Khai báo ki u có cú pháp sau: Type Tên_ki u = Mô_ t _ki u; Ví d : Type Mau = (do, xanh, vang, tim, nau); Type Phuong_tien_GT = (xe_dap, xe_may, o_to, tau_hoa); Type Tuoi_nguoi = 1..300; 121 Trư ng ð i h c Nông nghi p 1 - Giáo trình Tin h c ñ i cương --------------------------------------------- 121
  6. 3.5. Khai báo bi n Bi n là ñ i lư ng có th thay ñ i giá tr trong quá trình x lí. Bi n c a chương trình là tên c a ô nh c t gi d li u. Mu n s d ng bi n nào ta ph i khai báo trư c bi n ñó b ng cách vi t tên bi n trong ph n khai báo ñ u chương trình sau t khoá Var. Cú pháp: Var Tên_bi n:Ki u_d _li u; ñó: Tên_bi n do ta ñ t ra, Ki u_d _li u là tên c a m t trong các ki u d li u c a TURBO PASCAL, d u hai ch m b t bu c ph i có ñ ngăn gi a 2 ph n c a khai báo, d u ch m ph y k t thúc dòng khai báo. Các bi n có cùng ki u có th ñư c khai báo cùng nhau b ng cách vi t các tên bi n cách nhau b i dâú ph y (,), nhóm các bi n khác ki u nhau ñư c vi t cách nhau b i d u ; Ví d : Var i:integer; { khai báo m t bi n có tên là I, bi n này có ki u nguyên} x,y,z:real; { khai báo 3 bi n x,y,z nh n các giá tr có ki u th c } t: char; { khai báo bi n t có ki u kí t } kiem_tra:boolean; { khai báo bi n logic } Tuoi: 1..300; ð i v i m i bài toán, khi phân tích thu t toán, ta ph i xác ñ nh rõ ngay chương trình c n ph i nh p vào các d ki n gì ? các k t qu trung gian nào c n ph i ñư c ch a, d li u ra là nh ng gì?... ñ t ñó có ph n khai báo chính xác, không b thi u mà cũng không th a gây lãng phí ô nh (!) 4. Bi u th c và câu l nh 4.1. Bi u th c Bi u th c là m t công th c tính toán ñ có m t giá tr theo m t công th c toán h c nào ñó. M t bi u th c bao g m các toán t k t h p v i các toán h ng. Các toán t trong TURBO PASCAL g m: các phép toán s h c ( +, -, *, / ), các phép so sánh ( =, , ...), các phép toán logic ( NOT, AND, OR); Các toán h ng: g m các h ng, các bi n, các hàm ñư c d nh nghĩa trong TURBO PASCAL Th t ưu tiên các phép toán như sau: 1. d u ngo c ( ) n i dung vi t trong d u ngo c ñư c ưu tiên th c hi n trư c nh t 2. phép l y ñ i ( - ), phép NOT 3. các phép tính lo i nhân, chia: *, /, DIV, MOD, AND 4. các phép tính lo i c ng, tr : +, -, OR 5. các phép so sánh: +, , , ... Chú ý: Bi u th c trong Pascal ch ñư c vi t trên 1 dong do ñó ph i chú ý dùng các d u ( ) ñ vi t cho chính xác. b 2 − 4ac Ví d : Bi u th c toán h c vi t là: 1 + 2ab Trong Pascal vi t là: (b*b- 4*a*c)/(1+sqrt(2*a*b)) 2 + sin x + cos x Bi u th c toán h c vi t là: 2 sin x + 1 Trong Pascal vi t là: (2+ sqrt (sin(x)+cos(x)))/(2* sin(x)+1) 122 Trư ng ð i h c Nông nghi p 1 - Giáo trình Tin h c ñ i cương --------------------------------------------- 122
  7. 4.2. Câu l nh Câu l nh xác ñ nh công vi c, thao tác mà chương trình ph i th c hi n ñ x lí các d li u ñã mô t , khai báo. Các l nh vi t cách nhau b i d u (;), TURBO PASCAL phân lo i các l nh như sau: - L nh ñơn: là các l nh không ch a các l nh khác - L nh có c u trúc: thư ng ch a nhi u hơn m t l nh ñơn, bao g m kh i l nh, các l nh th và r nhánh, các l nh l p. - L nh h p thành ( còn g i là l nh ph c hay l nh ghép ): g m m t nhóm các l nh ñư c ñ t gi a c p t khoá begin ... end; ( d u ch m ph y (;) k t thúc ch không ph i d u ch m ) như sau: begin l nh1; l nh2; ... l nhn; end; D ng l nh này cho ta th y tính có c u trúc c a TURBO PASCAL. M t nhóm các l nh gi i quy t tr n v n m t công vi c nào ñó s ñư c t ch c trong m t kh i l nh d ng này, và t ng công vi c c a bài toán l n s ñư c giao cho t ng ngư i làm trư c khi ghép l i ñ gi i bài toán t ng th . Chúng ta s ñ c p kĩ hơn v v n ñ này ph n chương trình con ( th t c và hàm ). Bài t p chương 2 Hãy vi t các khai báo bi n cho các bài toán sau: 1. Tính n giai th a: n! =1.2...n v i n>1 2. Tính các t ng: S=1/2 + 1/4 +...+ 1/(2k) Q=1.1!+2.2!+...+n.n! 3. Tìm và in ra t t c các s chính phương nh hơn m t s cho trư c, cho bi t có bao nhiêu s chính phương như v y. 4. Vi t chương trình gi i bài toán c : " V a gà v a chó, bó l i cho tròn, ba mươi sáu con, m t trăm chân ch n. H i có bao nhiêu gà, bao nhiêu chó?" c. 5. Vi t chương trình tìm ư c s chung l n nh t c a 2 s nguyên dương cho trư 2 n xx x ε=10-4 ( ABS(xn/n!) < ε ), giá tr 6. Tính Ex= 1 + + ...+ + ... + v i ñ chính xác x ñư c nh p vào t bàn 1! 2 ! n! phím khi ch y chương trình. 7. C n có 50000 ñ t các lo i gi y b c 1000ñ, 2000ñ và 5000ñ. Tìm t t c các phương án có th . 8. Chuy n m t s th p phân nguyên dương thành m t s nh phân, in ra màn hình d ng X10 = Y2 123 Trư ng ð i h c Nông nghi p 1 - Giáo trình Tin h c ñ i cương --------------------------------------------- 123
ADSENSE

CÓ THỂ BẠN MUỐN DOWNLOAD

 

Đồng bộ tài khoản
3=>0