Giáo trình Ngôn ngữ lập trình Pascal - Lê Mạnh Thạnh (Phần 1)
Bạn đang xem 20 trang mẫu của tài liệu "Giáo trình Ngôn ngữ lập trình Pascal - Lê Mạnh Thạnh (Phần 1)", để tải tài liệu gốc về máy bạn click vào nút DOWNLOAD ở trên
Tài liệu đính kèm:
- giao_trinh_ngon_ngu_lap_trinh_pascal_le_manh_thanh.pdf
Nội dung text: Giáo trình Ngôn ngữ lập trình Pascal - Lê Mạnh Thạnh (Phần 1)
- đại học huế trung tâm đào tạo từ xa lê mạnh thạnh (Chủ biên) – võ văn tuấn dũng giáo trình ngôn ngữ lập trình pascal (Sách dùng cho hệ đào tạo từ xa) Huế – 2007 1
- mục lục Ch−ơng 1 6 Giới thiệu chung 6 1.1. Mở đầu 6 1.2. Các khái niệm cơ bản của Turbo Pascal 9 1.3. Các b−ớc để chạy một ch−ơng trình Turbo Pascal 11 Ch−ơng 2 15 Các kiểu dữ liệu đơn giản 15 2.1. Kiểu dữ liệu trong ngôn ngữ lập trình 15 2.2. Các kiểu dữ liệu đơn giản 15 Ch−ơng 3 21 Hằng, biến, kiểu, biểu thức, câu lệnh, lệnh gán 21 3.1. Định nghĩa hằng 21 3.2. Biến và khai báo biến 22 3.3. Định nghĩa kiểu dữ liệu 22 3.4. Biểu thức 23 3.5. Câu lệnh (Statement) 24 3.6 Lệnh gán (Assignment statement) 24 2
- Ch−ơng 4 27 Xuất nhập dữ liệu 27 4.1. Xuất dữ liệu 27 4.2. Nhập dữ liệu từ bàn phím 31 Ch−ơng 5 36 Lệnh có cấu trúc 36 5.1. Câu lệnh ghép (Compound Statement) 36 5.2. Câu lệnh lựa chọn 36 5.3. Câu lệnh lặp 41 Ch−ơng 6 52 Kiểu tập hợp và kiểu mảng 52 6.1. Kiểu tập hợp (Set Type) 52 6.2. Kiểu mảng (Array Type) 54 Ch−ơng 7 59 Ch−ơng trình con 59 7.1. Khái niệm về ch−ơng trình con 59 7.2. Một số hàm và thủ tục của Turbo Pascal 62 Ch−ơng 8 68 Kiểu chuỗi kí tự 68 3
- 8.1. Khai báo kiểu chuỗi 68 8.2. Các phép toán trên chuỗi kí tự 69 8.3. Các thủ tục trên chuỗi kí tự 70 8.4. Các hàm trên chuỗi 71 Ch−ơng 9 75 Kiểu bản ghi và kiểu tập tin 75 9.1. Kiểu bản ghi (Record type) 75 9.2. Kiểu tập tin (File type) 83 Ch−ơng 10 100 Kiểu con trỏ và biến động 100 10.1. Biến con trỏ 100 10.2. Biến động (Dynamic Variable) 101 10.3. Danh sách liên kết (Linhked List) 104 4
- lời mở đầu Ngày nay ở n−ớc ta, các thành quả của Công nghệ Thông tin đã và đang đ−ợc đ−a vào ứng dụng trong mọi cơ quan xí nghiệp và do đó nhiệm vụ đào tạo nhân lực Công nghệ Thông tin đã trở thành cấp thiết đối với ngành Giáo dục và Đào tạo. Chúng ta phải đồng thời tiến hành 3 mục tiêu: mở mang dân trí, đào tạo nhân lực và phát triển nhân tài. Vấn đề đặt ra là cần phải xây dựng ch−ơng trình thích hợp theo từng mục tiêu, cho từng loại hình, từng đối t−ợng. Trong nhiều môn học thuộc chuyên ngành Công nghệ Thông tin, Ngôn ngữ lập trình Pascal là môn học đ−ợc dùng cho nhiều đối t−ợng và nhiều cấp học với lí do: đây là một ngôn ngữ giải thuật có tính chặt chẽ vừa có thể sử dụng nh− là một ngôn ngữ giải thuật toán, vừa là ngôn ngữ phổ biến, thích hợp với nhiều ứng dụng khoa học, kĩ thuật, quản lí. Giáo trình này đ−ợc soạn thảo dựa trên cơ sở Turbo Pascal phiên bản 5.0 và chủ yếu dành cho các sinh viên Đại học Từ xa. Tuy nhiên, nó cũng có thể dùng làm tài liệu tham khảo và giảng dạy cho sinh viên của các tr−ờng Đại học, Trung học chuyên nghiệp, kể cả các tr−ờng Phổ thông trung học và các Trung tâm đào tạo khác. Tác giả rất mong sự góp ý của các độc giả về nội dung, hình thức và sai sót trong giáo trình. Xin chân thành cảm ơn. Các tác giả 5
- Ch−ơng 1 Giới thiệu chung 1.1. Mở đầu 1.1.1. Cấu tạo chính của máy tính điện tử Các máy tính điện tử nói chung có các bộ phận sau đây: – Bộ điều khiển trung tâm CPU (Central Processing Unit) là bộ phận thực hiện các phép tính số học và logic bằng việc phân tích chức năng của các lệnh. – Bộ nhớ trong (Main Memory) là nơi chứa các ch−ơng trình và số liệu. – Thiết bị vào (Input Device) là bộ phận đ−a ch−ơng trình và dữ liệu vào máy. – Thiết bị ra (Output Device) là bộ phận đ−a kết quả từ bộ nhớ ra ngoài. – Bộ nhớ phụ (Auxiliary Memory) đ−ợc dùng để l−u trữ ch−ơng trình và số liệu nh− bộ nhớ chính song dung l−ợng nhớ lớn hơn và truy cập chậm hơn. Đối với máy PC (Personal Computer), các bộ phận chính là: – Bộ xử lí trung tâm CPU bao gồm 3 khối : Khối số học và logic ALU (Arithmetic Logic Unit) có chức năng thực hiện các phép toán số học, so sánh, dịch chuyển. Khối điều khiển CU (Control Unit) có chức năng phân tích lệnh và điều khiển hoạt động của CPU. Các thanh ghi (Register) l−u trữ thông tin phục vụ trực tiếp cho tính toán và điều khiển. Bộ nhớ trong bao gồm 2 phần chính: ROM (Read Only Memory) là bộ nhớ có cài sẵn ch−ơng trình phục vụ cho việc vào ra – gọi là BIOS (Basic Input – Output System). RAM là bộ nhớ cho phép truy cập tức thời, Ch−ơng trình và số liệu đ−ợc l−u trữ tạm thời trong RAM trong quá trình thực hiện, khi tắt máy ch−ơng trình và số liệu trong RAM cũng biến mất. – Bộ nhớ phụ của máy PC là các ổ đĩa (Disk Driver). Có 3 loại chính: đĩa cứng HDD (Hard Disk Driver – thông th−ờng chỉ có một (hoặc hai) đĩa với dung l−ợng lớn và th−ờng đ−ợc cố định trong máy, đ−ợc kí hiệu là C (hoặc C, D nếu có hai ổ đĩa); đĩa mềm FDD (Floppy Disk Driver) là loại ổ đĩa dùng cho đĩa mềm có dung l−ợng nhỏ và có thể thay đổi th−ờng xuyên; ổ đĩa chỉ đọc CD – ROM (Compact Disk ROM) đ−ợc cài đặt máy để đọc các đĩa CD. – Thiết bị vào đối với máy PC rất đa dạng, thông dụng nhất là bàn phím. Ngoài ra còn có các loại khác nh− con chuột (Mouse) để đ−a vào các tín hiệu điều khiển, máy quét (scanner) để nhập vào máy các hình ảnh. – Thiết bị ra chủ yếu là màn hình (monitor), máy in (printer). 6
- 1.1.2. Thuật toán và ch−ơng trình a. Ngôn ngữ lập trình Ngôn ngữ cơ sở để lập ch−ơng trình cho máy là ngôn ngữ máy, đó là một bộ lệnh, mỗi lệnh đ−ợc biểu diễn trong máy bằng một dãy các chữ số nhị phân chỉ cho máy các công việc cần thực hiện. Các lệnh đ−ợc thể hiện ra bên ngoài bằng các số hệ cơ số 8 hoặc cơ số 16. Để tiện cho ng−ời sử dụng, ng−ời ta xây dựng các ngôn ngữ trung gian giao tiếp giữa ng−ời và máy nh− Assembler, Basic, Angol, Fortran, Pascal, C, Để máy hiểu đ−ợc các ngôn ngữ trên, cần phải có các ch−ơng trình dịch để dịch các ngôn ngữ lập trình cấp cao ra ngôn ngữ máy. Ch−ơng trình dịch có hai loại: Biên dịch (Compiler) và thông dịch (Interpreter). b. Thuật toán Thuật toán là sự phân tích bài toán thành một số hữu hạn b−ớc giải mà theo thứ tự đó ta có thể lập trình cho máy. Ví dụ 1. Để xây dựng ch−ơng trình giải ph−ơng trình bậc 2: ax2 + bx + c = 0 (a, b, c ≠ 0) ta phân tích nh− sau: B−ớc 1. Đọc các hệ số a, b, c. B−ớc 2. Tính ∆ = b2 – 4ac. B−ớc 3. Nếu ∆ < 0 thì trả lời : “ph−ơng trình không có nghiệm thực” chuyển sang B−ớc 5, nếu ng−ợc lại chuyển sang B−ớc 4. B−ớc 4. Nếu ∆ = 0 thì trả lời: “ph−ơng trình có nghiệm kép X1 = X2 = – b/2a”, nếu ng−ợc lại thì trả lời: “Ph−ơng trình có hai nghiệm thực là X1 = (–b + SQRT(∆))/2a, X2 = (–b – SQRT(∆))/2a”, chuyển sang B−ớc 5. B−ớc 5. Dừng máy. c. Ch−ơng trình Ch−ơng trình là một dãy hữu hạn các lệnh hoặc các chỉ thị của một ngôn ngữ lập trình nào đó đ−ợc viết theo một trật tự nhất định nhằm giải quyết một lớp bài toán đã cho. Ví dụ 2. Ch−ơng trình viết bằng ngôn ngữ Pascal sau đây giải ph−ơng trình bậc 2 với thuật toán đã chỉ ra ở trên. Program GPTB2; Var a, b, c, x1, x2, delta: Read; Begin Readln(a, b, c); delta:=b^2-4*a*c; If delta < 0 then Writeln(“Phuong trinh khong co nghiem thuc”) else 7
- If delta = 0 then Wrieln(“Phuong trinh co nghiem kep x1 = x2 =”,-b/2a) else x1 := (-b+sqrt(delta))/2 a; x2 := (-b-sqrt(delta))/2 a; Writeln(“Phuong trinh co 2 nghiem x1=”,x1, “x2=”,x2) End End. Ch−ơng trình đ−ợc viết sẵn để giải quyết một loạt bài toán gọi là ch−ơng trình mẫu mà mỗi lần sử dụng nó chỉ việc đ−a vào các giá trị thay cho các tham số. Chẳng hạn, trong ngôn ngữ lập trình Pascal hàm mẫu SQRT(x) là ch−ơng trình tính căn bậc 2 của x, hàm EXP(x) là ch−ơng trình con tính ex, LN(x) tính ln(x), 1.1.3. Giới thiệu về Pascal và Turbo Pascal Pascal là ngôn ngữ lập trình cấp cao do Niklaus Wirth, giáo s− điện toán tr−ờng Đại học Kĩ thuật Zurich (Thuỵ Sĩ) đề xuất vào năm 1970. Lúc đầu mục đích của Wirth thiết kế Pascal là để giảng dạy lập trình. Nh−ng trong quá trình phát triển, Pascal đã phát huy đ−ợc −u điểm của mình và tỏ ra hơn hẳn nhiều ngôn ngữ cấp cao khác, Pascal đã trở thành một ngôn ngữ mạnh đ−ợc ứng dụng trong nhiều lĩnh vực khác nhau. Các tổ chức và công ty chuyên về máy tính dựa trên Pascal chuẩn đã phát triển thêm và tạo ra các ch−ơng trình dịch ngôn ngữ Pascal với nhiều phần thêm bớt khác nhau. Chẳng hạn nh−: – Turbo Pascal của hãng Borland – Quick Pascal của hãng Microsoft. – UCSD Pascal (University of California at San Diego), của tr−ờng Đại học California. – Ansi Pascal (American National Standard Institute), của Viện các tiêu chuẩn Quốc gia Mỹ. Trong nhiều ch−ơng trình dịch Pascal, Turbo Pascal đã tỏ ra có nhiều −u điểm và hiện nay đ−ợc xem nh− là một trong những ngôn ngữ lập trình cấp cao phổ biến trên thế giới đ−ợc sử dụng rộng rãi trong lĩnh vực giảng dạy và lập trình chuyên nghiệp. Chỉ trong vòng mấy năm, Turbo Pascal đ−ợc cải tiến qua nhiều phiên bản: 1.0, 2.0, 3.0, 4.0, 5.0, 5.5, (1989), 6.0 (1990), 7.0 (1992). Hiện nay Turbo Pascal 7.0 có rất nhiều bổ sung, cải tiến so với các phiên bản tr−ớc, song mới bắt đầu tiếp cận với Turbo Pascal, bạn nên sử dụng Turbo Pascal 5.5 vì nó t−ơng đối đơn giản, dễ sử dụng và không đòi hỏi máy có cấu hình mạnh. 1.1.4. Các tập tin chính của Turbo Pascal Để chạy đ−ợc ch−ơng trình Pascal thông th−ờng cần sử dụng các tập tin chủ yếu sau: Turbo.exe : Soạn thảo, dịch và liên kết ch−ơng trình. 8
- Turbo.tpl : Tập tin th− viện, l−u trữ các đơn vị chuẩn để chạy với Turbo.exe (TPL : Turbo Pascal Library). Với 2 tập tin trên chúng ta có thể bắt đầu viết đ−ợc ch−ơng trình. Sau đó nếu muốn sử dụng đồ hoạ thì thêm các tập tin sau: Graph.tpu: Đơn vị ch−ơng trình chứa các ch−ơng trình con đồ hoạ. Các tập tin có phần mở rộng CHR (Sans.chr, Trip.chr, ) chứa các font chữ trong chế độ đồ hoạ. Các tập tin có phần mở rộng BGI (Ega.bgi, Vga.bgi, ) để điều khiển các loại màn hình t−ơng ứng khi dùng đồ hoạ. 1.2. Các khái niệm cơ bản của Turbo Pascal 1.2.1. Bộ kí tự của Turbo Pascal Ngôn ngữ lập trình Pascal dựa vào bộ kí tự sau: – Các chữ cái: 26 chữ hoa (A, B, C, D, , Z) và 26 chữ th−ờng (a, b, c, d, , z). – Các chữ số thập phân: 0, 1, 2, 3, 4, 5, 6, 7, 8, 9. – Các dấu toán học thông dụng: + – * / = ( ) . – Dấu gạch nối _ (khác với dấu trừ (–)). – Các kí hiệu đặc biệt: . , ; ! ? : ‘ “ { } [ ] % @ & # $ ^. 1.2.2. Từ khoá (Key word) Trong Turbo Pascal có một từ cho sẵn, có ngữ nghĩa đã đ−ợc xác định và tuân theo một cấu trúc ngữ pháp nhất định gọi là từ khoá. Sau đây là một số từ khoá quen thuộc, th−ờng gặp trong Turbo Pascal: BEGIN, END, PROGRAM, CASE, OF, FOR, TO, DOWNTO, DO, WHILE, REPEAT, UNTIL, WITH, EXIT, GOTO, AND, OR, NOT, IN, DIV, MOD. Chú ý. Turbo Pascal không phân biệt kí tự in th−ờng (lower case char) hay in hoa (upper case char). Chẳng hạn, các cách viết sau có ý nghĩa hoàn toàn nh− nhau: BEGIN, begin, Begin, beGIN 1.2.3. Tên chuẩn Tên chuẩn là tên đã đ−ợc định nghĩa sẵn trong Turbo Pascal, nh−ng ng−ời lập trình có thể định nghĩa lại nếu muốn. Sau đây là một số tên chuẩn: – Tên hằng chuẩn: False, True, MaxInt, – Tên kiểu chuẩn: Boolean, Char, Integer, Word, Read, Byte, Text – Tên hàm chuẩn: Abs, Arctan, Chr, Cos, Sin, Exp, Ln, Sqr, Sqrt – Tên thủ tục chuẩn: Read, Readln, Write, Writeth, 9
- 1.2.4. Tên (identifier) Tên là một dãy các chữ cái, chữ số và dấu nối ( _ ) bắt đầu không phải là chữ số và đ−ợc dùng để đặt cho các đại l−ợng trong ch−ơng trình nh− tên hằng, tên kiểu dữ liệu, tên biến, tên mảng, tên hàm, tên ch−ơng trình Số kí tự của tên gọi bị hạn chế trong Pascal chuẩn là 8 còn trong Turbo Pascal số kí tự của tên tối đa là 127. Tên không đ−ợc đặt trùng với từ khoá. Các ví dụ đúng về tên: PT_Bac_2, Delta, a_1. Các ví dụ sai về tên: PT Bac 2 (có kí tự trống), 3ABC (kí tự đầu tiên là chữ số), g(x) (sử dụng dấu ()), Label (Trùng với từ khoá). Chú ý. Khi viết ch−ơng trình ta nên đặt các tên sao cho chúng nói lên đ−ợc ý nghĩa của đối t−ợng mà chúng biểu thị để giúp cho ch−ơng trình đ−ợc sáng sủa và dễ hiểu. 1.2.5. Cấu trúc tổng quát của một ch−ơng trình Turbo Pascal Một ch−ơng trình Turbo Pascal đầy đủ gồm ba phần sau: Phần 1. Phần tiêu đề của ch−ơng trình. Phần này đ−ợc bắt đầu bằng từ khoá PROGRAM, tiếp theo là tên ch−ơng trình do ng−ời lập trình đặt ra và kết thúc bởi dấu chấm phẩy (;) Phần 2. Phần khai báo bao gồm các khai báo theo thứ tự sau – Khai báo nhãn: Label ; – Khai báo sử dụng Unit: Uses ; – Khai báo các hằng: Const ; – Khai báo kiểu dữ liệu: Type ; – Khai báo các biến: Var ; – Khai báo các ch−ơng trình con thủ tục hay hàm: Procedure ; Function ; Phần 3. Thân ch−ơng trình, bao gồm một dãy các lệnh thực hiện (có thể là lệnh đơn hoặc ghép) đ−ợc viết cách nhau bởi dấu chấm phẩy, và bắt đầu bởi Begin và kết thúc bởi End. BEGIN { Các lệnh của ch−ơng trình } END. Dấu chấm báo kết thúc ch−ơng trình. Chú ý. – Phần 1 chiếm 1 dòng và có thể có hay không. 10
- – Phần 2 tuỳ theo ch−ơng trình cụ thể mà các khai báo có thể có hay không và có thể lặp lại một số lần. – Phần 3 bắt buộc phải có đối với mọi ch−ơng trình. – Lời giải thích: Turbo Pascal cho phép ng−ời lập trình có thể đ−a vào văn bản ch−ơng trình các lời giải thích, ghi chú để làm cho ch−ơng trình dễ đọc, dễ hiểu hơn nh−ng không ảnh h−ởng đến sự thực hiện của ch−ơng trình. Các lời giải thích đ−ợc đặt giữa hai dấu { } hoặc giữa 2 cụm dấu (* *) và có thể viết trên 1 dòng hay nhiều dòng. – Dấu chấm phẩy (;) dùng để ngăn cách các câu lệnh của Turbo Pascal (không phải là dấu kết thúc lệnh). Tuy nhiên, nếu dấu chấm phẩy đứng ngay tr−ớc từ khoá END có thể bỏ. 1.3. Các b−ớc để chạy một ch−ơng trình Turbo Pascal 1.3.1. Các b−ớc thực hiện • B−ớc 1. Khởi động Turbo Pascal bằng lệnh TURBO (↵). Khi đó màn hình làm việc của Turbo Pascal xuất hiện. Dòng trên cùng màn hình là bảng chọn chính. File Edit Run Compile Opion Debug Break/Watch • B−ớc 2. Đặt tên tập tin ch−ơng trình. Chọn mục File trong bảng chọn chính, khi đó Load F3 sẽ xuất hiện bảng chọn dọc. Trong bảng này chọn Pick Alt – F3 Load, tiếp theo màn hình xuất hiện dòng: New Save Load file name (*.PAS) : Write to Directory _ Change Dir Đ−a vào tên tập tin ch−ơng trình cần soạn Dos shell thảo rồi ấn Enter, có 3 khả năng xảy ra: Quit Alt - X – Tập tin đã có trên đĩa : Tập tin ch−ơng trình này đ−ợc nạp vào RAM và văn bản ch−ơng trình hiện lên màn hình. – Tập tin ch−a có trên đĩa : màn hình trống hiện ra để soạn thảo ch−ơng trình mới. – Trong tên tập tin có dùng kí tự * hay ? : Tên các tập tin t−ơng tự tên đã cho (bằng cách dùng các phím mũi tên và gõ Enter). Chú ý. – Để chọn mục File có thể ấn Alt – F hoặc đ−a điểm sáng đến tên File trên bảng chọn chính rồi gõ Enter. – Để chọn Load trên bảng chọn dọc ta có thể đ−a điểm sáng về từ Load rồi gõ Enter. • B−ớc 3. Soạn thảo văn bản ch−ơng trình. 11
- Một số thao tác cần thiết khi soạn thảo ch−ơng trình: * Các phím dịch chuyển con trỏ – 4 mũi tên : chuyển sang trái, chuyển sang phải một kí tự, chuyển lên chuyển xuống một dòng theo h−ớng mũi tên. – Enter thực hiện việc chuyển sang dòng mới. – Home và End chuyển con trỏ về đầu dòng và cuối dòng. – Ins : chuyển chế độ ghi chèn và ghi đè. – Backspace: xoá kí tự tr−ớc con trỏ. – Del: xoá kí tự sau con trỏ. – Ctr + Y: xoá một dòng. * Các thao tác khối : – Chọn khối: Dùng mũi tên đ−a con trỏ về vị trí đầu khối, giữ phím shift và dùng các mũi tên để chuyển đến vị trí cuối khối, thả phím shift. Khối đ−ợc chọn có màu sáng hơn vùng không đ−ợc chọn. – Xoá khối đã chọn : ấn phím Delete. – Xoá khối đã chọn và đ−a nội dung khối vào vùng đệm: ấn Shift + Del hoặc chọn thực đơn Edit/Cut. – Sao chép nội dung của khối đã chọn vào vùng đệm: ấn Ctrl + Ins. – Sao chép nội dung vùng đệm vào vùng bắt đầu từ vị trí con trỏ : ấn Shift + Ins. • B−ớc 4. L−u văn bản. Khi văn bản đã đánh xong cần l−u vào trong đĩa ta làm nh− sau: – ấn Alt + F để mở thực đơn File hoặc ấn phím F3. – Dùng mũi tên đ−a dòng sáng về Save as và ấn Enter (hoặc ấn phím A) để mở hộp thoại Save As. – Đặt tên tập tin với đầy đủ đ−ờng dẫn hoặc dùng phím Tab chuyển điểm nháy đến hộp Dir/Drive để chọn ổ đĩa, th− mục (nếu cần). – Ghi tên tập tin vào hộp File name. – ấn phím Enter. Nếu tập tin văn bản đã đ−ợc đặt tên thì chỉ cần ấn Alt + F và chọn Save hoặc phím S. Muốn ghi văn bản ch−ơng trình vào tập tin đang mở có thể ấn phím F2. • B−ớc 5. Biên dịch và thực hiện ch−ơng trình : gõ phím Ctrl – F9. Khi biên dịch, máy sẽ kiểm tra ngữ pháp của từng lệnh, gặp lệnh sai hay nhập sai máy dừng lại, trên màn hình có thông báo nguyên nhân sai của lỗi, tiến hành sửa lỗi và gõ lại Ctrl – F9 để chạy tiếp. Lặp lại quá trình này đến khi sửa hết lỗi. 12
- Sau khi biên dịch và thực hiện ch−ơng trình xong mà không thấy kết quả ch−ơng trình trên màn hình thì gõ Alt – F5 để xem kết quả, xem xong gõ phím bất kì để trở lại màn hình ban đầu. Khi ch−ơng trình đã chạy thông suốt, muốn dịch ch−ơng trình ra tập tin trên đĩa có mở rộng EXE để sau này có thể chạy độc lập trong môi tr−ờng DOS thì thực hiện b−ớc 6 và b−ớc 7. • B−ớc 6. Gõ Alt – C (chọn mục Compile), trên màn hình xuất hiện bảng chọn dọc Compile, trong bảng chọn này chọn Destination là Disk để kết quả dịch ch−ơng trình đ−ợc ghi ra đĩa, rồi gõ Alt – F9 để dịch ch−ơng trình. Khi xuất hiện thông báo “Success: Press any key” thì dịch xong. Nếu có lỗi máy cũng dừng lại và thông báo nguyên nhân lỗi trên màn hình. • B−ớc 7. Thoát tạm thời khỏi Turbos Pascal trở về DOS để chạy ch−ơng trình đã dịch thành công: Gõ Alt – F để mở menu File. Trong menu File chọn Dos Shell. Sau đó từ DOS cho chạy tập tin ch−ơng trình có đuôi EXE đã dịch. Chạy xong ch−ơng trình, trở lại Turbo Pascal bằng lệnh Exit. • B−ớc 8. Thoát khỏi hẳn Turbo Pascal: Gõ Alt – X hoặc chọn Quit trên bảng chọn dọc File. 1.3.2. Ví dụ một ch−ơng trình hoàn chỉnh Sau đây là một ch−ơng trình hoàn chỉnh thực hiện việc tính chu vi, diện tích hình tròn với bán kính r nhập vào từ bàn phím. Program HINH_TRON; Uses Ctr; Var r, P, S: Read; Begin CrlScr; {xoá màn hình} Write(‘Nhap ban kinh r= ‘);Readln(r); Writeln(‘Dien tich S= ‘, pi*r*r:2:4); Writeln(‘Chu vi P= ‘,2*pi*r:2:4); Readln; End. Kết quả thực hiện ch−ơng trình: Nhap ban kinh r= 3.5 Dien tich S= 38.4845 Chu vi P= 21.9911 13
- Câu hỏi – Bài tập ch−ơng 1 1. Trình bày các phần tử cơ bản của ngôn ngữ Turbo Pascal. 2. Từ khoá là gì? Tại sao nên học thuộc các từ khoá của Turbo Pascal? 3. Phân biệt sự khác nhau giữa từ khoá và tên chuẩn. 4. Tên là gì? 5. Các tên sau đây tên nào không đúng trong Turbo Pascal? Tại sao? Alpha1, Nghiem – nguyên, 15A, $I. 6. Trình bày cấu trúc đầy đủ của một ch−ơng trình viết bằng Turbo Pascal. Trong cấu trúc đó phần nào bắt buộc phải có, phần nào không bắt buộc phải có? 7. Sắp xếp các từ sau đây thành 3 cột theo các nội dung : Tên chuẩn, Từ khoá, Tên thông th−ờng : Label, pascal, alpha, logic, boolean, real, with, exit, Lamda, Turbo, compiler, record. 8. Xây dựng thuật toán giải hệ ph−ơng trình bậc nhất hai ẩn số sau : ⎧ax + by =c ⎨ ⎩dx + hy = g trong đó x, y là các ẩn số còn a, b, c, d, h, g là hệ số cần đ−ợc nhập vào từ bàn phím. 9. Xây dựng thuật toán tìm −ớc số chung lớn nhất của hai số tự nhiên a và b. 10. Cho hai dãy số thực a1, a2, , an và b1, b2, , bn. Hãy xây dựng thuật toán đọc các số liệu vào và tính biểu thức : a1b1 + a2b2 + + anbn 14
- Ch−ơng 2 Các kiểu dữ liệu đơn giản 2.1. Kiểu dữ liệu trong ngôn ngữ lập trình Một kiểu dữ liệu (Data type) là một sự quy định về cấu trúc, miền trị của dữ liệu và tập các phép toán tác động lên miền giá trị đó. Một ngôn ngữ lập trình chỉ chấp nhận và xử lí những dữ liệu tuân theo sự quy định về kiểu của ngôn ngữ lập trình đó. Trong một ngôn ngữ lập trình, một dữ liệu bao giờ cũng thuộc về một kiểu dữ liệu nhất định. Dữ liệu trong Turbo Pascal đ−ợc chia thành 2 loại chính: – Kiểu dữ liệu đơn giản (simple type). – Kiểu dữ liệu có cấu trúc (structure type). Tổng quan phân loại các kiểu dữ liệu trong Turbo pascal Kiểu logic (*) Kiểu số nguyên (*) Kiểu Chuẩn Kiểu số thực đơn Kiểu ký tự (*) giản Kiểu xâu ký tự Kiểu dữ Do ng−ời lập Kiểu đoạn con liệu trình định nghĩa Kiểu liệt kê (Data type) Kiểu mảng Kiểu Chú ý: Các kiểu có có Kiểu tập hợp dấu(*) gọi là kiểu vô h−ớng đếm đ−ợc Kiểu bản ghi cấu trúc hay có thứ tự Kiểu tập tin 2.2. Các kiểu dữ liệu đơn giản 2.2.1. Kiểu Logic (Boolean type) Dữ liệu kiểu logic chỉ có 2 giá trị True (đúng) và False (sai). Một giá trị Logic đ−ợc l−u trữ trong 1 byte. Quy −ớc : False < True Các phép toán tác động đ−ợc lên các đại l−ợng kiểu logic là : AND, OR, XOR, NOT. Kết quả của các phép toán này đ−ợc thể hiện qua bảng sau 15
- X Y X AND Y X OR Y X XOR Y NOT X FALSE FALSE FALSE FALSE FALSE TRUE FALSE TRUE FALSE TRUE TRUE TRUE FALSE FALSE TRUE TRUE FALSE TRUE TRUE TRUE TRUE FALSE (X và Y là giá trị kiểu Boolean) Chẳng hạn, kết quả của các tính toán sau sẽ cho giá trị logic : Delta > 0 ; A 0 AND (A <>0). 2.2.2. Kiểu số nguyên (Integer type) a. Kiểu số nguyên Có 5 kiểu số nguyên mà từ khoá, phạm vi số và số byte cần thiết đ−ợc xác định bởi bảng sau: Từ khoá Phạm vi Yêu cầu bộ nhớ Shortint –128 đến 127 1 byte Integer –32768 đến 32767 2 byte Longint –2147483648 đến 2147483647 4 byte Byte 0 đến 255 1 byte Word 0 đến 65535 1 byte b. Các phép tính số học đối với số nguyên Đối với các đại l−ợng kiểu số nguyên chúng ta có thể sử dụng các phép tính sau : + (cộng), – (trừ), * (nhân), / (phép chia lấy kết quả là số thực read), DIV (phép chia lấy số nguyên) MOD (phép chia lấy số d− của hai số nguyên). Chú ý. 1. Khi viết các số nguyên phải tuân theo các quy định: – Không có khoảng trống giữa các số. – Dấu + hay – (nếu có) phải đặt ngay tr−ớc chữ số đầu tiên. – Không đ−ợc sử dụng dấu chấm thập phân. 16
- 2. Khi thực hiện các phép tính trên số nguyên, cần hết sức thận trọng xem phép toán đó có cho kết quả v−ợt quá phạm vi biểu diễn của số nguyên không. Ví dụ 1. Khai báo a, b là dữ liệu Integer. Khi đó 2 câu lệnh sau: a:=80; b:=(a*1245) div 200 cho kết quả sai vì a*1245=99600 v−ợt quá phạm vi của Integer. 2.2.3. Kiểu số thực (Real type) a. Kiểu số thực Kiểu só thực đ−ợc định nghĩa bằng một trong các từ khoá REAL, SINGLE, DOUBLE tuỳ theo yêu cầu về độ chính xác cần đến. Cụ thể chúng ta có bảng (xem trang sau) : Từ khoá Phạm vi Yêu cầu bộ nhớ Real 2.9ì1099 đến 1.7ì1038 6 byte Single 1.5E-45 3.4E+38 4 byte Double 5.0E-324 1.7E+308 8 byte Extended 1.9E-4951 1.1E+4932 10 byte b. Cách viết một số thực Các giá trị thực đ−ợc biểu diễn theo 2 cách : Cách 1. Số thực dấu phẩy tĩnh đ−ợc biểu diễn nh− một số thực thông th−ờng trong Toán học chỉ khác dấu chấm thay cho dấu phẩy trong cách viết của tiếng Việt Nam. Chẳng hạn: 25.3456789; 0.0000007; –2.12; +4.0. Cách 2. Số trong biểu diễn d−ới dạng dấu phẩy động đ−ợc tách thành 2 phần: phần định trị và phần mũ. – Phần định trị là một số nguyên hay số thực viết theo kí pháp tự nhiên. – Phần mũ là một số nguyên. – 2 phần cách nhau bởi chữ E hay e. 17