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

Học lập trình với pascal (phần 1)

19 334 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 19
Dung lượng 221,4 KB

Nội dung

Ngày 23 tháng 10 năm 2016 Lý thuyết tin học Pascal (Phần 1) Details Người viết: Huyền Trang Hits: 10907 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à toá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 { Phần tiêu đề } PROGRAM Tên_chương_trình; { Phần khai báo } USES ; CONST .; http://thpt.ictu.edu.vn/index.php/tin-hoc/183-ly-thuy-t-tin-h-c-pascal-ph-n-1?tmpl=component&print=1&layout=default&page= 1/19 Ngày 23 tháng 10 năm 2016 Lý thuyết tin học Pascal (Phần 1) TYPE ; VAR ; PROCEDURE ; FUNCTION ; { Phần thân chương trình } BEGIN END Ví dụ 1: Chương trình Pascal đơn giản BEGIN Write(‘Hello World!’); END Ví dụ 2: Program Vidu2; Const PI=3.14; Var R,S:Real; Begin R:=10; S:=R*R*PI; {Bán kính đường tròn} {Diện tích hình tròn} Writeln(‘Dien tich hinh tron = ‘, S:0:2); { In hình } Readln; End Một số phím chức thường dùng F2: Lưu chương trình soạn thảo vào đĩa http://thpt.ictu.edu.vn/index.php/tin-hoc/183-ly-thuy-t-tin-h-c-pascal-ph-n-1?tmpl=component&print=1&layout=default&page= 2/19 Ngày 23 tháng 10 năm 2016 Lý thuyết tin học Pascal (Phần 1) F3: Mở file file tồn đĩa để soạn thảo Alt-F3: Đóng file soạn thảo Alt-F5: Xem kết chạy chương trình F8: Chạy câu lệnh chương trình Alt-X: Thoát khỏi Turbo Pascal Alt-: Dịch chuyển qua lại file mở F10: Vào hệ thống Menu Pascal Các thao tác soạn thảo chương trình 5.1 Các phím thông dụng 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: Xoá 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ỏ 5.2 Các thao tác khối văn Chọn khối văn bản: Shift + Ctrl-KY: Xoá khối văn chọn Ctrl-Insert: Đưa khối văn chọn vào Clipboard Shift-Insert: Dán khối văn từ Clipboard xuống vị trí trỏ Các thành phần ngôn ngữ Pascal 6.1 Từ khóa Từ khoá từ mà Pascal dành riêng để phục vụ cho mục đích (Chẳng hạn như: BEGIN, END, IF, WHILE, ) Chú ý: Với Turbo Pascal 7.0 trở lên, từ khoá chương trình hiển thị khác màu với từ khác 6.2 Tên (định danh) Đị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,các phép toán http://thpt.ictu.edu.vn/index.php/tin-hoc/183-ly-thuy-t-tin-h-c-pascal-ph-n-1?tmpl=component&print=1&layout=default&page= 3/19 Ngày 23 tháng 10 năm 2016 Lý thuyết tin học Pascal (Phần 1) Ví dụ: Các tên viết sau sai 1XYZ Sai bắt đầu chữ số #LONG Sai bắt đầu ký tự đặc biệt FOR Sai trùng với từ khoá KY TU Sai có khoảng trắng (space) LAP-TRINH Sai dấu trừ (-) phép toán 6.3 Dấu chấm phẩy (;) Dấu chấm phẩy dùng để ngăn cách câu lệnh Không nên hiểu dấu chấm phẩy dấu kết thúc câu lệnh Ví dụ: FOR i:=1 TO 10 DO Write(i); Trong câu lệnh trên, lệnh Write(i) thực 10 lần Nếu hiểu dấu chấm phẩy kết thúc câu lệnh lệnh Write(i) thực lần 6.4 Lời giải thích Các lời bàn luận, lời thích đưa vào chỗ chương trình người đọc dể hiểu mà không làm ảnh hưởng đến phần khác chương trình Lời giải thích đặt hai dấu ngoạc { } cụm dấu (* *) Ví dụ: Var a,b,c:Rea; {Khai báo biến} Delta := b*b – 4*a*c; (* Tính delta để giải phương trình bậc *) BÀI TẬP THỰC HÀNH Khởi động Turbo Pascal Nhập vào đoạn chương trình sau: Uses Crt; Begin Writeln(‘***********************************************************’); Writeln(‘* CHUONG TRINH PASCAL DAU TIEN CUA TOI *’); http://thpt.ictu.edu.vn/index.php/tin-hoc/183-ly-thuy-t-tin-h-c-pascal-ph-n-1?tmpl=component&print=1&layout=default&page= 4/19 Ngày 23 tháng 10 năm 2016 Lý thuyết tin học Pascal (Phần 1) Writeln(‘* Oi! Tuyet voi! *); Writeln(‘***********************************************************’); Readln; End Dịch chạy chương trình Lưu chương trình vào đĩa với tên BAI1.PAS Thoát khỏi Pascal Khởi động lại Turbo Pascal Mở file BAI1.PAS Chèn thêm vào dòng: CLRSCR; vào sau dòng BEGIN Dịch chạy thử chương trình 10 Lưu chương trình vào đĩa 11 Thoát khỏi Pascal 12 Viết chương trình in hình hình sau: * ******** *** ** ** ** ** ** ** ** ** ******** ********* ** ** ** ** ** ** ** ** ** ** ** ** ******** ******* ** ** ** ******** Chương CÁC KIỂU DỮ LIỆU CƠ BẢN KHAI BÁO HẰNG, BIẾN, KIỂU, BIỂU THỨC VÀ CÂU LỆNH http://thpt.ictu.edu.vn/index.php/tin-hoc/183-ly-thuy-t-tin-h-c-pascal-ph-n-1?tmpl=component&print=1&layout=default&page= 5/19 Ngày 23 tháng 10 năm 2016 Lý thuyết tin học Pascal (Phần 1) I CÁC KIỂU DỮ LIỆU CƠ BẢN Kiểu logic - Từ khóa: BOOLEAN - miền giá trị: (TRUE, FALSE) - 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 B A AND B A OR B A XOR B NOT A TRUE TRUE TRUE TRUE FALSE FALSE TRUE FALSE FALSE TRUE TRUE FALSE FALSE TRUE FALSE TRUE TRUE TRUE FALSE FALSE FALSE FALSE FALSE TRUE Kiểu số nguyên 2.1 Các kiểu số nguyên Tên kiểu Shortint Byte Phạm vi Dung lượng -128 ® 127 byte ® 255 byte http://thpt.ictu.edu.vn/index.php/tin-hoc/183-ly-thuy-t-tin-h-c-pascal-ph-n-1?tmpl=component&print=1&layout=default&page= 6/19 Ngày 23 tháng 10 năm 2016 Lý thuyết tin học Pascal (Phần 1) Integer -32768 ® 32767 byte Word ® 65535 byte -2147483648 ® 2147483647 byte LongInt 2.2 Các phép toán kiểu số nguyên 2.2.1 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) 2.2.2 Các phép toán xử lý bit: Trên kiểu ShortInt, Integer, Byte, Word có phép toán: NOT, AND, OR, XOR A B A AND B A OR B A XOR B NOT A 1 1 0 0 1 0 1 1 0 0 SHL (phép dịch trái): a SHL n Û a ´ 2n SHR (phép dịch phải): a SHR n Û a DIV 2n http://thpt.ictu.edu.vn/index.php/tin-hoc/183-ly-thuy-t-tin-h-c-pascal-ph-n-1?tmpl=component&print=1&layout=default&page= 7/19 Ngày 23 tháng 10 năm 2016 Lý thuyết tin học Pascal (Phần 1) Kiểu số thực 3.1 Các kiểu số thực : Tên kiểu Phạm vi Dung lượng Single 1.5´10-45 ® 3.4´10+38 byte Real 2.9´10-39 ® 1.7´10+38 byte 5.0´10-324 ® 1.7´10+308 byte 3.4´10-4932 ® 1.1´10+4932 10 byte Double Extended Chú ý: Các kiểu số thực Single, Double Extended yêu cầu phải sử dụng chung với đồng xử lý số phải biên dich chương trình với thị {$N+} để liên kết giả lập số 3.2 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 toán DIV MOD 3.3 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 (x³0) ABS(x): Trả |x| SIN(x): Trả sin(x) theo radian COS(x): Trả cos(x) theo radian http://thpt.ictu.edu.vn/index.php/tin-hoc/183-ly-thuy-t-tin-h-c-pascal-ph-n-1?tmpl=component&print=1&layout=default&page= 8/19 Ngày 23 tháng 10 năm 2016 ARCTAN(x): Lý thuyết tin học Pascal (Phần 1) 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): DEC(n): Tăng n thêm đơn vị (n:=n+1) Giảm n đơn vị (n:=n-1) Kiểu ký tự - Từ khoá: 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ụ 'A', '0' Dùng hàm CHR(n) (trong n mã ASCII ký tự cần biểu diễn) Ví dụ CHR(65) biễu diễn ký tự 'A' Dùng ký hiệu #n (trong n mã ASCII ký tự cần biểu diễn) Ví dụ #65 - Các phép toán: =, >, >=, 0 d/ e Bài tập 2.5: Viết chương trình tính siện tích tam giác theo công thức sau: S = với p = (a+b+c) http://thpt.ictu.edu.vn/index.php/tin-hoc/183-ly-thuy-t-tin-h-c-pascal-ph-n-1?tmpl=component&print=1&layout=default&page= 16/19 Ngày 23 tháng 10 năm 2016 Lý thuyết tin học Pascal (Phần 1) Bài tập 2.6: Viết chương trình tính khoảng cách từ điểm I(xi,yi) đến đường thẳng có phương trình D: Ax + By + C = Gợi ý: Công thức tính khoảng cách: h = Bài tập 2.7: Viết chương trình tách số n thành số a, b cho tích P=a*b2 đạt cực đại với n nhập vào từ bàn phím Gợi ý: Gọi x số thứ hai số thứ là: (n-x) Theo đề ta có: P(x) = x2.(n-x) Hàm P đạt cực đại P’(x) = -3x2 + 2nx = è x = 2n/3 Bài tập 2.8: Màn hình đồ họa máy tính có độ phân giải: 640x480 Biết rằng, điểm hình chiếm byte Hỏi cần byte để lưu trữ toàn hình đồ họa đó? Có sinh viên viết chương trình tính số byte lưu trữ hình đồ họa: Program Sinhvien1; Var a,b:integer; s:Word; Begin a:=640; b:=480; s:=a*b; writeln(s); readln; End Program Sinhvien2; Var a,b:Word; s: LongInt; http://thpt.ictu.edu.vn/index.php/tin-hoc/183-ly-thuy-t-tin-h-c-pascal-ph-n-1?tmpl=component&print=1&layout=default&page= 17/19 Ngày 23 tháng 10 năm 2016 Lý thuyết tin học Pascal (Phần 1) Begin a:=640; b:=480; s:=a*b; writeln(s); readln; End Hãy cho biết chương trình cho kết hay sai? Tại sao? Bài tập 2.9: Màn hình đồ họa máy tính có độ phân giải: 640x480 Biết rằng, điểm hình chiếm byte Hỏi cần byte để lưu trữ vùng có kích thước 1/10 hình đồ họa đó? Có sinh viên viết chương trình giải toán sau: Program Sinhvien1; Var a,b:Word; s: LongInt; Begin a:=640; b:=480; s:=a; s:=s*b; s:=s DIV 10; writeln(s); readln; End Program Sinhvien2; Var a,b:Word; s: LongInt; Begin a:=640; b:=480; http://thpt.ictu.edu.vn/index.php/tin-hoc/183-ly-thuy-t-tin-h-c-pascal-ph-n-1?tmpl=component&print=1&layout=default&page= 18/19 Ngày 23 tháng 10 năm 2016 Lý thuyết tin học Pascal (Phần 1) s:=a*b DIV 10; writeln(s); readln; End Hãy cho biết chương trình cho kết hay sai? Tại sao? http://thpt.ictu.edu.vn/index.php/tin-hoc/183-ly-thuy-t-tin-h-c-pascal-ph-n-1?tmpl=component&print=1&layout=default&page= 19/19 [...]... Bài tập 2.5: Viết chương trình tính siện tích tam giác theo công thức sau: S = với p = (a+b+c) http://thpt.ictu.edu.vn/index.php/tin-hoc/183-ly-thuy-t-tin-h-c -pascal- ph-n-1?tmpl=component&print=1&layout=default&page= 16/19 Ngày 23 tháng 10 năm 2016 Lý thuyết tin học Pascal (Phần 1) Bài tập 2.6: Viết chương trình tính khoảng cách từ một điểm I(xi,yi) đến đường thẳng có phương trình D: Ax + By + C = 0... http://thpt.ictu.edu.vn/index.php/tin-hoc/183-ly-thuy-t-tin-h-c -pascal- ph-n-1?tmpl=component&print=1&layout=default&page= 18/19 Ngày 23 tháng 10 năm 2016 Lý thuyết tin học Pascal (Phần 1) s:=a*b DIV 10; writeln(s); readln; End Hãy cho biết 2 chương trình trên cho kết quả đúng hay sai? Tại sao? http://thpt.ictu.edu.vn/index.php/tin-hoc/183-ly-thuy-t-tin-h-c -pascal- ph-n-1?tmpl=component&print=1&layout=default&page=... http://thpt.ictu.edu.vn/index.php/tin-hoc/183-ly-thuy-t-tin-h-c -pascal- ph-n-1?tmpl=component&print=1&layout=default&page= 12/19 Ngày 23 tháng 10 năm 2016 Lý thuyết tin học Pascal (Phần 1) phải được phân cách nhau bởi dấu phẩy Khi sử dụng lệnh WRITE/WRITELN, ta có hai cách viết: không qui cách và có qui cách: - Viết không qui cách: dữ liệu xuất ra sẽ được canh lề ở phía bên trái Nếu dữ liệu là số thực thì sẽ được in ra dưới dạng biểu diễn khoa học Ví dụ:... gặp câu lệnh READLN; (không có tham số), chương trình sẽ dừng lại chờ người sử dụng nhấn phím ENTER mới chạy tiếp 6.4 Các hàm và thủ tục thường dùng trong nhập xuất dữ liệu http://thpt.ictu.edu.vn/index.php/tin-hoc/183-ly-thuy-t-tin-h-c -pascal- ph-n-1?tmpl=component&print=1&layout=default&page= 13/19 Ngày 23 tháng 10 năm 2016 Lý thuyết tin học Pascal (Phần 1) Hàm KEYPRESSED: Hàm trả về giá trị TRUE nếu... Dientich:=a*b*sin(goc)/2; Writeln('Dien tich cua tam giac la: ',Dientich:0:2); Readln; End Bài tập 2.2: Viết chương trình tính , x>0 http://thpt.ictu.edu.vn/index.php/tin-hoc/183-ly-thuy-t-tin-h-c -pascal- ph-n-1?tmpl=component&print=1&layout=default&page= 14/19 Ngày 23 tháng 10 năm 2016 Lý thuyết tin học Pascal (Phần 1) Ý tưởng: Ta có: = = Program Tinh_can_bac_n_cua_x; Var x,S: Real; n: Word; Begin Write('Nhap vao n=...Ngày 23 tháng 10 năm 2016 Lý thuyết tin học Pascal (Phần 1) a, b: Integer; {Khai báo hai biến a, b có kiểu integer} Chú ý: Ta có thể vừa khai báo biến, vừa gán giá trị khởi đầu cho biến bằng cách sử dụng cú pháp như sau: CONST : = ; Ví dụ: CONST x:integer = 5; Với khai báo biến x như trên, trong chương trình giá trị của biến x có thể thay đổi (Điều này không... viên viết chương trình tính số byte lưu trữ màn hình đồ họa: Program Sinhvien1; Var a,b:integer; s:Word; Begin a:=640; b:=480; s:=a*b; writeln(s); readln; End Program Sinhvien2; Var a,b:Word; s: LongInt; http://thpt.ictu.edu.vn/index.php/tin-hoc/183-ly-thuy-t-tin-h-c -pascal- ph-n-1?tmpl=component&print=1&layout=default&page= 17/19 Ngày 23 tháng 10 năm 2016 Lý thuyết tin học Pascal (Phần 1) Begin a:=640;... hằng, các biến, các hàm và các dấu ngoặc đơn Ví dụ: (x +sin(y))/(5-2*x) (x+4)*2 = (8+y) biểu thức số học biểu thức logic http://thpt.ictu.edu.vn/index.php/tin-hoc/183-ly-thuy-t-tin-h-c -pascal- ph-n-1?tmpl=component&print=1&layout=default&page= 11/19 Ngày 23 tháng 10 năm 2016 Lý thuyết tin học Pascal (Phần 1) Trong một biểu thức, thứ tự ưu tiên của các phép toán được liệt kê theo thứ tự sau: Lời gọi hàm... năm 2016 Lý thuyết tin học Pascal (Phần 1) Readln; End b/ Không được phép dùng biến trung gian Program Swap; Var a,b: Integer; Begin Write('Nhap vao a= '); Readln(a); Write('Nhap vao b= '); Readln(b); a:=a+b; {a lấy tổng giá trị của a+b} b:=a-b; {b lấy giá trị của a} a:=a-b; {a lấy lại giá trị của b} Writeln('a = ',a,’ b = ‘,b); Readln; End BÀI TẬP TỰ GIẢI Bài tập 2.4: Viết chương trình nhập vào các số... lên Thủ tục TEXTCOLOR(color:Byte): Thiết lập màu cho các ký tự Trong đó color Î [0,15] Thủ tục TEXTBACKGROUND(color:Byte): Thiết lập màu nền cho màn hình BÀI TẬP MẪU Bài tập 2.1: Viết chương trình nhập vào độ dài hai cạnh của tam giác và góc giữa hai cạnh đó, sau đó tính và in ra màn hình diện tích của tam giác Ý tưởng: Công thức tính diện tích tam giác: S = với a,b là độ dài 2 cạnh và q là góc kẹp

Ngày đăng: 23/10/2016, 22:39

TỪ KHÓA LIÊN QUAN

w