Tải bản đầy đủ (.pdf) (16 trang)

Giao trinh Pascal de hieu2

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (158.58 KB, 16 trang )

<span class='text_page_counter'>(1)</span>BAØI 01 : CHÖÔNG TRÌNH CON : THUÛ TUÏC VAØ HAØM TRONG PASCAL . 1. GIỚI THIỆU VỀ CHƯƠNG TRÌNH CON :  Trong lập trình , có nhiều công việc cứ lặp đi lặp lại một thao tác hoặc tính toán , xử lý nào đó , thay vì phải viết những phần chương trình để giải quyết những phần việc này thì người ta tạo lập những chương trình riêng được lưu trữ trên đĩa hoặc trong bộ nhớ để khi nào sử dụng đến thì gọi ra . Những chương trình con đó gọi là những 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 đều có các thủ tục và hàm chuẩn do nhà thiết kế ngôn ngữ tạo sẵn và cất trong thư viện các thủ tục và hàm chuẩn . Ngoài ra còn cho phép người lập trình tự tạo các thủ tục và hàm của riêng họ để giải quyết những nhiệm vụ do bài toán đặt ra .  Việc tổ chức chương trình con có những lợi điểm như 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 những đơn thể cho nhiều người cùng thực hiện , khiến tốc độ lập trình nhanh chóng mà còn tận dụng được trí tuệ tập thể .  Các đơn thể chương trình có thể là những thủ tục hay hàm độc lập với nhau , vì vậy rất dễ dàng sửa lỗi hoặc thêm bớt nội dung cho phù hợp với nhu cầu đặt ra . 2. 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 dữ 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 dữ 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 của hàm > ; const < Teân haèng > = < Giaù trò > ; var < Danh sách các biến > : < Kiểu dữ 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 ;.

<span class='text_page_counter'>(2)</span> .  .         . End . Các thủ tục và hàm tự tạo bao giờ cũng phải đặt trước chương trình chính . Khi nạp chương trình vào máy sẽ nạp các thủ tục và hàm của chương trình đó , chúng nằm thường trú trong bộ nhớ để khi nào cần sử dụng thì thực hiện bằng câu lệnh gọi thủ tục và hàm . Vì vậy tốc độ thực hiện sẽ nhanh hơn so với chương trình không có cấu trúc chương trình con . 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 của 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 bộ chương trình , có nghĩa là trong các hàm và thủ tục đều có thể sử dụng tên của các biến này . Sau từ khóa Procedure là tên của thủ tục . Sau từ khóa Function là tên của 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 về sau này . Các tên phải viết liền nhau và không được trùng với tên của 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 sẽ được truyền giá trị bởi tham số thực là các biến của chương trình chính . Sau tham số hình thức là kiểu dữ liệu của giá trị trả về cho hàm . Tiếp đến có thể có hoặc không có các biến riêng của hàm hoặc thủ tục . Trong mỗi hàm đều có thân của hàm , đó là các lệnh được đặt giữa hai từ khóa begin … end ; Thân chương trình chính bắt đầu bằng từ khóa Begin và kết thúc bằng 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 hoặc hàm và những câu lệnh khác .. 3. KHAI BÁO THỦ TỤC VAØ HAØM TỰ TẠO :  KHAI BAÙO THUÛ TUÏC : Khi muốn thực hiện một thao tác nào đó ta nên khai báo là thủ tục . Thủ tục có cấu trúc như một chương trình trong Pascal , chỉ khác là thay từ khóa Program bằng từ khóa Procedure , ngoài ra sau phần khai báo tên thủ tục có thể có hoặc không có các tham số , dấu chấm phẩy rồi đến thân thủ tục là những 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 năng và nhiệmvụ của thủ tục trong chương trình . Trong một chương trình có thể có nhiều thủ tục khác nhau , mỗi thủ tục có một chức năng hoặ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 bộ hoặ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 ) hoặc cũng 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ả về một kết quả 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 bằng 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 quả của hàm được trả về là một giá trị , còn thủ tục là một tác vụ ( công việc ) . Ta sử duïng chöông trình con laø haøm khi : Neáu ta muoán nhaän laïi moät keát quaû duy nhaát . Kết quả phải là kiểu vô hướng hoặc con trỏ . Có sử dụng tên hàm trong biểu thức . Neáu khoâng thoûa maõn caùc yeáu toá treân thì chöông trình con laø thuû tuïc ..

<span class='text_page_counter'>(3)</span> 4. THUÛ TUÏC VAØ HAØM LOÀNG NHAU :  Hàm hoặc thủ tục lồng nhau cũng tương tự như các cấu trúc điều kiện hoặc cấu trúc vòng lặp lồng nhau , tức là một thủ tục này chứa một 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 cũng 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 hoặc thủ tục khác .  Trong moät chöông trình coù thuû tuïc vaø haøm loàng nhau 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 hiện thủ tục hoặc hàm ở bên trong , không được gọi ngược lại và không được gọi cắt chéo nhau . Các biến riêng và giá trị của chúng trong các thủ tục và hàm sẽ bị mất sau khi thoát ra khỏi thủ tục và hàm đó . 5. 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 hiện thủ tục hay hàm chuẩn hoặc 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 , tiếp theo sau có thể có hoặc không có danh sách các tham số đặt giữa hai dấu ngoặc đơn ( ) . Danh sách các tham số là một dãy các biến và biểu thức được đặt cách nhau bởi dấu phẩy . 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 truyền cho thủ tục hay hàm theo các cách : truyền bằng trị , truyền bằng biến hoặc truyền kết hợp vừa trị vừa biến . Sau khi thực hiện xong thủ tục hay hàm , chương trình thực hiện tiếp tục từ câu lệnh đứng ngay 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 nhất là những chương trình dài , hoặc ngay cả những chương trình con , đôi lúc cũng cần dừng chương trình tại một vị trí nào đó để kiểm tra các kết quả 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 trong chương trình con thì thoát chương trình con giữa chừng để trở về chương trình chính . Nếu Exit đặt trong chương trình chính thì sẽ chấm dứt chương trình chính , không thực hiện 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 trong chöông trình con hay chöông trình chính , khi gặp thủ tục này thì sẽ chấm dứt thực hiện chương trình để trở về hệ điều hành và xuất hiện một thông báo mã thoát ExitCode . Halt hoặc Halt ( 0 ) là thoát về hệ điều hành khoâng coù loãi . 6. 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 được gọi là truyền tham số .  Thứ tự truyền tham số lần lượt truyền từ trái qua phải .  Coù ba caùch truyeàn tham soá : Truyền bằng trị : Tham số thực truyền cho tham số hình thức ở trong thủ tục thì sau khi truyền giá trị của tham số thực không thay đổi . Truyền bằng biến : Tham số thực truyền cho tham số hình thức ở trong thủ tục thì sau khi truyền giá trị của tham số thực đã bị thay đổi . Truyền kết hợp vừa trị , vừa biến . Chuù yù :.

<span class='text_page_counter'>(4)</span> Các tham số hình thức khác kiểu dữ liệu với nhau trong các thủ tục , hàm thì phải phân cách nhau bởi dấu chấm phẩy . Các tham số cùng kiểu thì phân cách nhau bởi dấu phẩy . Khi gọi các thủ tục , hàm thì tất cả các tham số thực phân cách nhau bởi 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 nhau về kiểu , số lượng và vị trí của chuùng trong danh saùch lieät keâ bieán . 7. BIẾN CHUNG , BIẾN RIÊNG VAØ MIỀN TÁC ĐỘNG CỦA BIẾN :  Trong một chương trình có cấu trúc chương trình con thì các biến sử dụng trong chương trình chính vaø chöông trình con laø khaùc nhau .  Biến chung được khai báo trong chương trình chính , thời gian tồn tại của biến từ lúc vận hành chương trình cho đến khi thoát khỏi chương trình .  Biến riêng được khai báo trong các chương trình con , thời gian tồn tại của biến trong phạm vi chương trình con đang vận hành . Khi thoát khỏi chương trình con thì các biến riêng và giá trị của chúng sẽ bị mất . Lợi dụng đặc điểm này người ta có thể đặt tên các biến trùng nhau trong các chương trình con để tiết kiệm bộ nhớ . 8. 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 về tọa độ màn hình và con trỏ :  Thuû tuïc GotoXY ( x , y : integer ) ; Dùng để đưa con 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 con trỏ về góc trên bên trái màn hình có tọa độ ( 0 , 0 )  Thuû tuïc Deline ; Dùng để xóa một dòng chứa con trỏ , các dòng ở phía dưới sẽ dồn lên .  Thuû tuïc ClrEol ; Dùng để xóa các ký tự từ vị trí con trỏ đến cuối dòng mà không di chuyển vị trí con troû .  Thuû tuïc Insline ; Dùng để chèn thêm một dòng trống vào vị trí của con trỏ hiện hành , đẩy các dòng ở phía dưới dịch chuyển xuống .  Caùc thuû tuïc veà thuoäc tính maøn hình :  Thủ tục về cửa sổ màn hình :  Caùc thuû tuïc veà aâm thanh :  Moät soá thuû tuïc khaùc : a. Haøm chuaån :  Moät soá haøm chuaån trong 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 : 9. UNIT VAØ UNIT TỰ TẠO :.

<span class='text_page_counter'>(5)</span>  Có nhiều chương trình tiện ích thường xuyên sử dụng nên đã được 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 chỉ đem ra sử dụng mà không cần phải viết những đoạn chương trình con đó . Tuy vậy , không phải lúc nào người lập trình cũng sử dụng hết các chương trình con lập sẵn nên nhà sản xuất chia nhỏ các chương trình con thành từng nhóm theo từng công dụng . Mỗi nhóm gọi là một Unit và là Unit Chuẩn .  Ta có thể gom các chương trình con có công dụng nào đó vào một tập tin lưu trữ độc lập trên đĩa để sau này sử dụng trong các chương trình khác .  Một tập tin chương trình con nào đó sau khi đã chạy thử , sửa các lỗi và nhận thấy có nhiều ứng dụng trong 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 một Unit tự tạo gồm có ba phần :  Tên tập tin phải bắt đầu bằng từ khóa Unit tương tự như bắt đầu chương trình là từ khoùa Program .  Tên tập tin chương trình con phải trùng với tên tập tin Unit .  Cheùp taäp tin chöông trình con vaøo maùy neáu chöa coù saún treân maùy ( cheùp vaùo thư mục mà ta sẽ xử lý ) .  Khởi động Turbo Pascal và mở tập tin chương trình con , sau đó thêm tên Unit vào dòng đầu tiên của 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 bằng 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 nếu cần và mỗi Unit cách nhau bởi 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 : chỉ cần khai báo tên thủ tục , tên hàm với các tên hằng , các tham số và kiểu dữ liệu , kiểu kết qủa của hàm .  Phaàn beân trong coøn goïi laø phaàn beân trong hoäp ñen goàm caùc chi tieát :  Phải bắt đầu bằng từ khóa Implementation và không được 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 trong một Unit tự tạo có sử dụng các Unit khác thì phần đầu của chương trình phải khai báo sau từ khóa Uses ; tên của các Unit chuẩn , tự tạa và các Unit phải phân cách nhau bởi dấu phẩy . Khi chạy chương trình nếu xuất hiện 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 … trong thực đơn File để chuyển về thư mục có tập tin < tên tập tin . TPU > hoặc 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Ê . 1. ÑÒNH NGHÓA KIEÅU : Kiểu liệt kê được định nghĩa bằng cách liệt kê tất cả các phần tử có thể có của nó . Các giá trị của kiểu được thể hiện bằng tên . Cuù phaùp :.

<span class='text_page_counter'>(6)</span>    . . TYPE TEÂNKIEÅU = ( CAÙC GIAÙ TRÒ ) ; Để khai báo kiểu dữ liệu mới ta dùng từ khóa Type . Tên kiểu liệt kê là một tên tùy chọn ( có thể dùng các tên kiểu chuẩn ) được viết liền nhau hoặc nối với nhau bằng dấu gạch nối . Dấu bằng ‚ = ‛ dùng để gán các giá trị được liệt kê cho tên kiểu . Các giá trị được liệt kê là các giá trị của kiểu , mỗi giá trị phân cách nhau bởi dấu phẩy . Các giá trị là các kiểu vô hướng chuẩn khác và phải đặt trong cặp dấu ngoặc đơn ( ) . Giá trị trả về là phần tử thứ n trong danh sách liệt kê , phần tử đầu tiên có số thứ tự là 0 . Daáu chaám phaåy ‚ ; ‛ baét buoäc phaûi coù sau moãi ñònh nghóa kieåu lieät keâ .. 2. KHAI BAÙO BIEÁN :  Cuù phaùp 1 : 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ê đã được định nghĩa trước đó .  Cuù phaùp 2 : 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ê . 3. XUẤT , NHẬP DỮ LIỆU :  Nhập dữ liệu : Để nhập dữ liệu từ bàn phím ta dùng các thủ tục Read hoặc Readln nhưng không được phép nhập trực tiếp các giá trị kiểu liệt kê mà chỉ được nhập các giá trị của 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 0 den 4 ) ’ ) ; Readln ( i ) ; mau := color ( i ) ; ...  Xuất dữ liệu : Các thủ tục Write hoặc Writeln cũng không thể xuất ra màn hình hoặc máy in một giá trò kieåu lieät keâ . Ví duï :  Khoâng theå duøng caùc leänh : writeln ( mau ) ; writeln ( den ) ;.

<span class='text_page_counter'>(7)</span> writeln ( color ( i ) ) ;  Chỉ được dùng : if mau = den then writeln ( ‘ Ban thich mau den ’ ) ; 4. CÁC PHÉP TOÁN : Các phép toán quan hệ = ; > ; < ; > = ; < = ; < > có thể được áp dụng cho kiểu liệt kê với điều kiện cả hai toán hạng phải cùng kiểu . Cơ sở của phép so sánh này là thứ tự sắp xếp các giá trị của kiểu liệt kê , tức là thứ tự các giá trị được đưa vào trong định nghĩa kiểu . 5. CAÙC HAØM TRONG KIEÅU LIEÄT KEÂ :  Hàm Succ ( x ) ; cho kết quả là giá trị đứng kế tiếp sau x .  Hàm Pred ( x ) ; cho kết quả là giá trị đứng kế tiếp trước x .  Hàm Ord ( x ) ; cho kết quả là số thứ tự của x .  Chú ý : Kết quả của hàm Succ và Pred thuộc cùng kiểu với kiểu của đối số . Kiểu kết quaû cuûa haøm Ord laø soá nguyeân . 6. CAÙC VÍ DUÏ MINH HOÏA :. BAØI 03 : KIEÅU MIEÀN CON . 1. ÑÒNH NGHÓA KIEÅU : Các kiểu dữ liệu đếm được (vô hướng) như integer , char , byte , boolean , liệt kê bao gồm các giá trị được sắp xếp theo một thứ tự nhất định từ đầu tới cuối. Ta có thể không sử dụng tất cả mà chỉ cần sử dụng một khoảng giá trị nào đó trong các khoảng này. Khoảng giá trị đó trong Pascal gọi là kiểu mieàn con . Cuù phaùp : TYPE TÊNKIỂU = ( < CẬN TRÊN > . . < CẬN DƯỚI > ) ; 2. KHAI BAÙO BIEÁN :  Cuù phaùp 1 : TYPE TÊNKIỂU = ( < CẬN TRÊN > . . < CẬN DƯỚI > ) ; VAR TEÂNBIEÁN : TEÂNKIEÅU ;  Cuù phaùp 2 : VAR TÊNBIẾN : ( < CẬN TRÊN > . . < CẬN DƯỚI > ) ; 3. VÍ DUÏ : Type Nam = 1900 .. 2000 ; Var Namsinh : Nam ; Thangsinh : 1 .. 12 ;.

<span class='text_page_counter'>(8)</span> 4. CHUÙ YÙ :  Tất cả các quy tắc áp dụng cho kiểu liệt kê đều có thể áp dụng cho kiểu miền con .  Khi thực hiện một phép toán gán thì Pascal sẽ kiểm tra xem giá trị được gán có nằm trong miền được xác định hay không , nếu không máy sẽ thông báo lỗi và chương trình sẽ bị dừng laïi khi gaëp loãi .  Khi dùng kiểu miền con để nhập dữ 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 con là những kiểu đếm được nên ta có thể sử dụng chúng làm biến kiểm soát trong cấu trúc điều kiện Case … of … , trong vòng lặp for … do … và còn làm chỉ 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 khi gặp lỗi .  Sử dụng kiểu miền con trong lập trình có nhiều ưu điểm , chương trình dễ đọc hơn rất nhiều , hơn nữa rất dễ phát hiện lỗi khi thực hiện chương trình thông qua các thủ tục kiểm tra các giá trị sẽ được gán cho các biến .  Ưu điểm nổi bật của kiểu dữ liệu này là rất tiết kiệm bộ nhớ .  Hàm Ord có thể được 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ả năng đổi ngược trở lại kiểu này được thực hiện bằng cách dùng tên kiểu cần đổi đến như là một tên hàm , tiếp theo là một tham số đặt trong dấu ngoặc đơn , tham số này có thể là giá trị thuộc về bất kỳ kiểu vô hướng nào trừ kiểu số thực Real . 5. CAÙC VÍ DUÏ MINH HOÏA :. BAØI 04 : KIỂU TẬP HỢP . 1. ÑÒNH NGHÓA KIEÅU : Trong Pascal chỉ cho phép dạng tập hợp gồm tối đa 256 phần tử và các phần tử của tập hợp bắt buộc phải có cùng một kiểu gọi là kiểu cơ bản . Kiểu cơ bản phải là kiểu đếm được tức là thuộc các kiểu vô hướng hay miền con nhưng không được là kiểu số thực . Cuù phaùp : TYPE TEÂNKIEÅU = SET OF < KIEÅU ÑÔN GIAÛN > ; 2. KHAI BAÙO BIEÁN :  Cuù phaùp 1 : TYPE TEÂNKIEÅU = SET OF < KIEÅU ÑÔN GIAÛN > ; VAR TEÂNBIEÁN : TEÂNKIEÅU ;  Cuù phaùp 2 : VAR TEÂNBIEÁN : SET OF < KIEÅU ÑÔN GIAÛN > ; 3. CÁC BIỂU THỨC TẬP HỢP :.

<span class='text_page_counter'>(9)</span>  Các giá trị tập hợp có thể được 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 hằng , 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 hằng tập hợp trong Pascal có dạng : [ Danh sách các phần tử ]  Một tập hợp rỗng được ký hiệu [ ] là tập hợp không chứa bất kỳ biểu thức nào để chỉ ra kiểu cơ sở của nó và nó tương thích với mọi kiểu tập hợp . 4. CÁC KIẾN TRÚC TẬP HỢP :  Một kiến trúc tập hợp bao gồm một hoặc nhiều dạng chỉ định phần tử phân cách nhau bởi dấu phẩy và toàn bộ được đặt giữa hai dấu ngoặc vuông [ ] .  Dạng chỉ định phần tử của tập hợp là một biểu thức cùng kiểu với kiểu cơ sở của tập hợp hoặc cũng có thể là miền giá trị được biết dưới dạng hai biểu thức đặt cách nhau bởi dấu chaám chaám ‚ . . ‛ . 5. CÁC PHÉP TOÁN TRÊN TẬP HỢP :  Pheùp gaùn ( := ) : Các giá trị có được từ các biểu thức có thể gán cho các biến của kiểu tập hợp bằng toán tử gán ( := ) . Tập hợp rỗng có thể đem gán cho mọi biến của các kiểu tập hợp khác nhau .  Pheùp nhaân ( * ) : Phép nhân gọi là tích ( còn gọi là giao ) của hai tập hợp A và B là tập hợp C gồm các phần tử chung cho cả 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 ) của hai tập hợp A và B là tập hợp C gồm các phần tử của hai tập hợp đó .  Phép trừ ( - ) : Phép trừ gọi là hiệu của 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 ra so sánh phải có cùng kiểu cơ bản .  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à bằng nhau nếu chúng có các phần tử như nhau từng đôi một không kể thứ tự sắp xếp các phần tử trong hai tập hợp . Ngược lại là khác nhau .  Phép so sánh ‚ < = ‛ có giá trị True nếu tất cả các phần tử của tập hợp thứ nhaát đều thuộc tập hợp thứ hai .  Phép so sánh ‚ > = ‛ có giá trị True nếu tất cả các phần tử của tập hợp thứ hai đều thuộc tập hợp thứ nhất .  Chuù yù :  Trong kiểu tập hợp , Pascal không sử dụng phép so sánh ‚ < ‛ hoặc ‚ > ‛ . 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 :.

<span class='text_page_counter'>(10)</span> Toán tử IN là toán tử kiểm tra phần tử đại diện của một 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ứ nhất là một biểu thức cùng kiểu với kiểu cơ bản của tập hợp đó . Kết quả kiểm tra cho trị Boolean : True nếu toán hạng thứ nhất là phần tử của toán hạng thứ hai , ngược lại cho trị là False .  Độ ưu tiên của các toán tử : Độ ưu tiên của các toán tử lần lượt như sau :  Độ ưu tiên thứ nhất 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 một biểu thức nếu các toán tử có độ ưu tiên như nhau sẽ lần lượt thực hiện từ trái qua phải . Các phép toán nằm trong dấu ngoặc bao giờ cũng được tính toán trước . 6. 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 hoặc xuất trực tiếp dữ liệu của kiểu tập hợp , ta có thể thực hiện các thủ tục này khi kiểu cơ bản của tập hợp là số nguyên . 7. CAÙC VÍ DUÏ MINH HOÏA :. BAØI 05 : KIEÅU CHUOÃI . 1. ÑÒNH NGHÓA KIEÅU : Chuỗi ký tự là kiểu dữ liệu không chuẩn hay còn gọi là kiểu dữ liệu có cấu trúc gồm một chuỗi các kí tự trong 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 nhau , 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 trong kiểu hoặc biến . Ví duï : Type Ho_ ten = string [24] ; Que_quan = string ; 2. KHAI BAÙO BIEÁN :  Cuù phaùp 1 : TYPE Teân_Kieåu = string [ n ] ; VAR Teân_Bieán : Teân-Kieåu ;  Cuù phaùp 2 : VAR Teân_Bieán : string [ n ] ;.

<span class='text_page_counter'>(11)</span> 3. VÍ DUÏ : Var Ho_lot : string [ 24 ] ; Ten : string [ 7 ] ; Noi_sinh : string ; Dia- chi : string ; 4. NHẬP – XUẤT DỮ LIỆU : a. Nhập dữ liệu: READ ( bieán1 , bieán2 , bieán3 , ... ) ; READLN ( bieán1 , bieán2 , bieán3 , ... ) ; b. Xuất dữ liệu: WRITE ( bieán ) ; WRITELN ( bieán ) ; WRITELN ( bieán : n ) ; c. Truy xuất đến từng kí tự của kiểu chuỗi: BIEÁN [ I ] ; 5. BIỂU THỨC CHUỖI : a. Pheùp gaùn : Để gán giá trị cho một biến chuỗi ta cũng dùng toán tử gán (:=) như đối với các kiểu dữ 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ì những 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 ( + ) hoặc hàm Concat ( ) ; để cộng hai hay nhiều chuỗi với nhau .  Phép toán so sánh : Ta có thể sử dụng các toán tử quan hệ : bằng nhau , nhỏ hơn , lớn hơn , nhỏ hơn hoặc bằng , lớn hơn hoặc bằng , khác nhau để so sánh hai chuỗi với nhau , kết quả trả về một trong hai trị của kiểu Boolean là true hoặc false . Khi so sánh hai chuỗi ký tự , các ký tự cùng vị trí của hai chuỗi lần lượt được so sánh với nhau theo thứ tự từ trái qua phải .  Nếu hai chuỗi có độ dài khác nhau , kết quả so sánh của từng cặp ký tự là bằng nhau cho đến ký tự cuối cùng thì chuỗi ngắn hơn sẽ là chuỗi nhỏ hơn .  Nếu hai chuỗi có độ dài bằng nhau , nhưng có 1 cặp ký tự tương ứng giũa hai chuỗi khác nhau thì sẽ căn cứ vào trị của mã ASCII nào lớn hơn thì chuỗi đó lớn hơn .  Hai chuỗi chỉ bằng nhau khi độ dài và các ký tự của chúng giống nhau . Ví duï : ‘AB ’ = ’AB ’  TRUE ‘AB ’ = ’ AB ’  FALSE ‘AB ’ < ‘BB ’  TRUE ‘AB ’ > ‘BB ’  FALSE 6. CAÙC THUÛ TUÏC VAØ HAØM KIEÅU CHUOÃI :.

<span class='text_page_counter'>(12)</span> 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 một chuỗi con chứa num ký tự kể từ vị trí pos trở đi .  THUÛ TUÏC STR ( ) ; : * Cuù phaùp : str ( Value , st) ;  Value : giá trị số nguyên ( integer ) hoặc 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ố của value thành chuỗi ký tự để lưu kết quả 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 ra số  var : biến kiểu số nguyên hoặc 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 một biểu thức chuỗi số st thành giá trị số nguyên hoặc số thực ( tùy theo biến của var ) và gán giá trị kết quả 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 của 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 quả là một chuỗi ký tự được ghép từ các chuỗi là các đối số theo thứ tự từ trái qua phải trong 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 chỉ định vị trí bắt đầu chép .  num : biểu thức số nguyên chỉ định số ký tự cần chép . * Coâng duïng :.

<span class='text_page_counter'>(13)</span> Hàm copy ( ) ; cho kết quả là một chuỗi con chứa num ký tự của st kể từ vị trí pos trở đi 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 quả là chiều dài thực của biểu thức chuỗi ký tự st tức là số các ký tự có trong st . Kiểu kết quả 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 con . * 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 trong chuoãi st1 . 7. CAÙC VÍ DUÏ MINH HOÏA :. BAØI 06 : KIEÅU MAÛNG . A. MAÛNG MOÄT CHIEÀU : 1. ÑÒNH NGHÓA KIEÅU : Kiểu mảng là một kiểu dữ liệu có cấu trúc gồm một số cố định các phần tử có cùng một kiểu đặt sau tên mảng . Như thế dữ liệu kiểu mảng là một dãy của nhiều dữ liệu thuộc một kieåu khaùc .  Các phần tử của mảng phải cùng kiểu , kiểu đó gọi là kiểu cơ sở hay kiểu thành phaàn  Các phần tử trong mảng có chỉ số , tức là vị trí số thứ tự của chúng trong mảng . Kiểu của chỉ số phải là kiểu rời rạc . Mỗi phần tử có thể được truy nhập trực tiếp thoâng qua chæ soá .  Các chỉ số là các biểu thức nằm trong [ ] đặt ngay sau tên mảng và kiểu của chúng goïi laø kieåu chæ soá .  Kiểu chỉ số là một kiểu nguyên hoặc miền con , giá trị của chỉ số có thể là âm hoặc döông .  Mảng ký tự là mảng một chiều có các phần tử thuộc kiểu ký tự . Ta có thể thực hiện các phép toán như kiểu chuỗi ký tự , đồng thời cũng có thể truy xuất đến từng ký tự như những phần tử mảng . Cuù phaùp : TYPE TEÂNKIEÅUMAÛNG = ARRAY [ < Chæ soá > ] OF < KIEÅU > ; 2. KHAI BAÙO BIEÁN : TYPE TÊNKIỂU = [ < Danh sách phần tử > ] ;.

<span class='text_page_counter'>(14)</span> TEÂNKIEÅUMAÛNG = ARRAY [ < TEÂNKIEÅU > ] OF VAR TEÂNBIEÁN : TEÂNKIEÅUMAÛNG ;. < KIEÅU > ;. 3. KHAI BAÙO HAÈNG :  Cuù phaùp 1 : TYPE TEÂNKIEÅU = ARRAY [ < Chæ soá > ] OF < KIEÅU > ; CONST TEÂNHAÈNG = ( < Giaù trò > ) ;  Cuù phaùp 2 : CONST TEÂNHAÈNG : ARRAY [ < Chæ soá > ] OF < KIEÅU > = ( < Giaù trò > ) ; 4. 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 được truy xuất theo tên của biến và chỉ số của chúng nằm trong 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 > do begin readln ( bieán [ i ] ) ; writeln ( bieán [ I ] ) ; end ; B. MAÛNG NHIEÀU CHIEÀU : 1. ÑÒNH NGHÓA : Mảng có từ hai chiều trở lên gọi là mảng nhiều chiều . 2. KHAI BAÙO BIEÁN :  Cuù phaùp 1 : 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 2 : VAR TEÂNBIEÁN : ARRAY [ < Chæ soá 1 > , < Chæ soá 3 > , … , < Chæ soá N > ] OF < KIEÅU > ; 3. KHAI BAÙO HAÈNG : Khai báo hằng phải được thực hiện khi định nghĩa kiểu và liệt kê giá trị của từng phần tử , các giá trị này phải phân cách nhau bởi dấu phẩy . 4. NHẬP – XUẤT DỮ LIỆU :.

<span class='text_page_counter'>(15)</span> Để truy xuất tới các phần tử của mảng một chiều ta dùng chỉ số cò với mảng nhiều chiều thì truy xuất đến tọa độ củ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 , sắp đặt các dữ liệu theo một trật tự nào đó .  Ý nghĩa và công dụng của sắp xếp dữ liệu là giúp đơn giản hóa việc tìm kiếm các phần tử trong khối dữ liệu đã được sắp xếp .  Phương pháp sắp xếp được chia thành hai nhóm :  Sắp xếp nội : khi n phần tử cần sắp xếp chứa trọn vẹn trong bộ nhớ .  Sắp xếp ngoại : khi n phần tử cần sắp xếp không thể chứa hết trong bộ nhớ . 1. Sắp xếp theo thứ tự tăng dần một dãy : For i := 1 to n do For j := 1 to n – i do If a [ j ] > a [ j + 1 ] then Begin t := a[ j ] ; a [ j ] := a [ j + 1 ] ; a [ j + 1 ] := t ; End ; 2. Sắp xếp theo thứ tự giảm dần một dãy : For i := 1 to n do For j := 1 to n – i do If a [ j ] < a [ j + 1 ] then Begin t := a[ j ] ; a [ j ] := a [ j + 1 ] ; a [ j + 1 ] := t ; End ;. BAØI 07 : KIEÅU MAÃU TIN . 1. KHAÙI NIEÄM :  Record là một bản ghi , ghi thành một dòng trong danh sách của một đối tượng nào đó .  Bản ghi là một bảng để ghi các thông tin về một đố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ú :. 2. ÑÒNH NGHÓA KIEÅU :.

<span class='text_page_counter'>(16)</span> Cuù phaùp : TYPE TEÂNKIEÅU = RECORD TÊNTRƯỜNG1 : KIỂU ; TÊNTRƯỜNG2 : KIỂU ; ... TÊNTRƯỜNGN : KIỂU ; END ; 3. 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 ; 4. 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 như một 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 trong maûng maø dùng trực tiếp tên của thành phần cần truy xuất . Ví dụ : Giả sử A là một biến mẫu tin thì A.x là thành phần x của A .  Mẫu tin thường được dùng nhiều khi mô tả các đối tượng trong thực tế , nhưng mẫu tin cũng 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à con trỏ ..

<span class='text_page_counter'>(17)</span>

Tài liệu bạn tìm kiếm đã sẵn sàng tải về

Tải bản đầy đủ ngay
×