Giáo trình Ngôn ngữ lập trình Pascal - TS. Nguyễn Ngọc Cương (chủ biên)
lượt xem 106
download
Giáo trình Ngôn ngữ lập trình Pascal trình bày về các thành phần cơ bản của ngôn ngữ lập trình Pascal; các kiểu dữ liệu đơn giản chuẩn; các khai báo hằng, biến, kiểu, biểu thức và câu lệnh; thủ tục nhập ‐ xuất dữ liệu; kiểu vô hướng liệt kê và kiểu khoảng con; câu lệnh có cấu trúc;... Mời các bạn tham khảo giáo trình để bổ sung thêm kiến thức về lĩnh vực này.
Bình luận(0) Đăng nhập để gửi bình luận!
Nội dung Text: Giáo trình Ngôn ngữ lập trình Pascal - TS. Nguyễn Ngọc Cương (chủ biên)
- M· sè: GD 08 HM 11
- LỜI NÓI ĐẦU Con người liên lạc với nhau thông qua ngôn ngữ, tạo ra các mẫu từ ngữ và âm thanh. Ngôn ngữ lập trình cũng tương tự như vậy, đó là một tập từ ngữ và ký hiệu cho phép lập trình viên hoặc người dùng có thể tương tác với máy tính. Việc hiểu biết và nắm vững các ngôn ngữ lập trình là thật sự cần thiết đối với các lập trình viên. Mặc dù đã có hàng trăm ngôn ngữ lập trình được sinh ra, song chỉ có một số ít là được sử dụng rộng rãi và được xem là một chuẩn công nghiệp. Các ngôn ngữ này đều có thể được sử dụng trên nhiều loại máy tính khác nhau. Hiện nay, ngôn ngữ lập trình Pascal là ngôn ngữ bậc cao đang được sử dụng khá rộng rãi trong lập trình. Nhằm giúp các bạn sinh viên, nghiên cứu sinh, lập trình viên có được một tài liệu khá hệ thống về ngôn ngữ lập trình Pascal, NXB Thông tin và Truyền thông trân trọng giới thiệu cuốn sách “Giáo trình ngôn ngữ lập trình Pascalʺ do TS. Nguyễn Ngọc Cương (Trưởng khoa Toán tin, Học viện An ninh nhân dân) làm chủ biên. Nội dung cuốn sách gồm 12 chương: Chương 1: Các thành phần cơ bản của ngôn ngữ lập trình Pascal Chương 2: Các kiểu dữ liệu đơn giản chuẩn Chương 3: Các khai báo hằng, biến, kiểu, biểu thức và câu lệnh Chương 4: Thủ tục nhập ‐ xuất dữ liệu Chương 5: Kiểu vô hướng liệt kê và kiểu khoảng con Chương 6: Các câu lệnh có cấu trúc
- Chương 7: Chương trình con Chương 8: Kiểu xâu ký tự (String) Chương 9: Kiểu dữ liệu có cấu trúc Chương 10: Màn hình và chế độ đồ họa Chương 11: Con trỏ và cấu trúc dữ liệu động Chương 12: Tin học ứng dụng trong tính toán Phần cuối của cuốn sách là một số đề thi tổng hợp để bạn đọc tham khảo. Hy vọng cuốn sách không chỉ dành riêng cho các Học viên Học viện An ninh Nhân dân, Học viện Cảnh sát Nhân dân, còn là tài liệu tham khảo bổ ích cho các cán bộ giảng dạy, sinh viên các trường đại học cũng như các kỹ sư, kỹ thuật viên chuyên ngành Công nghệ Thông tin, Điện tử Viễn thông và Tự động hóa. Nhà xuất bản xin trân trọng giới thiệu cùng bạn đọc và rất mong nhận được ý kiến đóng góp của quý vị. Mọi ý kiến đóng góp xin gửi về Nhà xuất bản Thông tin và Truyền thông ‐ 18 Nguyễn Du, Hà Nội hoặc gửi trực tiếp cho tác giả theo địa chỉ: cuongnnhvan@yahoo.com. Trân trọng cảm ơn./. NXB THÔNG TIN VÀ TRUYỀN THÔNG
- Ch−¬ng 1: C¸c thμnh phÇn c¬ b¶n cña ng«n ng÷ lËp tr×nh Pascal 5 Chương 1 CÁC THÀNH PHẦN CƠ BẢN CỦA NGÔN NGỮ LẬP TRÌNH PASCAL 1.1. Giíi thiÖu ng«n ng÷ lËp tr×nh Turbo Pascal - Lµ ng«n ng÷ lËp tr×nh bËc cao, cã cÊu tróc vµ cã tÝnh v¹n n¨ng do gi¸o s− Niklaus Wirth (t¸c gi¶ cña cuèn "CÊu tróc d÷ liÖu + Gi¶i thuËt = Ch−¬ng tr×nh) s¸ng t¸c vµ c«ng bè vµo ®Çu nh÷ng n¨m 1970 lÊy tªn nhµ b¸c häc bËc thÇy ng−êi Ph¸p lµ Pascal ®Ó ®Æt tªn. Lóc ®Çu Pascal ®−îc s¸ng t¹o ra víi môc ®Ých lµm ng«n ng÷ d¹y häc. - Pascal lµ mét ng«n ng÷ cã ®Þnh kiÓu m¹nh mÏ. §iÒu ®ã cã nghÜa lµ mäi biÕn vµ h»ng cña mét kiÓu d÷ liÖu kh«ng thÓ tù do ®em trén lÉn víi c¸c biÕn vµ h»ng cña mét kiÓu d÷ liÖu kh¸c. ViÖc ®Þnh kiÓu mét c¸ch chÆt chÏ nh− vËy ®ßi hái ng−êi lËp tr×nh ph¶i cã c¸c biÓu thøc t−¬ng thÝch nhau vÒ kiÓu d÷ liÖu. - Pascal lµ mét ng«n ng÷ cã cÊu tróc. Mét ng«n ng÷ cã cÊu tróc khèi lµ mét ng«n ng÷ mµ ta cã thÓ t¸ch c¸c th«ng tin d÷ liÖu (biÕn, h»ng,...) vµ c¸c lÖnh cÇn dïng cho mét nhiÖm vô x¸c ®Þnh thµnh nh÷ng khèi riªng, t¸ch ra khái phÇn cßn l¹i cña ch−¬ng tr×nh ®Ó ng−êi lËp tr×nh cã thÓ gi¶i quyÕt dÇn tõng phÇn mét, tõng khèi mét vµ thËm chÝ cã thÓ cho nhiÒu ng−êi cïng tham gia lËp tr×nh, mçi ng−êi phô tr¸ch mét vµi khèi. Mçi khèi øng víi mét nhiÖm vô cô thÓ vµ x¸c ®Þnh, th−êng ®−îc thùc hiÖn b»ng c¸c ch−¬ng tr×nh con. B»ng c¸ch nµy ta cã thÓ viÕt c¸c ch−¬ng tr×nh con sao cho c¸c sù kiÖn x¶y ra trong ®ã kh«ng lµm ¶nh h−ëng tíi c¸c phÇn kh¸c n»m ngoµi ch−¬ng tr×nh. TÝnh cÊu tróc cña Pascal ®−îc thÓ hiÖn trªn 3 mÆt:
- 6 Gi¸o tr×nh Ng«n ng÷ lËp tr×nh Pascal + CÊu tróc vÒ mÆt d÷ liÖu: Tõ c¸c d÷ liÖu ®· cã (kiÓu ®¬n gi¶n chuÈn hoÆc d÷ liÖu cã cÊu tróc) ta cã thÓ x©y dùng c¸c cÊu tróc d÷ liÖu phøc t¹p h¬n. + CÊu tróc vÒ mÆt lÖnh: Tõ c¸c lÖnh ®· cã (lÖnh ®¬n gi¶n hoÆc lÖnh cã cÊu tróc) ta cã thÓ nhãm chóng l¹i víi nhau vµ ®Æt gi÷a hai tõ khãa Begin vµ End thµnh c©u lÖnh phøc t¹p h¬n, gäi lµ lÖnh hîp thµnh hay lÖnh ghÐp. + CÊu tróc vÒ mÆt ch−¬ng tr×nh: Mét ch−¬ng tr×nh cã thÓ chia thµnh c¸c m«-®un ch−¬ng tr×nh ®éc lËp (ch−¬ng tr×nh con). 1.2. C¸c thμnh phÇn c¬ b¶n cña ng«n ng÷ Pascal §−îc x©y dùng tõ mét bé ký tù, c¸c ch÷ viÕt vµ ch÷ sè ®−îc kÕt hîp l¹i thµnh c¸c tõ, c¸c tõ t¹o thµnh c¸c c©u, tÊt c¶ ®Òu ph¶i tu©n theo mét có ph¸p vµ ng÷ ph¸p chÆt chÏ. a. Bé ch÷ viÕt dïng trong Turbo Pascal - Bé 26 ch÷ c¸i La-tinh: A, B, C,.., Z; a, b, c,..z - Ký tù g¹ch nèi: "_" - Bé ch÷ sè thËp ph©n: 0, 1, 2,.., 9 - C¸c ký hiÖu to¸n häc th«ng dông: +, - , *, /, ( ) - C¸c ký hiÖu kh¸c : , =, , [], &, #, $,... DÊu c¸ch (Space) thùc sù lµ kho¶ng trèng dïng ®Ó ng¨n c¸ch c¸c tõ. C¸c ch÷ ¶ RËp: α, β, γ,... vµ c¸c ch÷ sè La M· kh«ng thuéc bé ký tù cña Turbo Pascal. b. Tõ khãa Lµ c¸c tõ riªng cña Pascal, cã ng÷ nghÜa ®· ®−îc x¸c ®Þnh, kh«ng ®−îc dïng nã vµo c¸c viÖc kh¸c hoÆc ®Æt tªn míi trïng víi c¸c tõ khãa.
- Ch−¬ng 1: C¸c thμnh phÇn c¬ b¶n cña ng«n ng÷ lËp tr×nh Pascal 7 - Tõ khãa chung: program, begin, end, procedure, function - Tõ khãa ®Ó khai b¸o: const, var, type, label, array, string, record, set, file of - Tõ khãa cña lÖnh lùa chän: if... then.. else ; case.. of - Tõ khãa cña lÖnh lÆp: for.. to.. do; for.. downto.. do, while..do, repeat..until. - Tõ khãa ®iÒu khiÓn: with, goto, exit - Tõ khãa c¸c phÐp to¸n: and, or, not, in, div, mod - Tõ khãa NUL. C¸c tõ khãa cã thÓ viÕt b»ng ch÷ th−êng hay ch÷ hoa. Khi ®ã gi¸ trÞ vµ ý nghÜa cña chóng lµ nh− nhau, ®iÒu nµy kh¸c víi ng«n ng÷ C/C++ mµ chóng ta nghiªn cøu sau nµy. c. Tªn gäi (Identifier - §Þnh danh) Lµ mét kh¸i niÖm quan träng dïng ®Ó x¸c ®Þnh c¸c ®¹i l−îng kh¸c nhau trong ch−¬ng tr×nh nh− tªn biÕn, tªn h»ng, tªn kiÓu, tªn ch−¬ng tr×nh con, tªn ch−¬ng tr×nh, tªn tÖp, tªn nh·n. Tªn trong Pascal ®−îc thµnh lËp theo quy t¾c: Lµ mét d·y ký tù bao gåm ch÷ c¸i, ch÷ sè vµ dÊu g¹ch nèi. Ký tù ®Çu tiªn kh«ng ®−îc lµ ch÷ sè, tªn cã thÓ cã ®é dµi tèi ®a lµ 127 ký tù, nh−ng chØ cã 63 ký tù ®Çu tiªn lµ cã ý nghÜa. Tªn kh«ng ®−îc trïng víi tõ khãa. Pascal kh«ng ph©n biÖt ch÷ th−êng vµ ch÷ hoa trong mét tªn. Tªn chuÈn: Mét sè tªn ®· ®−îc ®Þnh nghÜa s½n trong Pascal gäi lµ c¸c tªn chuÈn. Sù kh¸c nhau gi÷a tªn chuÈn vµ tõ khãa lµ: ng−êi dïng cã thÓ ®Þnh nghÜa l¹i c¸c tªn chuÈn hoÆc dïng tªn chuÈn vµo viÖc kh¸c nÕu muèn, cßn tõ khãa th× bÞ nghiªm cÊm dïng vµo viÖc kh¸c tr¸i víi quy ®Þnh cña Pascal. Mét sè tªn chuÈn cña Pascal: boolean, char, integer, word, byte, real, text, false, true, maxint, eof, eoln. C¸c hµm chuÈn: abs, arctan, chr, cos, sin. C¸c thñ tôc chuÈn: write, writeln, read, readln...
- 8 Gi¸o tr×nh Ng«n ng÷ lËp tr×nh Pascal VÝ dô: Ta cã thÓ ®Þnh nghÜa ra mét hµm cã tªn lµ SIN(x) ®Ó tÝnh gi¸ trÞ tuyÖt ®èi cña x (nÕu muèn). Song kh«ng thÓ dïng tõ khãa Begin ®Ó lµm bÊt cø viÖc g× ngoµi quy ®Þnh cña b¶n th©n nã. d. DÊu chÊm ph¶y (;) DÊu chÊm ph¶y ";" ®−îc dïng ®Ó ng¨n c¸ch c¸c c©u lÖnh cña Pascal vµ kh«ng thÓ thiÕu ®−îc. Kh«ng nªn hiÓu dÊu ";" lµ dÊu kÕt thóc lÖnh. e. Lêi gi¶i thÝch C¸c lêi b×nh luËn, c¸c lêi gi¶i thÝch cã thÓ ®−a vµo bÊt kú chç nµo trong ch−¬ng tr×nh ®Ó cho ch−¬ng tr×nh dÔ hiÓu, dÔ ®äc mµ kh«ng lµm ¶nh h−ëng ®Õn c¸c phÇn kh¸c. Lêi gi¶i thÝch ®−îc ®Æt gi÷a hai dÊu ngoÆc mãc { } hoÆc gi÷a hai côm dÊu (* *). Trong ch−¬ng tr×nh cÇn cã nh÷ng lêi gi¶i thÝch ®Ó ch−¬ng tr×nh thªm dÔ hiÓu. Turbo Pascal quy ®Þnh nÕu më lêi gi¶i thÝch b»ng dÊu (* th× ph¶i ®ãng l¹i b»ng dÊu *) chø kh«ng ®−îc ®ãng l¹i b»ng dÊu }. NÕu më b»ng dÊu { th× ph¶i ®ãng l¹i b»ng dÊu } chø kh«ng ®−îc ®ãng l¹i b»ng dÊu *). DÊu më cã thÓ cã nhiÒu lÇn tr−íc mét dÊu ®ãng. 1.3. CÊu tróc chung cña mét ch−¬ng tr×nh Pascal CÊu tróc chung tæng qu¸t nhÊt cña mét ch−¬ng tr×nh Pascal gåm ba phÇn: Program Tªn_Ch−¬ng_Tr×nh; {Tiªu ®Ò} Uses..., Label...; Const...; Type...; Var... {PhÇn khai b¸o d÷ liÖu} Procedure... {PhÇn m« t¶ ch−¬ng tr×nh con} Function... Begin {Th©n ch−¬ng tr×nh chÝnh} {C¸c lÖnh ®−îc viÕt ë ®©y} End. {KÕt thóc ch−¬ng tr×nh}
- Ch−¬ng 1: C¸c thμnh phÇn c¬ b¶n cña ng«n ng÷ lËp tr×nh Pascal 9 1.3.1. PhÇn tªn ch−¬ng tr×nh PhÇn tªn ch−¬ng tr×nh b¾t ®Çu b»ng tõ khãa Program tiÕp theo lµ tªn do ng−êi lËp tr×nh ®Æt cã ý nghÜa nµo ®ã ®Æc tr−ng cho c«ng viÖc cña ch−¬ng tr×nh vµ kÕt thóc b»ng dÊu chÊm ph¶y ";". PhÇn tiªu ®Ò chiÕm mét dßng vµ cã thÓ kh«ng cã còng ®−îc. 1.3.2. PhÇn khai b¸o PhÇn nµy cã nhiÖm vô khai b¸o c¸c th− viÖn cã s½n cÇn sö dông trong ch−¬ng tr×nh, m« t¶ ®èi t−îng bµi to¸n, m« t¶ d÷ liÖu... sÏ ®−îc ch−¬ng tr×nh xö lý. §−îc chia thµnh 7 kiÓu khai b¸o víi c¸c tõ khãa sau: Uses Crt, Printer; (Khai b¸o sö dông c¸c th− viÖn) Label (Khai b¸o nh·n) Const (Khai b¸o c¸c h»ng sè, h»ng ký tù) Type (M« t¶ c¸c kiÓu d÷ liÖu míi) Var (Khai b¸o c¸c biÕn) Procedure (Khai b¸o thñ tôc) Function (Khai b¸o hµm) C¸c phÇn khai b¸o cã thÓ cã hoÆc kh«ng tïy theo nhu cÇu. Tuy nhiªn víi Turbo Pascal for Windows b¾t buéc ph¶i khai b¸o sö dông c¸c th− viÖn. 1.3.3. PhÇn th©n ch−¬ng tr×nh PhÇn nµy n»m gi÷a hai tõ khãa BEGIN vµ END. Sau tõ khãa END lµ dÊu chÊm ®Ó b¸o kÕt thóc ch−¬ng tr×nh. PhÇn nµy b¾t buéc ph¶i cã ®èi víi mäi ch−¬ng tr×nh, nã chøa c¸c lÖnh ®Ó xö lý c¸c ®èi t−îng sè liÖu ®· ®−îc m« t¶ trong phÇn khai b¸o. 1.3.4. Giíi thiÖu phÇn mÒm Turbo Pascal Turbo Pascal lµ s¶n phÈm cña h·ng BORLAND (Mü). Tõ ngµy xuÊt b¶n ®Çu tiªn ®Õn nay ®· qua nhiÒu lÇn t¸i b¶n, mçi lÇn t¸i b¶n ®·
- 10 Gi¸o tr×nh Ng«n ng÷ lËp tr×nh Pascal cho mét phiªn b¶n míi h¬n víi nhiÒu c¶i tiÕn h¬n. C¸c phiªn b¶n ®ang ®−îc sö dông hiÖn nay lµ 7.0 vµ Turbo Pascal for Windows. §Æc biÖt lµ Turbo Pascal 7.0 thÝch hîp cho c¸c m¸y vi tÝnh cã dung l−îng bé nhí nhá (640kB), tèc ®é thÊp, v× vËy phiªn b¶n 7.0 ®−îc chän lµm mÉu ®Ó giíi thiÖu trong phÇn nµy. a. C¸c tËp tin cña Turbo Pascal TURBO.EXE: So¹n th¶o, dÞch vµ liªn kÕt ch−¬ng tr×nh theo menu. TURBO.TPL: TËp tin th− viÖn, l−u c¸c ®¬n vÞ chuÈn ®Ó ch¹y víi TURBO.EXE TINST.EXE: Cung cÊp c¸c tiÖn Ých cho phÐp cµi ®Æt c¸c th«ng sè cña TURBO.EXE nh− mµu ch÷, mµu nÒn, viÒn cöa sæ… TPC.EXE: Tr×nh biªn dÞch ®éc lËp kh«ng th«ng qua TURBO.EXE TPMOVER.EXE: ChuyÓn c¸c ®¬n vÞ ch−¬ng tr×nh tù t¹o sang tËp tin th− viÖn chuÈn TPL README: tËp tin v¨n b¶n chøa c¸c th«ng tin cña Turbo Pascal README.COM: Ch−¬ng tr×nh giíi thiÖu c¸c hiÓu biÕt s¬ bé tr−íc khi sö dông Turbo Pascal. GRAPH.TPU: §¬n vÞ ®å häa TURBO.TPH: Cung cÊp c¸c gióp ®ì khi lËp tr×nh *.BGI: Chøa c¸c font mµn h×nh *.CHR: Chøa c¸c font ch÷ trong chÕ ®é ®å häa. b. Tæ chøc c¸c tËp tin trªn ®Üa Dïng ch−¬ng tr×nh cµi ®Æt INSTALL.EXE vµ tr¶ lêi tõng c©u hái cña ch−¬ng tr×nh, c¸c tËp tin sÏ tù ®éng bung ra ghi vµo trong ®Üa cøng. NÕu sö dông Turbo Pascal trªn ®Üa mÒm th× tèi thiÓu ph¶i cã 2 tËp tin TURBO.EXE vµ TURBO.TPL ®Ó ch¹y ®−îc ch−¬ng tr×nh.
- Ch−¬ng 1: C¸c thμnh phÇn c¬ b¶n cña ng«n ng÷ lËp tr×nh Pascal 11 c. Khëi ®éng phÇn mÒm Turbo Pascal - §−a hÖ ®iÒu hµnh vµo lµm viÖc trªn th− môc cã tËp tin TURBO.EXE - Sau khi gâ vµo c©u lÖnh trªn vµ bÊm phÝm Enter, chØ ®é vµi gi©y ta sÏ thÊy xuÊt hiÖn trªn mµn h×nh: + Hµng trªn cïng lµ nh÷ng thùc ®¬n chÝnh cña Pascal (Main Menu), gåm cã c¸c menu: File, Edit, Run, Compile, Option, Debug. + Cöa sæ h×nh ch÷ nhËt mµu tr¾ng ë gi÷a mµn h×nh lµ nh÷ng dßng tù giíi thiÖu v¾n t¾t cña TP7.0. Khi bÊm Enter sÏ mÊt khung cöa sæ nµy ®Ó dµnh toµn bé mµn h×nh cho ta so¹n th¶o ch−¬ng tr×nh. 1.3.5. C¸c b−íc c¬ b¶n ®Ó ch¹y mét ch−¬ng tr×nh Turbo Pascal B−íc 1: Khëi ®éng Turbo Pascal Víi Turbo Pascal ch¹y trªn m«i tr−êng DOS, chuyÓn ®Þa chØ lµm viÖc ®Õn th− môc chøa File TURBO.EXE vµ ch¹y file nµy. Víi Turbo Pascal ch¹y trªn m«i tr−êng Windows, nh¸y ®óp chuét t¹i biÓu t−îng Shortcut cña Turbo Pascal hoÆc khëi ®éng tõ nót lÖnh Start/Programs/TPW råi chän biÓu t−îng TPW. Khi ®ã xuÊt hiÖn mµn h×nh so¹n th¶o víi c¸c file ch−¬ng tr×nh ®−îc më ra lµ c¸c file mµ ta ch−a ®ãng l¹i khi tho¸t khái Pascal ë lÇn ch¹y tr−íc. NÕu muèn ta cã thÓ ®ãng c¸c file ®ã l¹i vµ më mét file míi cã tªn NANAME00.PAS. B−íc 2: So¹n th¶o néi dung ch−¬ng tr×nh a. C¸c thao t¸c víi file ch−¬ng tr×nh trong khi so¹n th¶o F2: Ghi vµo ®Üa (SAVE) F3: Më file kh¸c (LOAD) Ctrl-F2: Ghi vµo tªn file kh¸c Directory: Danh môc file ch−¬ng tr×nh OS Shell: Ra DOS t¹m thêi
- 12 Gi¸o tr×nh Ng«n ng÷ lËp tr×nh Pascal b. C¸c kü n¨ng so¹n th¶o (menu edit) Ctrl-Y: Xãa c¶ dßng ký tù chøa con trá, c¸c dßng ë d−íi sÏ dån lªn Ctrl-Q-Y: Xãa phÇn cuèi dßng kÓ tõ con trá Ctrl-K-Y: Xãa c¶ mét khèi ký tù Ctrl-Q-F: T×m kiÕm mét tõ nµo ®ã Ctrl-Q-A: T×m vµ thay thÕ mét tõ nµo ®ã B−íc 3: DÞch thö, söa lçi có ph¸p vμ ch¹y ch−¬ng tr×nh Alt-F9: Biªn dÞch ch−¬ng tr×nh ®ang lµm viÖc ®Ó kiÓm tra c¸c lçi có ph¸p, hoÆc nhÊn phÝm F9 ®Ó dÞch thö. Ctrl-F9: Ch¹y ch−¬ng tr×nh ®ang ®−îc lµm viÖc trªn mµn h×nh so¹n th¶o. B−íc 4: Gì rèi ch−¬ng tr×nh Chän chøc n¨ng ch¹y tõng b−íc ®Ó gì rèi ch−¬ng tr×nh. NhÊn phÝm F7. B−íc 5: Tho¸t khái ch−¬ng tr×nh Tho¸t khái Turbo Pascal b»ng c¸ch nhÊn tæ hîp phÝm Alt + X ®èi víi Turbo Pascal ch¹y trªn DOS hoÆc Alt + F4 ®èi víi Turbo Pascal ch¹y trªn Windows.
- Ch−¬ng 2: C¸c kiÓu d÷ liÖu ®¬n gi¶n chuÈn 13 Chương 2 CÁC KIỂU DỮ LIỆU ĐƠN GIẢN CHUẨN 2.1. Kh¸i niÖm vÒ kiÓu d÷ liÖu Kh¸i niÖm kiÓu d÷ liÖu trong Pascal còng nh− c¸c ng«n ng÷ lËp tr×nh kh¸c lµ rÊt quan träng, nã x¸c ®Þnh tËp hîp gi¸ trÞ mµ biÕn cã thÓ nhËn. M« t¶ kiÓu sÏ quy ®Þnh lo¹i gi¸ trÞ cña biÕn vµ cung cÊp cho ch−¬ng tr×nh dÞch nh÷ng th«ng tin cÇn thiÕt. C¸c kiÓu d÷ liÖu trong Pascal nh− kiÓu integer, real, char, boolean, byte ®−îc gäi lµ c¸c kiÓu d÷ liÖu ®¬n gi¶n v× chóng lµ c¸c d÷ liÖu kh«ng ph©n chia ®−îc n÷a. Nh− vËy, mét kiÓu d÷ liÖu ®−îc ®Þnh nghÜa lµ mét tËp hîp c¸c gi¸ trÞ mµ mét biÕn thuéc kiÓu ®ã cã thÓ nhËn ®−îc, trªn ®ã x¸c ®Þnh mét sè phÐp to¸n. Nãi c¸ch kh¸c mét kiÓu d÷ liÖu lµ mét tËp hîp ®−îc quy ®Þnh vÒ cÊu tróc, kho¶ng gi¸ trÞ, c¸ch biÓu diÔn vµ c¸c thao t¸c xö lý. D÷ liÖu trong Turbo Pascal ®−îc chia thµnh hai líp lín lµ kiÓu d÷ liÖu ®¬n gi¶n (Simple Type) vµ kiÓu d÷ liÖu cã cÊu tróc (Structure Type). KiÓu d÷ liÖu biÓu diÔn mét gi¸ trÞ ®−îc gäi lµ kiÓu d÷ liÖu ®¬n gi¶n, bao gåm: - KiÓu logic (Boolean) - KiÓu sè nguyªn (Integer) - KiÓu ký tù (Character) - KiÓu v« h−íng liÖt kª (Enumerated scalar) - KiÓu ®o¹n con (Subrage) - KiÓu sè thùc (Real) - KiÓu chuçi ký tù (String).
- 14 Gi¸o tr×nh Ng«n ng÷ lËp tr×nh Pascal N¨m kiÓu ®Çu lµ kiÓu d÷ liÖu ®Õm ®−îc (hay cã thø tù), chóng ®−îc dïng lµm chØ sè m¶ng vµ trong c¸c to¸n tö ®iÒu khiÓn. KiÓu d÷ liÖu cã cÊu tróc bao gåm: M¶ng, tËp hîp, b¶n ghi vµ tÖp. 2.2. KiÓu logic (Boolean) Mét tËp hîp Logic Boolean lµ mét tËp hîp chØ cã hai gi¸ trÞ True (§óng) hoÆc False (Sai). - Mét d÷ liÖu thuéc kiÓu logic lµ mét ®¹i l−îng chØ cã thÓ nhËn mét trong hai gi¸ trÞ logic True hoÆc False. - C¸c phÐp to¸n cã thÓ ¸p dông trªn kiÓu logic: AND, OR, NOT, XOR. Sau ®©y lµ b¶ng gi¸ trÞ cña c¸c phÐp to¸n: A B A AND B A OR B A XOR B NOT A True True True True False False True False False True True False False True False True True True False False False False False True C¸c biÓu thøc quan hÖ (so s¸nh) lu«n cho kÕt qu¶ kiÓu Boolean. Cã c¸c phÐp to¸n quan hÖ sau: , =, >=, , < Hai vÕ cña biÓu thøc so s¸nh ph¶i cïng kiÓu nhau (ngo¹i trõ kiÓu sè thùc vµ kiÓu sè nguyªn) vµ chóng cã thÓ lµ c¸c kiÓu: Real, Integer, Boolean, Char, v« h−íng do ng−êi sö dông ®Þnh nghÜa. Gi¸ trÞ False ®−îc coi lµ nhá h¬n (®øng tr−íc) True. 2.3. KiÓu sè nguyªn (Integer) - Trong to¸n häc, sè nguyªn lµ tËp hîp c¸c sè cã gi¸ trÞ nguyªn tõ - ∞ ÷ +∞. Nh−ng do giíi h¹n biÓu diÔn cña m¸y tÝnh còng nh− ®Ó tiÕt kiÖm bé nhí nªn Turbo Pascal cung cÊp n¨m kiÓu sè nguyªn ®−îc ®Þnh nghÜa víi c¸c tõ khãa t−¬ng øng víi ph¹m vi biÓu diÔn cña kiÓu
- Ch−¬ng 2: C¸c kiÓu d÷ liÖu ®¬n gi¶n chuÈn 15 vµ sè Byte cÇn thiÕt ®Ó biÓu diÔn mét gi¸ trÞ thuéc kiÓu sè nguyªn t−¬ng øng. KiÓu Ph¹m vi biÓu diÔn Sè Byte Integer -32768..32767 2 Byte 0..25 1 Word 0..65535 2 Shortint -128..127 1 Longint -2147483648..2147483647 4 - C¸c phÐp to¸n sè häc ®èi víi sè nguyªn cho kÕt qu¶ lµ gi¸ trÞ nguyªn. + Céng (+), Trõ (-), nh©n (*) + DIV: Chia lÊy phÇn nguyªn + MOD: Chia lÊy phÇn d− + Hµm ODD(n): KiÓm tra tÝnh ch½n lÎ cña mét sè nguyªn, cho kÕt qu¶ lµ True nÕu n lµ mét sè lÎ, False nÕu n lµ mét sè ch½n. + C¸c phÐp to¸n quan hÖ (, =, >=, ,
- 16 Gi¸o tr×nh Ng«n ng÷ lËp tr×nh Pascal diÔn sè thùc vÒ ®é chÝnh x¸c vµ sè l−îng Byte cÇn thiÕt ®Ó biÓu diÔn mét sè thùc kh¸c nhau nh»m phôc vô cho ng−êi lËp tr×nh sö dông tïy thuéc vµo yªu cÇu bµi to¸n. C¸c kiÓu sè thùc bao gåm: KiÓu Ph¹m vi biÓu diÔn Sè ch÷ sè cã nghÜa Sè Byte Single 1.5*10-45.... 3.4*1038 7-8 4 Real 2.9*10-39... 1.7*1038 11 - 12 6 Double 5.0*10-324... 1.7*10308 15 - 16 8 -4932 4932 Extended 3.4*10 ... 1.1*10 19 - 20 10 -18 18 Comp 9.2*10 ... 9.2*10 19 - 20 8 Gi¶i thÝch: Ph¹m vi biÓu diÔn cña 4 kiÓu ®Çu ®−îc hiÓu nh− sau: Gi¶ sö lÊy sè thùc Single lµm vÝ dô. M¸y cã thÓ l−u tr÷ ®−îc mét sè kiÓu Single cã gi¸ trÞ tuyÖt ®èi trong kho¶ng tõ 1.5*10-45 ®Õn 3.4*1038. Sè cã gi¸ trÞ tuyÖt ®èi nhá h¬n 1.5*10-45 ®−îc xem lµ b»ng 0. Sè cã gi¸ trÞ tuyÖt ®èi lín h¬n 3.4*1038 kh«ng biÓu diÔn ®−îc trong m¸y. Ph¹m vi biÓu diÔn cña c¸c kiÓu Real, Double, Extended ®−îc hiÓu theo nghÜa t−¬ng tù. + C¸c phÐp to¸n ®èi víi sè thùc bao gåm: Céng (+), Trõ (-), nh©n (*), chia (/), khai c¨n (hµm SQRT), lòy thõa bËc hai (hµm SQR). + C¸c phÐp to¸n quan hÖ (, =, >=, ,
- Ch−¬ng 2: C¸c kiÓu d÷ liÖu ®¬n gi¶n chuÈn 17 Trong c¸ch biÓu diÔn sè thùc dÊu chÊm ®éng, mét phÇn cña tõ m¸y ®−îc dïng ®Ó l−u tr÷ mét sè cè ®Þnh c¸c bit cña phÇn ®Þnh trÞ, phÇn kh¸c l−u tr÷ phÇn mò. Ch¼ng h¹n sè 2.1E2 lµ 210, 5.67E-1 lµ 0.567. 2.5. KiÓu ký tù (Character) Ký tù lµ tÊt c¶ c¸c ch÷ viÕt mµ ta th−êng dïng nh− c¸c ch÷ c¸i, c¸c ch÷ sè, c¸c dÊu ph©n ®o¹n c©u,... KiÓu ký tù ®−îc ®Þnh nghÜa trong Turbo Pascal víi tõ khãa CHAR. Mét gi¸ trÞ kiÓu ký tù lµ mét phÇn tö cña mét tËp hîp h÷u h¹n c¸c ký tù ®−îc s¾p xÕp cã thø tù. Cã nhiÒu c¸ch s¾p xÕp bé ch÷ kh¸c nhau. Tuy vËy bé m· ®−îc dïng phæ biÕn ®Ó trao ®æi th«ng tin gi÷a c¸c thiÕt bÞ, nhÊt lµ m¸y vi tÝnh lµ bé m· ASCII (American Standard Code Information Interchange). PhÐp to¸n phæ biÕn cho c¸c ký tù lµ so s¸nh tuÇn tù (collating sequence). C¸c ký tù ®−îc m· hãa b»ng 1 Byte, v× vËy b¶ng m· ký tù cã thÓ m· hãa 256 ký tù. Tuy vËy sè ký tù c¬ b¶n nhÊt cã thÓ gãi gän l¹i trong 128 sè ®Çu tiªn vµ ®−îc chuÈn hãa. Cßn 128 sè sau (cã sè thø tù tõ 128 ®Õn 255) trªn m¸y vi tÝnh ®−îc gäi lµ phÇn m· më réng vµ ®−îc dïng ®Ó m· hãa c¸c ký tù riªng cña mét sè ng«n ng÷, c¸c ký tù to¸n häc, c¸c ký tù ®å häa,... cã nhiÒu b¶ng m· kh¸c nhau ë phÇn më réng. Trong Turbo Pascal chóng ta quan t©m chñ yÕu tíi phÇn 128 ký tù ®Çu cña b¶ng m· ASCII lµ phÇn chuÈn ®Ó x©y dùng bé ký tù cho ng«n ng÷ lËp tr×nh. M· cña mét ký tù chÝnh lµ sè thø tù cña nã trong b¶ng m·. VÝ dô ký tù A trong b¶ng m· ASCII cã m· lµ 65, ký tù B trong b¶ng m· ASCII cã m· lµ 66. Khi ®ã phÐp so s¸nh A>B sÏ cho kÕt qu¶ sai. Trong b¶ng m· ASCII c¸c ký tù tõ 0 ®Õn 31 lµ c¸c ký tù ®iÒu khiÓn kh«ng in ra ®−îc. Chóng dïng ®Ó ®iÒu khiÓn qu¸ tr×nh vµo ra trªn c¸c thiÕt bÞ ngo¹i vi. VÝ dô khi m¸y nhËn ®−îc ký tù sè 7 (BEL) nã sÏ ®¸nh mét tiÕng chu«ng. Khi nhËn ®−îc c¸c ký tù sè 13 (CR: Carriage Return) vµ sè 10 (LF: Line Feed), thiÕt bÞ ngo¹i vi nh− mµn h×nh vµ m¸y in sÏ chuyÓn ®iÓm lµ viÖc (con trá mµn h×nh, ®Çu kim in) xuèng ®Çu dßng tiÕp theo.
- 18 Gi¸o tr×nh Ng«n ng÷ lËp tr×nh Pascal C¸c ký tù cã vÞ trÝ trong b¶ng m· ASCCI tõ 45 ®Õn 57 lµ c¸c ch÷ sè. C¸c ký tù tõ 65 ®Õn 90 lµ c¸c ch÷ c¸i hoa,... §Ó biÓu diÔn mét ký tù cã thÓ dïng mét trong ba c¸ch sau: C¸ch 1: BiÓu diÔn h»ng ký tù b»ng c¸ch ®Æt ký tù trong 2 dÊu nh¸y ®¬n: 'a', 'B', '*', 'z', '0', '9', ':',... C¸ch nµy chØ biÓu diÔn ®−îc ký tù cã trªn bµn phÝm. C¸ch 2: Sö dông hµm Chr(n) Trong ®ã (0 ≤ n ≤ 255) lµ m· cña ký tù cÇn biÓu diÔn. VÝ dô: Chr(66) chÝnh lµ 'B' Chr(98) chÝnh lµ 'b' C¸ch 3: T−¬ng tù nh− c¸ch 2 nh−ng dïng c¸ch viÕt: #n thay cho Chr(n). C¸c hµm chuÈn liªn quan ®Õn kiÓu ký tù: Hµm chuÈn Ord(n): Cho sè thø tù cña ký tù n trong b¶ng m·. Hµm chuÈn Chr(n) hay #n: cho ký tù cã sè thø tù lµ n. Hµm chuÈn Pred(ch): Cho ký tù ®øng tr−íc ch trong b¶ng m·. Hµm chuÈn Succ(ch): Cho ký tù ®øng sau ch trong b¶ng m·. Do quan hÖ ORD('A')
- Ch−¬ng 2: C¸c kiÓu d÷ liÖu ®¬n gi¶n chuÈn 19 Bài tập chương 2 Bμi 1: ViÕt c¸c khai b¸o cho c¸c yªu cÇu sau: a) x, y lµ biÕn thùc b) BiÕn k sÏ nhËn c¸c gi¸ trÞ trong kho¶ng [0,255] c) z, t lµ c¸c biÕn nguyªn trong kho¶ng [-32768, + 32767] d) k, j, i lµ c¸c biÕn cã thÓ nhËn c¸c gi¸ trÞ nguyªn trong kho¶ng [0, 65535] e) ch lµ biÕn cã thÓ nhËn c¸c ký tù Bμi 2: C¸c gi¸ trÞ sau ®©y thuéc kiÓu chuÈn nµo? a) 1/4 b) 6/3 c) 2002 d) 100,000 e) SQRT(34) f) SQRT(36) g) SQRT(25.0) h) 5>8
CÓ THỂ BẠN MUỐN DOWNLOAD
-
Giáo trình Ngôn ngữ lập trình C - ThS. Tiêu Kim Cương
202 p | 11891 | 5498
-
Giáo trình: Ngôn ngữ lập trình máy tính C++
114 p | 524 | 206
-
Giáo trình Ngôn ngữ lập trình C (Phần 1) - ThS.Tiêu Kim Cương
21 p | 570 | 201
-
Giáo trình ngôn ngữ lập trinh C part 2
21 p | 394 | 163
-
Giáo trình ngôn ngữ lập trinh C part 3
21 p | 327 | 140
-
Giáo trình ngôn ngữ lập trinh C part 4
21 p | 308 | 130
-
Giáo trình ngôn ngữ lập trinh C part 5
21 p | 302 | 123
-
Giáo trình ngôn ngữ lập trinh C part 6
21 p | 307 | 122
-
Giáo trình ngôn ngữ lập trinh C part 7
21 p | 234 | 105
-
Giáo trình ngôn ngữ lập trinh C part 8
21 p | 217 | 101
-
Giáo trình ngôn ngữ lập trinh C part 9
21 p | 220 | 98
-
Giáo trình Ngôn ngữ lập trình C p1
20 p | 354 | 96
-
Giáo trình ngôn ngữ lập trinh C part 10
13 p | 209 | 96
-
Giáo trình Ngôn ngữ lập trình Java: Phần 1
81 p | 234 | 43
-
Giáo trình Ngôn ngữ lập trình C
155 p | 253 | 41
-
Giáo trình Ngôn ngữ lập trình C++: Phần 1 - TS. Vũ Việt Vũ
116 p | 29 | 13
-
Giáo trình Ngôn ngữ lập trình Fortran 90: Phần 1
101 p | 44 | 4
-
Giáo trình Ngôn ngữ lập trình 2
50 p | 53 | 3
Chịu trách nhiệm nội dung:
Nguyễn Công Hà - Giám đốc Công ty TNHH TÀI LIỆU TRỰC TUYẾN VI NA
LIÊN HỆ
Địa chỉ: P402, 54A Nơ Trang Long, Phường 14, Q.Bình Thạnh, TP.HCM
Hotline: 093 303 0098
Email: support@tailieu.vn