//
you're reading...
00 - Chủ đề chung, Dùng cho cấp THCS, Dùng cho cấp THPT

Giới thiệu ngôn ngữ lập trình Pascal

Pascal là một ngôn ngữ lập trình cho máy tính, do Niklaus Wirth, giảng viên trường Đại học Kĩ thuật Zurich, Thuỵ sĩ xây dựng nên vào năm 1970 với mục đích để giảng dạy. Là ngôn ngữ lập trình cấu trúc, trong sáng, dễ hiểu, Pascal đã vượt ra khỏi nhà trường, phát triển thành một ngôn ngữ mạnh, có thể dùng để phát triển chương trình chuyên nghiệp. N. Wirth đã được giải Turing do công lao sáng tạo và phổ biến ngôn ngữ Pascal.
Hiện nay ngôn ngữ lập trình Pascal có nhiều biến thể do các công ty khác nhau bổ xung hoàn thiện thêm: TURBO PASCAL của Borland, QUICK PASCAL của Microsoft, ANSI PASCAL …
Nói riêng Turbo Pascal cũng đã được cải tiến hoàn thiện qua nhiều phiên bản, từ bản 1.0 ban đầu cho đến bản 5.5 năm 1989, bản 6.0 năm 1990, bản 7.0 năm 1992.

Các khái niệm cơ bản
1.1 Mở đầu.
Pascal là một ngôn ngữ lập trình cấp cao, nghĩa là gần với ngôn ngữ của con người. Khái niệm cấp cao, cấp thấp của một ngôn ngữ lập trình máy tính để nói nó gần hơn với ngôn ngữ con người hay với ngôn ngữ của máy tính chứ không phải để nói về khả năng.
Tương tự như ngôn ngữ thông thường, Pascal cũng sử dụng các kí tự để tạo nên các từ, dùng các “từ” và các yếu tố cơ bản khác để tạo thành các “câu” có ý nghĩa xác định. Các “câu” được phối hợp thành một “văn bản” hoàn chỉnh gọi là văn bản chương trình nhằm ra lệnh cho máy tính thực hiện một số công việc xử lí thông tin nào đó.
Để minh hoạ ta xét một văn bản chương trình Pascal sau đây

Program HinhTron;
Var BanKinh,ChuVi,DienTich: real;

Begin
Write(‘ Cho ban kinh = ‘);
Read(BanKinh);
If BanKinh > 0 then
begin
ChuVi:= 2* pi * BanKinh ;
DienTich:= pi * BanKinh * BanKinh ;
Write(‘ Chu vi la = ‘ , ChuVi );
Write(‘ Dien tich la = ‘ , DienTich);
End
Else
Write(‘ Ban kinh am, khong hop le !’);
End.

Có thể “dịch” văn bản chương trình cho máy tính trên thành ngôn ngữ
thông thường như sau.

Chương trình Hình Tròn;
Các biến: Bán Kính, Chu Vi, Diện Tích: là số thực;
Bắt đầu
Viết ra màn hình: Cho Bán Kính =
Đọc từ bàn phím: Bán Kính.
Nếu Bán Kính > 0 Thì
Bắt đầu
ChuVi = 2 x ð x Bán Kính.
DiệnTích = ð x Bán Kính x Bán Kính.
Viết ra: Chu vi là= giá trị ChuVi (tính được ở trên).
Viết ra: Diện tích là = giá trị DiệnTích (tính được ở trên).
Kết thúc.
Trái lại
Viết: Bán Kính âm, Không hợp lệ !
Kết thúc.

1.2 Các kí tự.
Turbo Pascal sử dụng các kí tự sau đây trong bảng mã ASCII:
– Các chữ cái thường và hoa: a .. z, A .. Z.
– 10 chữ số: 0 .. 9.
– Dấu nối dưới: _
– Các dấu phép toán: + – * / =
– Một số kí hiệu đặc biệt: . , ; ! ? : ‘ ” ( ) { } [ ] % @ & # $ ^. ý
nghĩa của những kí hiệu này được quy định riêng, khác với cách dùng thông
thường.
1.3 Các từ khoá.
Nhìn lại chương trình và bản “dịch” trong ví dụ trên ta thấy các từ Program, Var, Real, Begin, If, Then, Else, End là những thành phần hết sức quan trọng. Chúng phối hợp với nhau để tạo nên phần khung của các câu lệnh. Đó là các từ khoá. Các từ khóa là các đơn vị từ vựng cơ sở của một ngôn ngữ lập trình nói chung.
Khác với ngôn ngữ thông thường, một từ có thể nhiều nghĩa, một ý có thể viết theo nhiều cách, mỗi từ khoá trong một ngôn ngữ lập trình có một ý nghĩa xác định chính xác, những câu lệnh được xây dựng theo những quy tắc hết sức chặt chẽ.
Dưới dây liệt kê những từ khoá của Turbo Pascal. Y nghĩa và cách sử dụng chúng ta sẽ làm quen dần sau này.

And End Nil Shr
Asm File Not String
Array For Object Then
Begin Function Of To
Case Goto Or Type
Const If Packed Unit
Constructor Implementation Procedure Until
Destructor In Program Uses
Div Inline Record Var
Do Interface Repeat While
Downto Label Set With
Else Mod Shl Xor

Với các từ khóa, Pascal không phân biệt chữ in hoa hay chữ thường. Trong văn bản chương trình Pascal ta có thể tuỳ ý viết một từ khóa bằng các chữ cái dạng in thường hay in hoa hoặc xen kẽ cả hai dạng.

1.4 Tên – Identifier
Nhìn lại chương trình trong ví dụ ở trên, ngoài các từ khoá ta thấy còn có các thành phần khác nhưBanKinh, ChuVi, DienTich. Chúng là tên của các đối tượng mà ta xử lí trong chương trình.
Quy định đặt tên trong Pascal như sau:
– Tên là xâu kí tự gồm chữ cái , chữ số, dấu nối dưới ( _ ).
– Tên không được chứa dấu cách;
– Tên không được bắt đầu bằng số;
– Tên có thể dài tuỳ ý nhưng chỉ có 63 kí tự đầu tiên là có ý nghĩa;
– Tên không được trùng với từ khoá;

Nên đặt tên phản ánh đúng nội dung của đối tượng, gợi nhớ. Tránh kiểu đặt tên không mang lại thông tin gì bổ ích, ví dụ: prog01, baitap02 …
Giống như đối với các từ khóa, trong văn bản chương trình Pascal, các tên cũng được viết bằng các chữ cái dạng in thường hay in hoa, không phân biệt. BanKinh hay bankinh đều chỉ là một tên. Ta có thể chọn một phong cách viết thích hợp.
Để tách các âm tiết cho dễ đọc có thể dùng dấu nối dưới ( _ ) hoặc viết hoa chữ cái đầu tiên của mỗi âm tiết, ví dụ: giai_pt_bac_hai, dinh_thuc, HeSo, BanKinh , DienTich… Trong tài liệu này sẽ dùng cách viết hoa chữ cái đầu của mỗi âm tiết.
Khái niện tên (identifier – ID) ở đây chính xác và chặt chẽ hơn khái niệm tên gọi thông thường (name). Tên phải đảm bảo đúng quy định, không trùng lặp, tương ứng một-một giữa tên và đối tượng gắn với nó.

1.5 Tên chuẩn
Tên chuẩn là tên mà Pascal đã sử dụng, có một ý nghĩa hoàn toàn xác định trong môi trường Pascal. Trong ví dụ trên các thành phần Read, Write là các tên chuẩn. Đó là tên của hai thủ tục có sẵn trong Turbo Pascal.
Tên chuẩn khác từ khoá ở chỗ, có thể dùng lại tên này vào việc khác, định nghĩa lại với nghĩa mới khác đi, do người dùng quy định. Tuy nhiên không nên làm thế vì mọi thay đổi khác lệ thường, đều dễ đưa đến nhầm lẫn.
Các tên chuẩn bao gồm
– Các kiểu dữ liệu: boolean, char, integer, real, byte, text…;
– Các hằng kiểu lô gic:false, true ;
– Các hàm, thủ tục chuẩn đã làm sẵn:
chr, odd, abs, sqr, sqrt, exp, ln ..
arctan, cos, sin, ..
eof, eoln, read, readln, write, writeln..

1.6 Câu lệnh
Sử dụng các từ khoá của ngôn ngữ Pascal, các tên đối tượng, các dấu phép toán và các kí hiệu đặc biệt khác, người lập trình viết các câu lệnh. Câu lệnh là một chỉ thị cho máy tính thực hiện một thao tác tính toán, xử lí nào đó.
Ví dụ,
DienTich:= pi * BanKinh * BanKinh ;
là một câu lệnh yêu cầu máy tính bình phương bán kính nhân với số ð rồi gán cho diện tích hình tròn.
Có thể viết nhiều câu lệnh trên một dòng. Phải dùng dấu chấm phẩy “ ; ” để ngăn cách hai câu lệnh dù là trên cùng một dòng hay trên hai dòng khác nhau.
Một văn bản chương trình là một tập hợp các câu lệnh, điều khiển máy tính hoàn thành một công việc nhất định nào đó. Các câu lệnh này được viết tuân theo một quy định hết sức chặt chẽ và chính xác. Mỗi ngôn ngữ lập trình

2. Phát triển một chương trình Pascal
2.1 Cấu trúc một chương trình Turbo Pascal.
Để cho dễ hiểu từ đây ta quy ước khi trình bày các thành phần cú pháp của Pascal ta sẽ dùng cách nhấn mạnh bằng chữ in nghiêng để chỉ những phần mà người lập trình cần điền vào tuỳ theo từng trường hợp cụ thể. Những từ khoá, tên chuẩn… của ngôn ngữ Pascal là phần khung phải giữ nguyên không được thay đổi sẽ được thể hiện bằng kiểu chữ đứng đậm hơn.

2.1.1 Các thành phần
Về cấu trúc, một chương trình Pascal gồm 3 phần: phần tên, phần khai
báo, phần thân.

Program tên chương trình ; Phần tên
Uses danh sách các unit ;
Const các khai báo hằng ; Phần khai báo
Type các khai báo kiểu ;
Var các khai báo biến ;

Procedure …. ;
Function …. ; Phần các chương trình con.

BEGIN
các câu lệnh của chương trình; Phần thân
END .

Phần tên có thể không có.
Phần khai báo phải theo đúng trình tự các mục: uses, const, type,
var, v.v. Có thể lặp lại các từ khoá ở trên nhiều lần, trên nhiều dòng nếu như
có nhiều nội dung. Phần khai báo có thể không có.
Phần thân chương trình bắt buộc phải có ! Lưu ý rằng văn bản chương trình kết thúc với từ khoá END kèm dấu chấm “.”
Phần khai báo có thể phân chia chi tiết hơn. Với các chương trình lớn, sau khai báo danh sách các thư viện hàm, thủ tục làm sẵn (các unit), khai báo các hằng, các kiểu dữ liệu, các biến sẽ là phần dành cho các chương trình con. ở đây có khai báo nguyên mẫu (tức là tên, danh sách tham số, kiểu kết quả trả về) của mỗi chương trình con kèm triển khai chi tiết của chúng. Ta sẽ tìm hiểu kĩ hơn sau này trong chương “Chương trình con”.

2.1.2 Chú thích trong chương trình Pascal.
Trong văn bản chương trình thường xen lẫn các lời chú thích nhằm mục đích cung cấp các thông tin bổ xung hoặc giải thích ý nghĩa, nội dung câu lệnh cho người đọc dễ hiểu hơn. Trình biên dịch hoàn toàn bỏ qua các chú thích. Cú pháp ngôn ngữ Pascal quy định đoạn lời chú thích phải đặt giữa cặp dấu ngoặc nhọn “{ , }” hoặc cặp dấu ngoặc đơn kèm dấu sao “(* , *)”.
Đoạn chú thích có thể trên một dòng hay nhiều dòng.
Ví dụ:
.. ..
{ nghiệm thứ nhất }
x1:= ( -b + sqrt (b*b – 4*a*c)) / (2*a);
.. ..
hoặc
.. ..
(* nghiệm thứ nhất *)
x1:= ( -b + sqrt (b*b – 4*a*c)) / (2*a);

2.1.3 Ví dụ một chương trình Pascal
Chương trình Pascal đơn giản sau đây sẽ làm sạch màn hình và in ra dòng chữ “Xin Chào Bạn !” tại góc trên trái của màn hình.

program ChaoMung;
uses crt;
Begin
Clrscr;
Write(‘ Xin Chao Ban ! ‘);
Readln;
End.

2.2 Các bước xây dựng chương trình.
Xây dựng chương trình giải quyết một bài toán cụ thể cần trải qua các bước như sau: xác định rõ yêu cầu của bài toán cần phải làm gì; phân tích nội dung; thiết kế thuật giải; triển khai viết chương trình và chạy thử kiểm tra. ở đây ta chỉ trình bày những công việc cơ bản nhất của hai bước cuối cùng là viết chương trình và chạy thử.

2.2.1 Viết văn bản chương trình.
Sau khi đã có thuật giải, có thể triển khai viết văn bản chương trình. Văn bản chương trình là một tệp văn bản, nghĩa là gồm các kí tự trong bảng

2.2.2 Biên dịch và liên kết.
Tệp văn bản chương trình gồm các câu lệnh gần với ngôn ngữ thông thường, dễ hiểu với con người, nhưng không phải là ngôn ngữ của máy tính. Để máy tính hiểu và thực thi được các câu lệnh cần phải biên dịch chương trình từ tệp mã nguồn Pascal thành tệp mã máy.
Trong quá trình biên dịch có thể máy sẽ phát hiện ra các lỗi cú pháp – syntax error. Ta cần sửa chữa để đảm bảo chương trình hết lỗi cú pháp, được biên dịch thành công và liên kết thành tệp thi hành được.

2.2.3 Chạy thử và sửa lỗi
Giống như một bài văn gồm toàn những câu đúng ngữ pháp nhưng vô lý, không thể hiểu được, một chương trình đã đúng cú pháp có thể vẫn chưa chạy thông được. Máy dừng khi chương trình thực hiện nửa chừng. Lúc này là lỗi khi chạy chương trình – run time error.
Ngay khi chương trình đã chạy thông cũng vẫn có thể cho kết quả sai. Đây là lỗi nội dung thuật giải. Cần phải sửa lại thuật giải để đảm bảo chương trình cho kết quả đúng như mong muốn.
Một bài toán thường có nhiều trường hợp khác nhau. Ví dụ, chương trình giải phương trình bậc hai sẽ có ba trường hợp khác nhau ứng với giá trị của biệt thức (Delta) là âm, dương hay bằng không. Chương trình đã chạy đúng với trường hợp này có thể vẫn chưa đúng hoặc thậm chí không chạy thông được cho trường hợp khác. Cần chạy thử chương trình với nhiều bộ dữ liệu đầu vào khác nhau để kiểm tra tính đúng đắn của chương trình trong mọi trường hợp có thể xảy ra.

Advertisements

About pascalteacher

Trang thông tin Toán học và Tin học

Thảo luận

Không có bình luận

Trả lời

Mời bạn điền thông tin vào ô dưới đây hoặc kích vào một biểu tượng để đăng nhập:

WordPress.com Logo

Bạn đang bình luận bằng tài khoản WordPress.com Đăng xuất / Thay đổi )

Twitter picture

Bạn đang bình luận bằng tài khoản Twitter Đăng xuất / Thay đổi )

Facebook photo

Bạn đang bình luận bằng tài khoản Facebook Đăng xuất / Thay đổi )

Google+ photo

Bạn đang bình luận bằng tài khoản Google+ Đăng xuất / Thay đổi )

Connecting to %s

Các tác giả

Categories

Tháng Tám 2011
H B T N S B C
    Th10 »
1234567
891011121314
15161718192021
22232425262728
293031  

NCT Computer

Flickr Photos

Thống kê

  • 149,393 lượt xem

pascalteacher.nct@gmail.com


Trang huấn luyện học sinh giỏi Tin học

%d bloggers like this: