NGÔN NGỮ LẬP TRÌNH PASCAL 4 CÂU LỆNH CỦA NGÔN NGỮ LẬP TRÌNH PASCAL Sau khi đã có sơ đồ khối của giải thuật ta bắt đầu đi viết chương trình Việc viết chương trình là công việc chuyển từ sơ đồ khối sang[.]
4 CÂU LỆNH CỦA NGƠN NGỮ LẬP TRÌNH PASCAL Sau có sơ đồ khối giải thuật ta bắt đầu viết chương trình Việc viết chương trình công việc chuyển từ sơ đồ khối sang chương trình Việc chuyển thực cách viết câu lệnh tương ứng với đoạn sơ đồ khối tất đoạn chuyển sang mã lệnh cơng việc hồn tất Các đoạn sơ đồ khối chuyển sang thành câu lệnh Các câu lệnh Turbo Pascal chia làm loại gồm câu lệnh đơn giản phức tạp Các câu lệnh đơn giản ứng với sơ đồ khối hình chữ nhật, cịn câu lệnh phức tạp đoạn sơ đồ chứa hình thoi 1.Câu lệnh đơn giản Các câu lệnh đơn giản tương ứng với hình chữ nhật CVA Các câu lệnh đơn giản bao gồm câu lệnh gán câu lệnh gọi chương trình 1.1 Câu lệnh gán Ngơn ngữ lập trình Pascal Lệnh gán tương ứng với sơ đồ khối sau: = :=; Biến biểu thức phải có kiểu với Ví dụ 4.1: Khi sơ đồ khối cịn lại hình chữ nhật chuyển sang viết chương trình Các biến chương trình tìm thấy chương trình Kiểu biến phụ thuộc vào giá trị toán cụ thể Var a:integer; b:integer; x:integer; y:real; Begin a:=5; b:=10; x:=a+2*b; y:=(x+2*b)/3; End Chương 4: Câu lệnh ngơn ngữ lập trình Pascal Chú ý: Trong ví dụ chương trình có câu lệnh câu lệnh câu lệnh chương trình viết chương trình ta ý phải viết lùi vào so với Begin End khoảng dấu cách Các viết để giúp ta dễ dàng kiểm tra chương trình mục đích viết chương trình đẹp vấn đề phụ 1.2 Câu lệnh gọi chương trình Sơ đồ khối hình chữ nhật mà sơ đồ khối lệnh gán sơ đồ khối câu lệnh gọi chương trình CVA CVA; Chương trình tập hợp thao tác nhằm giải toán tốn tổng qt Chương trình tạo Turbo Pascal người lập trình khai báo định nghĩa Chương trình người lập trình khai báo định nghĩa giới thiệu kỹ chương Chương trình Turbo Pascal cung cấp bao gồm nhiều chương trình con, vài chương trình số giới thiệu đoạn sau 1.2.1 Thủ tục hiển thị liệu hình Sơ đồ khối câu lệnh gọi thủ tục hiển thị liệu hình là: Hiển thị BT1,BT2 BTn Write(BT1,BT2, ,BTn); Writeln(BT1,BT2, ,BTn); Biểu thức BTi biểu thức có kiểu Các biểu thức phân tách dấu phẩy Khi chương trình thực đến câu lệnh máy tính tính giá trị tất n biểu thức hiển thị n giá trị biểu thức theo thứ tự viết câu lệnh vị trí dấu nhắc hình Sau hiển thị n giá trị xong vị trí dấu nhắc hiển thị sau giá trị biểu thức cuối thủ tục write vị trí dấu nhắc nằm vị trí đầu hàng thủ tục writeln Ngơn ngữ lập trình Pascal Màn hình hệ điều hành MS_DOS lưới gồm 2580 ô vuông, ô vuông dùng để thị ký tự Tại thời điểm ta làm việc với vng xuất dấu nhắc Ví dụ 4.2: Cho a=5, b=2 Write('abcde',a*5,b); Hình 4.1:Màn hình hiển thị Thủ tục hiển thị ví dụ 4.2 bao gồm tham số phân cách dấu phải Kết chương trình abcde252, hiển thị giá trị cạnh này, người xem kết khơng thể phân biệt giá trị với nhau, ví dụ khơng thể biết kết gồm giá trị, thơng thường hiển thị để giá trị tách ta phải chèn thêm dấu cách vào giá trị độc lập Có cách khác cho phép hiển thị theo ý muốn dùng cách định dạng hiển thị trước: Write(BT [:] [:]); Trong đó, số ô vuông đặt trước để hiển thị giá trị biểu thức, tham số dùng biểu thức số thực, tham số số chữ số đằng sau dấu phẩy, giá trị BT có số chữ số sau dấu phẩy lớn tham số giá trị biểu thức làm trịn Thủ tục hiển thị có tham số thực hiển thị hình giá trị biểu thức cách dành ô vuông để viết giá trị từ phải qua trái, BT biểu thức số thực viết Ví dụ 4.3: Cho a=15, b=12.25564802 Write(a*5:5,b:8:3); Chương 4: Câu lệnh ngôn ngữ lập trình Pascal Hình 4.2: Màn hình kết ví dụ 4.3 Ví dụ 4.4: Cho i=5, j=4 Write(' a[',i,',',j,'] = '); Hình 4.3: Màn hình kết ví dụ 4.4 Ví dụ 4.5: Viết chương trình sơ đồ khối sau: Var a,b,x:integer; y:real; Begin a:=5; b:=10; x:=a+2*b; y:=(x+2*b)/3; write(x:5,y:8:2); End Ngơn ngữ lập trình Pascal Thủ tục Writeln khơng có tham số thực việc chuyển vị trí dấu nhắc đầu dịng 1.2.2 Thủ tục nhập liệu từ bàn phím Sơ đồ khối câu lệnh gọi thủ tục nhập liệu từ bàn phím: Readln(B1,B2, ,Bn); Nhập B1,B2 Bn Các biến Bi có kiểu bất kỳ, biến phân tách dấu phẩy Khi chương trình thực đến thủ tục dừng lại chờ người sử dụng đánh vào n giá trị phân biệt ấn phím Enter, n giá trị chuyển vào n biến theo thứ tự liệt kê thủ tục Các giá trị phải phân biệt dấu cách xuống dịng Ví dụ 4.6: Viết chương trình sơ đồ khối sau: Var a,b,x:integer; y:real; Begin Readln(a,b); x:=a+2*b; y:=(x+2*b)/3; write(x:5,y:8:2); End Thủ tục Readln khơng có tham số thực việc dừng chương trình chờ người sử dụng ấn phím Enter để tiếp tục Thơng thường dùng thủ tục để dừng lại xem kết chương trình Chương 4: Câu lệnh ngơn ngữ lập trình Pascal 1.2.3 Các chương trình khác a Thủ tục xố hình Tên thủ tục: Clrscr; Muốn sử dụng thủ tục phải khai báo sử dụng thư viện crt b Các hàm toán học siêu việt Các hàm khác với thủ tục hàm phải nằm biểu thức thực chất hàm giá trị - Hàm exp(x): Hàm ex - Hàm ln(x) - Hàm asb(x): Hàm |x| - Hàm sqrt(x): Hàm bậc x - Hàm cos(x) - Hàm sin(x) - Hàm arctan(x): Hàm arctg(x) - Hàm round(x): Hàm lấy phần nguyên x - Hàm chr(n): Hàm lấy ký tự thứ n bảng ASCII - Hàm ord(ch): Hàm lấy số thứ tự ký tự ch bảng ASCII - Hàm odd(n): Hàm trả lại giá trị True n chẵn, ngược lại False Các câu lệnh phức tạp Các câu lệnh phức tạp câu lệnh tương ứng với đoạn sơ đồ khối có chứa hình thoi Các câu lệnh phức tạp chia làm nhóm câu lệnh: câu lệnh rẽ nhánh câu lệnh lặp Khi sơ đồ khối có hình thoi ta chưa thực viết chương trình ln mà phải thực việc chuyển hình thoi sang câu lệnh phức tạp cịn hình chữ nhật ta thực viết chương Ngơn ngữ lập trình Pascal trình Sau quy trình để chuyển từ sơ đồ khối có hình thoi sang chương trình: 2.1 Các câu lệnh rẽ nhánh Các câu lệnh rẽ nhánh chia làm câu lệnh: câu lệnh rẽ nhánh câu lệnh rẽ nhiều nhánh Trong thực tế chủ yếu sử dụng câu lệnh rẽ nhánh 2.1.1 Câu lệnh rẽ nhánh Sơ đồ khối lệnh rẽ nhánh: if (ĐK) then begin S1; S2; Sn; end else begin P1; P2; Pm; end; Chương 4: Câu lệnh ngôn ngữ lập trình Pascal Chú ý: + Các câu lệnh S1,S2, Sn P1,P2, Pm câu lệnh câu lệnh if viết câu lệnh ta quy ước viết lùi vào dấu cách so với câu lệnh if + Câu lệnh trước else khơng phép có dấu chấm phẩy, lỗi thường thấy lập trình + Cả đoạn sơ đồ khối tương ứng với lệnh rẽ nhánh if mặt sơ đồ khối ta đoạn sơ đồ khối hình chữ nhật cơng việc A CVA + Các lệnh bên dấu dương nằm vế câu lệnh if, lệnh bên vế âm nằm bên vế câu lệnh else Ví dụ 4.7: Viết chương trình sơ đồ khối ví dụ 1.3 Trong sơ đồ khối có hình thoi tương ứng với câu lệnh phức tạp, hình thoi chắn có hình thoi nhìn giống dạng đoạn câu lệnh phức tạp, ví dụ đoạn nằm Ngơn ngữ lập trình Pascal 10 khung nét đứt Khung có dạng giống đoạn sơ đồ khối lệnh rẽ nhánh, ta chuyển đoạn sơ đồ khối thành hình chữ nhật CVA if (b=0) then begin write('Phuong trinh vo so nghiem.'); end CVA; else begin write('Phuong trinh vo nghiem.'); end; Sau chuyển đoạn sơ đồ khối thành CVA sơ đồ khối thành: CVA Như với phương pháp ta thực triệt tiêu hình thoi Tiếp đến sơ đồ khối ta cịn lại hình thoi đoạn sơ đồ khối khung nét đứt có hình dạng giống dạng sơ đồ khối lệnh rẽ nhánh Ta thực chuyển đoạn sơ đồ khối sang hình chữ nhật CVB Chương 4: Câu lệnh ngơn ngữ lập trình Pascal 11 if (a=0) then begin CVA; end CVB; else begin x:=-b/a; write(x:6:2); end; Sau chuyển đoạn sơ đồ khối thành CVB sơ đồ khối thành: CVB Như sơ đồ khối cịn lại tồn hình chữ nhật, ta tiến hành viết chương trình với sơ đồ khối Var a,b,x:real; Begin Readln(a,b); CVB; End Bây ta đoạn mã CVB vào chương trình chính, ta đoạn chương trình sau: Ngơn ngữ lập trình Pascal 12 Var a,b,x:real; Begin Readln(a,b); if (a=0) then begin CVA; end else begin x:=-b/a; write(x:6:2); end; End Tiếp đến ta đoạn mã CVA vào chương trình, ta có: Var a,b,x:real; Begin Readln(a,b); if (a=0) then begin if (b=0) then begin write('Phuong trinh vo so nghiem.'); end else begin write('Phuong trinh vo nghiem.'); end; end else begin x:=-b/a; write(x:6:2); end; End Qua phân tích chi tiết ví dụ ta thấy để viết chương trình Pascal cần phải có kiên nhẫn tỉ mỉ người bắt đầu học Qua ví dụ ta thấy để tạo chương trình Pascal hồn tồn khơng phải suy đốn mà hồn tồn dựa sở khoa học vấn đề cốt lõi việc phải xây dựng sơ đồ khối cho tốn Chương 4: Câu lệnh ngơn ngữ lập trình Pascal 13 2.1.2 Câu lệnh rẽ nhiều nhánh Sơ đồ khối lệnh rẽ nhiều nhánh là: Case (BT) of GT1:Begin R1; Rn; GT1:Begin S1; Sk; Else Begin P1; Pm; End; End; Chú ý: + Các câu lệnh Si,Ri,Pi câu lệnh câu lệnh rẽ nhiều nhánh viết câu lệnh ta viết lùi vào so với lệnh case khoảng dấu cách + BT phải biểu thức đếm có kiểu với giá trị GT1,GT2 + Tính từ case đến end; câu lệnh đoạn sơ đồ khối hình chữ nhật cơng việc A Câu lệnh thông thường dùng chương trình có giao diện menu, chương trình liệt kê giá trị biểu thức tồn hữu hạn không lớn Trong lập trình lệnh rẽ nhánh người ta dùng câu lệnh rẽ nhiều nhánh mà người ta chuyển từ sơ đồ khối lệnh rẽ nhiều nhánh thành sơ đồ khối lệnh rẽ hai nhánh Ngơn ngữ lập trình Pascal 14 2.2 Câu lệnh lặp Câu lệnh lặp bao gồm câu lệnh lặp kiểm tra điều kiện trước câu lệnh lặp kiểm tra điều kiện sau phụ thuộc vào vị trí hình thoi vòng lặp 2.2.1 Câu lệnh lặp kiểm tra điều kiện trước Sơ đồ khối lệnh lặp kiểm tra điều kiện trước: While (ĐK) Begin S1; S2; Sn; End; Chú ý: + Các câu lệnh S1,S2 Sn câu lệnh câu lệnh lặp kiểm tra điều kiện trước viết câu lệnh ta viết lùi vào so với lệnh while khoảng dấu cách + Dấu dương vào lệnh lặp dấu âm khỏi lệnh lặp, dấu ngược lại phải đảo điều kiện + Tính từ while đến end; câu lệnh đoạn sơ đồ khối hình chữ nhật cơng việc A Ví dụ 4.8: Viết chương trình với sơ đồ khối ví dụ 1.6 Chương 4: Câu lệnh ngơn ngữ lập trình Pascal 15 Thực bước giống ví dụ 4.7, ta có chương trình sau: Var a,b,k:real; d:integer; Begin Readln(a,b,k); d:=0; while (a