1. Trang chủ
  2. » Kỹ Năng Mềm

Giao trinh Pascal de hieu2

16 10 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

Trong quá trình thực hiện chương trình nếu gặp câu lệnh gọi thủ tục hay hàm , điều khiển được chuyển đến thủ tục hay hàm có tên được chỉ định , đồng thời giá trị của các tham số được tru[r]

(1)BAØI 01 : CHÖÔNG TRÌNH CON : THUÛ TUÏC VAØ HAØM TRONG PASCAL GIỚI THIỆU VỀ CHƯƠNG TRÌNH CON :  Trong lập trình , có nhiều công việc lặp lặp lại thao tác tính toán , xử lý nào đó , thay vì phải viết phần chương trình để giải phần việc này thì người ta tạo lập chương trình riêng lưu trữ trên đĩa nhớ để nào sử dụng đến thì gọi Những chương trình đó gọi là thủ tục hay hàm  Trong pascal nói riêng và các ngôn ngữ lập trình bậc cao nói chung có các thủ tục và hàm chuẩn nhà thiết kế ngôn ngữ tạo sẵn và cất thư viện các thủ tục và hàm chuẩn Ngoài còn cho phép người lập trình tự tạo các thủ tục và hàm riêng họ để giải nhiệm vụ bài toán đặt  Việc tổ chức chương trình có lợi điểm sau :  Cấu trúc chương trình sáng sủa , khoa học , hệ thống hoá việc lập trình  Có thể chia nhỏ chương trình thành đơn thể cho nhiều người cùng thực , khiến tốc độ lập trình nhanh chóng mà còn tận dụng trí tuệ tập thể  Các đơn thể chương trình có thể là thủ tục hay hàm độc lập với , vì dễ dàng sửa lỗi thêm bớt nội dung cho phù hợp với nhu cầu đặt TỔ CHỨC VAØ SỬA LỖI TRONG THỦ TỤC VAØ HAØM : Program < Teân chöông trình > ; Uses < Teân caùc unit > ; Const < Teân haèng > = < Giaù trò > ; Var < Danh sách các biến > : < Kiểu liệu > ; Procedure < Teân thuû tuïc > [ tham soá ] ; const < Teân haèng > = < Giaù trò > ; var < Danh sách các biến > : < Kiểu liệu > ; begin Caùc leänh cuûa thuû tuïc ; end ; Function < Tên hàm > ( tham số hình thức ) : < Kiểu hàm > ; const < Teân haèng > = < Giaù trò > ; var < Danh sách các biến > : < Kiểu liệu > ; begin Caùc leänh cuûa haøm ; end ; Begin Procedure < Teân thuû tuïc > ; Function < Teân haøm > ; Caùc leänh khaùc cuûa chöông trình chính ; (2)             End Các thủ tục và hàm tự tạo phải đặt trước chương trình chính Khi nạp chương trình vào máy nạp các thủ tục và hàm chương trình đó , chúng nằm thường trú nhớ để nào cần sử dụng thì thực câu lệnh gọi thủ tục và hàm Vì tốc độ thực nhanh so với chương trình không có cấu trúc chương trình Sau từ khóa Program là tên chương trình chính Sau từ khóa Var là danh sách các biến chương trình chính Các biến này gọi là biến chung có tác động chung cho toàn chương trình , có nghĩa là các hàm và thủ tục có thể sử dụng tên các biến này Sau từ khóa Procedure là tên thủ tục Sau từ khóa Function là tên hàm Chú ý : Khi đặt tên các thủ tục hay hàm ta nên đặt tên mang tính gợi nhớ để dể sử dụng sau này Các tên phải viết liền và không trùng với tên các từ khóa chuẩn Sau tên hàm là các tham số hình thức Các tham số này truyền giá trị tham số thực là các biến chương trình chính Sau tham số hình thức là kiểu liệu giá trị trả cho hàm Tiếp đến có thể có không có các biến riêng hàm thủ tục Trong hàm có thân hàm , đó là các lệnh đặt hai từ khóa begin … end ; Thân chương trình chính khóa Begin và kết thúc từ khóa End với dấu chaám Trong thân chương trình chính là các câu lệnh gọi thủ tục hàm và câu lệnh khác KHAI BÁO THỦ TỤC VAØ HAØM TỰ TẠO :  KHAI BAÙO THUÛ TUÏC : Khi muốn thực thao tác nào đó ta nên khai báo là thủ tục Thủ tục có cấu trúc chương trình Pascal , khác là thay từ khóa Program từ khóa Procedure , ngoài sau phần khai báo tên thủ tục có thể có không có các tham số , dấu chấm phẩy đến thân thủ tục là câu lệnh đơn giản , câu lệnh đơn , câu lệnh phức , câu lệnh điều kiện , câu lệnh lặp , … tùy theo chức và nhiệmvụ thủ tục chương trình Trong chương trình có thể có nhiều thủ tục khác , thủ tục có chức công dụng nào đó Các thủ tục này có thể có các biến riêng ( còn gọi là biến cục biến địa phương ) Các biến này có thể trùng tên với biến chung ( còn gọi là biến toàn cục ) có thể trùng với tên cuûa caùc thuû tuïc hay haøm khaùc  KHAI BAÙO HAØM : Khi muốn trả kết nào đó ta nên khai báo là hàm Caùc thaønh phaàn cuûa khai baùo haøm gioáng nhö khai baùo thuû tuïc nhöng coù hai choã khaùc bieät nhö sau : Thay từ khóa Procedure từ khóa Function Khai baùo haøm phaûi cho bieát kieåu keát quaû cuûa haøm Chú ý : Ta có kết hàm trả là giá trị , còn thủ tục là tác vụ ( công việc ) Ta sử duïng chöông trình laø haøm : Neáu ta muoán nhaän laïi moät keát quaû nhaát Kết phải là kiểu vô hướng trỏ Có sử dụng tên hàm biểu thức Neáu khoâng thoûa maõn caùc yeáu toá treân thì chöông trình laø thuû tuïc (3) THUÛ TUÏC VAØ HAØM LOÀNG NHAU :  Hàm thủ tục lồng tương tự các cấu trúc điều kiện cấu trúc vòng lặp lồng , tức là thủ tục này chứa thủ tục khác , hàm này chứa hàm khác  Đối với các thủ tục và hàm tự tạo cho phép thủ tục này lồng vào thủ tục khác , hàm này lồng vào hàm thủ tục khác  Trong moät chöông trình coù thuû tuïc vaø haøm loàng ta caàn löu yù moät soá ñaëc ñieåm sau : Thủ tục và hàm bên ngoài gọi thực thủ tục hàm bên , không gọi ngược lại và không gọi cắt chéo Các biến riêng và giá trị chúng các thủ tục và hàm bị sau thoát khỏi thủ tục và hàm đó LỆNH GỌI THỦ TỤC , HAØM VAØ THOÁT KHỎI CHƯƠNG TRÌNH :  Leänh goïi thuû tuïc vaø haøm : Câu lệnh gọi thủ tục hay hàm là câu lệnh gọi thực thủ tục hay hàm chuẩn thủ tục hay hàm tự tạo trước đó Câu lệnh này gồm có tên thủ tục hay tên hàm , sau có thể có không có danh sách các tham số đặt hai dấu ngoặc đơn ( ) Danh sách các tham số là dãy các biến và biểu thức đặt cách dấu phẩy Trong quá trình thực chương trình gặp câu lệnh gọi thủ tục hay hàm , điều khiển chuyển đến thủ tục hay hàm có tên định , đồng thời giá trị các tham số truyền cho thủ tục hay hàm theo các cách : truyền trị , truyền biến truyền kết hợp vừa trị vừa biến Sau thực xong thủ tục hay hàm , chương trình thực tiếp tục từ câu lệnh đứng sau câu leänh goïi thuû tuïc hay haøm  Thủ tục thoát khỏi chương trình : Trong lập trình là chương trình dài , chương trình , đôi lúc cần dừng chương trình vị trí nào đó để kiểm tra các kết trung gian mà khoâng caàn phaûi chaïy heát chöông trình  Thủ tục Exit ; : Nếu thủ tục Exit đặt chương trình thì thoát chương trình chừng để trở chương trình chính Nếu Exit đặt chương trình chính thì chấm dứt chương trình chính , không thực các lệnh còn lại sau thủ tục này  Thuû tuïc Halt; : Duø cho thuû tuïc naøy ñaët chöông trình hay chöông trình chính , gặp thủ tục này thì chấm dứt thực chương trình để trở hệ điều hành và xuất thông báo mã thoát ExitCode Halt Halt ( ) là thoát hệ điều hành khoâng coù loãi THAM SOÁ VAØ TRUYEÀN THAM SOÁ :  Có hai loại tham số : tham số thực và tham số hình thức  Việc cung cấp các giá trị thực cho các tham số hình thức gọi là truyền tham số  Thứ tự truyền tham số truyền từ trái qua phải  Coù ba caùch truyeàn tham soá : Truyền trị : Tham số thực truyền cho tham số hình thức thủ tục thì sau truyền giá trị tham số thực không thay đổi Truyền biến : Tham số thực truyền cho tham số hình thức thủ tục thì sau truyền giá trị tham số thực đã bị thay đổi Truyền kết hợp vừa trị , vừa biến Chuù yù : (4) Các tham số hình thức khác kiểu liệu với các thủ tục , hàm thì phải phân cách dấu chấm phẩy Các tham số cùng kiểu thì phân cách dấu phẩy Khi gọi các thủ tục , hàm thì tất các tham số thực phân cách dấu phẩy không phaân bieät cuøng kieåu hay khaùc kieåu Các tham số thực và tham số hình thức phải giống kiểu , số lượng và vị trí chuùng danh saùch lieät keâ bieán BIẾN CHUNG , BIẾN RIÊNG VAØ MIỀN TÁC ĐỘNG CỦA BIẾN :  Trong chương trình có cấu trúc chương trình thì các biến sử dụng chương trình chính vaø chöông trình laø khaùc  Biến chung khai báo chương trình chính , thời gian tồn biến từ lúc vận hành chương trình thoát khỏi chương trình  Biến riêng khai báo các chương trình , thời gian tồn biến phạm vi chương trình vận hành Khi thoát khỏi chương trình thì các biến riêng và giá trị chúng bị Lợi dụng đặc điểm này người ta có thể đặt tên các biến trùng các chương trình để tiết kiệm nhớ MOÄT SOÁ THUÛ TUÏC VAØ HAØM CHUAÅN TRONG UNIT CRT : a Thuû tuïc chuaån :  Các thủ tục tọa độ màn hình và trỏ :  Thuû tuïc GotoXY ( x , y : integer ) ; Dùng để đưa trỏ đến tọa độ ( x , y ) trên màn hình  Thuû tuïc ClrScr ; Dùng để xóa màn hình , đưa trỏ góc trên bên trái màn hình có tọa độ ( , )  Thuû tuïc Deline ; Dùng để xóa dòng chứa trỏ , các dòng phía dồn lên  Thuû tuïc ClrEol ; Dùng để xóa các ký tự từ vị trí trỏ đến cuối dòng mà không di chuyển vị trí troû  Thuû tuïc Insline ; Dùng để chèn thêm dòng trống vào vị trí trỏ hành , đẩy các dòng phía dịch chuyển xuống  Caùc thuû tuïc veà thuoäc tính maøn hình :  Thủ tục cửa sổ màn hình :  Caùc thuû tuïc veà aâm :  Moät soá thuû tuïc khaùc : a Haøm chuaån :  Moät soá haøm chuaån unit CRT :  Caùc haøm soá hoïc :  Caùc haøm sô caáp :  Các hàm chuyển đổi kiểu :  Caùc haøm khaùc : UNIT VAØ UNIT TỰ TẠO : (5)  Có nhiều chương trình tiện ích thường xuyên sử dụng nên đã hảng sản xuất phần mềm ngôn ngữ biên dịch sẳn , lúc nào cần thì người lập trình đem sử dụng mà không cần phải viết đoạn chương trình đó Tuy , không phải lúc nào người lập trình sử dụng hết các chương trình lập sẵn nên nhà sản xuất chia nhỏ các chương trình thành nhóm theo công dụng Mỗi nhóm gọi là Unit và là Unit Chuẩn  Ta có thể gom các chương trình có công dụng nào đó vào tập tin lưu trữ độc lập trên đĩa để sau này sử dụng các chương trình khác  Một tập tin chương trình nào đó sau đã chạy thử , sửa các lỗi và nhận thấy có nhiều ứng dụng lập trình thì có thể chuyển thành Unit , ta gọi là các Unit tự tạo  Cách tổ chức Unit tự tạo gồm có ba phần :  Tên tập tin phải khóa Unit tương tự bắt đầu chương trình là từ khoùa Program  Tên tập tin chương trình phải trùng với tên tập tin Unit  Cheùp taäp tin chöông trình vaøo maùy neáu chöa coù saún treân maùy ( cheùp vaùo thư mục mà ta xử lý )  Khởi động Turbo Pascal và mở tập tin chương trình , sau đó thêm tên Unit vào dòng đầu tiên tập tin này  Phần giao diện với bên ngoài gồm các chi tiết :  Bắt đầu từ khóa Interface và không có dấu chấm phẩy sau từ khóa này  Khai báo các Unit chuẩn cần và Unit cách dấu phẩy  Khai baùo caùc teân haèng , teân kieåu , teân bieán neáu caàn  Khai báo các thủ tục , các hàm : cần khai báo tên thủ tục , tên hàm với các tên , các tham số và kiểu liệu , kiểu kết qủa hàm  Phaàn beân coøn goïi laø phaàn beân hoäp ñen goàm caùc chi tieát :  Phải khóa Implementation và không có dấu chấm phẩy sau từ khóa này  Khai baùo noäi dung cuûa caùc thuû tuïc , haøm , caùc haèng , kieåu , bieán rieâng , …  Kết thúc là từ khóa End với dấu chấm  Caùch goïi caùc Unit : Trong chương trình chính hay Unit tự tạo có sử dụng các Unit khác thì phần đầu chương trình phải khai báo sau từ khóa Uses ; tên các Unit chuẩn , tự tạa và các Unit phải phân cách dấu phẩy Khi chạy chương trình xuất thông báo ‚ File not found < tên tập tin TPU > ‛ tức là không tìm thấy tập tin Unit , ta sử dụng lệnh Change Dir … thực đơn File để chuyển thư mục có tập tin < tên tập tin TPU > ta phải cheùp taäp tin naøy vaøo thö muïc hieän haønh 10 CAÙC VÍ DUÏ MINH HOÏA : BAØI 02 : KIỂU VÔ HƯỚNG : KIỂU LIỆT KÊ ÑÒNH NGHÓA KIEÅU : Kiểu liệt kê định nghĩa cách liệt kê tất các phần tử có thể có nó Các giá trị kiểu thể tên Cuù phaùp : (6)      TYPE TEÂNKIEÅU = ( CAÙC GIAÙ TRÒ ) ; Để khai báo kiểu liệu ta dùng từ khóa Type Tên kiểu liệt kê là tên tùy chọn ( có thể dùng các tên kiểu chuẩn ) viết liền nối với dấu gạch nối Dấu ‚ = ‛ dùng để gán các giá trị liệt kê cho tên kiểu Các giá trị liệt kê là các giá trị kiểu , giá trị phân cách dấu phẩy Các giá trị là các kiểu vô hướng chuẩn khác và phải đặt cặp dấu ngoặc đơn ( ) Giá trị trả là phần tử thứ n danh sách liệt kê , phần tử đầu tiên có số thứ tự là Daáu chaám phaåy ‚ ; ‛ baét buoäc phaûi coù sau moãi ñònh nghóa kieåu lieät keâ KHAI BAÙO BIEÁN :  Cuù phaùp : TYPE TEÂNKIEÅU = ( CAÙC GIAÙ TRÒ ) ; VAR TEÂNBIEÁN : TEÂNKIEÅU ; Khai báo biến này thông qua các tên kiểu liệt kê đã định nghĩa trước đó  Cuù phaùp : VAR TEÂNBIEÁN : ( CAÙC GIAÙ TRÒ ) ; Khai báo này vừa khai báo biến , vừa định nghĩa kiểu liệt kê XUẤT , NHẬP DỮ LIỆU :  Nhập liệu : Để nhập liệu từ bàn phím ta dùng các thủ tục Read Readln không phép nhập trực tiếp các giá trị kiểu liệt kê mà nhập các giá trị các biến Ví duï : Type color = ( tim , xanh , vang , trang , den ) ; Var mau : color ; Begin Writeln ( ‘ Nhap , xuat du lieu kieu liet ke ’ ) ; Writeln ( ‘ Ban thich mau nao ? ( Nhap cac so tu den ) ’ ) ; Readln ( i ) ; mau := color ( i ) ;  Xuất liệu : Các thủ tục Write Writeln không thể xuất màn hình máy in giá trò kieåu lieät keâ Ví duï :  Khoâng theå duøng caùc leänh : writeln ( mau ) ; writeln ( den ) ; (7) writeln ( color ( i ) ) ;  Chỉ dùng : if mau = den then writeln ( ‘ Ban thich mau den ’ ) ; CÁC PHÉP TOÁN : Các phép toán quan hệ = ; > ; < ; > = ; < = ; < > có thể áp dụng cho kiểu liệt kê với điều kiện hai toán hạng phải cùng kiểu Cơ sở phép so sánh này là thứ tự xếp các giá trị kiểu liệt kê , tức là thứ tự các giá trị đưa vào định nghĩa kiểu CAÙC HAØM TRONG KIEÅU LIEÄT KEÂ :  Hàm Succ ( x ) ; cho kết là giá trị đứng sau x  Hàm Pred ( x ) ; cho kết là giá trị đứng trước x  Hàm Ord ( x ) ; cho kết là số thứ tự x  Chú ý : Kết hàm Succ và Pred thuộc cùng kiểu với kiểu đối số Kiểu kết quaû cuûa haøm Ord laø soá nguyeân CAÙC VÍ DUÏ MINH HOÏA : BAØI 03 : KIEÅU MIEÀN CON ÑÒNH NGHÓA KIEÅU : Các kiểu liệu đếm (vô hướng) integer , char , byte , boolean , liệt kê bao gồm các giá trị xếp theo thứ tự định từ đầu tới cuối Ta có thể không sử dụng tất mà cần sử dụng khoảng giá trị nào đó các khoảng này Khoảng giá trị đó Pascal gọi là kiểu mieàn Cuù phaùp : TYPE TÊNKIỂU = ( < CẬN TRÊN > < CẬN DƯỚI > ) ; KHAI BAÙO BIEÁN :  Cuù phaùp : TYPE TÊNKIỂU = ( < CẬN TRÊN > < CẬN DƯỚI > ) ; VAR TEÂNBIEÁN : TEÂNKIEÅU ;  Cuù phaùp : VAR TÊNBIẾN : ( < CẬN TRÊN > < CẬN DƯỚI > ) ; VÍ DUÏ : Type Nam = 1900 2000 ; Var Namsinh : Nam ; Thangsinh : 12 ; (8) CHUÙ YÙ :  Tất các quy tắc áp dụng cho kiểu liệt kê có thể áp dụng cho kiểu miền  Khi thực phép toán gán thì Pascal kiểm tra xem giá trị gán có nằm miền xác định hay không , không máy thông báo lỗi và chương trình bị dừng laïi gaëp loãi  Khi dùng kiểu miền để nhập liệu thì ta nên dùng câu lệnh If để kiểm tra miền giá trị  Kiểu liệt kê và miền là kiểu đếm nên ta có thể sử dụng chúng làm biến kiểm soát cấu trúc điều kiện Case … of … , vòng lặp for … … và còn làm số cho các mảng Array giúp cho chương trình trở nên dễ viết , dễ hiểu và dễ sửa gặp lỗi  Sử dụng kiểu miền lập trình có nhiều ưu điểm , chương trình dễ đọc nhiều , dễ phát lỗi thực chương trình thông qua các thủ tục kiểm tra các giá trị gán cho các biến  Ưu điểm bật kiểu liệu này là tiết kiệm nhớ  Hàm Ord có thể dùng để biến đổi các giá trị kiểu vô hướng thành các giá trị kiểu nguyeân  Trong Pascal chuẩn thì không có cách nào để biến đổi từ kiểu số nguyên thành kiểu vô hướng , khả đổi ngược trở lại kiểu này thực cách dùng tên kiểu cần đổi đến là tên hàm , là tham số đặt dấu ngoặc đơn , tham số này có thể là giá trị thuộc kiểu vô hướng nào trừ kiểu số thực Real CAÙC VÍ DUÏ MINH HOÏA : BAØI 04 : KIỂU TẬP HỢP ÑÒNH NGHÓA KIEÅU : Trong Pascal cho phép dạng tập hợp gồm tối đa 256 phần tử và các phần tử tập hợp bắt buộc phải có cùng kiểu gọi là kiểu Kiểu phải là kiểu đếm tức là thuộc các kiểu vô hướng hay miền không là kiểu số thực Cuù phaùp : TYPE TEÂNKIEÅU = SET OF < KIEÅU ÑÔN GIAÛN > ; KHAI BAÙO BIEÁN :  Cuù phaùp : TYPE TEÂNKIEÅU = SET OF < KIEÅU ÑÔN GIAÛN > ; VAR TEÂNBIEÁN : TEÂNKIEÅU ;  Cuù phaùp : VAR TEÂNBIEÁN : SET OF < KIEÅU ÑÔN GIAÛN > ; CÁC BIỂU THỨC TẬP HỢP : (9)  Các giá trị tập hợp có thể tính từ các giá trị tập hợp khác thông qua các biểu thức tập hợp  Biểu thức tập hợp bao gồm các , các biến , kiến trúc tập hợp kết hợp với các toán tử tập hợp  Một tập hợp Pascal có dạng : [ Danh sách các phần tử ]  Một tập hợp rỗng ký hiệu [ ] là tập hợp không chứa biểu thức nào để kiểu sở nó và nó tương thích với kiểu tập hợp CÁC KIẾN TRÚC TẬP HỢP :  Một kiến trúc tập hợp bao gồm nhiều dạng định phần tử phân cách dấu phẩy và toàn đặt hai dấu ngoặc vuông [ ]  Dạng định phần tử tập hợp là biểu thức cùng kiểu với kiểu sở tập hợp có thể là miền giá trị biết dạng hai biểu thức đặt cách dấu chaám chaám ‚ ‛ CÁC PHÉP TOÁN TRÊN TẬP HỢP :  Pheùp gaùn ( := ) : Các giá trị có từ các biểu thức có thể gán cho các biến kiểu tập hợp toán tử gán ( := ) Tập hợp rỗng có thể đem gán cho biến các kiểu tập hợp khác  Pheùp nhaân ( * ) : Phép nhân gọi là tích ( còn gọi là giao ) hai tập hợp A và B là tập hợp C gồm các phần tử chung cho hai tập hợp đó  Pheùp coäng ( + ) : Phép cộng gọi là tổng ( còn gọi là hội ) hai tập hợp A và B là tập hợp C gồm các phần tử hai tập hợp đó  Phép trừ ( - ) : Phép trừ gọi là hiệu hai tập hợp A và B là tập hợp C gồm các phần tử thuộc A mà không thuộc B và ngược lại  Pheùp so saùnh :  Hai tập hợp đem so sánh phải có cùng kiểu  Keát quaû cuûa caùc pheùp so saùnh laø giaù trò kieåu Boolean  Hai tập hợp gọi là chúng có các phần tử đôi không kể thứ tự xếp các phần tử hai tập hợp Ngược lại là khác  Phép so sánh ‚ < = ‛ có giá trị True tất các phần tử tập hợp thứ nhaát thuộc tập hợp thứ hai  Phép so sánh ‚ > = ‛ có giá trị True tất các phần tử tập hợp thứ hai thuộc tập hợp thứ  Chuù yù :  Trong kiểu tập hợp , Pascal không sử dụng phép so sánh ‚ < ‛ ‚ > ‛ Muốn sử dụng hai phép so sánh này ta dùng : If ( A < = B ) and ( A< >B ) then writeln ( ‘ A < B ’ ) ;  Để kiểm tra xem hai tập hợp A và B có phần tử nào chung không ta dùng : If A * B = [ ] then writeln ( ‘ A va B khong co phan tu chung ’) ;  Toán tử IN : (10) Toán tử IN là toán tử kiểm tra phần tử đại diện tập hợp Toán hạng thứ hai thuộc kiểu tập hợp , còn toán hạng thứ là biểu thức cùng kiểu với kiểu tập hợp đó Kết kiểm tra cho trị Boolean : True toán hạng thứ là phần tử toán hạng thứ hai , ngược lại cho trị là False  Độ ưu tiên các toán tử : Độ ưu tiên các toán tử sau :  Độ ưu tiên thứ là toán tử nhân ( * )  Độ ưu tiên thứ hai là toán tử cộng ( + ) và toán tử trừ ( - )  Độ ưu tiên thứ ba là toán tử quan hệ ( = ; < = ; > = ; < > ) và toán tử IN Trong biểu thức các toán tử có độ ưu tiên thực từ trái qua phải Các phép toán nằm dấu ngoặc tính toán trước NHẬP VAØ XUẤT DỮ LIỆU : Các thủ tục Read , Readln và Write , Writeln không thể dùng để nhập xuất trực tiếp liệu kiểu tập hợp , ta có thể thực các thủ tục này kiểu tập hợp là số nguyên CAÙC VÍ DUÏ MINH HOÏA : BAØI 05 : KIEÅU CHUOÃI ÑÒNH NGHÓA KIEÅU : Chuỗi ký tự là kiểu liệu không chuẩn hay còn gọi là kiểu liệu có cấu trúc gồm chuỗi các kí tự bảng mã ASCII Cuù phaùp : TYPE TEÂNKIEÅU = STRING [ n ]; * TYPE , STRING là các từ khóa * TÊNKIỂU phải viết liền , mang tính gợi nhớ Ký tự đầu tiên phải là chữ sau đó có thể sử dụng ký tự số và dấu gạch nối * n là số ký tự tối đa kiểu biến Ví duï : Type Ho_ ten = string [24] ; Que_quan = string ; KHAI BAÙO BIEÁN :  Cuù phaùp : TYPE Teân_Kieåu = string [ n ] ; VAR Teân_Bieán : Teân-Kieåu ;  Cuù phaùp : VAR Teân_Bieán : string [ n ] ; (11) VÍ DUÏ : Var Ho_lot : string [ 24 ] ; Ten : string [ ] ; Noi_sinh : string ; Dia- chi : string ; NHẬP – XUẤT DỮ LIỆU : a Nhập liệu: READ ( bieán1 , bieán2 , bieán3 , ) ; READLN ( bieán1 , bieán2 , bieán3 , ) ; b Xuất liệu: WRITE ( bieán ) ; WRITELN ( bieán ) ; WRITELN ( bieán : n ) ; c Truy xuất đến kí tự kiểu chuỗi: BIEÁN [ I ] ; BIỂU THỨC CHUỖI : a Pheùp gaùn : Để gán giá trị cho biến chuỗi ta dùng toán tử gán (:=) các kiểu liệu khác Nếu độ dài chuỗi vượt quá kích thước khai báo cho biến chuỗi thì ký tự bên phải cuûa chuoãi seõ bò caét boû b Các phép toán :  Pheùp coäng : Ta có thể sử dụng toán tử cộng ( + ) hàm Concat ( ) ; để cộng hai hay nhiều chuỗi với  Phép toán so sánh : Ta có thể sử dụng các toán tử quan hệ : , nhỏ , lớn , nhỏ , lớn , khác để so sánh hai chuỗi với , kết trả hai trị kiểu Boolean là true false Khi so sánh hai chuỗi ký tự , các ký tự cùng vị trí hai chuỗi so sánh với theo thứ tự từ trái qua phải  Nếu hai chuỗi có độ dài khác , kết so sánh cặp ký tự là ký tự cuối cùng thì chuỗi ngắn là chuỗi nhỏ  Nếu hai chuỗi có độ dài , có cặp ký tự tương ứng giũa hai chuỗi khác thì vào trị mã ASCII nào lớn thì chuỗi đó lớn  Hai chuỗi độ dài và các ký tự chúng giống Ví duï : ‘AB ’ = ’AB ’  TRUE ‘AB ’ = ’ AB ’  FALSE ‘AB ’ < ‘BB ’  TRUE ‘AB ’ > ‘BB ’  FALSE CAÙC THUÛ TUÏC VAØ HAØM KIEÅU CHUOÃI : (12) a Caùc thuû tuïc :  THUÛ TUÏC DELETE( ) ; : * Cuù phaùp : Detele ( St , pos , num ) ;  st là biến chuỗi kí tự  pos là vị trí bắt đầu xoá(số` nguyên)  num là số kí tự cần xóa (số nguyên) * Coâng duïng : Thủ tục Detlete ( ) ; dùng để xoá khỏi st chuỗi chứa num ký tự kể từ vị trí pos trở  THUÛ TUÏC STR ( ) ; : * Cuù phaùp : str ( Value , st) ;  Value : giá trị số nguyên ( integer ) số thực ( real )  st : biến chuỗi ký tự * Coâng duïng : Thủ tục str ( ) ; dùng để biến đổi giá trị số value thành chuỗi ký tự để lưu kết vào biến chuỗi ký tự st  THUÛ TUÏC VAL ( ) ; : * Cuù phaùp : val ( st , var , code ) ;  st : chuỗi số cần đổi số  var : biến kiểu số nguyên số thực  code: maõ keát quaû laø moät bieán nguyeân * Coâng duïng : Thủ tục val ( ) ; biến đổi biểu thức chuỗi số st thành giá trị số nguyên số thực ( tùy theo biến var ) và gán giá trị kết cho bieán var  THUÛ TUÏC INSERT( ) ; : * Cuù phaùp : insert ( st2 , st1 , pos ) ;  st2 : biểu thức chuỗi ký tự chèn  st1 : biến chuỗi ký tự  pos : vị trí cần chèn ( biểu thức số nguyên ) * Coâng duïng : Thủ tục Insert ( ) ; dùng để chèn chuỗi st2 vào vị trí pos chuỗi st1 b Caùc haøm :  HAØM CONCAT ( ) ; : * Cuù phaùp : concat ( st1 , st2 , … , stn ) ; st1 , st2 , … , stn là các biểu thức chuỗi ký tự * Coâng duïng : Hàm concat ( ) ; cho kết là chuỗi ký tự ghép từ các chuỗi là các đối số theo thứ tự từ trái qua phải danh sách các đối số  HAØM COPY ( ) ; : * Cuù phaùp : copy ( st , pos , num ) ;  st : biểu thức chuỗi ký tự  pos : biểu thức số nguyên định vị trí bắt đầu chép  num : biểu thức số nguyên định số ký tự cần chép * Coâng duïng : (13) Hàm copy ( ) ; cho kết là chuỗi chứa num ký tự st kể từ vị trí pos trở tính từ trái qua phải  HAØM LENGTH ( ) ; : * Cuù phaùp : length ( st ) ; st : biểu thức chuỗi ký tự * Coâng duïng : Hàm length ( ) ; cho kết là chiều dài thực biểu thức chuỗi ký tự st tức là số các ký tự có st Kiểu kết là số nguyên  HAØM POS ( ) ; : * Cuù phaùp : pos ( st2 , st1 ) ;  st1 : biểu thức chuỗi mẹ  st2 : biểu thức chuỗi * Coâng duïng : Haøm pos ( ) ; cho keát quaû laø moät soá nguyeân chæ ñònh vò trí xuaát hieän cuûa chuoãi st2 chuoãi st1 CAÙC VÍ DUÏ MINH HOÏA : BAØI 06 : KIEÅU MAÛNG A MAÛNG MOÄT CHIEÀU : ÑÒNH NGHÓA KIEÅU : Kiểu mảng là kiểu liệu có cấu trúc gồm số cố định các phần tử có cùng kiểu đặt sau tên mảng Như liệu kiểu mảng là dãy nhiều liệu thuộc kieåu khaùc  Các phần tử mảng phải cùng kiểu , kiểu đó gọi là kiểu sở hay kiểu thành phaàn  Các phần tử mảng có số , tức là vị trí số thứ tự chúng mảng Kiểu số phải là kiểu rời rạc Mỗi phần tử có thể truy nhập trực tiếp thoâng qua chæ soá  Các số là các biểu thức nằm [ ] đặt sau tên mảng và kiểu chúng goïi laø kieåu chæ soá  Kiểu số là kiểu nguyên miền , giá trị số có thể là âm döông  Mảng ký tự là mảng chiều có các phần tử thuộc kiểu ký tự Ta có thể thực các phép toán kiểu chuỗi ký tự , đồng thời có thể truy xuất đến ký tự phần tử mảng Cuù phaùp : TYPE TEÂNKIEÅUMAÛNG = ARRAY [ < Chæ soá > ] OF < KIEÅU > ; KHAI BAÙO BIEÁN : TYPE TÊNKIỂU = [ < Danh sách phần tử > ] ; (14) TEÂNKIEÅUMAÛNG = ARRAY [ < TEÂNKIEÅU > ] OF VAR TEÂNBIEÁN : TEÂNKIEÅUMAÛNG ; < KIEÅU > ; KHAI BAÙO HAÈNG :  Cuù phaùp : TYPE TEÂNKIEÅU = ARRAY [ < Chæ soá > ] OF < KIEÅU > ; CONST TEÂNHAÈNG = ( < Giaù trò > ) ;  Cuù phaùp : CONST TEÂNHAÈNG : ARRAY [ < Chæ soá > ] OF < KIEÅU > = ( < Giaù trò > ) ; NHẬP – XUẤT DỮ LIỆU :  Ta có thể dùng toán tử gán := để gán mảng  Mỗi phần tử mảng truy xuất theo tên biến và số chúng nằm dấu [ ]  Để truy xuất phần tử mảng ta có thể dùng : For i := < Chỉ số đầu > to < Chỉ số cuối > begin readln ( bieán [ i ] ) ; writeln ( bieán [ I ] ) ; end ; B MAÛNG NHIEÀU CHIEÀU : ÑÒNH NGHÓA : Mảng có từ hai chiều trở lên gọi là mảng nhiều chiều KHAI BAÙO BIEÁN :  Cuù phaùp : TYPE TEÂNKIEÅUMAÛNG = ARRAY [ < Chæ soá > ] OF < KIEÅU > ; VAR TEÂNBIEÁN : ARRAY [ < Chæ soá > ] OF < TEÂNKIEÅUMAÛNG > ;  Cuù phaùp : VAR TEÂNBIEÁN : ARRAY [ < Chæ soá > , < Chæ soá > , … , < Chæ soá N > ] OF < KIEÅU > ; KHAI BAÙO HAÈNG : Khai báo phải thực định nghĩa kiểu và liệt kê giá trị phần tử , các giá trị này phải phân cách dấu phẩy NHẬP – XUẤT DỮ LIỆU : (15) Để truy xuất tới các phần tử mảng chiều ta dùng số cò với mảng nhiều chiều thì truy xuất đến tọa độ các phần tử C SẮP XẾP DỮ LIỆU :  Sắp xếp ( Sort ) là quá trình tuyển lựa , đặt các liệu theo trật tự nào đó  Ý nghĩa và công dụng xếp liệu là giúp đơn giản hóa việc tìm kiếm các phần tử khối liệu đã xếp  Phương pháp xếp chia thành hai nhóm :  Sắp xếp nội : n phần tử cần xếp chứa trọn vẹn nhớ  Sắp xếp ngoại : n phần tử cần xếp không thể chứa hết nhớ Sắp xếp theo thứ tự tăng dần dãy : For i := to n For j := to n – i If a [ j ] > a [ j + ] then Begin t := a[ j ] ; a [ j ] := a [ j + ] ; a [ j + ] := t ; End ; Sắp xếp theo thứ tự giảm dần dãy : For i := to n For j := to n – i If a [ j ] < a [ j + ] then Begin t := a[ j ] ; a [ j ] := a [ j + ] ; a [ j + ] := t ; End ; BAØI 07 : KIEÅU MAÃU TIN KHAÙI NIEÄM :  Record là ghi , ghi thành dòng danh sách đối tượng nào đó  Bản ghi là bảng để ghi các thông tin đối tượng nào đó Ví dụ : Xét bảng ghi giấy Chứng minh nhân dân : Soá CMND : Hoï vaø teân : Ngaøy sinh : Nguyeân quaùn : Nơi thường trú : ÑÒNH NGHÓA KIEÅU : (16) Cuù phaùp : TYPE TEÂNKIEÅU = RECORD TÊNTRƯỜNG1 : KIỂU ; TÊNTRƯỜNG2 : KIỂU ; TÊNTRƯỜNGN : KIỂU ; END ; KHAI BAÙO BIEÁN : TYPE TEÂNKIEÅU = RECORD TÊNTRƯỜNG1 : KIỂU ; TÊNTRƯỜNG2 : KIỂU ; TÊNTRƯỜNGN : KIỂU ; END ; VAR TEÂNBIEÁN : TEÂNKIEÅU ; Ví duï : Type CMND = record STT : Integer ; Hoten : String ; Ngaysinh : String ; Nguyenquan : String ; End ; Var HS1 , HS2 , HS3 : CMND ; XUẤT - NHẬP DỮ LIỆU :  WITH < Danh sách biến > DO < Lệnh ( < Tên trường > ) > ; Ta có thể nhập trực tiếp tên trường tên biến  WRITE ( ‘ Lời nhắn ’ ) ; READLN ( Tênbiến Têntrường ) ;  Khi truy xuaát moät thaønh phaàn cuûa moät maãu tin , ta khoâng duøng chæ soá gioáng maûng maø dùng trực tiếp tên thành phần cần truy xuất Ví dụ : Giả sử A là biến mẫu tin thì A.x là thành phần x A  Mẫu tin thường dùng nhiều mô tả các đối tượng thực tế , mẫu tin không dùng riêng mà thường kết hợp với các cấu trúc kiểu mảng , file và trỏ (17)

Ngày đăng: 04/06/2021, 09:39

Xem thêm:

w