Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 34 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
34
Dung lượng
386 KB
Nội dung
SỞ GIÁO DỤC VÀ ĐÀO TẠO HÀ TĨNH TÀILIỆUBỒIDƯỠNGTHƯỜNGXUYÊN NĂM HỌC 2013 - 2014 MÔN TINHỌCTHPT LỜI GIỚI THIỆU Nhằm nâng cao lượng giảng dạy môn Tinhọc nhà trường THPT tỉnh Hà Tĩnh, biên soạn sách Cuốn sách xem tàiliệu phục vụ cho giáo viên giảng dạy môn Tinhọc nhà trường THPT tỉnh Hà Tĩnh việc tự học tự nghiên cứu Nội dung sách gồm ba phần: Phần 1: Ngôn ngữ lập trình Pascal (Phần bản) Phần 2: Thiết kế giảng điện tử E_Learning Tác giả sách gồm: Trần Xuân Bình - Chuyên viên Tin học, Sở GD&ĐT Hà Tĩnh; Nguyễn Duy Dũng - Giáo viên Tin học, trường THPT chuyên Hà Tĩnh; Võ Sỹ Ngọc - Giáo viên Tin học, trường THPT Thành Sen Do điều kiện tổ chức tàiliệu nhiều hạn chế nên khó tránh khỏi thiếu sót, mong nhận ý kiến góp ý, bổ sung hoàn thiện nội dung sách giáo viên người quan tâm Hà Tĩnh, ngày 20 tháng 11 năm 2013 Tổng chủ biên Trần Xuân Bình PHẦN I NGÔN NGỮ LẬP TRÌNH PASCAL (PHẦN CĂN BẢN) Chương CÁC YẾU TỐ CƠ SỞ CỦA NGÔN NGỮ PASCAL 1.1 Giới thiệu ngôn ngữ PASCAL PASCAL ngôn ngữ lập trình bậc 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 lập trình 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 lập trình nhóm chúng lại với đặt 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,.v.v 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 1.2 Các thành phần ngôn ngữ PASCAL Con người thể tư ngôn ngữ, khởi đầu ngôn ngữ nói sau ngôn ngữ viết Mỗi dân tộc dùng số ký tự khác cho ngôn ngữ viết mình, điều không ngoại lệ với ngôn ngữ lập trình Ngôn ngữ Pascal có ký tự quy tắc riêng để hình thành nên từ khóa, tên chuẩn câu lệnh 1.2.1 Bộ ký tự Bộ ký tự Pascal chủ yếu giống ký tự ASCII, chúng gồm nhóm sau: - Nhóm 26 chữ in: A, B, C, Z - Nhóm 26 chữ thường: a, b, c, z - Nhóm chữ số hệ đếm thập phân: 0,1,2,3,4,5,6,7,8,9 - Nhóm toán tử toán học: +,-,*,/,>,=, 1.7*10+38 không biểu diễn x máy được, | x| < 2.9*10-39 x coi Có hai cách biểu diễn số thực: - Cách (Biểu diễn dạng dấu phẩy tỉnh): Viết bình thường, dấu phẩy thập phân thay dấu chấm thập phân, ví dụ như: 18.6 có nghĩa 18,6 - Cách (Biểu diễn dạng dấu phẩy động): 1.257E+01 (có giá trị = 1.257*101 = 12.57 ) 1257.0E-02 (có giá trị = 1257*10-2 = 12.57 ) Trong dạng số gồm có hai phần, phần đứng trước E gọi phần định trị, viết theo cách 1, phần đứng sau E gọi phần bậc, gồm dấu cộng trừ, tiếp đến số nguyên Số viết theo cách gọi số có dấu chấm thập phân cố định, số viết theo cách gọi số có dấu chấm thập phân di động hay số dạng khoa học (Scientific) Tên kiểu Real Single Double Extended Comp Phạm vi giá trị 2.9*10-39 1.7*1038 1.5*10-45 3.4*1038 5.0*10-324 1.7*10308 3.4*10-4932 1.1*104932 -9.2*1018 9.2*1018 Số byte 10 Chú ý: Turbo Pascal thường làm việc với kiểu Real Muốn dùng kiểu thực lại, phải chuyển sang mode 8087 cách viết thị {$N+} đầu chương trình 2.1.2.2 Các phép toán Phép toán Trong toán học Các phép toán số học + (cộng), - (trừ), x (nhân), : (chia) với số thực Trong Pascal +, -, *, / 2.1.2.3 Các hàm thủ tục có đối số nguyên thực - Thủ tục Inc(i,h): Thủ tục có chức tương đương với câu lệnh gán i:=i+h, với i, h số nguyên kết trả lại có kiểu nguyên - Thủ tục Dec(i,h): Thủ tục có chức tương đương với câu lệnh gán i:=i-h, với i, h số nguyên kết trả lại có kiểu nguyên Trong thủ tục có tham số i ngầm định h (viết Inc(i) thay cho Inc(i,1); Dec(i) thay cho Dec(i,1)) - Hàm Abs(x): tính trị tuyệt đối x Kiểu liệu kết qủa kiểu với đối số Nếu x nguyên Abs(x) nguyên, x số thực Abs(x) số thực - Hàm Sqr(x): tính bình phương x Kiểu liệu kết qủa kiểu với đối số - Trong hàm đây, đối số x nguyên hay thực, giá trị trả luôn kiểu thực: Hàm Sqrt(x): tính bậc x (x >= 0), kết trả lại số thực Hàm Exp(x): tính e mũ x, kết trả lại số thực Hàm Ln(x): tính lnx, (x > 0), kết trả lại số thực Các hàm Sin(x), Cos(x), Arctan(x): tính sinx, cosx arctgx - Hàm Int(x) : cho số thực phần nguyên x Ví dụ 2.1: Int(12.55) = 12.0 - Hàm Frac(x) : cho số thực phần lẻ x Ví dụ 2.2: Frac(12.55) = 0.55 - Hai hàm đặc biệt cho kết qủa số nguyên: - Hàm Trunc(x): cho số nguyên phần nguyên x Ví dụ 2.3: Trunc(-2.98) = -2 - Hàm Round(x): cho số nguyên cách làm tròn x Ví dụ 2.4: Round(-2.98) = -3 Chú ý: Hàm Int(x) hàm Trunc(x) cho phần nguyên x, chúng khác kiểu liệu giá trị trả về: Int(4.5)= 4.0 Trunc(4.5) = (viết hiểu số nguyên, viết 4.0 hiểu số thực) 2.1.3 Kiểu ký tự (Char) Các hàm liên quan đến ký tự - Hàm Pred(ch): cho ký tự đứng trước ký tự ch bảng mã ASCII Ví dụ 2.5: Pred(‘B’)=‘A’ - Hàm Succ(ch): cho ký tự đứng sau ký tự ch bảng mã ASCII Ví dụ 2.6: Succ(‘A’)=‘B’ - Hàm UpCase(ch): đổi ký tự ch thành chữ hoa tương ứng Ví dụ 2.7: Upcase( ‘a’ ) = ‘A’ - Hàm Ord(ch) : cho mã ký tự ch Ví dụ 2.8: Ord (‘A’) = 65, Ord (‘a’) = 97 - Hàm Chr(k) : đối số k nguyên, 0’B’, , ‘z’>’Z’ - Hai xâu ký tự gọi khác số ký tự hai xâu ký tự khác có hai ký tự có thứ tự hai xâu ký tự khác Nếu s1, s2 hai xâu ký tự có độ dài khác n1 n2 (n2>n1), xâu ký tự s1 giống n1 ký tự đầu xâu ký tự s2 xâu ký tự s2 lớn xâu ký tự s1 31 - Khoảng trống từ xem ký tự để so sánh (mã ASCII phím SPACE (phím khoảng trống) 32) 5.2.4 Các thủ tục hàm xử lý xâu ký tự 5.2.4.1 Hàm xác định độ dài xâu ký tự: Length(): cho kết số nguyên độ dài xâu ký tự Ví dụ 5.17 : Length(‘ABCD’)=4 xâu ‘ABCD’ có ký tự Xâu rỗng có độ dài 5.2.4.2 Thủ tục xóa xâu ký tự Delete(,n1,n2); n1, n2 số nguyên dương Thủ tục xóa xâu ký tự n2 ký tự ký tự thứ n1 kéo sang bên phải Ví dụ 5.18: s:=’Hoc Tin hoc’; Sau thực thủ tục Delete(s,1,4) xâu ký tự s xâu ‘Tin hoc’ 5.2.4.3 Thủ tục chèn xâu ký tự Insert(,,n); Thủ tục chèn xâu ký tự vào xâu ký tự kể từ vị trí thứ n Ví dụ 5.19: s1:=’Tin ’; s2=’Hoc hoc’; Sau thực thủ tục Insert(s1,s2,5) cho kết qủa xâu ký tự ‘Hoc Tin hoc‘ 5.2.4.4 Thủ tục chuyển số thành xâu ký tự Str([: [:]], ); Thủ tục chuyển đổi số nguyên thực thành xâu ký tự biểu diễn số (các tham số cặp dấu [ ] có không) Các tham số thủ tục bao gồm: - Độ rộng: Quy định số chữ số chuyển thành ký tự + Nếu độ rộng nhỏ số chữ số có chuyển toàn số thành ký tự + Nếu độ rộng lớn số chữ số có chuyển chữ số thành phần tử xâu ký tự theo chiều từ phải qua trái, phần tử thừa bỏ trống - Số số lẻ: Chỉ áp dụng cho số thực - Tên biến xâu ký tự: Là tên biến xâu ký tự chứa ký tự chuyển Ví dụ 5.20: Str(1234,s); Thủ tục chuyển số 1234 thành xâu ký tự s Xâu ký tự có độ dài chứa ký tự ‘1234’ Str(1234:7,s); Thủ tục chuyển số 1234 thành xâu ký tự s có ký tự Các phần tử xâu ký tự s bố trí sau: Byte Byte Byte Byte Byte Byte Byte Byte Byte số chứa ký tự thể độ dài xâu ký tự, ký tự không viết hình nên không thấy chúng Ví dụ 5.21: Đổi số x1, x2 thành xâu ký tự viết chúng hình Program Chuyenso; Uses Crt; Var x1:Integer; x2:Real; 32 ten1, ten2, ten3:String[20]; Begin Clrscr; x1:=1234; x2:=123.456789; Str(x1:15,ten1); {Chuyển số x1 thành xâu ký tự ten1 có độ dài 15 ký tự} Writeln(ten1); Str(x2:7:3,ten2);{Chuyển số x2 thành xâu ký tự ten2 có độ dài với ký tự sau dấu chấm thập phân} Writeln(ten2); Str(123456:10,ten3); Writeln(ten3); Readln; End 5.2.4.5 Hàm chép ký tự xâu ký tự Copy(St,m,n): chép n ký tự xâu ký tự St kể từ vị trí m Ví dụ 5.22: St:=’Hoc tap’; S1:=Copy(St,5,3); {Kết cho s1=’tap’} Chú ý: - Nếu m>Length(St) hàm Copy(St,m,n) cho giá trị xâu ký tự rỗng - Nếu n+m>Length(St) hàm Copy(St,m,n) cho giá trị ký tự nằm xâu ký tự St 5.2.4.6 Hàm ghép xâu ký tự Concat(St1,St2, ,Stn): ghép nối tất xâu ký tự St1,St2, ,St3 thành xâu ký tự theo thứ tự viết Nếu tổng độ dài xâu St1,St2, ,St3 vượt 255 xâu giữ lại 255 ký tự Ví dụ 5.23: St1=’Thu ’; St2=’Ha Noi’; St:=Concat(St1,St2); Kết St ‘Thu Ha Noi’ 5.2.4.7 Hàm cho biết vị trí ký tự xâu ký tự xâu ký tự khác Pos(s1,St): cho biết vị trí ký tự xâu ký tự s1 xâu ký tự St Nếu không tìm thấy hàm cho giá trị Ví dụ 5.24: St=’1234abcd’; s1:=’234’; s2:=35ab’; Pos(s1,St) cho giá trị Pos(s2,St) cho giá trị 5.2.4.8 Thủ tục chuyển xâu ký tự thành số Val(St,x,m); Thủ tục chuyển xâu ký tự St (biễu diễn số nguyên số thực) thành số nguyên số thực, số chứa biến x Tham số m số nguyên chứa mã lỗi, phép chuyển đổi m=0, chuyển đổi sai m cho giá trị vị trí ký tự sai Ví dụ 5.25: Program Thutuc_val; Uses Crt; Var 33 x1:Real; x2,m:Integer; c1,c2,c3:String[30]; Begin Clrscr; c1=’1234.567’; c2:=’1234’; c3:=’123abc’; Val(c1,x1,m); If m=0 then Writeln(‘Chuyen xau c1 so thuc x1=’,x1:10:3) Else Writeln(‘Khong chuyen duoc, loi tai vị tri ‘,m); Val(c1,x2,m); If m=0 then Writeln(‘Chuyen xau c1 so nguyen x2=’,x2) Else Writeln(‘Khong chuyen xau c1 so nguyen, loi tai vị tri ‘,m); Val(c2,x2,m); If m=0 then Writeln(‘Chuyen xau c2 so nguyen x2=’,x2) Else Writeln(‘Khong chuyen duoc, loi tai vị tri ‘,m); Val(c3,x2,m); If m=0 then Writeln(‘Chuyen xau c3 so nguyen x2=’,x2) Else Writeln(‘Khong chuyen xau‘,c3,’ so duoc’, loi tai vị tri ‘,m); Readln; End Khi chạy chương trình ta nhận kết quả: Chuyen xau c1 so thuc x1=1234.567 Khong chuyen c1 so nguyen, loi tai vi tri Chuyen xau c2 so nguyen x2=1234 Khong chuyen xau 123abc so duoc, loi tai vi tri BÀI TẬP Lập chương trình tính tổng bình phương tổng lập phương N (N≤ 15) số nguyên N nhập vào từ bàn phím Cho dãy số thực A gồm n sô a1, a2,…,an nhập vào từ bàn phím a Hãy đếm xem có số dương, số âm b Cho số thực x, đếm xem dãy số A có phần tử x, vị trí phâng tử c Tìm phần tử nhỏ nhất, lớn Cho ma trận chữ nhật A kích thước MxN Lập chương trình xây dựng ma trận B ma trận chuyển vị ma trận A Điều kiện để B ma trận chuyển vị ma trận B A[i,j]=B[j,i] (1≤ i≤ M, 1≤ j≤ N) Lập chương trình nhập xâu ký tự vào từ bàn phím, cho ký tự tùy ý (ký tự thường), đếm xem xâu ký tự nhập có ký tự thường giống với ký tự cho Xâu ký tự s1 nhập từ bàn phím, xây dựng xâu ký tự s2 xâu ký tự đảo xâu ký tự s1 Ví dụ: s1=’abcde’ s2=’edcba’ Nhập vào xâu ký tự s1 câu không 70 ký tự, tìm xem từ dài ngắn từ nào, độ dài từ (từ dãy ký tự viết liền cách dãy ký tự khác ký tự trống) 34 ... Extended Comp Phạm vi giá trị 2.9 *10 -39 1. 7 *10 38 1. 5 *10 -45 3.4 *10 38 5.0 *10 -324 1. 7 *10 308 3.4 *10 -4932 1. 1 *10 4932 -9.2 *10 18 9.2 *10 18 Số byte 10 Chú ý: Turbo Pascal thường làm việc với kiểu Real Muốn... phẩy động): 1. 257E+ 01 (có giá trị = 1. 257 *10 1 = 12 .57 ) 12 57.0E-02 (có giá trị = 12 57 *10 -2 = 12 .57 ) Trong dạng số gồm có hai phần, phần đứng trước E gọi phần định trị, viết theo cách 1, phần đứng... sau: 44 55 12 42 94 18 06 67 Sự thay đổi dãy số qua bước xếp sau: Xuất phát: 44 55 12 42 94 18 06 67 Bước 1: 06 / 55 12 42 94 18 44 67 Bước 2: 06 12 / 55 42 94 18 44 67 Bước 3: 06 12 18 / 42 94