1. Trang chủ
  2. » Công Nghệ Thông Tin

Giáo trình tin học đại cương a1 phần 2 NXB ĐHQG TP HCM

231 220 0

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 231
Dung lượng 1,78 MB

Nội dung

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 toá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 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 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 ý đế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à 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 toá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, 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, 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 toán 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 nguyên, 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: +, -, *, /, =, [...]... 0000 0000 0011= 2 1 AND 2 = 0000 0000 0000 0001= 1 73 4 .2. 5 Các phép dịch chuyển số học SHR và SHL N SHR k: dịch các bít của số nguyên N sang phải đi k bit N SHL k: dịch các bít của số nguyên N sang trái đi k bit Có thể chứng minh được: N SHR k = N div 2k N SHL k = N * 2k Ví dụ: 120 shr 4 = 7, vì: 120 shr 4 = 120 div 24 = 120 div 16 = 7 120 shl 3 = 960, vì: 120 shl 3 = 120 * 23 = 120 * 8 = 960 Hai phép... từ 2. 9*10-39 đến 1.7*10+38 Nếu x > 1.7*10+38 thì không biểu diễn x trong máy được, còn nếu |x| < 2. 9*10-39 thì x được coi là bằng 0 Có hai cách biểu diễn các số thực: * Cách 1: Viết bình thường, trong đó dấu phẩy thập phân được thay bằng dấu chấm thập phân Ví dụ: 45.0 -25 6.45 + 122 .08 * Cách 2: Viết số dưới dạng khoa học: 1 .25 7E+01 (có giá trị = 1 .25 7*101 = 12. 57 ) 125 7.0E- 02 (có giá trị = 125 7*10 -2. .. rời rạc) Dưới đây sẽ lần lượt trình bày kỹ về bốn kiểu dữ liệu đơn giản chuẩn và thông dụng: kiểu nguyên, kiểu thực, kiểu logic, kiểu ký tự Kiểu chuỗi được giới thiệu để có thể sử dụng ngay ở mức đơn giản 4 .2 Kiểu số nguyên 4 .2. 1 68 Các kiểu số nguyên Tên kiểu Phạm vi giá trị Số byte ShortInt - 128 127 1 Byte 0 25 5 1 Integer - 327 68 327 67 2 Word 0 65535 2 LongInt -21 47483648 21 47483647 4 Ngoài kiểu Integer... Số tờ 2 = Số tiền dư div 2 = 3 div 2 =1 Số tờ 1đ = Số tiền dư mod 2 = 3 mod 2 = 1 Dưới đây là chương trình cụ thể: PROGRAM VIDU4_1; {Ðổi tiền} Var N, st5, st2, st1, sodu: LongInt; Begin Write(‘Nhap so tien: ’); Readln(N); st5:= N div 5; Sodu:= N mod 5; {tính phần dư} 71 st2:= Sodu div 2; st1:= Sodu mod 2; Writeln(‘KET QUA DOI TIEN LA: ‘); Writeln(‘So to 5đ= ‘, st5); Writeln(‘So to 2 = ‘, st2); Writeln(‘So... Int( 12. 55) = 12. 0 Int(1+10/3)=4.0 * Hàm FRAC(x): cho số thực bằng phần lẻ của x Ví dụ: Frac( 12. 55) = 0.55 Hai hàm đặc biệt dưới đây cho kết quả là số nguyên: * Hàm TRUNC(x): cho số nguyên là phần nguyên của x 78 Ví dụ: Trunc( 12. 55) = 12 Trunc( -2. 98) = -2 * Hàm ROUND(x): cho số nguyên bằng cách làm tròn x Ví dụ: Round( 12. 45) = 12 Round( -2. 98) = -3 Chú ý rằng hàm Int(x) và hàm Trunc(x) cùng cho phần. .. trị Số byte Real 2. 9*10-39 1.7*1038 6 Single 1.5*10-45 3.4*1038 4 Double 5.0*10- 324 1.7*10308 8 Extended 3.4*10-49 32 1.1*1049 32 10 Comp -9 .2* 1018 9 .2* 1018 8 + Chú ý: Turbo Pascal thường chỉ làm việc với một kiểu Real Muốn dùng bốn kiểu thực còn lại, phải chuyển sang mode 8087 bằng cách viết chỉ thị {$N+} ở ngay đầu chương trình 4.3 .2 Các phép toán trên số thực Có bốn phép toán số học là nhân (*), chia... biểu thức sau: 15 mod (2 +4) * 20 div (10 div 4) + 40 mod ( 5* 3) = 15 mod 6 * 20 div 2 + 40 mod 15 = 3 * 20 div 2 + 10 = 60 div 2 + 10 = 30 + 10 = 40 * Ví dụ sau đây là một ứng dụng của các phép toán div, mod: + Ví dụ: Nhập một số tiền N đồng, đổi ra xem được bao nhiêu tờ 5 đồng, bao nhiêu tờ 2 đồng, bao nhiêu tờ 1 đồng sao cho tổng số tờ là ít nhất Ví dụ N = 43đ = 8 tờ 5đ + 1 tờ 2 + 1 tờ 1đ Cách tính... chương trình, nếu nhập x = 0 thì kết quả y = 0 .25 0 và z = 1.000 4.4 Kiểu ký tự (char) 4.4.1 Ký tự và biến kiểu ký tự Ký tự 80 Mã ASCII Ký tự Mã ASCII Ký tự Mã ASCII 32 A 65 a 97 0 48 B 66 b 98 1 49 C 67 c 99 2 50 D 68 d 100 3 51 E 69 f 101 4 52 F 70 e 1 02 5 53 G 71 g 103 6 54 H 72 h 104 7 55 I 73 i 105 8 56 J 74 j 106 9 57 K 75 k 107 L 76 l 108 M 77 m 109 N 78 n 110 O 79 o 111 P 80 p 1 12 Q 81 q 113 R 82. .. 119 81 X 88 x 120 Y 89 y 121 Z 90 z 122 Các ký tự dùng trong máy tính điện tử được liệt kê đầy đủ trong bảng mã ASCII gồm 25 6 ký tự khác nhau và được đánh số thứ tự từ 0 đến 25 5 Số thứ tự của mỗi ký tự còn gọi là mã ASCII của ký tự đó Bảng trên liệt kê một phần của bảng mã ASCII gồm các chữ số và chữ cái kèm theo mã của chúng Trong bảng, ký tự có mã bằng 32 là ký tự trắng (space) Tuy có 25 6 ký tự khác... A:=Not (2* 3=5) or (‘A’1); thì giá trị của A= FALSE, thật vậy: Not (2* 3=5) or (‘A’1) = TRUE or TRUE and FALSE xor TRUE = TRUE or FALSE xor TRUE = TRUE xor TRUE = FALSE Biến chỉ nhận giá trị là TRUE hoặc FALSE gọi là biến kiểu lôgic Khi khai báo biến kiểu lôgic ta dùng từ khóa Boolean, ví dụ: Var A, B: Boolean; Trong chương trình ta ... -25 6.45 + 122 .08 * Cách 2: Viết số dạng khoa học: 1 .25 7E+01 (có giá trị = 1 .25 7*101 = 12. 57 ) 125 7.0E- 02 (có giá trị = 125 7*10 -2 = 12. 57 ) Trong dạng số gồm có hai phần, phần đứng trước E gọi phần. .. 2k Ví dụ: 120 shr = 7, vì: 120 shr = 120 div 24 = 120 div 16 = 120 shl = 960, vì: 120 shl = 120 * 23 = 120 * = 960 Hai phép toán SHR SHL dùng muốn tăng tốc độ tính toán số nguyên 4 .2. 6 Các hàm... Program Giai_pt_bac2; Phần tiêu đề chiếm dòng, gọi phần đầu chương trình, 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

Ngày đăng: 04/12/2015, 04:19

TỪ KHÓA LIÊN QUAN

w