I,Đôi nét về pascal:Pascal là tên của một trong các ngôn ngữ lập trình cấp cao thông dụng.. Ban đầu, Pascal là một ngôn ngữ được hướng để dùng trong giảng dạy về lập trình có cấu trúc, v
Trang 2I,Đôi nét về pascal:
Pascal là tên của một trong các ngôn ngữ lập trình cấp cao thông dụng Ngôn ngữ lập trình Pascal được giáo sư Niklaus Wirth ở trường Ðại học Kỹ thuật Zurich (Thụy sĩ) thiết kế và công bố vào năm 1970 Niklaus Wirth đặt tên cho ngôn ngữ này là Pascal để tưởng nhớ đến nhà Toán học và Triết học Pháp ở thế kỷ 17 là Blaise Pascal, người đã phát minh ra một máy tính cơ khí đơn giản đầu tiên của con người
Blaise Pascal Niklaus Wirth
Trang 3Ban đầu, Pascal là một ngôn ngữ được hướng để dùng trong giảng dạy về lập trình có cấu trúc, và nhiều thế hệ sinh viên đã "vào đời" thông qua việc học Pascal như ngôn ngữ vỡ lòng trong các chương trình học đại cương Nhiều biến thể của Pascal ngày nay vẫn còn được sử dụng khá phổ biến, cả trong giảng dạy lẫn
trong công nghiệp phát triển phần mềm.
Ngôn ngữ Pascal được dùng hiện nay có nhiều điểm khác biệt với chuẩn Pascal nguyên thủy của Giáo sư Wirth Tùy theo quốc gia hoặc công ty đã phát triển cho
ra đời các chương trình biên dịch ngôn ngữ Pascal như:
· ISO PASCAL (International Standards Organization) của Châu Âu
· ANSI PASCAL (American National Standards Institute) của Mỹ
· TURBO PASCAL của hãng BORLAND (Mỹ)
· IBM PASCAL của hãng Microsoft (Mỹ)
· v.v
Ðến nay, ngôn ngữ Pascal đã phát triển đến phiên bản Turbo Pascal Version 7
Trang 4Cấu trúc chương trình
Theo quy ước, cấu trúc một chương trình được mô tả như sau:
Phần tiêu đề [<phần khai báo>]
<phần thân>
(*) Phần tiêu đề
Phần này bắt đầu bằng từ khoá program, sau đó nhất định là một khoảng trắng và một
tên do người dùng tự đặt, cuối cùng kết thúc bằng dấu chấm phẩy ( ; ).
Ví dụ : Program Btap1;
hoặc : Program Giai_pt_bac2;
Phần tiêu đề chiếm một dòng, còn gọi là phần đầu của chương trình (nó có thể không có
cũng được.)
Trang 5(*) Phần khai báo
Phần khai báo có nhiệm vụ giới thiệu và mô tả các đối tượng, các đại lượng sẽ
tham gia trong chương trình, giống như ta giới thiệu các thành viên trong một
cuộc họp Nó gồm khai báo sử dụng thư viện chuẩn, khai báo nhãn, khai báo
hằng, khai báo kiểu dữ liệu mới, khai báo biến, và khai báo các chương trình
con Tùy theo yêu cầu cụ thể mà mỗi khai báo này có thể có hoặc không.
Khai báo nhãn (Label) chỉ dùng khi trong chương trình có sử dụng lệnh nhảy vô điều kiện GOTO Nhược điểm của lệnh GOTO là làm mất tính cấu trúc của
chương trình, trong khi có thể thay thế nó bằng các câu lệnh có cấu trúc của
Pascal
(*)Phần thân
Đây là phần chủ yếu nhất của một chương trình, bắt buộc phải có.
Thân chương trình bắt đầu bằng từ khoá BEGIN và kết thúc bằng END (có
dấu chấm ở cuối) Giữa khối BEGIN và END là các lệnh Mỗi lệnh phải kết thúc bằng dấu chấm phẩy (;) Một lệnh, nếu dài, thì có thể viết trên hai hay nhiều dòng, ví dụ :
Writeln( ‘Phuong trinh co hai nghiem la X1=‘ va X2= ‘) ;
Ngược lại, một dòng có thể viết nhiều lệnh miễn là có dấu ( ; )
Write( ‘Nhap A, B, C:’ ) ; Readln(A,B,C) ;
Thông thường mỗi dòng chỉ nên viết một lệnh để dễ đọc, dễ kiểm tra lỗi.
Trang 6Các kiểu dữ liệu
1 Kiểu logic
- Từ khóa: BOOLEAN
- miền giá trị: (TRUE, FALSE)
- Các phép toán: phép so sánh (=, <, >) và các phép toán logic:
AND, OR, XOR, NOT.
Trong Pascal, khi so sánh các giá trị boolean ta tuân theo qui tắc: FALSE < TRUE
Trang 72.2 Các phép toán trên kiểu số nguyên
2.2.1 Các phép toán số học:
+, -, *, / (phép chia cho ra kết quả là số thực).
Phép chia lấy phần nguyên: DIV (Ví dụ : 34 DIV 5 = 6).
Phép chia lấy số dư: MOD (Ví dụ: 34 MOD 5 = 4).
2.2.2 Các phép toán xử lý bit:
Trên các kiểu ShortInt, Integer, Byte, Word có các phép toán:
NOT, AND, OR, XOR.
3 Kiểu số thực
Real 0 hoặc có giá trị tuyệt đối nằm
Trang 8- PRED(ch): cho ký tự đứng trước ký tự ch Ví dụ: PRED('B')='A'.
- SUCC(ch): cho ký tự đứng sau ký tự ch Ví dụ: SUCC('A')='B'
Trang 9III Lệnh trong Pascal
1 Câu lệnh (statement)
a. Trong một chương trình Pascal, sau phần mô tả dữ liệu là phần
mô tả các câu lệ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.
b. 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 10* Ý nghĩa:
Biến và các phát biểu gán là các khái niệm quan trọng của một họ các ngôn ngữ lập trình mà Pascal là một đại diện tiêu biểu Chúng phản ánh cách thức hoạt động của máy tính hiện nay, đó là:
- 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.
Trang 11b 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 Trong 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
nó Một khối chương trình thường được dùng để nhóm từ 2 lệnh trở lên để tạo thành một <Công việc> của các lệnh có cấu trúc
Trang 12+ Đú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
Trang 13b Lệnh WHILE DO
* Cú pháp
WHILE <điều kiện> DO <Công việc>
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.
Trang 14Câu lệnh REPEAT UNTIL dùng trong các trường hợp khi biến điều khiển không có kiểu rời rạc và đặc biệt trong các trường hợp số lần lặp không biết trước.
REPEAT <Công việc>; UNTIL <Điều kiện thoát>
Nếu <điều kiện thoát> là Sai (False) thì lặp lại <công việc> 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.
Trang 15So sánh 2 cách viết WHILE DO và REPEAT UNTIL ta thấy
có sự khác biệt:
¨ Trong 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 thi hành <Công việc> cho đến khi <Điều kiện> là đúng.
Lệ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ở về chương trình và nhấn tổ
hợp phím Ctrl + F9 lại.
Trang 16Một số ví dụ bài toán đơn giản trong pascal
Write('Can bac hai cua tong binh phuong hai so la:
',sqrt(a*a + b*b),' Moi ban xem lai ');
Write('Nhan enter de tat chuong trinh');
Trang 17VD:chương trình chào thế giới
Trang 18Viết chương trình in lên màn hình hai câu sau :
" Chao cac ban ! "
" Rat vui đuoc lam quen voi cac ban ! "
Write('Chao cac ban');
Write('Rat vui duoc lam quen voi cac ban!');
Readln;
End
Viết chương trình nhập vào số đo một cạnh và diện tích
của hình chữ nhật, tính cạnh kia và chu vi của hình chữ
nhật.
Var a,s,b,c:Real;
Begin
Write('Nhap canh a: '); Readln(a);
Write('Nhap dien tich s: '); Readln(s);
Trang 19Chương trình giới thiệu
Giải thích chương trình GioiThieu:
- Begin: Từ khoá cho biết bắt đầu chương trình.
‘ );
- Writeln: là thủ tục xuất nội dung các thành phần bên trong cặp dấu ( ) lên màn hình và chuyển con trỏ xuống dòng Bên trong cặp dấu ( ) có thể có nhiều thành phân gồm chuỗi ký tự (hằng gia trị chuỗi), biến số hoặc hàm Giữa các thành phần trong cặp dấu ( ) phải cách nhau bằng dấu ‘,‘ nếu không cùng loại, tức là chuỗi ký
tự phải được cách với biến số hoặc hàm đứng trước nó hay sau nó bằng dấu ‘,‘ Chuỗi ký tự muốn hiển thị nguyên văn phải được đặt trong cặp dấu ‘ ‘.
- Write: là thủ tục xuất nội dung các thành phần bên trong cặp dấu ( ) lên màn hình, thủ tục này có chức năng tương tự Writeln nhưng không chuyển con trỏ
xuống
dòng.
- End: là từ khoá cho biết kết thúc chương trình.
- Cac dòng lệnh nằm giữa Begin và End là lệnh mà chương trình cần phải thực hiện.
Trang 20Chương trình tính tổng
Trang 21Tìm giá trị min, max của 2 số a; b
Trang 23Một số hình ảnh về pascal
Trang 27Cám ơn bạn các bạn đã theo dõi
Tạm biệt