I/- Khái niệm kiểu dữ liệu:
1/- Các kiểu vô hướng chuẩn:
Kiểu vô hướng chuẩn là kiểu dữ liệu gồm 1 tập các giá trị của nó được sắp xếp theo một thứ tự tuyến tính do Pascal định nghĩa sẵn.
a/- Kiểu số nguyên:
Gồm các số nguyên nằm trong phạm vi nào đấy tuỳ theo tên kiểu
Chương 3: CÁC KIỂU VÔ HƯỚNG CHUẨN VÀ CÁC LỆNH ĐƠN I/- Khái niệm kiểu dữ liệu: 1/- Các kiểu vô hướng chuẩn: Kiểu vô hướng chuẩn là kiểu dữ liệu gồm 1 tập các giá trị của nó được sắp xếp theo một thứ tự tuyến tính do Pascal định nghĩa sẵn. a/- Kiểu số nguyên: Gồm các số nguyên nằm trong phạm vi nào đấy tuỳ theo tên kiểu Tên kiểu Số byte Phạm vi Byte 1 0..255 ShortInt 1 -128..127 Integer 2 -32768..32767 Word 2 0..65535 LongInt 4 -2147483648..2147483647 b/- Kiểu số thập phân: Gồm các số thập phân hữu hạn nằm trong phạm vi nào đấy tuỳ theo tên kiểu Tên kiểu Số byte Phạm vi Single 4 1.5E-45..3.4E+38 Real 6 2.9E-39..1.7E+38 Double 8 5.0E-324..1.7E+308 Extended 10 3.4E-4932..1.1E+4932 c/- Kiểu ký tự và dãy ký tự: + Tên kiểu: Char (một ký tự) và String (một dãy ký tự) + Gồm các ký tự đã mã hoá theo bảng mã ASCII d/- Kiểu Boolean: + Tên kiểu: Boolean + Gồm các dữ liệu 1 byte và chỉ nhận giá trị đúng (TRUE) hoặc sai (FALSE) 2/- Các phép toán: a/- Các phép toán logic: X Y X And Y X Or Y X Xor Y True True True True False True False False True True False True False True True False False False False False X Not X True False False True b/- Các phép toán so sánh: Phép toán Ý nghĩa Kiểu kết quả = So sánh bằng nhau Boolean So sánh khác nhau Boolean > So sánh lớn hơn Boolean < So sánh nhỏ hơn Boolean >= So sánh lớn hơn hoặc bằng Boolean <= So sánh nhỏ hơn hoặc bằng Boolean c/- Các phép toán số học: Phép toán Ý nghĩa + Phép cộng - Phép trừ * Phép nhân / Phép chia Div Phép chia lấy phần nguyên Mod Phép chia lấy phần dư d/- Một số hàm số: Hàm Ý nghĩa ABS(x) Lấy trị tuyệt đối của X SQR(x) Bình phương của X SQRT(x) Lấy căn bậc hai của X SUCC(n) Succ(n) = n+1 (tăng n lên một đơn vị) PRED(n) Pred(n) = n-1 (giảm n xuống một đơn vị) TRUNC(x) Lấy phần nguyên của X ROUND(x) Lấy phần nguyên gần X nhất CHR(n) Cho kết quả là một ký tự có mã ASCII là số n ORD(ch) Cho kết quả một số nguyên là mã ASCII của ký tự ch ODD(n) Cho kết quả là TRUE nếu n là số lẽ và cho kết quả là FALSE nếu n chẳn II/- Câu lệnh: 1/- Khái niệm về câu lệnh: Một câu lênh xác định một công việc mà chương trình phải thực hiện để xử lý các dữ liệu đã được mô tả và khai báo. Các câu lệnh được ngăn cách bởi dấu chấm phẩy(;). Dấu chấm phẩy chỉ có tác dụng ngăn cách giữa các câu lệnh chứ không phải là kết thúc một câu lệnh và nó không thuộc vào câu lệnh. Có hai loại câu lệnh: + Câu lệnh đơn: Là những lệnh không chứa lệnh khác. + Câu lệnh hợp thành (lệnh có cấu trúc): Bao gồm nhiều lệnh đơn, nó được bắt đầu bằng từ Begin và kết thúc bởi từ End 2/- Một số lệnh đơn: a/- Lệnh gán (Assignment statement): + Chức năng: Lệnh gán dùng để gán giá trị của một biểu thức, một hằng vào biến. + Cú pháp: := + Ví dụ: Program Gan1; Var x,y:Integer; D: Boolean; Begin X:=10; Y:=2*X; D:=True; End. Chú ý: + Khi một giá trị được gán cho biến thì nó sẽ thay thế giá trị cũ mà biến đã lưu giữ trước đó. + Nguyên tắc chung khi dùng lệnh gán là kiểu của biến và kiểu của biểu thức phải giống nhau, gọi là sự tương thích giữa các kiểu dữ liệu. Chẳng hạn ví dụ sau là không đúng. Program Gan2; Var x,y: Integer; Begin X:=’A’; {X thuộc kiểu Integer còn ‘A’ thuộc kiểu Char} Y:=10/2; {Y thuộc kiểu Integer còn 10/2 thuộc kiểu Real} End. + Khi biên dịch chương trình này, máy sẽ báo lỗi “Error 26: Type mismatch” tức là kiểu dữ liệu không tương thích. b/- Thủ tục viết dữ liệu ra màn hình Write và Writeln: - Để viết dữ liệu ra màn hình Pascal có 3 mẫu viết sau: Write(mục1, mục 2,,mục n); Viết xong không xuống hàng Writeln(mục 1, mục 2,,mục n); Viết xong xuống hàng Write; Đặt con trỏ xuống đầu hàng tiếp theo Trong đó: mục 1, mục 2,.,mục n là các dữ liệu cần viết ra gồm: biến, biểu thức, hằng. - Viết kiểu số nguyên: + Cách viết không quy cách: các số nguyên được viết ra với số chỗ đúng bằng số chữ số của nó cần có. Ví dụ: Var I: integer; Begin I:=564; Writeln(i); Writeln(-5689); End. Khi chạy chương trình kết quả sẽ hiển thị ra màn hình như sau: 564 -5689 + Cách viết có quy cách: ta bố trí số chỗ cố định để viết số nguyên bằng cách thêm dấu hai chấm (:) theo sau là số chỗ để viết. Máy sẽ bố trí số nguyên từ phải qua trái, nếu thừa chỗ sẽ để trống bên trái. Ví dụ: Var i,j: Longint; Begin I:=564; J: 23456789; Writeln(12345678); Writeln(i:4); Writeln(-5678:8); Writeln(j:8); End. Khi chạy chương trình kết quả sẽ hiển thị ra màn hình như sau: 12345678 564 -5678 23456789 - Viết kiểu số thực: + Cách viết không quy cách: sẽ viết ra số thực theo kiểu biểu diễn E mũ Ví dụ: Var R: real Begin R:=123.456 Writeln(r); Writeln(3.14); End. Khi chạy chương trình kết quả sẽ hiển thị ra màn hình như sau: 1.2345600000E+02 3.1400000000E+00 + Cách viết có quy cách theo mẫu: Writeln(số thực:số chỗ cho cả số:số chỗ cho phần thập phân) Ví dụ: Var R:real; Begin R:=1.23456; Writeln(r:12:6); Writeln(73.123456789:12:6); Writeln(3.14:12:6); End. Khi chạy chương trình kết quả sẽ hiển thị ra màn hình như sau: 1.234560 73.123457 3.140000 c/- Thủ tục đọc dữ liệu từ bàn phím Read và Readln: - Là thủ tục gán giá trị cho biến, giá trị được nhập từ bàn phím khi chạy chương trình, có 3 mẫu sau: Read(biến 1, biến 2,., biến n); Nhập xong không xuống hàng. Readln(biến 1, biến 2,., biến n); Nhập xong xuống hàng. Readln; Dừng màn hình (không đọc gì cả mà chỉ chờ ta gõ Enter, Readln thường được đặt ở cuối chương trình trước End.) - Ta thường kết hợp giữa Write và Readln để việc nhập dữ liệu rõ ràng không nhầm lẫn. Ví dụ: Program Tluong; Var Lg,tl,tu:real; Pc: integer; Begin Write(‘Cho biet luong: ’);readln(lg); Write(‘Bao nhieu phan tram phu cap? ’);readln(pc); Write(‘Da tam ung bao nhieu? ’);readln(tu); Tl:=102*(lg+lg*pc/100)-tu; Writeln(‘So tien thuc lanh la: ’,tl:10:3); Readln; End. Ví dụ 1: VCT in ra màn hình một thiệp mời dự sinh nhật có dạng: ******************************** Thiep Moi Than moi ban: Nguyen Van A Toi du le sinh nhat cua minh Vao luc 19h ngay 12/10/2005 Tai 05/42 Ly Thuong Kiet _ Soc Trang Rat mong duoc don tiep! Nguyen Van B ******************************** Hướng dẫn: Muốn giải một bài toán hay muốn thiết kế một chương trình nào đó ta luôn xác định 3 phần sau: + Dữ liệu vào (Input) là gì? (Đối với bài này thì không có dữ liệu vào). + Dữ liệu ra (Output) là gì? (Đối với bài này dữ liệu ra là in ra màn hình các dòng văn bản như trên) + Các thao tác xử lý hay còn gọi là thuật toán để giải quyết bài toán (Đối với ví dụ này thì không có) Nói tóm lại bài 1 này chỉ dùng câu lệnh: Writeln như sau: Program In_thiep_moi; {Khai báo tên chương trình} Uses crt; {Khai báo sử dụng thư viện hàm của Pascal} Begin {Bắt đầu chương trình} Clrscr; {Hàm dùng để xoá màn hình – hàm này được chứa trong Crt} Writeln(‘**********************************’); {chuổi để trong dấu nháy đơn} Writeln(‘ Thiep Moi’); Writeln(‘Than moi ban: Nguyen Van A’); Writeln(‘Toi du le sinh nhat cua minh’); Writeln(‘Vao luc 19h ngay 12/10/2005’); Writeln(‘Tai 05/42 Ly Thuong Kiet _ Soc Trang’); Writeln(‘ Rat mong duoc don tiep!’); Writeln(‘ Nguyen Van B’); Writeln(‘**********************************’); Readln; {Có chức năng dừng màn hình để xem kết quả} End. {Kết thúc chương trình dễ quá!} Để dịch chương trình nhấn phím: F9 Để chạy chương trình nhấn tổ hợp phím: Ctrl + F9 Ví dụ 2: VCT nhập vào bán kính r của một hình tròn. Tính chu vi và diện tích của hình tròn theo công thức: Chuvi = 2*pi*r Dientich = pi*Sqr(r) (Sqr là hàm tính bình phương) In các kết quả lên màn hình. Hướng dẫn: + Input (nhập vào r) + Output (Chuvi, Dientich) + Thuật toán: (Chuvi = 2*pi*r , Dientich = pi*Sqr(r) ) Program Tinh_CV_DT_hinh_tron; Uses Crt; Var r,cv,dt: Integer; {Khao báo biến} Begin Writeln(‘ Chuong trinh tinh chu vi, dien tich hinh tron:’); Write(‘Nhap vao ban kinh r cua hinh tron: ‘);Readln(r); {Lệnh Write có chức năng in dòng thông báo ra màn hình, còn lệnh Readln có chức năng nhận giá trị được nhập từ bàn phím và gán vào r} CV := 2*pi*r; {gán biểu thức cho biến cv} DT := pi*sqr(r); {gán biểu thức cho biến dt} Writeln(‘Chu vi cua hình tron la: ‘,cv); Writeln(‘Dien tich cua hinh tron la: ‘,dt); Readln; End. 7)- VCT nhập vào độ dài 3 cạnh a, b ,c của một tam giác. Tính chu vi, diện tích của tam giác theo công thức: Chu vi = a+b+c Dien tich = Sqrt(p*(p-a)*(p-b)*(p-c)) Trong đó: p = Chu vi / 2 In các kết quả lên màn hình. (Lưu hành nội bộ)
Tài liệu đính kèm: