Lý thuyết Turbo Pascal

110 535 5
Lý thuyết  Turbo Pascal

Đ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

Giáo trình môn tin học (Turbo PasCal). Biên soạn: Hoàng Đức Hà Phần thuyết 1. Nguồn gốc Pascal là một trong các ngôn ngữ lập trình cấp cao đợc giáo s Niklaus Wirth ở trờng kĩ 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ữ này là Pascal để tởng nhớ đến Blaise Pascal, nhà toán học, triết học nổi tiếng của Pháp ở thế kỉ XVII, ngời đã sáng chế ra máy tính cơ khí đầu tiên cho nhân loại. Ngày nay, Pascal là một trong những ngôn ngữ lập trình bậc cao u việt nhất trong lĩnh vực giảng dạy và lập trình chuyên nghiệp. 2. Tính chất cơ bản: a) Pascal là một ngôn ngữ có định kiểu rõ ràng : _ Mọi biến và hằng của kiểu dữ liệu nào chỉ đợc gán các giá trị của đúng kiểu dữ liệu đó, không đợc tự do đem gán cho các giá trị của kiểu dữ liệu khác. _ Việc định kiểu một cách chặt chẽ nh vậy khiến cho ngời lập trình luôn luôn phải có các biểu thức tơng thích với nhau về kiểu dữ liệu. b) Pascal là một ngôn ngữ thể hiện t duy lập trình có cấu trúc : _ Dữ liệu đợc cấu trúc hóa : từ dữ liệu đơn giản hoặc có cấu trúc đơn giản ngời lập trình có thể xây dựng các dữ liệu có cấu trúc phức tạp hơn. _ Mệnh lệnh đợc cấu trúc hóa : từ các lệnh chuẩn đã có, ngời lập trình có thể nhóm chúng lại với nhau và đặt giữa hai từ khóa Begin và End khiến chúng trở thành một ngôn ngữ phức tạp hơn gọi là lệnh hợp thành hay lệnh ghép. _ Chơng trình đợc cấu trúc hóa : một chơng trình có thể chia thành các chơng trình con tổ chức theo hình cây phân cấp. Mổi chơng trình con nhằm giải quyết một nhiệm vụ xác định cụ thể, điều này giúp cho ngời lập trình có thể giải quyết từng phần một, từng khối một và có thể cho nhiều ng ời tham gia lập trình, mỗi ngời phụ trách một vài khối. 3. Các phần tử cơ bản của ngôn ngữ Pascal : a) Bộ kí tự : _ Bộ 26 chữ Latin : Chữ lớn : A, B, C, , Z Chữ nhỏ : 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 : +, -, *, /, +, <, >, ( ), [ ] b) Từ khóa : _ Từ khóa chung : Program, Begin, End, Procedure, Function _ Từ khóa để khai báo : Const, Var, Type, Array, String, Record _ Từ khóa của lệnh lựa chọn : If Then Else, Case Of _ Từ khóa của của lệnh lặp : For To Do, While Do _ Từ khóa điều khiển : With, Goto, Exit _ Từ khoá toán tử : And, Or, Not, In, Div, Mod c) Tên chuẩn : Trong Pascal có các tên chuẩn sau đây : Boolean, Char, Integer, Word, Byte, Real, Text False, True, Maxint Trờng đại học dân lập Đông Đô _Phòng máy tính Khoa CNTT Năm 2005 1 Giáo trình môn tin học (Turbo PasCal). Biên soạn: Hoàng Đức Hà Abs, Arctan, Chr, Cos, Sin, Eof, Eoln Exp, Ln, Odd, Ord Round, Trunc, Sqr, Sqrt, Pred, Succ Dispose, New, Get, Put, Read, Readln Write,Writeln Reset, Rewrite d) Danh hiệu tự đặt : Trong Pascal, để đặt tên cho các biến, hằng, kiểu, chơng trình con ngời ta dùng các danh hiệu. Danh hiệu của Pascal đợc bắt đầu bằng một chữ cái, sau đó là các chữ cái, chữ số, dấu nối. 2.1. Ch ơng trình viết bằng Pascal gồm các phần sau: Program Ten_chuong_trinh ; (* Phần khai báo dữ liệu *) Label Const Type Var (* Phần mô tả chơng trình con *) Procedure Fuction (* Thân chơng trình chính *) Begin (* Các lệnh đợc viết ở đây *) End (* Kết thúc chơng trình *) 2. 2. Ví dụ: Program Ve_hinh ; Var a, x : Integer ; {-----------------------------------------} Procedure Hinh_chu_nhat ; Begin Writeln ('*******') ; Writeln ('* *') ; Writeln ('* *') ; Writeln ('*******') ; End ; {-----------------------------------------} BEGIN Write ('Ve bao nhiêu hinh chu nhat : ') ; Readln (x) ; a := 0 ; Repeat a := a + 1 ; Hinh_chu_nhat ; Until a = x ; END. 3. Giải thích sơ l ợc từng phần của ch ơng trình: a) Phần tiêu đề: Cho biết tên của chơng trình Ví dụ : Program Ve_hinh ; Phần này luôn đợc bắt đầu bằng từ khóa Program và chấm dứt bằng dấu " ; " Trờng đại học dân lập Đông Đô _Phòng máy tính Khoa CNTT Năm 2005 2 Giáo trình môn tin học (Turbo PasCal). Biên soạn: Hoàng Đức Hà Phần tiêu đề có thể không có cũng đợc. b) Phần khai báo dữ liệu: Khai báo một biến là xác định rõ xem biến đó thuộc kiểu dữ liệu nào. Một chơng trình Pascal thờng có các khai báo dữ liệu sau : Const (* Khai báo hằng *) Type (* Khai báo kiểu dữ liệu mới *) Var {Khai báo các biến} Phần khai báo có thể có hoặc không, tuỳ theo nhu cầu. Ví dụ : Chơng trình trên có các kiểu biến là a, x. Chúng thuộc kiểu dữ liệu Integer, tức là số nguyên c) Phần khai báo chơng trình con: Phần này mô tả một nhóm lệnh đợc đặt tên chung là một chơng trình con để khi thân chơng trình chính gọi đến thì cả một nhóm lệnh nào đó đợc thi hành. Ví dụ : Procedure Hinh_chu_nhat ; Begin Writeln (' ******** ') ; Writeln (' * * ') ; Writeln (' * * ') ; Writeln (' ******** ') ; End ; Phần này có thể có hoặc không tùy theo nhu cầu. d) Phần thân chơng trình: Nằm giữa Begin và End, là các lệnh mà chơng trình cần thực hiện. Sau từ 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. Ví dụ : BEGIN Write (' I like Pascal ') ; END. e) Dấu chấm phẩy: Dấu chấm phẩy (;) đợc dùng để ngăn cách câu lệnh của Pascal và không thể thiếu đợc. f) Lời giải thích: Các lời giải thích đợc đặt giữa hai kí hiệu : {} hoặc (* *) Phần giải thích này là phần trao đổi thông tin giữa ngời với ngời, máy sẽ bỏ qua Ví dụ : Var X : Integer ; (* Số hình vuông phải vẽ *) Trờng đại học dân lập Đông Đô _Phòng máy tính Khoa CNTT Năm 2005 3 Giáo trình môn tin học (Turbo PasCal). Biên soạn: Hoàng Đức Hà Chúng ta có thể định nghĩa dữ liệu (Data) là tất cả những gì đợc máy tính xử lý. Các loại dữ liệu cần tới máy tính xử có rất nhiều, tồn tại dới nhiều dạng khác nhau về bản chất, về ý nghĩa, không riêng gì về số liệu mà còn là các kí tự, các mệnh đề logic, thể hiện qua các đối tợng cụ thể cần xử nh tiền l- ơng, địa chỉ, tên tuổi, văn bản, tín hiệu . Song nếu xét về phơng diện điện tử thì máy tính chỉ hiểu các thông tin đợc biểu diễn dới dạng mã nhị phân.Về phơng diện ngôn ngữ bậc cao thì dữ liệu đã đợc khái quát hóa với các kiểu dữ liệu. Khi này, ta không cần quan tâm đến biểu diễn chi tiết trong máy tính của các kiểu dữ liệu. Một kiểu dữ liệu (Data Type) đợc định nghĩa với 2 điểm chính : _ 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 phép toán. Cần nhớ rằng một biến phải gắn liền với một kiểu dữ liệu và chỉ một mà thôi. Trong ngôn ngữ Pascal, kiểu dữ liệu có thể rất phức tạp nhng nói chung đều đợc định nghĩa ra từ các kiểu đơn giản nhất, không có cấu trúc. Kiểu vô hớng (Scalar Type) hay kiểu đơn giản (Simple Type) là kiểu dữ liệu gồm một tập các giá trị của nó đợc sắp xếp theo một thứ tự tuyến tính. Chúng ta sẽ nghiên cứu kĩ hơn về kiểu vô hớng và các kiểu dữ liệu phức tạp khác. Trong phần tiếp theo, sẽ nói về 5 kiểu dữ liệu vô hớng đơn giản nhất, đã đợc định nghĩa sẵn và còn đợc gọi là kiểu đơn giản chuẩn (Simple Standar Type). _ Trớc khi đi vào nghiên cứu các kiểu số nguyên và kiểu số thực quen biết, chúng ta hãy xét khái niệm kiểu Logic ( Boolean ). Trong thực tế chúng ta thờng hay gặp loại đại lợng chỉ có hai giá trị : Đúng hoặc Sai. Ví dụ một mệnh đề, một câu hỏi, một phép toán . có thể đợc xem xét xem đúng hay sai. Ví dụ khi ta viết 3 < 1 thì đây là một mệnh đề có giá trị là Sai. _ Theo định nghĩa, một giá trị thuộc kiểu logic Boolean là một đại lợng nhận một trong hai giá trị Logic: TRUE (đúng) hoặc FALSE (sai). True và False là tên các giá trị đã đợc định nghĩa sẵn. Kiểu Boolean cũng đã định nghĩa sẵn quan hệ thứ tự False < True. _ Các phép toán sau có thể áp dụng cho các giá trị Boolean và cho ta kết quả cũng là kiểu Boolean. + Phép And ( phép "và" logic ) + Phép Or ( phép "hoặc" logic ) + Phép Not ( phép "đảo" hay "phủ định" logic ) + Phép Xor ( phép "hoặc triệt tiêu" ). Ví dụ1 : False And True = False Not False = True _ Chúng ta có thể tóm tắt quy tắc thực hiện phép And và Or nh sau : + Phép And chỉ cho kết quả là True khi và chỉ khi hai toán hạng đều là True. + Phép Or chỉ cho kết quả là False khi và chỉ khi hai toán hạng đều là False. + Phép Xor luôn luôn cho kết quả là True khi hai toán hạng khác nhau. Còn nếu hai toán hạng giống nhau, Xor sẽ cho kết quả là False. * Hai vế của biểu thức so sánh phải cùng kiểu nhau ( trừ kiểu thực và nguyên ) và chúng có thể là các kiểu Real, Integer, Char, Boolean, Vô hớng do ngời sử dụng định nghĩa (sẽ học sau ). Ví dụ 2 : 3 < 5 cho ta giá trị True False < True cho ta giá trị True 3.5 > 10 cho ta giá trị False Trờng đại học dân lập Đông Đô _Phòng máy tính Khoa CNTT Năm 2005 4 Giáo trình môn tin học (Turbo PasCal). Biên soạn: Hoàng Đức Hà Cách viết 3 < True là không chấp nhận đợc vì hai vế của biểu thức không cùng kiểu cho phép : 3 thuộc kiểu số nguyên, True thuộc kiểu Boolean Kiểu số nguyên đã đợc máy định nghĩa sẵn với từ khóa INTEGER Một giá trị kiểu số nguyên là một phần tử của tập các số nguyên mà ta có thể biểu diễn đợc trên máy, nghĩa là nó là một tập nhỏ của không gian các số nguyên chứ không phải tất cả mọi số nguyên đều có thể xử trên máy tính đợc. Thông thờng nhất, các số nguyên đợc biểu diễn bằng hai byte (16 bit) nên phạm vi của nó là từ -32768 đến + 32767 Các số nguyên đợc viết ra bằng các dãy chữ số 0, 1, 2, . 9 với chữ số đầu có thể là dấu dơng + hoặc dấu âm -, hoặc không có dấu. Ví dụ : +234, -32767, -1, 23 Maxint là tên giá trị cực đại cho phép của kiểu nguyên, tức là Maxint = + 32767. a) Các phép tính số học đối với số nguyên: _ Phép cộng và trừ : với kí hiệu là + và - nh thờng lệ. _ Phép nhân : đợc kí hiệu bằng dấu *. _ Phép chia : đợc kí hiệu bằng dấu /. _ Phép chia lấy phần nguyên đợc thực hiện với từ khóa Div. Ví du : 14 Div 4 cho giá trị bằng 3 _ Phép chia lấy số d của 2 số nguyên, còn gọi là Modun, đợc thực hiện với từ khóa Mod Ví du : 14 Mod 4 cho giá trị bằng 2 _ Hàm Boolean Odd(n) cho giá trị True nếu n là một số lẻ, False nếu n là số chẳn. * Khi thực hiện các phép tính số học đối với số nguyên, cần hết sức thận trọng xem các phép toán đó có cho kết quả vợt ra khỏi phạm vi biểu diễn số nguyên của máy không. Ví dụ : 32000 + 800 - 2000 = 29200 song máy tính sẽ xử sai vì lúc làm phép cộng giữa 32000 với 800 đã cho ra kết quả trung gian là 32800, vợt quá giới hạn 32767 của máy. Máy có thể phát hiện và báo lỗi trờng hợp quá giới hạn này. b) Các phép tính quan hệ đối với số nguyên: Các số nguyên có thể so sánh với nhau và với số thực qua các phép toán quan hệ nh đã nói ở mục trớc. Kết quả của phép toán quan hệ là kiểu Boolean tức là có giá trị True (Đúng) hoặc False (Sai). Ví dụ : Biểu thức 3 < 5 cho ta giá trị True c) Mô tả số nguyên với Byte, Word, LongInt, ShortInt : Bên cạnh cách biểu diễn số nguyên nh ở trên (biểu diễn bằng 2 byte), Pascal còn có thêm một kiểu đơn giản chuẩn làkiểu biểu diễn số nguyên bằng một byte. Phạm vi biểu diễn số nguyên khi này là từ 0 đến 255 và đợc gọi là kiểu Byte. Ngoài ra, Turbo Pascal từ Version 4.0 trở đi và một số Pascal khác đã đa thêm vào các định nghĩa kiểu số nguyên mới với các từ khoá Word, ShortInt (Short Integer), LongInt (Long Integer). Kiểu Phạm vi biểu diễn Kích thớc (byte) Byte 0 . 255 1 ShortInt -128 . 127 1 Integer -32768 . 32767 2 Word 0 . 65535 2 LongInt -2147483648 . 3147483647 4 Trờng đại học dân lập Đông Đô _Phòng máy tính Khoa CNTT Năm 2005 5 Giáo trình môn tin học (Turbo PasCal). Biên soạn: Hoàng Đức Hà 1. Kiểu số thực (Real): Tơng tự nh định nghĩa kiểu số nguyên, kiểu số thực là tập hợp các số thực có thể biểu diễn đợc trong máy tính và đợc máy định nghĩa sẵn với từ khóa REAL. Các phép toán cộng (+), trừ (-), nhân(*), chia (/) cũng nh các phép toán quan hệ (=, < >, <, >, > =, <=) đều có thể áp dụng cho các toán hạng là số thực lẫn toán hạng là số nguyên. * L u y : không tồn tại các phép toán Div, Mod cho kiểu số thực. Trong máy tính, các số thực đợc biểu diễn và đợc viết dới 2 dạng : dạng bình thờng và dạng có phần số mũ. + Dạng viết thập phân bình thờng nh : 3.14 3.0 -13.2 - 0.002 * L u ý : trong cách viết số thực của Việt Nam, của Pháp ., ngời ta dùng dấu phẩy. Nhng trong cách viết số thực của Anh, Mĩ, ngời ta dùng dấu chấm + Dạng viết có số mũ : Gồm 2 phần : phần định trị và phần mũ viết sau chữ E để biểu diễn số mũ cơ số 10. Ví du : 623.12345 = 6.2312345E + 02 Do giá trị số thực có thể biểu diễn dới dạng có dấu phẩy (hay dấu chấm) di động đợc nên ngời ta còn gọi đây là cách biểu diễn dấu phẩy động để phân biệt với cách biểu diễn số dới dạng dấu phẩy tĩnh là cách biểu diển trong đó dấu phẩy cố định. 2. 2.Mở rộng việc mô tả và khai báo số thực : Kiểu Phạm vi biểu diễn Kích thớc (byte) Real 2.9E-39 . 1.7E+38 6 Single 1.5E-45 . 3.4E+38 4 Double 5.0E-324 . 1.7E+308 8 Extended 1.9E-4951 . 1.1E+4932 10 Các hàm sau đây đợc định nghĩa sẵn và đợc sử dụng với đối số là các số thực hoặc các số nguyên : + Abs(x) : cho ta giá trị tuyệt đối của toán hạng x : | x |. Kiểu kết quả cùng kiểu với đối số, nghĩa là nếu x là thực thì Abs(x) cũng là số thực, nếu x là số nguyên thì Abs(x) cũng là số nguyên. + Sqr(x) : Cho giá trị bình phơng của x. Kiểu kết quả cùng kiểu với đối số x. + Các hàm sau áp dụng cho đối số nguyên hoặc thực nhng kết quả thì luôn luôn là kiểu thực : - Sin(x), Cos(x), Arctan(x) : là các hàm lợng giác bình thờng. - Sqrt(x) : tính căn bậc hai của x. - Succ(x) : đối số nguyên n, cho số nguyên tiếp theo n, tức là n + 1. - Pred(x) : đối số nguyên n, cho số nguyên trớc n, tức là n - 1. - Odd(n) : đối số nguyên n, True nếu n lẻ, False nếu n chẵn. Việc chuyển một số thực sang số nguyên đợc thực hiện bởi 2 hàm chuẩn : hàm làm tròn và hàm cắt : + Hàm cắt Trunc(x) cho ta một số nguyên là phần nguyên của x, tức là cắt bỏ đi phần lẻ thập phân của x.Ví dụ : Trunc (3.146) = 3. + Hàm làm tròn Round(x) cho ta một số nguyên của x bằng cách qui tròn phần lẻ thập phân của x. Nói cách khác, Round(x) cho ta số nguyên gần với x nhất. Ví dụ : Round (56.678) = 57. Chúng ta có thể viết định nghĩa của Round qua Trunc nh sau : + Nếu x >= 0 thì Round(x) = Trunc(x + 0.5) Trờng đại học dân lập Đông Đô _Phòng máy tính Khoa CNTT Năm 2005 6 Giáo trình môn tin học (Turbo PasCal). Biên soạn: Hoàng Đức Hà + Nếu x < 0 thì Round(x) = Trunc(x - 0.5) Máy tính điện tử không chỉ có khả năng xử các dữ liệu bằng số nguyên, số thực mà nó còn có khả năng xử các dữ liệu kiểu kí tự nh khi ta soạn thảo văn bản, quản hồ sơ. Các kí tự là tất cả các chữ viết mà ta thờng dùng nh các chữ cái a, b, c ., các chữ số từ 0 đến 9, các dấu phân đoạn nh ;, !, . Kiểu kí tự đợc định nghĩa trong 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ữu hạn các kí tự đợc sắp xếp có thứ tự. Tất cả các máy tính đều dùng tập kí tự nh vậy để trao đổi thông tin qua các thiết bị vào ra. Có nhiều cách sắp xếp bộ chữ khác nhau và không tồn tại bộ chữ chuẩn cho tất cả các máy tính. Tuy vậy một bộ mã các kí tự đợc dùng rất phổ biến để trao đổi các thông tin giữa các thiết bị nhất là trên máy vi tính, đó là bộ mã kí tự ASCII (xem ở phần Phụ lục). 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, dùng để điều khiển các thiết bị ngoại vi, điều khiển các thủ tục trao đổi thông tin. Ví dụ khi thiết bị nhận kí tự số 7 (Bel), máy sẽ ra một tiếng chuông. Kí tự số 27 (Esc) cũng thờng dùng để thoát khỏi các tình huống, để nhận biết các mã đặc biệt khác nh điều khiển máy in bằng dãy kí tự bắt đầu là Esc . Phần còn lại trong bảng mã ACSII bố trí toàn bộ các chữ cái A, B, C ., các chữ số từ 0 đến 9, các dấu chấm câu, các kí tự đặc biệt . Ví dụ khi nhận kí tự số 50 máy sẽ hiện lên màn hình chữ số 2. Riêng kí tự 127 (Del) lại đợc dùng làm kí tự điều khiển xóa. Nếu bạn dùng Editor , phím Del trên màn hình chính là phím tạo ra mã số 127 để xóa một kí tự trên màn hình. Có 2 hàm chuẩn là Ord và Chr cho phép thiết lập tơng quan giữa bộ mã kí tự và một tập con các số tự nhiên + Ord( ) - Hàm Ord('c') cho ta số thứ tự của kí tự 'c' trong bảng mã. + Chr( ) - Hàm Chr(n) cho ta kí tự có số thứ tự là n. Hàm chuẩn Pred (trớc) và Succ (tiếp theo sau) có thể áp dụng cho đối số là kí tự, kết quả là kí tự. Giả sử Ch là một kí tự nào đó, vậy thì : + Hàm chuẩn Pred(Ch) cho ta một kí tự nằm trớc kí tự Ch trong bảng mã kí tự : Pred(Ch) = Chr(Ord(Ch) - 1) + Hàm chuẩn Succ(Ch) cho ta một kí tự nằm sau kí tự Ch trong bảng mã kí tự : Succ(Ch) = Chr(Ord(Ch) + 1) 1. Khai báo hằng: Hằng là các đại lợng không thay đổi giá trị. Có các loại hằng số (nguyên và thực), hằng kí tự, hằng Boolean. Khai báo hằng : các hằng (hằng số, hằng kítự, hằng Boolean) đợc khai báo bằng một tên đặt trong phần khai báo Const ở đầu chơng trình. Cách viết : Tên_hằng := Giá_trị_của_hằng ; Một dòng khai báo hằng đợc kết thúc bằng dấu chấm phẩy. Tên hằng đợc viết theo quy tắc viết tên đã trình bày ở chơng trớc. Ví dụ : Const B = True ; (* hằng Boolean *) A = 5 ; (* hằng số nguyên *) Pi = 3.14 ; (* hằng số thực *) CCC = Z ; (* hằng kí tự *) * Các hằng giữ nguyên giá trị của nó trong suốt chơng trình. 2. Khai báo biến: Trờng đại học dân lập Đông Đô _Phòng máy tính Khoa CNTT Năm 2005 7 Giáo trình môn tin học (Turbo PasCal). Biên soạn: Hoàng Đức Hà Biến (variance) là đại lợng có thể thay đổi giá trị. Tên biến của chơng trình là tên của ô nhớ cất giữ dữ liệu. Khác với hằng, biến có thể thay đổi đựoc giá trị của nó. Các biến đợc khai báo bằng cách đặt tên các biến vào phần khai báo biến ở đầu chơng trình, sau từ khóa Var. Cách viết : Tên_biến : Kiểu_dữ_liệu_của_biến ; Dấu hai chấm bắt buộc phải có để ngăn cách hai phần của khai báo biến. Dấu chấm phẩy kết thúc một dòng khai báo. Nhiều biến có cùng kiểu có thể đựoc khai báo với nhau bằng cách viết tên các biến đặt cách nhau qua dấu phẩy (,) nh các biến M23, A25, AAA ở ví dụ dới đây : Var M23, A25, AAA : Real ; My_name : String [ 25 ] ; Y : Boolean ; X : Integer ; a) Chúng ta đã làm quen với khái niệm kiểu dữ liệu ở trên. Đối với các kiểu dữ liệu cơ sở (real, Integer, Byte, Char, Boolean) đã đợc Pascal định nghĩa sẵn nên khi khai báo biến ta có thể dùng trực tiếp các kiểu dữ kiệu này ngay. Còn các kiểu dữ liệu khác thì ta phải định nghĩa ra, mô tả một cách tờng minh trong phần khai báo của chơng trình sau từ khóa Type. Sau đó sẽ khai báo các biến thuộc kiểu dữ liệu mới mô tả. Chúng ta sẽ dần dần tìm hiểu sau này. b) Cách khai báo Type Tên kiểu = Mô tả xây dựng kiểu ; Ví dụ: Type SoNguyen = integer ; Ten = String[11] ; Tuoi = 1 100 ; Color = (Red, Blue, Green) Thu = (ChuNhat, ThuHai, ThuBa, ThuTu, ThuNam, ThuSau, ThuBay) ; Và khi đã khai báo kiểu thì ta có quyền sủ dụng để khai báo biến. Ví dụ: Var I, J : SoNguyen ; Khach_hang : Ten ; T : Tuoi ; Mau : Color ; Ngay_hoc : Thu ; a) Chúng ta đã làm quen với khái niệm kiểu dữ liệu ở trên. Đối với các kiểu dữ liệu cơ sở (real, Integer, Byte, Char, Boolean) đã đợc Pascal định nghĩa sẵn nên khi khai báo biến ta có thể dùng trực tiếp các kiểu dữ kiệu này ngay. Còn các kiểu dữ liệu khác thì ta phải định nghĩa ra, mô tả một cách tờng minh trong phần khai Trờng đại học dân lập Đông Đô _Phòng máy tính Khoa CNTT Năm 2005 8 Giáo trình môn tin học (Turbo PasCal). Biên soạn: Hoàng Đức Hà báo của chơng trình sau từ khóa Type. Sau đó sẽ khai báo các biến thuộc kiểu dữ liệu mới mô tả. Chúng ta sẽ dần dần tìm hiểu sau này. b) Cách khai báo Type Tên kiểu = Mô tả xây dựng kiểu ; Ví dụ: Type SoNguyen = integer ; Ten = String[11] ; Tuoi = 1 100 ; Color = (Red, Blue, Green) Thu = (ChuNhat, ThuHai, ThuBa, ThuTu, ThuNam, ThuSau, ThuBay) ; Và khi đã khai báo kiểu thì ta có quyền sủ dụng để khai báo biến. Ví dụ: Var I, J : SoNguyen ; Khach_hang : Ten ; T : Tuoi ; Mau : Color ; Ngay_hoc : Thu ; Biểu thức (Expression) là một công thức tính toán để có một giá trị theo một quy tắc toán học nào đó. Một biểu thức bao gồm : toán tử (operator) và toán hạng (operand). Toán tử đựoc viết ra bằng dấu phép toán. Toán hạng có thể là hằng, là hàm, là biến. Các phần tử của biểu thức có thể đợc phân thành số hạng, thừa số, biểu thức đơn giản. Ví du: 3 + PI * Sin ( x) ; Trong ví dụ này, các toán tử (các phép toán) la phép cộng (+) và phép nhân (*). Các toán hạng là hằng số 3 và PI, là hàm Sin với đối số là biến X. * Biểu thức số học là biểu thức có giá trị bằng số (là Integer, Byte, Real) * Biểu thức logic Bun ( Boolean ) là biểu thức có giá trị là True hoặc False. * Một biểu thức chứa các toán tử quan hệ ( <>, <, >, <=, >=, = ) đựoc gọi là một biểu thức Boolean đơn giản hay một biểu thức quan hệ. Các toán hạng trong biểu thức quan hệ có thể là các số nguyên, số thực, kí tự và chúng phải tơng thích nhau về kiểu. Ví dụ minh họa về trình tự tính toán : 7 + 3 * 5 = 7 + ( 3 * 5 ) = 22 5 / 2 * 3 = ( 5 / 2 ) * 3 = 7.5 18 Div 4 * 4 = ( 18 Div 4 ) * 4 = 16 2 * ( 3 + 5 ) = 2 * 8 = 16 Ví du: Để giải phơng trình bậc hai ta có thể phát biểu điều kiện về các hệ số A, B, C nh sau : Nếu ( (A = 0) And (B = 0) And (C = 0) ) = True thì bài toán không có lời giải. Trờng đại học dân lập Đông Đô _Phòng máy tính Khoa CNTT Năm 2005 9 Giáo trình môn tin học (Turbo PasCal). Biên soạn: Hoàng Đức Hà hoặc có thể viết gọn hơn : Nếu (A = 0) And (B = 0) And (C = 0) thì bài toán không có lời giải. 1. Câu lệnh ( Instruction, Statement ): Bên cạnh phần mô tả dữ liệu là phần là phấn lệnh (intruction) của chơng trình. Phần này xác định các công việc mà chơng trình phảo thực hiện để xử các dữ liệu đã đợc mô tả và khai báo. Các câu lệnh cách nhau bằng dấu chấm phẩy. Câu lệnh chia ra hai loại : _ Câu lệnh đơn giản : là những câu lệnh không chứa các lệnh khác. Đó là phép gán, lời gọi chơng trình con loại Procedure ( thủ tục ) bao hàm rất nhiều quá trình xử khác nhau nh : + Vào dữ liệu : Read, Readln + Ra dữ liệu : Write, Writeln + Xử tập tin : Reset, Rewrite, Assign _ Câu lệnh có cấu trúc : là khối lệnh, lệnh thử và rẽ nhánh, lệnh lặp. Lệnh hợp thành hay lệnh ghép bao gồm nhiều lệnh đơn giản và có khi có cả lệnh ghép bên trong. Các lệnh này đợc thực hiện theo thứ tự nh đã viết trong lệnh ghép Nó bắt đầu bằng từ Begin và kết thúc bằng từ End. Mỗi một câu lệnh của Pascal bao giờ cũng đợc đặt cách nhau bằng dấu chấm phẩy (;). Dấu chấm phẩy chỉ có tác dụng ngăn cách các câu lệnh chứ không phải là dấu kết thúc câu lệnh và nó không phụ thuộc vào câu lệnh.Pascal không bắt buộc viết mỗi câu lệnh một dòng. Vấn đề là chúng ta phải trình bày chơng trình sau cho đẹp, rõ ràng, thể hiện đợc thuật toán . Ví dụ : chúng ta có thể viết liền nhau trên một dòng chơng trình : X := 2 ; Y := 3 < 5 * 8 ; Z := Pi ; hoặc viết thành từng dòng : X := 2 ; Y := 3 < 5 * 8 ; Z := Pi ; * Phép gán : Phép gán đợc dùng để gán giá trị của một biểu thức, một hằng vào một biến. Phép gán đợc kí hiệu là := . Biến := Biểu_thức ; Vế trái của phép gán chỉ có thể là biến mà thôi. Ví du : X := 6 ; (* có nghĩa là biến X nhận giá trị bằng 6 *) Y := True ; (* có nghĩa là biến Y nhận giá trị True *) X := X + 3 ; (* có nghĩa là giá trị của X sẽ bằng giá trị của X cộng với 3. Ví dụ nếu lúc đầu X có giá trị là 6 thì sau khi thực hiện câu lệnh này, X sẽ có giá trị là 9. Xin bạn nhớ lại cho X chỉ là tên của một ô nhớ. X + 3 đựoc hiểu là lấy nội dung của ô nhớ X đem cộng với 3, sau đó lại để vào ô nhớ X *) Trờng đại học dân lập Đông Đô _Phòng máy tính Khoa CNTT Năm 2005 10 [...]... file TURBO. TPL ( TPL : Turbo Pascal Library ) GRAPH là một Unit về đồ họa, đợc để trong một file riêng có tên là GRAPH.TPU Đây là một Unit chứa tất cả các CTC về đồ họa Vì vậy khi bạn dùng đồ họa, nhớ phải copy file GRAPH.TPU STRING #0 ( kí tự Null ) chỉ có trong Turbo 7.0 để sử dụng kiểu xâu kí tự kệt thúc bằng kí tự có mã TURBO3 là Unit tạo sự tơng thích với các chơng trình đã viế bằng Turbo Pascal. .. học (Turbo PasCal) Biên soạn: Hoàng Đức Hà Function Giai_thua( N : Integer ) : Integer ; Begin If N = 0 Then Giai_thua := 1 ; Else Giai_thua := N * Giai_thua( N-1 ) ; End ; Một điều cần lu ý là ta phải hết sức thận trọng lờng trớc việc kết thúc của quá trình đệ qui này Trong thí dụ trên, lệnh gán : K := Giai_thua( -1 ) ; sẽ khởi động một quá tình đệ qui rất dài về mặt thuyết vì tham số âm bị xử lý. .. (Turbo PasCal) Biên soạn: Hoàng Đức Hà If a < b Then Max := b ; Min := a ; thì ta phải hiểu là lệnh max := b đợc thực hiện chỉ khi a < b còn lệnh min := a đợc thực hiện trong mọi trờng hợp Cũng trong ví dụ này ta thấy cách viết có cấu trúc nhô ra nhô vào để bố trí chơng trình Pascal cho đẹp và thể hiện đơc thuật toán của chơng trình Đây là một tiêu chuẩn cần phải có cho một chơng trình viết bằng Pascal. .. Forward Trờng đại học dân lập Đông Đô _Phòng máy tính Khoa CNTT Năm 2005 33 Giáo trình môn tin học (Turbo PasCal) Biên soạn: Hoàng Đức Hà 1 Unit: Trong Pascal, ngời ta đã chia nhỏ th viện CTC thành các th viện nhỏ hơn, mỗi th viện nhỏ đó đợc gọi là một Unit (đơn vị chơng trình) nh : CRT là Unit chứa các CTC xử màn hình ( nh lệnh Gotoxy, ClrScr ), bàn phím ( nh Readkey ) PRINTER là Unit chứa các CTC... 2005 23 Giáo trình môn tin học (Turbo PasCal) Ví dụ 2: Biên soạn: Hoàng Đức Hà Chúng ta thờng làm các vòng lặp không xác định nh sau để quay vòng theo ý muốn : Var Traloi : Char ; BEGIN Repeat (* thay đổi điều kiện thủ tục *) Writeln (' Co tiep tuc nua khong ? ') ; Readln ( Traloi ) ; Until ( Traloi = 'K' ) or ( Traloi = 'k' ) ; 1 Khái niệm về chơng trình con: Turbo Pascal là ngôn ngữ có cấu trúc cao... Begin End ; END (* Kết thúc Unit bằng END có dấu chấm Lu ý ở phía trên sẽ không có chữ BEGIN tơng ứng với chữ END kết thúc Unit này *) Khi dịch tệp trên bằng cách ấn Alt _ F9, Turbo Pascal sẽ tạo ra file KHOI1.TPU ( TPU : Turbo Pascal Unit ) Bạn nhớ rằng để dịch đúng một Unit bạn đang soạn thảo, bạn phải ấn Alt _ F9 chứ không phải Ctrl _ F9 3 Cách gọi các Unit: Trong chơng trình chính hay trong một Unit,... có mã TURBO3 là Unit tạo sự tơng thích với các chơng trình đã viế bằng Turbo Pascal 3.0, đợc chứa trong file TURBO3 .TPU GRAPH3 thực hiện các CTC vẽ theo kiểu con rùa có ở trong Turbo 3.0, chứa trong file GRAPH3.TPU Tuy nhiên, hai Unit cuối có lẽ bạn sẽ không phải dùng đến, bởi vì phiên bản Turbo 3.0 và các chơng trình viết bằng phiên bản này đã cũ và "cổ lỗ" lắm rồi, bạn có muốn tìm cũng không ra !... môn tin học (Turbo PasCal) Biên soạn: Hoàng Đức Hà khai báo ở đầu chơng trình, đặt cách nhau qua dấu phẩy Trong chơng trình, nhãn đợc đặt vào vị trí thích hợp theo sau là dấu hai chấm Ví dụ1: Program Vi_du_nhan ; Label 1, 2 ; Var X, Y, I : Real ; BEGIN 1: X := X + 1 ; If X > 5 Then Goto 2 ; 2: I := X + Y ; If I < 3 Then Goto 1 ; END Tuy đợc trang bị lệnh nhảy Goto song có thể nói Pascal rất ít... ; Trờng đại học dân lập Đông Đô _Phòng máy tính Khoa CNTT Năm 2005 35 Giáo trình môn tin học (Turbo PasCal) Biên soạn: Hoàng Đức Hà 1 Khái niệm chung về cấu trúc dữ liệu: Chúng ta đã làm quen với các kiểu dữ liệu đơn giản là các kiểu vô hớng (Integer, Char, Boolean, Real, kiểu liệt kê) và đoạn con Trong Pascal tồn tại các kiểu dữ liệu có cấu trúc là các kiểu dữ liệu đ ợc tạo ra từ các phần tử có kiểu... điểm 2 cho đến khi nào I = 25, lớn hơn giá trị cuối (24) thì dừng Mẫu viết tổng quát của ví dụ trên là : Trờng đại học dân lập Đông Đô _Phòng máy tính Khoa CNTT Năm 2005 18 Giáo trình môn tin học (Turbo PasCal) Biên soạn: Hoàng Đức Hà For Bien_dieu_khien := Gia_tri_dau To Gia_tri_cuoi Do ; Nếu ta muốn viết các số từ 24 đến 0 ta lại viết nh sau : For I := 24 Downto 0 Do Writeln ( I ) ; Với mẫu . Giáo trình môn tin học (Turbo PasCal) . Biên soạn: Hoàng Đức Hà Phần lý thuyết 1. Nguồn gốc Pascal là một trong các ngôn ngữ lập trình. trình môn tin học (Turbo PasCal) . Biên soạn: Hoàng Đức Hà Chúng ta có thể định nghĩa dữ liệu (Data) là tất cả những gì đợc máy tính xử lý. Các loại dữ liệu

Ngày đăng: 21/06/2013, 01:26

Hình ảnh liên quan

Uses Crt; (* Crt là một Unit chứa các chơng trình con về màn hình, bàn hình... *) Var  A, B, C, D : Integer ; - Lý thuyết  Turbo Pascal

ses.

Crt; (* Crt là một Unit chứa các chơng trình con về màn hình, bàn hình... *) Var A, B, C, D : Integer ; Xem tại trang 25 của tài liệu.
Bảng tần số nốt nạc theo quảng Tá m( Octav e) - Lý thuyết  Turbo Pascal

Bảng t.

ần số nốt nạc theo quảng Tá m( Octav e) Xem tại trang 99 của tài liệu.
2. Bảng màu (Palette): - Lý thuyết  Turbo Pascal

2..

Bảng màu (Palette): Xem tại trang 102 của tài liệu.

Từ khóa liên quan

Tài liệu cùng người dùng

  • Đang cập nhật ...

Tài liệu liên quan