Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 21 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
21
Dung lượng
208 KB
Nội dung
Tài Liệu Bồi Dưỡng Học Sinh Giỏi Tin học THCS Chương CÁC THÀNH PHẦN CƠ BẢN CỦA NGÔN NGỮ LẬP TRÌNH PASCAL Pascal ngơn ngữ lập trình bậc cao Niklaus Wirth, giáo sư điện toán trường Đại học kỹ thuật Zurich (Thụy Sĩ) đề xuất năm 1970 Ơng lấy tên Pascal để kỷ niệm nhà tốn học nhà triết học người Pháp tiếng Blaise Pascal Các tập tin cần thiết lập trình với Turbo Pascal Để lập trình với Turbo Pascal, tối thiểu cần file sau: TURBO.EXE: Dùng để soạn thảo dịch chương trình TURBO.TPL: Thư viện chứa đơn vị chuẩn để chạy với TURBO.EXE Ngoài ra, muốn lập trình đồ hoạ phải cần thêm tập tin: GRAPH.TPU: Thư viện đồ hoạ *.BGI: Các file điều khiển loại hình tương ứng dùng đồ hoạ *.CHR: Các file chứa font chữ đồ họa Các bước lập chương trình Pascal Bước 1: Soạn thảo chương trình Bước 2: Dịch chương trình (nhấn phím F9), có lỗi phải sửa lỗi Bước 3: Chạy chương trình (nhấn phím Ctrl + F9) Cấu trúc chung chương trình Pascal Program ; Uses Crt; {Khai báo thư viện hàm} Const = ; {Khai báo hằng} Var , : ; {Khai báo biến} Begin Clrscr; { Lệnh xóa hình kết } Write(‘’); Readln(); { Nếu cần} {Xử lĩ kết quả} Writeln(‘’,); { Nếu cần} Readln; {Giữ hình kết quả} End Giải thích cấu trúc khai báo trên: Nếu có phần khai báo cần cho chương trình phải tn theo thứ tự trên, ví dụ: phần khai báo thư viện (USES) đặt sau phần khai báo số (CONST) sau (VAR) sau phần khai báo phải có dấu ‘;’ - Program: Từ khoá dùng để khai báo tên chương trình Tên chương trình phải tuân theo quy tắc: + Khơng có ký tự trống xen + Khơng đặt số ký tự + Trong phần tên không chứa ký tự đặt biệt như: ‘!’, ‘@’, ‘#’, ‘$’, ‘%’, ‘^’, ‘&’, ‘* ’, ‘(‘, ‘)’, ‘-‘, ‘+’, ‘/’, ‘\’, ‘.’, ’,’,.v.v + Kết thúc phải có dấu ‘;’ + Phần khơng có - Uses: Từ khoá dùng để khai báo việc sử dụng Unit (thư viện) cho chương trình - Const: Từ khoá dùng để khai báo số sử dụng chương trình, báo số việc cố định vài giá trị chương trình thơng qua tên hằng, ví dụ cách khai báo hằng: - Var: Từ khoá dùng để khai báo biến số sử dụng chương trình Biến số giá trị thay đổi suốt trình chạy chương trình Khái niệm biến số quan trọng việc lập trình (khái niệm trình bày kỹ 3) Một ví dụ cách khai báo biến: Var HoDem, Ten : String; N : Integer; Ghi chú: - Thứ tự khai báo điều bắt buộc, ta phải nắm thứ tự cho dù số khái niệm ta chưa biết Trong chương trình Pascal, để tạo lời thích, ta sử dụng cặp dấu { } (* *) lồng câu thích vào bên Tài Liệu Bồi Dưỡng Học Sinh Giỏi Tin học THCS - Trên dịng viết nhiều câu lệnh Các lệnh cách dấu chầm phẩy Ví dụ : Program GioiThieu; Begin Writeln ( ‘Truong THCS Luong Tam‘ ); Write ( ‘Ap – Luong Tam – Long My – Hau Giang‘ ); End Các thao tác soạn thảo chương trình - F2: Lưu chương trình soạn thảo - F3: Tạo file mở file cũ - F9: Dịch thử chương trình để kiểm tra lỗi - Ctrl - F9: Chạy chương trình - Alt - F5: Xem kết chạy chương trình - Alt - X: Thốt khỏi hình soạn thảo chương trình Pascal Insert: Chuyển qua lại chế độ đè chế độ chèn Home: Đưa trỏ đầu dòng End: Đưa trỏ cuối dòng Page Up: Đưa trỏ lên trang hình Page Down: Đưa trỏ xuống trang hình Del: Xố ký tự vị trí trỏ Back Space (): Xóa ký tự bên trái trỏ Ctrl-PgUp: Đưa trỏ đầu văn Ctrl-PgDn: Đưa trỏ cuối văn Ctrl-Y: Xóa dịng vị trí trỏ Các thành phần phần khai báo chương trình a Từ khóa Các từ khoá từ dùng để khai báo, đặt tên cho đối tượng Pascal, ta đặt tên cho đối tượng đó, khơng đặt trùng tên với từ khố Bảng từ khố ngơn ngữ Pascal gồm: and, array, begin, case, const, div, do, downto, else, end, file, for, function, goto, if, in, label, mod, nil, not, object, of, or, procedure, program, record, repeat, set, string, then, to, type, unit, until, uses, var, while, with Turbo Pascal không phân biệt ký tự thường hoa Ví dụ, cách viết sau có ý nghĩa nhau: Begin, BEGIN, begin, beGIN, bEGIN, b Tên (định danh) Tên (định danh) dãy ký tự dùng để đặt tên cho hằng, biến, kiểu, tên chương trình Khi đặt tên, ta phải ý số điểm sau: Không đặt trùng tên với từ khoá Ký tự tên không bắt đầu ký tự đặc biệt chữ số Không đặt tên với ký tự space, ‘!’, ‘@’, ‘#’, ‘$’, ‘%’, ‘^’,‘&’, ‘* ’, ‘(‘, ‘)’, ‘-‘, ‘+’, ‘/’, ‘\’, ‘.’, ’,’,.v.v c Hằng - Hằng đại lượng có giá trị khơng thay đổi suốt chương trình - Cú pháp khai báo: CONST = ; Ví dụ: CONST Max = 100; Name = 'Tran Van Hung'; Continue = FALSE; d Biến - Biến đại lượng mà giá trị thay đổi q trình thực chương trình - Cú pháp khai báo: VAR ,, : ; Tài Liệu Bồi Dưỡng Học Sinh Giỏi Tin học THCS Ví dụ: VAR x, y: Real; {Khai báo hai biến x, y có kiểu Real} a, b: Integer; {Khai báo hai biến a, b có kiểu integer} Các thành phần phần thân chương trình a Biểu thức: Biểu thức (expression) cơng thức tính tốn mà bao gồm phép tốn, hằng, biến, hàm dấu ngoặc đơn Ví dụ: (x +sin(y))/(5-2*x) biểu thức số học (x+4)*2 = (8+y) biểu thức logic Trong biểu thức, thứ tự ưu tiên phép toán liệt kê theo thứ tự sau: Dấu ngoặc ( ) Phép toán ngơi (NOT, -) Phép tốn *, /, DIV, MOD, AND Phép toán +, -, OR, XOR Phép toán so sánh =, , =, , IN Chú ý: Một hăng, biến, hàm xem biểu thức, biểu thức đơn giản b Câu lệnh Câu lệnh đơn giản - Câu lệnh gán (:=): :=; - Các lệnh xuất nhập liệu: READ/READLN, WRITE/WRITELN Câu lệnh có cấu trúc - Câu lệnh ghép: BEGIN END; - Các cấu trúc điều khiển: IF , CASE , FOR , REPEAT , WHILE Lệnh xuất liệu: Để xuất liệu hình, ta sử dụng ba dạng sau: (1)WRITE( [, , ]); (2)WRITELN( [, , ]); (3)WRITELN; Các thủ tục có chức sau: (1) Sau xuất giá trị tham số hình trỏ khơng xuống dịng (2) Sau xuất giá trị tham số hình trỏ xuống đầu dịng (3) Xuất hình dịng trống Các tham số hằng, biến, biểu thức Nếu có nhiều tham số câu lệnh tham số phải phân cách dấu phẩy Nhập liệu: Để nhập liệu từ bàn phím vào biến có kiểu liệu chuẩn (trừ biến kiểu BOOLEAN), ta sử dụng cú pháp sau đây: READLN( [,, ,]); Chú ý: Khi gặp câu lệnh READLN; (khơng có tham số), chương trình dừng lại chờ người sử dụng nhấn phím ENTER chạy tiếp Tài Liệu Bồi Dưỡng Học Sinh Giỏi Tin hoïc THCS Chương CÁC KIỂU DỮ LIỆU CƠ BẢN I KIỂU LOGIC - Kiểu logic kiểu biểu diễn hai trạng thái (True) sai (False) Từ khoá để khai báo cho kiểu logic BOOLEAN - Các phép toán: phép so sánh (=, ) phép toán logic: AND, OR, XOR, NOT Trong Pascal, so sánh giá trị boolean ta tuân theo qui tắc: FALSE < TRUE Giả sử A B hai giá trị kiểu Boolean Kết phép toán thể qua bảng đây: A TRUE TRUE FALSE FALSE B TRUE FALSE TRUE FALSE A AND B TRUE FALSE FALSE FALSE A OR B TRUE TRUE TRUE FALSE A XOR B FALSE TRUE TRUE FALSE NOT A FALSE FALSE TRUE TRUE Ví dụ: Var Co : Boolean; Co := True; II KIỂU SỐ NGUYÊN a Các kiểu số nguyên Tên kiểu Phạm vi Dung lượng Shortint byte -128 127 Byte byte 255 Integer byte -32768 32767 Word byte 65535 LongInt byte -2147483648 2147483647 b Sử dụng hàm Random(n) để lấy số ngẫu nhiên: Hàm Random(n) trả giá trị nguyên mà máy lấy ngẫu nhiên có giá trị từ đến n Trong đó, n số kiểu Word tức khoản từ 65535 Trước sử dụng hàm Random ta phải gọi thủ tục Randomize để khởi tạo tạo số ngẫu nhiên Ví dụ: Var so : Integer; … Randomize so := Random(1000); c Các phép toán kiểu số nguyên Các phép toán số học: +, -, *, / (phép chia cho kết số thực) Phép chia lấy phần nguyên: DIV (Ví dụ : 34 DIV = 6) Phép chia lấy số dư: MOD (Ví dụ: 34 MOD = 4) III KIỂU SỐ THỰC a Các kiểu số thực Tên kiểu Phạm vi Dung lượng -45 +38 Single byte 1.510 3.410 -39 +38 Real byte 2.910 1.710 -324 +308 Double byte 5.010 1.710 -4932 +4932 Extended 10 byte 3.410 1.110 b Các phép toán kiểu số thực: +, -, *, / Chú ý: - Trên kiểu số thực không tồn phép tốn DIV MOD Tài Liệu Bồi Dưỡng Học Sinh Giỏi Tin học THCS - Biến số thực nhận giá trị nguyên Nhưng biến số nguyên không nhận giá trị thực c Các hàm số học sử dụng cho kiểu số nguyên số thực: SQR(x): Trả x2 SQRT(x): Trả bậc hai x (x0) ABS(x): Trả |x| SIN(x): Trả sin(x) theo radian COS(x): Trả cos(x) theo radian ARCTAN(x): Trả arctang(x) theo radian LN(x): Trả ln(x) EXP(x): Trả ex TRUNC(x): Trả số nguyên gần với x bé x INT(x): Trả phần nguyên x FRAC(x): Trả phần thập phân x ROUND(x): Làm tròn số nguyên x PRED(n): Trả giá trị đứng trước n SUCC(n): Trả giá trị đứng sau n ODD(n): Cho giá trị TRUE n số lẻ INC(n): Tăng n thêm đơn vị (n:=n+1) DEC(n): Giảm n đơn vị (n:=n-1) IV KIỂU KÍ TỰ - Tên kiểu: Char (Kích thước: byte) - Để biểu diễn ký tự, ta sử dụng số cách sau đây: Đặt ký tự cặp dấu nháy đơn Ví dụ kt:='A'; Chuso:= '0'; Dùng hàm CHR(n) (trong n mã ASCII ký tự cần biểu diễn, bảng mã ASCII có 255 kí tự ) Ví dụ CHR(65) biễu diễn ký tự 'A' * Các phép toán: =, >, >=, ELSE < Câu lệnh 2>; Giải thích lệnh: Khi gặp lệnh máy kiểm tra < Điều kiện> biểu thức có giá trị TRUE (tức điều kiện đặt ra) máy thực ngược lại, tức có giá trị FALSE thực Trường hợp câu lệnh khơng có phần ELSE có giá trị FALSE không thực máy chuyển đến câu lệnh kế sau lệnh IF Chú ý: Trước từ khóa ELSE khơng đựơc có dấu ‘;‘ Trường hợp có câu lệnh ghép đựơc đặt kế trước ELSE từ khố END trước ELSE khơng đặt dấu ‘;‘ Ví dụ 1: Chương trình nhập từ bàn phím số nguyên a, b Kiểm tra cho biết số lớn Var a, b : Integer; Begin Write( ‘ Nhap so a: ‘ ); Readln(a); Write( ‘ Nhap so b: ‘ ); Readln(b); If a > b then Write( ‘ So lon hon la ‘, a) { vị trí khơng đặt dấu; } Else Write( ‘ So lon hon la ‘, b); Readln; End Ví dụ 2: Viết chương trình kiểm tra ba số a, b, c nhập từ bàn phím, số lớn Var a, b, c, max : Integer; Begin Write( ‘ Nhap so a: ‘ ); Readln(a); Write( ‘ Nhap so b: ‘ ); Readln(b); Write( ‘ Nhap so c: ‘ ); Readln(c); Max := a; If max < b thenMax := b; If max < c then Max := c; Write( ‘ So lon hon la ‘, max); Readln; End Lệnh CASE Tài Liệu Bồi Dưỡng Học Sinh Giỏi Tin học THCS Cú pháp: Dạng CASE B OF Hằng 1: S1; Hằng 2: S2; Hằng n: Sn; END; Dạng CASE B OF Hằng 1: S1; Hằng 2: S2; Hằng: Sn; ELSE Sn+1; END; Trong đó: B: Biểu thức kiểu vơ hướng đếm kiểu nguyên, kiểu logic, kiểu ký tự, kiểu liệt kê Hằng i: giá trị hằng, giá trị (phân cách dấu phẩy) đoạn (dùng hai dấu chấm để phân cách giá trị đầu giá trị cuối) Giá trị biểu thức giá trị tập i (i=1¸n) phải có kiểu Khi gặp lệnh CASE, chương trình kiểm tra: - Nếu giá trị biểu thức B nằm tập Hằng i máy thực lệnh Si tương ứng - Ngược lại: + Đối với dạng 1: Khơng làm + Đối với dạng 2: thực lệnh Sn+1 Ví dụ: Viết chương trình nhập vào điểm kiểm tra từ bàn phím in kết xếp loại: loại Yếu (dưới điểm), loại Trung bình (5, điểm), loại Khá (7, điểm), loại Giỏi (9, 10 điểm) Var Diem : Byte; Begin Write( ‘ Nhap diem : ’); Readln(Diem); Case Diem of : Write( ‘ Xep loai yeu ‘ ); : Write( ‘ Xep loai Trung binh ‘ ); : Write( ‘ Xep loai Kha ‘ ); 10: Write( ‘ Xep loai Gioi ‘ ); Else Write( ‘ Diem nhap sai ‘ ); End; Readln; End III CÂU LỆNH LẶP Trường hợp để giải tốn mà ta cần phải lặp lặp lại cơng việc ta cần đến lệnh lặp Số bước lặp xác định khơng xác định Trong ngơn ngữ Pascal có ba câu lệnh lặp FOR, REPEAT, WHILE Nếu số vịng lặp xác định ta sử dụng lệnh FOR cịn vịng lặp khơng xác định ta sử dụng lệnh REPEAT WHILE Tất loại lệnh lặp phải có điểm dừng, cho dù loại xác định hay khơng xác định Vịng lặp xác định (For) a Dạng tiến: Cú pháp: FOR := TO DO < Câu Lệnh >; cấu trúc FOR gọi biến điều khiển Kiểu biến điều khiển kiểu số nguyên, , phải kiểu vô hướng đếm (số nguyên, kí tự…) Giải thích hoạt động lệnh FOR dạng tiến: B1: Đầu tiên, Biến nhận giá trị biểu_ thức1 B2: Máy kiểm tra Biến có nhỏ biểu_ thức2 hay khơng tức xét điều kiện (Biến = Biểu_ thức2) ? B3: Nếu điều kiện sai máy khỏi vịng lặp FOR để thực lệnh sau vòng lặp FOR Nếu điều kiện thực hiện, sau đó, Biến giảm giá trị quay trở lại bước (2) Lưu ý - Không thay đổi giá trị biến điều khiển lệnh vịng lặp FOR Điều làm cho vịng lặp khơng có lối dân đến treomáy - Các Biểu thức1 Biểu hức2 ước lượng trước vào vịng lặp, số vịng lặp khơng bị thay đổi Ta lợi dụng tính tăng giảm biến điều khiển để gán giá trị cho biến thực cơng việc có tính chất tăng giảm Vịng lặp khơng xác định Dạng REPEAT Dạng WHILE Repeat While B Do S; S; Until B; Ý nghĩa: Dạng REPEAT: Lặp lại công việc S biểu thức B=TRUE dừng Dạng WHILE: Trong biểu thức B=TRUE tiếp tục thực cơng việc S a Câu lệnh REPEAT Cú pháp: REPEAT ; ; ; UNTIL < Biểu thức logic >; Giải thích hoạt động lệnh REPEAT: Đầu tiên, thực lệnh , , , , sau kiểm tra < Biểu thức logic > Nếu < Biểu thức logic > nhận giá trị FALSE lại quay lên đầu vịng lặp thực tiếp , , , Nếu nhận giá trị TRUE máy khỏi vịng lặp Như vậy, lệnh nằm REPEAT UNTIL thực lần Chú ý: - Các lệnh nằm REPEAT UNTIL khơng có từ khố Begin End - Trong vịng lặp phải có lệnh làm thay đổi giá trị biến nhằm làm dừng vịng lặp, khơng vịng lặp chạy khơng ngừng dẫn đến treo máy Ví dụ: Chương trình u cầu nhập vào mật ‘ttthcn’ khỏi chương trình Uses CRT; Var Password : String[6]; Begin Repeat Write( ‘ Xin hay nhap mat khau : ‘ ); Readln(Password); Until Password = ‘ttthcn’; Write( ‘ Ban da nhap dung mat khau ! ‘ ); Delay(1000); Readln; End Tài Liệu Bồi Dưỡng Học Sinh Giỏi Tin học THCS Giải thích lệnh: Delay(1000): Thủ tục Delay(n) thủ tục Unit CRT tức dừng khoản thời gian 1000 xung nhịp máy, vậy, tùy theo tốc độ máy mà có khoản thời gian thực dừng lại khác b Câu lệnh While: Cú pháp: WHILE < Biểu thức logic > DO < Lệnh >; Giải thích lệnh: Gặp lệnh trước tiên máy kiểm tra < Biểu thức logic >, có giá trị TRUE thực < Lệnh > sau quay lại kiểm tra < Biểu thức logic > trình tiếp tục Nếu < Biểu thức logic > nhận giá trị FALSE máy khỏi vịng lặp Như lệnh WHILE dùng để lặp lặp lại công việc điều kiện thỏa mãn Ghi chú: Nếu từ vào vòng lặp mà thấy điều kiện không thỏa mãn, máy tự động mà khơng thực < Lệnh > bên vịng lặp Ví dụ: Chương trình tìm ước số chung lớn hai số nguyên Var a, b, r : Integer; tl : Char; Begin Repeat Write( ‘ Nhap hai so a va b : ‘ ); Readln(a, b); While b Begin r := a mod b; a := b; b := r; End; Writeln( ‘ Uoc so chung lon nhat la ‘ , a ); Write( ‘ Ban tim USCLN nua khong (C/K) ? ); Readln(tl); Until Upcase(tl) = ‘K’; End Tài Liệu Bồi Dưỡng Học Sinh Giỏi Tin học THCS Chương DỮ LIỆU KIỂU MẢNG (ARRAY) I KHÁI NIỆM Mảng (Array) kiểu liệu có cấu trúc bao gồm số cố định thành phần có kiểu, có tên chung Các thành phần mảng truy xuất thơng qua số Ví dụ: Mảng A gồm năm phần tử: A[1]=7, A[2]=9, A[3]=0, A[4]= -2, A[5]=3: Công dụng mảng dùng để lưu trữ dãy số liệu có tính chất Ví dụ: điểm kiểm tra mơn học học sinh, giá trị dãy số nhập từ bàn phím II KHAI BÁO MẢNG Mảng Một chiều a Khai báo mảng chiều: Var Tên_ biến_ mảng : ARRAY [1 n] OF Kiểu phần Tử; Trong đó: - Kiểu phần tử kiểu liệu phần tử mảng (Integer, real, string, …) - n danh sách số để truy cập đến thành phần mảng Ví dụ: Var ch : Array[0 25] of Char; Th : Array[-2 4] of Real; b Truy cập câc phần tử mảng: Việc truy nhập vào phần tử biến mảng thực hiệnh qua tên biến mảng, theo sau giá trị số đặt dấu [ ] Ví dụ: Ch[2] := ’B’; Th[1] := 12.5; c Ví dụ : Nhập n số thực từ bàn phím vào mảng, tính trung bình cộng số Uses CRT; Var i,n : Integer; s : Real; a : Array[1 100] of Real; Begin ClrScr; Write( ‘ Ban muon nhap bao nhieu PT cho mang : ‘ ); Readln(n); For i := to n Begin Write( ‘A[ ‘ , i , ‘ ]= ’ ); Readln(a[i]); End; s := 0; For i := to n s := s + a[i]; Write( ‘ Trung binh cong cua day so = ‘ , s / n : : ); Readln; End Mảng Hai Chiều a Khai báo Việc khai báo mảng hai chiều giống mảng chiều, có điều khác có hai tập số viết cách dấu ‘,’ Ví dụ: Var A : Array[1 30, 50] of Integer; B : Array[1 3, 3] of Real; b Truy cập câc phần tử mảng: Số phần tử mảng số thực B x = (phần tử), đặt nhớ theo thứ tự sau: B[1, 1] B[1, 2] B[1 ,3] B[2, 1] B[2, 2] B[2 ,3] 10 Tài Liệu Bồi Dưỡng Học Sinh Giỏi Tin học THCS B[3, 1] B[3, 2] B[3 ,3] Chú ý: Mảng hai chiều gọi ma trận Trong ví dụ trên, B ma trận cấp 3x Trong mảng hai chiều, số sau truy cập nhanh số trước Để truy cập đến phần tử hàng thứ i, cột thứ j mảng hai chiều B ta dùng cách viết: B[ i ][ j ] B[ i , j ] c Ví dụ: Nhập ma trận m hàng, n cột từ bàn phím Tính in hình tổng cột tổng hàng Var n, m, i, j : Integer; sum : Real; a : Array[1 30, 30] of Real;Begin BEGIN Write( ‘ Ban muon nhap ma tran bao nhieu hang va cot ? ‘ ); Readln( m, n ); For i := to m For j := to n Begin Write( ' PT thu [ ' , i , ' , ‘ , j, ‘ ] = ' ); Readln( a[ i, j ] ); End; For j := to n Begin sum := 0; For i := to m Sum := sum + a[ i, j ]; Write( ‘ Tong cot ‘ , j ,’ = ‘ , sum : : ); End; For i := to m Begin sum := 0; For j := to n Sum := sum + a[ i, j ]; Write( ‘ Tong hang ‘ , i ,’ = ‘ , sum : : ); End; Readln; END 11 Tài Liệu Bồi Dưỡng Học Sinh Giỏi Tin học THCS Chương XÂU KÝ TỰ (STRING) I KHAI BÁO KIỂU STRING Xâu (String) kiểu liệu có cấu trúc dùng để xử lý xâu ký tự Kiểu String có nhiều điểm tương tự kiểu mảng (Array) có điểm khác là: số ký tự biến kiểu xâu thay đổi cịn số phần tử kiểu mảng cố định Cú pháp: VAR Tên biến : STRING[Max]; Trong Max số ký tự tối đa chứa chuỗi (Max [0,255]) Nếu khơng có khai báo [Max] số ký tự mặ mặc định chuỗi 255 Ví dụ: Var Name : String[50]; St : String; {St có tối đa 255 ký tự} II TRUY XUẤT DỮ LIỆU KIỂU STRING Muốn in xâu ký tự ta dùng lệnh Write(St) Writeln(St) Lệnh Readln(St) đọc ký tự cho xâu St với độ dài thực số ký tự gõ vào từ bàn phím Nếu ta gõ < Enter > mà không nhập cho ký tự St xâu rỗng Ví dụ: Var ten, st1, st2 : String[40]; Begin Write( ‘ Vui long nhap ten cua ban: ‘ ); Readln(ten); Writeln( ‘ Hello ‘, ten, ‘ ! ‘ ); st1 := ‘ Turbo Pascal ‘; st2 := ‘ Borland’’s product is ‘ + st1; Writeln(st2); Readln; End Lưu ý: Để truy xuất đến ký tự thứ k xâu ký tự, ta sử dụng cú pháp sau: Tênbiến[k] Ví dụ: st1[4] ’b’ III CÁC PHÉP TOÁN TRÊN XÂU KÝ TỰ Phép gán: Biến := Biểu_thức; Đại lượng bên phải lệnh phải đặt hai dấu nháy đơn xâu dạng Ta sử dụng dấu cộng (+) để ghép xâu gán Ví dụ: HoTen:= ‘Huynh Ngoc‘ + ‘ Nhan‘; Phép nối String: Ký hiệu dấu + Ví dụ: ‘Turbo’ + ‘ Pascal‘ = ‘Turbo Pascal‘ Các phép toán so sánh: Khi so sánh hai xâu, ký tự hai xâu so sánh cặp từ trái qua phải theo giá trị bảng mã ASCII Ví dụ: Nếu so sánh: ‘ABC’ = ‘ABC’ có giá trị True ‘ABC’ = ‘AB’ có giá trị False ‘ABCD’ < ‘ABED’ có giá trị True ‘ABC’ > ‘AD’ có giá trị False IV CÁC THỦ TỤC VÀ HÀM VẾ XÂU KÝ TỰ Các thủ tục: a Delete(St , Pos, Num): Trong đó: - St (String): Biến kiểu String - Pos (Position): Biến kiểu nguyên - Num (Number): Biến kiểu nguyên Công dụng: Thủ tục dùng để xóa khỏi xâu St số Num ký tự vị trí thứ Pos Ví dụ: Nếu St = ‘ABCDEFG’; thì: Delete(St, 2, ); ð làm cho St = ‘AFG’ Delete(St, 2, 10); ð làm cho St = ‘A’ 12 Tài Liệu Bồi Dưỡng Học Sinh Giỏi Tin học THCS Delete(St, 9, 3); ð làm cho St = ‘ABCDEFG’ b Insert(St2, St1, Pos): Trong đó: - St2 St1: Biến kiểu String - Pos: Biến kiểu nguyên Công dụng: Thủ tục dùng để chèn xâu St2 vào xâu St1 vị trí Pos Ví dụ: Nếu St := ‘ABCD’ sau lệnh Insert(‘TFG’, St, 3) ta nhận St := ‘ABTFGCD’ Trường hợp Pos vượt chiều dài St1 St2 nối vào St1 Ví dụ: St = ‘ABCD’ , lệnh Insert(‘TFG’, ST, 9); làm cho St = ‘ABCDTFG’ c Str(Value, St): Trong đó: - Value: Là biểu thức nguyên hay thực có ghi dạng in - St: Biến kiểu String Công dụng: Thủ tục dùng để đổi giá trị số Value thành kiểu xâu gán cho St Ví dụ: i := 123; Str(i:5, St); { ta St = ‘ 1234’ có ký tự } x :=123.5678901; Str(x:10:5, St); { ta St = ‘ 123.56789’ } d Val(St, Var, Code): Trong đó: - St: Biểu thức kiểu String - Var: Là biến kiểu nguyên hay thực - Code: Biến kiểu nguyên Công dụng: Thủ tục đổi xâu chữ St (biểu diên dạng số nguyên hay thực) thành số gán cho biến Var Code biến nguyên dùng để phát lỗi: phép biến đổi Code có giá trị 0, sai St không biểu diễn số ngun hay thực Code có giá trị vị trí ký tự sai xâu St Giả sử: St := ‘234’ , i e hai biến nguyên Val(St, i, e); { cho ta i = 234 e = } Nếu St := ‘21x’ Val(St, i, e) {cho ta i khơng xác định e=3, tức ký tự thứ ba gây lỗi} Các hàm: a Length(St): Cho ta độ dài biểu thức xâu ký tự St Ví dụ: với St = ‘’ABCDEFG’ Length(St) trả giá trị b Copy(St, Pos, Num): Trong đó: - St: Biểu thức kiểu xâu ký tư - Pos,Num: Biểu thức kiểu nguyên Hàm trả cho ta xâu từ xâu St, hàm bắt đầu chép từ vị trí Pos chép Num ký tự Ví dụ: St = ‘ABCDEF’ lệnh Copy(St, 3, 2) = ‘CD’ Copy(St,4, 10) cho ta ‘DEF’ Ghi chú: - Nếu Pos + Num > Length(St) hàm trả ký tự xâu St - Nếu Pos > Length(St) hàm Copy trả cho ta xâu rỗng c Concat(St1, St2, , Stn): Hàm dùng để ghép tất xâu ký tự St1, St2, ,Stn thành xâu theo thứ tự đối số cung cấp cho hàm Ghi chú: - Số lượng đối hàm Concat phải >= - Nếu tổng số chiều dài xâu > 255 máy báo lỗi - Có thể dùng phép cộng (+) để ghép xâu ký tự Ví dụ: St :=Concat(St1,St2 +’N’); d Pos(St1, St2): Trong đó: St1, St2 biểu thức xâu ký tự Hàm trả số nguyên biểu diễn vị trí St1 gặp xâu St2 Nếu khơng tìm thấy Pos = Ví dụ: St := ‘ABCDEFGBCD’ Pos(‘DE’,St) = 4, Pos(‘BCD’,St) = 2, Pos(‘XY’,St) = 13 Tài Liệu Bồi Dưỡng Học Sinh Giỏi Tin học THCS Chương KIỂU TẬP HỢP I ĐỊNH NGHĨA Dữ liệu kiểu tập hợp tập hợp liệu thuộc kiểu vô hướng đếm Một kiểu tập hợp khai báo theo dạng sau: SET OF Kiểu_cơ_sở; Ví dụ: Type Chu_so = Set of 9; Chu_hoa = Set of ‘A’ ‘Z’; Var So : Chu_so; Chu : Chu_hoa; Mau : Set of (Xanh, Vang, Tim); Chú ý: - Các giá trị đưa vào tập hợp cần có số thứ tự khoản từ đến 255 - Như vậy, với khai báo:Type Tap_so = Set of 10 256; Kết dịch máy thông báo lỗi: Set base type out of range - Một liệu kiểu tập hợp có dạng phần tử nằm hai dấu ngoặc [ ] Ví dụ: [‘A’, ’E’ ], [3,5 9]; - Tập hợp rỗng ký hiệu [ ] - Biến tập hợp cho phép có từ đến 256 phần tử - Có thể thực phép gán kiểu tập hợp Ví dụ: So := [0, 4, 9]; Chu := [ ]; {Tập hợp rông} Mau := [Vang, Tim]; II CÁC PHÉP TỐN a Phép tốn quan hệ: Phép toán = cho giá trị True hai tập hợp Phép toán < > cho giá trị True hai tập hợp khác Phép toán = B) cho giá trị True B tập A Chú ý: Khơng có phép tốn < > cho kiểu tập hợp Để kiểm tra tập hợp A có thật nằm B hay khơng ta dùng câu lệnh: If (A< > B) and (A=1 Khi hàm GIAI_THUA định nghĩa sau FUNCTION GIAI_THUA (n:integer):integer; BEGIN IF n=0 THEN GIAI_THUA := ELSE GIAI_THUA := n*GIAI_THUA(n-1); END; 20 Tài Liệu Bồi Dưỡng Học Sinh Giỏi Tin hoïc THCS MỤC LỤC Chương CÁC THÀNH PHẦN CƠ BẢN CỦA NGƠN NGỮ LẬP TRÌNH PASCAL Chương CÁC KIỂU DỮ LIỆU CƠ BẢN HẰNG, BIẾN, BIỂU THỨC VÀ CÂU LỆNH Chương CÁC CÂU LỆNH CÓ CẤU TRÚC Chương DỮ LIỆU KIỂU MẢNG (ARRAY) Chương XÂU KÝ TỰ (STRING) Chương DỮ LIỆU KIỂU FILE TEXT (TỆP) .10 Chương CHƯƠNG TRÌNH CON .12 21 ...Tài Liệu Bồi Dưỡng Học Sinh Giỏi Tin học THCS - Trên dịng viết nhiều câu lệnh Các lệnh cách dấu chầm phẩy Ví dụ : Program GioiThieu; Begin Writeln ( ‘Truong THCS Luong Tam‘ ); Write ( ‘Ap – Luong... Hung'; Continue = FALSE; d Biến - Biến đại lượng mà giá trị thay đổi q trình thực chương trình - Cú pháp khai báo: VAR ,, : ; Tài Liệu Bồi Dưỡng Học Sinh Giỏi Tin. .. trình dừng lại chờ người sử dụng nhấn phím ENTER chạy tiếp Tài Liệu Bồi Dưỡng Học Sinh Giỏi Tin học THCS Chương CÁC KIỂU DỮ LIỆU CƠ BẢN I KIỂU LOGIC - Kiểu logic kiểu biểu diễn hai trạng thái