Ban đầu, Pascal là một ngụn ngữ được hướng để dựng trong giảng dạy về lậptrỡnh cú cấu trỳc, và nhiều thế hệ sinh viờn đó "vào đời" thụng qua việc học Pascalnhư ngụn ngữ vỡ lũng trong cỏc
Trang 1Là một ngụn ngữ lập trỡnh cú cỳ phỏp chặt chẽ, đơn giản và dễ hiểu, Pascal được giảng dạy cho sinh viờn tin học ngay năm học đầu tiờn Nú là ngụn ngữ cơ sở
để giới thiệu cho sinh viờn làm quen với kĩ thuật xõy dựng chương trỡnh Ngoài ra,
nú cũn được dựng để trỡnh bày nhiều chuyờn đề khỏc nữa của tin học trong những năm học tiếp theo
Nắm vững cỏc thành phần cơ bản, hiểu rừ cỏc yếu tố cỳ phỏp của ngụn ngữ lập trỡnh Pascal, là rất quan trọng Những vận dụng nú để xõy dựng được cỏc chương trỡnh mới là điều quan trọng nhất Qua kinh nghiệm nhiều lần giảng dạy ngụn ngữ Pascal cho cỏc đối tượng sinh viờn khỏc nhau, cú thể nhận thấy rằng sinh viờn lỳng tỳng nhất ở khõu vận dụng xõy dựng chương trỡnh cụ thể, khụng biết làm thế nào, bắt đầu từ đõu
Xuất phát từ nhu cầu thực tế nh vậy cùng với sự hớng dẫn của thầy Lê Hoàng
Anh em đã nghiên cứu và chọn đề tài “ Tìm hiểu về ngôn ngữ lập trình Pascal ”
làm đề tài trong chuyên đề báo cáo của mình
Giỏo trỡnh này đặt trọng tõm vào trỡnh bày kĩ thuật xõy dựng chương trỡnh song song với việc giới thiệu ngụn ngữ lập trỡnh Pascal Cỏc vớ dụ ứng dụng tổng hợp ở cuối chương được chọn lọc để minh hoạ những vấn đề lớ thuyết trỡnh bày trong chương đú Những vớ dụ ứng dụng này cú liờn quan chặt chẽ với nhau, được phỏt triển hoàn thiện dần một cách cú hệ thống để sinh viờn hiểu rừ cỏc bước xõy dựng chương trỡnh, từ thụ sơ, đơn giản đến hoàn thiện, hiệu quả hơn
Trang 2Đây là một đề tài mang tính thực tế nhng do thời gian thực tập và kiến thức bảnthân còn hạn chế nên không tránh khỏi những thiếu sót, em mong nhận đợc những ýkiến đóng góp của quý thầy cô và các bạn để báo cáo này đợc hoàn thiện hơn.
Em xin chân thành cảm ơn !
Sinh Viờn Thực Hiện
Nguyễn Thu Lan
b nội dung của đề tài
CHƯƠNG I GiớI THIệU Về NGÔN NGữ PASCAL
i ngôn ngữ pascal
Vào những năm đầu 1970 do nhu cầu học tập của sinh viên và sự phát triển của công nghệ thông tin giáo s Niklaus Writh đã sáng tác một ngôn ngữ lập trình cấp cao cho công tác giảng dạy sinh viên và lấy tên là Pascal để kỷ niệm nhà triết học nổi tiếng Blaise Pascal (ngời Pháp)
Trang 3Ban đầu, Pascal là một ngụn ngữ được hướng để dựng trong giảng dạy về lậptrỡnh cú cấu trỳc, và nhiều thế hệ sinh viờn đó "vào đời" thụng qua việc học Pascalnhư ngụn ngữ vỡ lũng trong cỏc chương trỡnh học đại cương Nhiều biến thể củaPascal ngày nay vẫn cũn được sử dụng khỏ phổ biến, cả trong giảng dạy lẫn trongcụng nghiệp phỏt triển phần mềm.
Pascal là ngôn ngữ lập trình có những đặc điểm u thế nh: ngữ pháp và ngữ nghĩa
đơn giản, tính logic cao, cấu trúc chơng trình rõ ràng, dẽ hiểu, dễ sửa chữa và cảitiến, cùng với sự phát triển của phần mềm tin học ngời ta nhanh chóng nhận ra sứcmạnh của Pascal trong việc xử lý cho các vấn đề hiện đại của tin học Pascal khônggắn với bất kỳ một hệ điều hành hay máy nào, nó đợc gọi là ngôn ngữ lập trình hệthống vì nó đợc dùng cho viết hệ điều hành, nó cũng tiện lợi cho việc viết các chơngtrình xử lý số, văn bản và các cơ sở dữ liệu,…
Hiện nay các công ty các tổ chức dựa trên chơng trình Pascal chuẩn đã phát triểnthêm và tạo ra các chơng trình dịch Pascal với nhiều bổ sung và giảm thiểu khácnhau nh: TURBO PASCAL, QUICK PASCAL, ANSI PASCAl,…Và TURBOPASCAL là ngôn ngữ có nhiều u thế nhất và trở thành ngôn ngữ lập trình phổ biếnnhất trên thế giới trong lĩnh vực giảng dạy và lập trình chuyên nghiệp, phù hợp vớiyêu cầu ngời dùng trong khoảng thời gian ngắn nó đã phát triển qua nhiều phiênbản 1.0 ; 2.0 ; 3.0; 4.0; 5.0; 5.5; 6.0; 7.0
Các tập tin chính của ngôn ngữ Turbo Pascal gồm:
- Turbo.exe: chơng trình soạn thảo, dịch và liên kết chơng trình
- Turbo.tpl (.tpl - Turbo Pascal Library): tập tin th viện lu các đơn vị chuẩn đểchạy với Turbo.exe
Muốn sử dụng các lệnh đồ họa, phải có các tập tin sau:
- Graph.tpu: Đơn vị chứa các lẹnh đồ họa
- Các tập tin có phần mở rộng CHR (SANS.CHR, TRIP.CHR
GOTH.CHR,.v.v.): Chứa các kiểu chữ trong chế độ đồ họa:
- Các tập tin có phần mở rộng BGI (EGAVGA.BGI, HERC.BGI,CGA.BGI, ) để điều khiển các loại màn hình tơng ứng khi dùng đồ họa
ii sử dụng ngôn ngữ Turbo Pascal 7.0
Trang 41 khởi động Turbo Pascal
Ta có thể khởi động ngôn ngữ Pascal từ Windows hoặc MS – DOS chuyển đến
th mục BP hoặc TP và chạy tập tin BP.EXE Hia cách khởi động trên thực hiện
nh sau:
- Khởi động từ dấu nhắc của MS – DOS chuyển đến th mục BP hoặc TP nơichứa tập tin BP.EXE hoặc TURBO.EXE gõ BP hoặc TURBO và nhấn <Enter>
- Khởi động từ Windows: chọn menu Start / Program / Borland Pascal Nếu
ch-ơng trình Pascal cha đợc cài vào menu Start bạn có thể dùng Windows Explorerchuyển đến tập tin BP.EXE hoặc TURBO.EXE và khởi động Pascal bằng cáchchạy tập tin này
2 Các thao tác thờng sử dụng trên Turbo Pascal
Khi ta muốn mở một tập tin đã có hoặc một tập tin mới sử dụng F3, Sau đó
đ-a vào tên và vị trí củđ-a tập tin, nếu tập tin đã tồn tại thì Turbo Pđ-ascđ-al sẽ mở rđ-a, nếucha có thì sẽ mở một tập tin mới
Khi muốn lu tập tin dùng phím F2 Trớc khi thoát nên lu tập tin lại, nếu cha
l-u chơng trình sẽ hỏi nếl-u ta chọn Yes thì chơng trình sẽ ll-u lại và No là thoát màkhông lu
Một số phím thông dụng của Turbo Pascal:
Enter Đa con trỏ xuống dòng
ố Left Đa con trỏ qua trái một kí tự
Right Đa con trỏ qua phải một kí tự
Pg Down Pg Down Xuống một trang màn hình
Del Delete Xóa ký tự tại vị trí con trỏ
Back BackSpace Xóa ký tự trớc con trỏ
Insert Insert Thay đổi chế độ viết xen hay viết chồng
F4 F4 Thực thi chơng trình đến dòng chứa con trỏ
Trang 5Tæ hîp Ctrl + Y Xãa mét dßng t¹i con trá
Tæ hîp Ctrl + K + B §¸nh dÊu ®Çu khèi
Tæ hîp Ctrl + K + K §¸nh dÊu cuèi khèi
ModNilNot
ShrStringThen
Trang 6ObjectOfOrPackedProcedureProgramRecordRepeatSetShl
ToTypeUnitUntilUsesVarVirtualWhileWithXor
- Từ khóa chung:
PROGRAM, BEGIN, END, PROCEDURE, FUNCTION
- Từ khóa để khai báo:
CONST, VAR, TYPE, ARRAY, STRING, RECORD, SET, FILE, LABEL
- Từ khóa của lệnh lựa chọn:
IF THEN ELSE, CASE OF
Trang 7Boolean, Char, Integer, Word, Byte, Real, Text
False, True, MaxInt
Abs, Arctan, Chr, Cos, Sin, Eof, Eoln
Exp, Ln, Odd, Ord
Round, Trunc, Sqr, Pred, Succ
Dispose, New, Get, Put, Read, Readln,
Write, Writeln
Reset, Rewrite
3 Danh hiệu tự đặt
Trong Pascal để đặt tên cho các biến, hằng, kiểu, chương trình con ta dùng
các danh hiệu (identifier) Danh hiệu của Pascal được bắt đầu bằng một chữ cái,
sau đó có thể là các chữ cái, chữ số hay là dấu nối, không được có khoảng trắng và
độ dài tối đa cho phép là 127
Ví dụ : Sau đây là các danh hiệu: x; S1; Delta; PT_bac_2
Trang 8Pascal không phân biệt chữ thường và chữ hoa trong một danh hiệu.
Ví dụ : aa và AA là một; XyZ_aBc và xyZ_AbC là một Khi viết chương trình ta nên đặt các danh hiệu sao cho chúng nói lên các ý nghĩa của đối tượng mà chúng biểu thị Điều này giúp chúng ta viết chương trình
dễ dàng và người khác cũng dễ hiểu nội dung chương trình
IV CÁC KIỂU DỮ LIỆU CƠ SỞ: INTEGER, REAL, BOOLEAN, CHAR
Trong Pascal các kiểu dữ liệu gồm các loại sau:
- Kiểu đơn giản (Simple type): bao gồm kiểu số nguyên (Integer), kiểu số
thực (Real), kiểu logic (Boolean), kiểu ký tự (Char).
- Kiểu có cấu trúc (Structure type): bao gồm mảng (Array), chuỗi (String),
bản ghi (Record), tập hợp (Set), tập tin (File).
- Kiểu chỉ điểm (pointer):
chúng ta chỉ xét các kiểu dữ liệu đơn giản
1 Kiểu số nguyên (Integer type)
a Kiểu số nguyên thuộc Z chứa trong Turbo Pascal
Được định nghĩa với các từ khóa sau:
Trang 9ODD (n) TRUE nếu n lẻ
và FALSE nếu n chẵn
Trang 102 Kiểu số thực (Real type)
Ở Turbo Pascal, kiểu số thực thuộc tập hợp R chứa trong 6 bytes, được định nghĩa với từ khóa REAL: R =±[2.9 x 10-39 , 1.7 x 1038 ]Hay viết theo dạng số khoa học: R = ± [2.9E-39, 1.7E38]
Số thực có thể viết theo kiểu có dấu chấm thập phân bình thường hoặc viết theo kiểu thập phân có phần mũ và phần định trị
Các phép toán số học cơ bản +, -, * , /dĩ nhiên được sử dụng trong kiểu real
Bảng dưới đây là các hàm số học cho kiểu số thực:
ABS (x) |x| : lấy giá trị tuyệt đối của số x
SQR (x) x2 : lấy bình phương trị số x
SQRT(x) : lấy căn bậc 2 của trị số x
SIN(x) sin (x) : lấy sin của x
COS (x) cos (x) : lấy cos của x
LN (x) ln x : lấy logarit nepe của trị x (e » 2.71828)
TRUNC (x) lấy phần nguyên lớn nhất không vượt quá trị số x
ROUND (x) làm tròn giá trị của x, lấy số nguyên gần x nhất
3 Kiểu logic (Boolean)
Một dữ liệu thuộc kiểu BOOLEAN là một đại lượng được chứa trong 1 byte
ở Turbo Pascal và chỉ có thể nhận được một trong hai gía trị logic là TRUE (đúng) và FALSE (sai)
Trang 11Qui ước: TRUE > FALSE
Các phép toán trên kiểu Boolean:
FALSE FALSE TRUE FALSE FALSE FALSE
Nhận xét:
· Phép AND (và) chỉ cho kết quả là TRUE khi cả 2 toán hạng là TRUE
· Phép OR (hoặc) chỉ cho kết quả là FALSE khi cả 2 toán hạng là FALSE
· Phép XOR (hoặc triệt tiêu) luôn cho kết quả là TRUE khi cả 2 toán hạng là khác nhau và ngược lại
Các phép toán quan hệ cho kết quả kiểu Boolean:
< > khác nhau
Trang 124 Kiểu ký tự (Char type)
Tất cả các dữ liệu viết ở dạng chữ ký tự được khai báo bởi từ khóa CHAR
Một ký tự được viết trong hai dấu nháy đơn ( ‘ ‘ ) Để tiện trao đổi thông tin cần phải sắp xếp, đánh số các ký tự, mỗi cách sắp xếp như vậy gọi là bảng mã Bảng
mã thông dụng hiện nay là bảng mã ASCII (xem lại chương 3)
Để thực hiện các phép toán số học và so sánh, ta dựa vào giá trị số thứ tự mã ASCIIcủa từng ký tự, chẳng hạn: 'A' < 'a' vì số thứ tự mã ASCII tương ứng là 65 và 97.Trong Turbo Pascal mỗi ký tự được chứa trong 1 byte
Các hàm chuẩn liên quan đến kiểu ký tự:
Trang 13KÝ HIỆU Ý NGHĨA
ORD(x) Cho số thứ tự của ký tự x trong bảng mã
CHR(n) hay #n Cho ký tự có số thứ tự là n
PRED(x) Cho ký tự đứng trước x
SUCC(x) Cho ký tự đứng sau x
V CẤU TRÚC MỘT CHƯƠNG TRÌNH PASCAL
CÊu tróc mét ch¬ng tr×nh Pascal nh sau:
PROGRAM Tên_Chương_Trình; ® (*Tiêu đề*)
USES ® (*Phần khai báo: đơn vị chương
Trang 14END ® (*Kết thúc chương trình*)
Ví dụ :
PROGRAM Xin chµo; { Dòng tiêu đề }
USES Crt; { Lời gọi sử dụng các đơn vị chương trình } VAR Name : string; { Khai báo biến }
PROCEDURE Input; { Có thể có nhiều Procedure và Function
Writeln ( ‘Welcome to you, ‘, Name) ;
Writeln ( ‘Today, we study PASCAL PROGRAMMING ‘);
Readln;
END
Trang 15Một chương trỡnh Pascal cú cỏc phần:
+ Phần tiờu đề:
Phần này bắt đầu bằng từ khúa Program rồi tiếp đến là tờn của
chương trỡnh và chấm dứt bằng dấu chấm phẩy (;)
Tờn chương trỡnh phải được đặt theo đỳng qui cỏch của danh hiệu tự đặt Phần tiờu đề cú hay khụng cũng được
+ Phần khai bỏo dữ liệu:
Trước khi sử dụng biến nào phải khai bỏo biến đú, nghĩa là xỏc định
rừ xem biến đú thuộc kiểu dữ liệu nào Một chương trỡnh Pascal cú thể cú một số hoặc tất cả cỏc khai bỏo dữ liệu sau:
CONST : khai bỏo hằng
TYPE : định nghĩa kiểu dữ liệu mới
VAR : khai bỏo cỏc biến
+ 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ả nhúm lệnh đú được thi hành.Phần này cú thể cú hoặc khụng tựy theo nhu cầu
Trang 16+ Phần thân chương trình:
Phần thân chương trình là phần quan trọng nhất và bắt buộc phải có, phần này luôn nằm giữa 2 từ khoá là BEGIN và END Ở giữa là lệnh mà các chương trình chính cần thực hiện Sau từ khóa END là dấu chấm (.) để báo kết thúc chương trình
VI CÁC KHAI BÁO HẰNG, BIẾN, KIỂU, BIỂU THỨC,
Trang 17Sự truy xuất của biến nghĩa là đọc giá trị hay thay đổi giá trị của biếnđược thực hiện thông qua tên biến.
Trang 19Diem = Real;
Tuoi = 1 100 ;
Color = (Red, Blue, Green) ;
Thu = (Sun, Mon, Tue, Wed, Thu, Fri, Sat) ;
và khi đã khai báo kiểu gì thì ta có quyền sử dụng để khai báo biến như ở ví
Trang 20b Thứ tự ưu tiên
Khi tính giá trị của một biểu thức, ngôn ngữ Pascal qui ước thứ tự ưu tiên của các phép toán từ cao đến thấp như sau:
Mức ưu tiên: Các phép toán:
1 Biểu thức trong ngoặc đơn ( )
c Qui ước tính thứ tự ưu tiên
Khi tính một biểu thức có 3 qui tắc về thứ tự ưu tiên như sau:
Qui tắc 1 : Các phép toán nào có ưu tiên cao hơn sẽ được tính trước.
Qui tắc 2 : Trong các phép toán có cùng thứ tự ưu tiên thì sự tính toán sẽ được
thực hiện từ trái sang phải
Qui tắc 3 : Phần trong ngoặc từ trong ra ngoài được tính toán để trở thành một
giá trị đơn
Trang 21d Kiểu của biểu thức
Là kiểu của kết quả sau khi tính biểu thức
Ví dụ : Biểu thức sau được gọi là biểu thức Boolean:
not ( ( 'a'>'c' ) and ( 'c'>'C' ) ) or ( 'B'='b' ) có giá trị TRUE
Trang 22ch¬ng ii C©u lÖnh vµ c¸c thñ tôc xuÊt nhËp
i c©u lÖnh
Trong một chương trình Pascal, sau phần mô tả dữ liệu là phần mô tả các câulệnh Các câu lệnh có nhiệm vụ xác định các công việc mà máy tính phải thực hiện để xử lý các dữ liệu đã được mô tả và khai báo
Câu lệnh được chia thành câu lệnh đơn giản và câu lệnh có cấu trúc
- Câu lệnh đơn giản
+ Vào dữ liệu : Read, Readln
+ Ra dữ liệu : Write, Writeln
Trang 24- Lưu trữ các giá trị khác nhau vào một ô nhớ tại những thời điểm khác nhau.
- Một quá trình tính toán có thể coi như là một quá trình làm thay đổi giá trị của một (hay một số) ô nhớ nào đó, cho đến khi đạt được giá trị cần tìm
2 Lệnh ghép (Compound statement)
Một nhóm câu lệnh đơn được đặt giữa 2 chữ BEGIN và END sẽ tạo thành một câu lệnh ghép
Trang 25Trong Pascal ta có thể đặt các lệnh ghép con trong các lệnh ghép lớn hơn bao ngoài của nó và có thể hiểu tương tự như cấu trúc ngoặc đơn ( ) trong các biểu thức toán học.
<Công việc> của các lệnh có cấu trúc , ta có thể gặp khái niệm này trong
nhiều ví dụ ở các phần sau
3 Cấu trúc rẽ nhánh
a Lệnh IF THEN và Lệnh IF THEN ELSE
Trang 26* Lưu đồ diễn tả các lệnh và ý nghĩa cáchviết:
IF <Điều kiện> THEN <Công việc> ;
Nếu điều kiện này đúng, thì máy sẽ thực hiện Công việc rồi tiếp tục thực hiện lệnh tiếp theo
Hình : Lệnh IF <Điều kiện> THEN <Công việc>;
Trang 27Nếu điều kiện này đúng, thì máy sẽ thực hiện Công việc rồi tiếp tục thực hiện lệnhtiếp theo.
Ngược lại, nếu điều kiện này sai, máy sẽ bỏ qua công việc và đi đến thực hiện lệnh tiếp theo
IF < Điều kiện > THEN <Công việc 1> ELSE <Công việc 2>;
Nếu điều kiện này đúng, máy thực hiện Công việc 1 (không thực hiện công việc 2) rồi đến lệnh tiếp theo
Ngược lại, nếu điều kiện sai, máy sẽ thực hiện Công việc 2 (không thực hiệncông việc 1) rồi đến lệnh tiếp theo
Chú ý:
- Điều kiện là một biểu thức Boolean
- Nếu <Công việc>sau THEN hoặc ELSE có nhiều hơn một lệnh thì
ta phải gói lại trong BEGIN END;
- Toàn bộ lệnh IF THEN ELSE xem như 1 lệnh đơn
Trang 28Trong chương trình trên, a ta thấy có dạng a :m :n với ý nghĩa m là số định
khoảng mà phần nguyên của a sẽ chiếm chỗ và n là khoảng cho số trị phần thập phân của a
Ví dụ: Giải và biện luận hệ phương trình:
q ny mx
Với x,y là ẩn số; m,n,o,p,q,s: nhập từ bàn phím
Gợi ý:
{khai báo các biến}
Trang 29CASE <Biểu thức > OF Xét giá trị của biểu thức chọn
GT1 : Công việc 1 ; Nếu có giá trị 1 (GT1) thì thi hành Công việc 1
GTi : Công việc i ; Nếu có giá trị i (GT i) thì thi hành Công việc i
Trang 30ELSE Công việc 0 ; Nếu không có giá trị nào thỏa thì thực hiện
Công việc 0
END;
Ghi chú:
- Lệnh CASE OF có thể không có ELSE
- Biểu thức chọn là kiểu rời rạc như Integer, Char, không chọn kiểu Real
- Nếu muốn ứng với nhiều giá trị khác nhau của biểu thức chọn vẫn thi hành một lệnh thì giá trị đó có thể viết trên cùng một hàng cách nhau bởi dấu phẩy (,) : Giá trị k1, k2, , kp : Lệnh k ;
‘R' , ‘r' : write ( ‘ RED = màu đỏ ‘) ;
‘W', ‘w' : write ( ‘ WHITE = màu trắng ‘) ;
Trang 31‘B' , ‘b' : write ( ‘ BLUE = màu xanh dương ‘) ; END ;
Trang 32
* Ý nghĩa lưu đồ:
Đầu tiên kiểm tra trị đầu nhỏ hơn hoặc bằng trị cuối không? Nếu:
+ Sai, kết thúc lệnh
+ Đúng, thì thực hiện công việc, sau đó kiểm tra biến đếm có còn nhỏ hơn
trị cuối không? Nếu đúng, thì tăng biến đếm lên 1 và cứ lặp cho đến khi biến đếm
không còn nhỏ hơn hoặc bằng trị cuối nữa thì thoát khỏi vòng lặp và kết thúc lệnh
Chú ý: Trị đầu, trị cuối là các biến hoặc hằng và biến đếm phải là kiểu rời rạc
Ví dụ : Chương trình in một dãy số từ 0 đến 9
PROGRAM Day_So ;
Trang 33Trong khi mà điều kiện còn đúng thì cứ thực hiện Công việc, rồi quay trở
về kiểm tra điều kiện lại Vòng lặp được tiếp tục, đến khi điều kiện đặt ra không còn đúng nữa thì đi tới thực hiện lệnh tiếp theo
WHILE <điều kiện> DO <Công việc>
Ghi chú:
· Điều kiện trong cấu trúc lặp WHILE DO là một biểu thức logic kiểu
Boolean chỉ có 2 giá trị là Đúng (True) hoặc Sai (False)
· Nếu điều kiện Đúng thì chương trình sẽ chạy trong cấu trúc WHILE DO
· Sau mỗi lần lặp, chương trình trở lại kiểm tra điều kiện Tùy theo biểu thức logic của điều kiện là Đúng hay Sai thì chương trình sẽ thực hiện Công việc tương ứng
· Nếu Sai thì chuyển xuống dưới cấu trúc WHILE DO
Trang 35average := sum/n ;
Writeln ( ‘ Trung bình là = ‘ , average : 10 : 3 ) ;
Writeln ( ‘ Nhấn Enter để thoát ‘) ;
UNTIL <Điều kiện thoát>
Hình: Lưu đồ cấu trúc của REPEAT UNTIL
REPEAT
<Công việc>;
Trang 36* Ý nghĩa câu lệnh:
Nếu điều kiện logic là Sai (False) thì lặp lại lệnh cho đến khi điều kiện Đúng thì
mới thoát ra khỏi cấu trúc REPEAT UNTIL
Nếu có nhiều câu lệnh thì mỗi lệnh ngăn cách nhau bằng dấu chấm phẩy (;) Công việc của REPEAT và UNTIL không nhất thiết phải dùng lệnh ghép để nhóm từ 2 lệnh đơn trở lên thành công việc
Hình : Sơ đồ cú pháp REPEAT UNTIL
Ví dụ : Với bài toán trung bình cộng một dãy số ở ví dụ trước có thể viết theo cấu trúc REPEAT UNTIL như sau:
Trang 37Trong cấu trúc WHILE DO thì <Điều kiện> được kiểm tra trước, nếu thỏa
<Điều kiện> thì mới thực hiện <Công việc>
Ngược lại, trong cấu trúc REPEAT UNTIL thì <Công việc> sẽ được thực thi trước sau đó mới kiểm tra <Điều kiện>, nếu không thỏa <Điều kiện> thì tiếp tục thihành <Công việc> cho đến khi <Điều kiện> là đúng
Trang 38Lệnh REPEAT UNTIL thường được sử dụng trong lập trình, nhất là lúc người sử dụng muốn tiếp tục bài toán ở trường hợp thay đổi biến mà không phải trở
Writeln ( ‘ Tích số của a x b là : ‘, a*b : 10 ) ;
Writeln ( ‘ Tiếp tục tính nữa không (CK) ? ‘ );
Readln (CK) ;
UNTIL upcase(CK) = ‘K'; {hàm chuyển đổi ký tự trong biến}
{CK thành ký tự in hoa}
END.
Trang 39iii Ch¬ng tr×nh con hµm vµ thñ tôc
Khi lập trình, có những đoạn chương trình cần dùng nhiều lần Để tránh viết lại đoạn này, ta nên chuyÓn đoạn chương trình này thành một chương trình con và mçi lÇn cÇn thực hiện công việc đó thì ta gọi nó thông qua tên
Chương trình con còn để mẫu hóa một chương trình làm công việc nào đó Người khác dùng chương trình con chỉ cần biết truyền số liệu vào và lấy kết quả ra như thế nào mà không cần phải quan tâm đến thuật toán trong chương trình con như thế nào
Khi viết những chương trình lớn, để dễ dàng quản lý, gỡ rối và hiệu chỉnh chương trình, ta nên phân chương trình thành nhiều công việc độc lập, mỗi công việc là một chương trình con Chương trình con gồm hai loại là Hàm (Function) và Thủ tục (procedure)