Phần 2 Giáo trình Tin học đại cương A1 tiếp tục giới thiệu đến bạn đọc nội dung chương 3 về lập trình căn bản bằng ngôn ngữ Pascal, với các nội dung như: Giới thiệu về ngôn ngữ Pascal, cấu trúc của chương trình Pascal, các phần tử cơ bản của Pascal, các kiểu dữ liệu đơn giản, hằng - biến và biểu thức, các câu lệnh đơn giản,... và các nội dung khác. Hi vọng giáo trình tin học đại cương A1 sẽ cung cấp cho bạn đọc những kiến thức cơ bản nhất về máy tính, chương trình Pascal giúp bạn đọc dễ dàng nghiên cứu.
CHƯƠNG LẬP TRÌNH CĂN BẢN BẰNG NGƠN NGỮ PASCAL GIỚI THIỆU NGƠN NGỮ PASCAL Pascal ngơn ngữ lập trình cấp cao giáo sư Niklaus Wirth Trường đại học Kỹ thuật Zurich (Thụy sĩ) thiết kế cơng bố vào năm 1971 Ơng đặt tên cho ngơn ngữ Pascal để tưởng nhớ nhà toán học tiếng người Pháp kỷ 17: Blaise Pascal, người sáng chế máy tính khí nhân loại Qua thời gian sử dụng, Pascal ngày đông đảo người dùng đánh giá cao, trở thành ngôn ngữ lập trình phổ biến Thành cơng ngơn ngữ Pascal chỗ: ngơn ngữ đưa thể khái niệm lập trình có cấu trúc Ý tưởng chương trình có cấu trúc xuất phát từ suy nghĩ cho chia tốn lớn, phức tạp thành nhiều toán nhỏ, đơn giản Nếu toán nhỏ giải chương trình con, liên kết chương trình lại tạo nên chương trình lớn giải toán ban đầu Bằng cách chia chương trình thành chương trình vậy, người thảo chương lập trình để giải riêng lẻ phần một, khối một, tổ chức để nhiều người tham gia, người phụ trách vài khối Ðặc biệt phải thay đổi hay sửa chữa khối điều ảnh hưởng đến khối khác Tính cấu trúc ngơn ngữ Pascal cịn thể việc tổ chức câu lệnh tổ chức liệu Từ lệnh có, người thảo chương nhóm chúng lại với đặt 57 hai từ khóa Begin End tạo thành câu lệnh phức tạp gọi câu lệnh ghép Ðến lượt mình, hai hay nhiều lệnh ghép lại nhóm lại để tạo thành câu lệnh ghép phức tạp nữa… Tương tự thế, ngôn ngữ Pascal cho phép xây dựng kiểu liệu phức tạp từ kiểu liệu có Pascal ngôn ngữ không chặt chẽ mặt cú pháp mà chặt chẽ mặt liệu Mỗi biến, tham gia chương trình ln có kiểu liệu xác định nhận giá trị có kiểu liệu với Ðiều buộc người lập trình phải nắm cú pháp ln ý đến tính tương thích biểu thức mặt kiểu liệu Chính thế, lập trình ngơn ngữ Pascal hội tốt không rèn luyện tư mà cịn rèn luyện tính cẩn thận xác Ngày nay, ngôn ngữ Pascal dùng để viết chương trình ứng dụng nhiều lĩnh vực Với văn phạm sáng sủa, dễ hiểu, với khả đủ mạnh, Pascal xem ngơn ngữ thích hợp để giảng dạy trường phổ thông đại học CẤU TRÚC CỦA CHƯƠNG TRÌNH PASCAL 2.1 Ví dụ mở đầu Để có nhìn tổng quan trước vào vấn đề chi tiết ngôn ngữ Pascal, xin xem chương trình sau: Bài tốn: Viết chương trình để nhập vào độ dài hai cạnh hình chữ nhật, tính in lên hình diện tích chu vi hình chữ nhật Nếu gọi hai cạnh hình chữ nhật a b, gọi diện tích chu vi S P cơng thức tính S P là: S = a*b P = 2*(a+b) 58 Chương trình cụ thể sau: PROGRAM VIDU; {Tinh dien tich va chu vi hinh chu nhat} Uses CRT; Var a, b, S, P: Real; Begin Clrscr; Write( ‘Nhap chieu dai: ‘); Readln(a); Write( ‘Nhap chieu rong: ‘); Readln(b); S:=a*b; P:=2* (a+b); Writeln (‘Dien tich = ‘, S:8:2); Writeln (‘Chu vi = ‘, P:8:2); Readln; End Giải thích dịng chương trình: + {Tinh dien tich va chu vi hinh chu nhat} Đây lời giải, nêu lên mục đích chương trình + Uses CRT; 59 Khai báo sử dụng thư viện CRT Turbo Pascal + Var a, b, S, P: Real; Khai báo bốn biến a, b, S, P có kiểu liệu số thực (Real) + Begin Lệnh bắt đầu chương trình + Clrscr; Lệnh xóa hình + Write(‘Nhap chieu dai: ‘); Lệnh in lên hình câu ‘Nhap chieu dai: ‘nhằm nhắc người dùng nhập vào số đo chiều dài + Readln(a); Lệnh nhập liệu cho biến a + Write( ‘Nhap chieu rong: ‘); Lệnh in lên hình câu ‘Nhap chieu rong: ‘nhằm nhắc người dùng nhập vào số đo chiều rộng + Readln(b); Lệnh nhập liệu cho biến b + S:= a* b; Lệnh tính diện tích S hình chữ nhật + P:= 2*(a+b); Tương tự, lệnh tính chu vi P hình chữ nhật + Writeln(‘Dien tich = ‘, S:8:2); 60 Lệnh in lên hình câu ‘Dien tich= ‘, kế in giá trị biến S Chỉ thị S:8:2 ấn định dành cột hình để in giá trị S, có hai cột để in phần thập phân + Writeln(‘Chu vi = ‘, P:8:2); Lệnh in lên hình câu ‘Chu vi = ‘, kế in giá trị chu vi P có thảy chữ số, có số phần lẻ + Readln; Lệnh dừng hình để xem kết chạy chương trình + End Dấu hiệu kết thúc chương trình 2.2 Cấu trúc chung chương trình Pascal Chương trình dãy câu lệnh thị cho máy cơng việc phải thực Một chương trình Pasccal đầy đủ gồm ba phần chính: + Phần tiêu đề + Phần khai báo + Phần thân chương trình Program Têntựđặt; {Phần tiêu đề} {Phần khai báo } Uses {khai báo sử dụng thư viện chuẩn} Label {khai báo nhãn} Const {khai báo hằng} Type {khai báo kiểu liệu} Var {khai báo biến} Function {khai báo chương trình con} 61 Procedure {hàm thủ tục} {Phần thân chương trình } Begin {Các lệnh} End 2.2.1 Phần tiêu đề chương trình Phần khóa Program, sau khoảng trắng tên người dùng tự đặt, cuối kết thúc dấu chấm phẩy ‘;’ Ví dụ: Program Btap1; hoặc: Program Giai_pt_bac2; Phần tiêu đề chiếm dòng, gọi phần đầu chương trình, khơng có 2.2.2 Phần khai báo Phần khai báo có nhiệm vụ giới thiệu mô tả đối tượng, đại lượng tham gia chương trình, giống ta giới thiệu thành viên 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 liệu mới, khai báo biến, khai báo chương trình Tùy theo yêu cầu cụ thể mà khai báo có khơng Khai báo nhãn (Label) dùng chương trình có sử dụng lệnh nhảy vô điều kiện GOTO Nhược điểm lệnh GOTO làm tính cấu trúc chương trình, thay câu lệnh có cấu trúc Pascal Vì thế, để rèn luyện kỹ lập trình có cấu trúc, khơng dùng lệnh GOTO giáo trình 62 Các thủ tục hàm dùng có nhu cầu thiết kế chương trình lớn, phức tạp Đối với toán nhỏ, đơn giản, việc sử dụng chương trình chưa cần thiết Chi tiết phần trình bày kỹ sau Sau ta điểm qua vài nét khai báo thông dụng a) Khai báo khai báo biến Biến đại lượng có giá trị thay đổi được, cịn Hằng đại lượng có giá trị khơng đổi, chúng dùng chương trình để lưu trữ liệu, tham gia vào biểu thức tính tốn q trình xử lý máy Việc khai báo có tác dụng xác định tên kiểu liệu biến hay Biến thành phần khó thiếu chương trình Để khai báo biến ta dùng từ khóa Var, để khai báo ta dùng từ khóa Const, ví dụ: Const N=10; Var x, y: Real; i, k: Integer; b) Khai báo (định nghĩa) kiểu liệu Ngoài kiểu liệu mà thân ngơn ngữ có sẵn kiểu thực, kiểu ngun, kiểu ký tự, kiểu lơgic, người dùng tự xây dựng kiểu liệu phục vụ cho chương trình mình, phải mơ tả sau từ khóa TYPE Khi định nghĩa kiểu liệu mới, ta khai báo biến thuộc kiểu liệu Ví dụ, ta định nghĩa kiểu liệu có tên Mang: Type Mang = Array[1 10] of Real; Bây khai báo hai biến A B có kiểu liệu kiểu Mang: Var A, B: Mang; 63 c) Khai báo sử dụng thư viện chuẩn Turbo Pascal có sẵn số hàm thủ tục chuẩn, chúng phân thành nhóm theo chức mang tên đặc trưng, gọi thư viện hay đơn vị chương trình (Unit), như: Crt, Graph, Dos, Printer Muốn sử dụng hàm hay thủ tục thư viện nào, ta phải khai báo có sử dụng thư viện đó, lời khai báo phải để sau phần tiêu đề chương trình theo cú pháp: Uses danhsáchthưviện; Ví dụ: thủ tục Clrscr nằm thư viện CRT, nên chương trình mà có dùng lệnh Clrscr, phải khai báo: Uses CRT; Muốn sử dụng hai thư viện CRT GRAPH, ta khai báo: Uses CRT, GRAPH; 2.2.3 Phần thân chương trình Đây phần chủ yếu chương trình, bắt buộc phải có Thân chương trình khóa BEGIN kết thúc END (có dấu chấm cuối) Giữa khối BEGIN END lệnh Mỗi lệnh phải kết thúc dấu chấm phẩy ‘;’ Một lệnh, dài, viết hai hay nhiều dịng, ví dụ: Writeln(‘Phuong trinh co hai nghiem la X1= ‘, X1:8:2,’va X2= ‘, X2:8:2); Ngược lại, dòng viết nhiều lệnh miễn có dấu ‘;’ để phân cách lệnh đó, chẳng hạn: Write(‘Nhap A, B, C: ‘); Readln(A,B,C); Thơng thường dịng nên viết lệnh để dễ đọc, dễ kiểm tra lỗi 64 CÁC PHẦN TỬ CƠ BẢN CỦA PASCAL 3.1 Tập ký tự Mỗi ngôn ngữ xây dựng từ tập ký tự Nhiều ký tự nhóm lại với tạo nên từ Nhiều từ liên kết với theo qui tắc ngữ pháp định (gọi văn phạm) tạo nên mệnh đề Trong ngôn ngữ thảo chương, mệnh đề gọi câu lệnh Một tập hợp câu lệnh xếp theo trật tự định nhằm thị cho máy thao tác phải thực tạo thành chương trình Các chương trình soạn thảo người thảo chương lưu trữ đĩa dạng tập tin Ngôn ngữ Pascal xây dựng ký tự bản, gồm: + Các chữ latinh: A, B, C, ,Z, a, b, c, , z + Các chữ số: 0, 1, 2, 3, 4, 5, 6, 7, 8, + Các ký hiệu đặc biệt: +, -, *, /, =,