270 likes | 687 Views
NGÔN NGỮ LẬP TRÌNH PASCAL. HỌC VIỆN QUÂN Y Bộ môn Toán – Tin học. Người trình bày: Hoàng Anh. Nội dung. Các bước giải bài toán trên MTĐT Ngôn ngữ mô phỏng, sơ đồ khối Môi trường tích hợp Turbo Pascal Ngôn ngữ lập trình Pascal Một số ví dụ Các kiểu dữ liệu trong Pascal.
E N D
NGÔN NGỮ LẬP TRÌNH PASCAL HỌC VIỆN QUÂN Y Bộ môn Toán – Tin học Người trình bày: Hoàng Anh
Nội dung • Các bước giải bài toán trên MTĐT • Ngôn ngữ mô phỏng, sơ đồ khối • Môi trường tích hợp Turbo Pascal • Ngôn ngữ lập trình Pascal • Một số ví dụ • Các kiểu dữ liệu trong Pascal
I. Các bước giải bài toán trên MTĐT • Thiết kế bài toán Tìm hiểu vấn đề cần giải quyết: Dữ liệu đầu vào, đầu ra; Các tham số, điều kiện liên quan; Phương tiện cho phép sử dụng để giải quyết vấn đề; Khái quát, tổng hợp thông tin thu nhận được và xây dựng bài toán một cách khoa học, chính xác • Tìm phương pháp giải quyết vấn đề (thuật toán Thuật toán là những mô tả chi tiết về phương pháp và cách thức giải quyết một vấn đề. Những mô tả này chi tiết đến mức mà người thực hiện không cần hiểu gì về nội dung và bản chất của vấn đề, chỉ cần theo đúng những bước đã mô tả thì sau một số hữu hạn bước là có thể giải quyết được vấn đề một cách chính xác và hoàn thiện. Yêu cầu cơ bản của thuật toán: (1) Phải đúng; (2) Sau một số hữu hạn bước phải dừng
I. Các bước giải bài toán trên MTĐT • Lập trình • Diễn giải thuật toán sang dạng ngôn ngữ mô phỏng hoặc sơ đồ khối • Lập chương trình • Biên dịch chương trình • Kiểm tra, Sửa lỗi (cú pháp, thuật toán) • Thực hiện chương trình
Đọc biến x Viết ra giá trị của x Nếu b đúng thì làm việc 1, nếu không thì làm việc 2 Làm việc 1 n lần Làm việc 1 cho đến khi nào b nhận giá trị sai Read(x) Write(x) If b then <Viec_1> else <Viec_2> For i = 1 To n Do <Viec_1> While b do <Viec_1> II. Ngôn ngữ mô phỏng & sơ đồ khối • Ngôn ngữ mô phỏng: • Là ngôn ngữ mà người lập trình quy định để mô tả thuật giải của mình • Có nhiều dạng khác nhau: Sử dụng tiếng việt; Ngôn ngữ phỏng Pascal vv... • Đặc điểm: Chủ yếu tập trung diễn đạt thuật toán mà không chú ý đến những quy định về cú pháp của một ngôn ngữ cụ thể • Ví dụ về ngôn ngữ mô phỏng Pascal
A Thực hiện phép thử B Thực hiện việc A Begin A Gọi chương trình con A Bắt đầu Vào, ra dữ liệu End Kết thúc B Luồng chương trình II. Ngôn ngữ mô phỏng & sơ đồ khối • Các phần tử cơ bản của sơ đồ khối
Begin Begin Đọc n Đọc n Đọc n S=n(n+1)/2 S=0; i=1 i n In S In S End S = S + i End i = i + 1 Thuật toán sử dụng công thức tính tổng Thuật toán cộng dồn II. Ngôn ngữ mô phỏng & sơ đồ khối • Ví dụ: Sơ đồ khối thuật toán tính tổng của n số tự nhiên đầu tiên Bài toán có thể giải theo hai cách: • Sử dụng công thức tính tổng S = n(n+1)/2 • Dùng phương pháp cộng: S = i ( 1 i n)
F6 • Program TinhTong; • Uses crt • Var • x, y: Integer • Begin • Read(x); • Read(y) • .... • End. • Program TinhTong; • Uses crt • Var • x, y: Integer • Begin • Read(x); • Read(y) • .... • End. • Program TinhTong; • Uses crt • Var • x, y: Integer • Begin • Read(x); • Read(y) • .... • End. III. Môi trường tích hợp Turbo Pascal • Môi trường tích hợp Turbo Pascal • Module soạn thảo chương trình (Editor): cho phép soạn thảo chương trình nguồn (.pas) với nhiều công cụ hỗ trợ soạn thảo (sao chép, cắt dán, di chuyển con trỏ, lưu trữ ra đĩa, mở tệp từ đĩa vv...). • Module chương trình dịch (Compiler): • Soát lỗi cú pháp và hiển thị lỗi trong cửa sổ soạn thảo • Biên dịch chương trình nguồn (.pas) thành chương trình dưới dạng mã máy (.exe). • Các công cụ hỗ trợ khác • Một số thao tác cơ bản • Khởi động: Turbo hoặc [Path] Turbo • Thoát: Alt + X • Lưu chương trình vào đĩa: File -> Save • Mở file chương trình trên đĩa: File -> Open • Di chuyển giữa các cửa sổ: F6 • Các phím soạn thảo: Các phím mũi tên; Insert;, Delete; Home; End; Page Up; Page Down; Back Space; Enter • Đánh dấu chọn khối: Shift + Phím mũi tên • Sao chép, cắt dán khối: Ctrl + K + C; Ctrl + K + V; Ctrl + K + Y • Huỷ chọn khối: Ctrl + K + H • Dịch chương trình: F9 • Thực hiện chương trình: Ctrl + F9
IV. Ngôn ngữ lập trình Pascal • Xuất xứ: Do Nikolaus (Đại học kỹ thuật Zurich, Thuỵ sĩ) sáng tạo ra vào công bố vào đầu những năm 70. Ngôn ngữ được đặt tên bằng tên của nhà toán học người Pháp Blaise Pascal. • Định nghĩa: Cấu trúc dữ liệu + Thuật toán = Chương trình • Bảng chữ cái • Chữ cái: A - Z; a - z • Chữ số: 0 – 9 • Dấu gạch nối _ • Các ký hiệu toán học thông dụng: + - * / Div Mod • Các phép toán quan hệ, logic: <> = > < >= <= AND OR NOT • Tên • Là một dãy các ký tự (chữ cái, chữ số) bắt đầu bằng chữ cái, không chứa dấu cách. • Ví dụ: Delta, X1, X2, Epxilon • Các đối tượng của chương trình: biến, hằng, hàm, kiểu, chương trình con đều được đặt tên để truy cập
IV. Ngôn ngữ lập trình Pascal • Tên chuẩn • Là những tên được ngôn ngữ định nghĩa sẵn, người lập trình không được phép đặt trùng • Ví dụ: Boolean, Char, Integer, Real, Bytes, Text, False, True, MaxInt, ABS, Arctan, Chr, Cos, Sin, Ord, Pred, Succ • Dấu chấm phẩy ;: Dùng để ngăn cách câu lệnh • Từ khoá • Là những từ mang ý nghĩa nhất định đã được ngôn ngữ định nghĩa sẵn, người lập trình không được phép đặt trùng • Ví dụ: Begin; End; Progam • Hằng, biến • Là những ô nhớ trong RAM được truy cập bằng tên. Hằng có giá trị không đổi còn giá trị của biến có thể thay đổi được. • Dữ liệu • Số • Ký tự • Các loại dữ liệu khác
Phần tên chương trình Program <Tên chương trình>; Phần khai báo, mô tả Khai báo các nhãn (Label) Khai báo các hằng (Constant) Khai báo các kiểu (Type) Khai báo các biến (Var) Khai báo các chương trình con (Procedure, Function) Phần thân chương trình • Begin • Câu lệnh 1; • Câu lệnh 2; • ............... • Câu lệnh n; • End. IV. Ngôn ngữ lập trình Pascal • Cấu trúc một chương trình Pascal
IV. Ngôn ngữ lập trình Pascal • Khai báo biến, hằng, kiểu • Khai báo hằng: Const Tên hằng 1 = <Giá trị hằng 1>; Tên hằng 2 = <Giá trị hằng 2>; Ví dụ: Pi = 3.14; Ten = ‘Anh’; • Khai báo biến: Var Tên biến 1, Tên biến 1, ... Tên biến n : <Kiểu dữ liệu>; Ví dụ:X1, X2, Delta: Real; n: Integer; • Khai báo kiểu dữ liệu do người dùng định nghĩa: Type Tên kiểu : (Danh sách các giá trị); Ví dụ: Type Color = (Red, Green, Blue); Var C: Color;
ax2 + bx + c • ( a * x * x + b * x + c ) / ( d * x + f ) • dx + f IV. Ngôn ngữ lập trình Pascal • Biểu thức • Biểu thức phải được viết dưới dạng dòng ký tự • Ví dụ: • Phép gán • Cú pháp: <Tên biến> := <Biểu thức> ; • Điều kiện: Biến và Biểu thức phải cùng kiểu dữ liệu • Hoạt động: Tính giá trị của biểu thức vế phải và gán giá trị cho biến có tên ở vế trái. Nếu vế trái không phải là biến thì máy sẽ báo lỗi. • Ví dụ • a := 4; • a:= a + 1;
IV. Ngôn ngữ lập trình Pascal • Các toán tử vào và ra • Toán tử Write Viết ra một hoặc nhiều giá trị Writeln Viết ra một hoặc nhiều giá trị và đưa con trỏ xuống dòng kế tiếp Read Đọc vào một hoặc nhiều giá trị Readln Đọc vào một hoặc nhiều giá trị và đưa con trỏ xuống dòng kế tiếp • Cú pháp: T( b1, b2, .... bn) ; (T là một trong 4 toán tử nói trên, b là các biến hoặc giá trị). • Ví dụ: Với a=2, b=4 Dùng lệnh: Write(‘Nghiem kep = ’, -b/(a+a)); Trên màn hình xuất hiện dòng chữ: Nghiem kep = -1 • Chú ý: Trong lệnh Read, nếu đọc vào nhiều biến cùng lúc, người thực hiện chương trình phải gõ vào đủ các giá trị (phân cách bởi dấu Enter) thì lệnh mới kết thúc • Cách viết có quy cách đối với số nguyên và số thực • Số thực: Writeln( ‘x = ‘, x : m : n ) trong đó m là số vị trí dùng để viết x, n là số vị trí phần thập phân • Số nguyên: Writeln( ‘x = ‘, x : m ) trong đó m là số vị trí dùng để viết x • Kết hợp giữa Write và Readln để đọc dữ liệu Wrtie ( ‘x = ‘); Readln(x);
V. Một số ví dụ chương trình Pascal • Tính tổng của 3 số a, b, c cho trước Program Tinh_Gia_Tri; Uses crt; Const A = 1; B = 2; C = 3; Var X: Integer; Begin Clrscr; X := a + b + c; End. • Tính tổng của n số tự nhiên đầu tiên • Program Tinh_tong; • Uses crt; • Var • n: Integer; • Begin • Write(‘n = ‘); Readln(n); • S := n*(n+1)/2; • Write(‘S = ‘, S); • Readln; • End.
Mô hình dữ liệu Nguyên (Integer) Thực (Real) Logic (Boolean) Chuẩn Vô hướng Ký tự (Char) Người dùng định nghĩa Dạng liệt kê Khoảng con Dữ liệu Mảng (array) Có cấu trúc Tập hợp (Set) Bản ghi (Record) Tệp (File) Xâu ký tự (String) Con trỏ (pointer) V. Các kiểu dữ liệu trong Pascal
V. Các kiểu dữ liệu trong Pascal • Kiểu số nguyên - Integer • Pascal chuẩn dùng 2 byte để lưu trữ một số nguyên • Các phép tính số học: + - * / DIV MOD • Các phép toán quan hệ dùng để so sánh với nhau và với số thực: <> = > < >= <= • Hàm ODD(n) trả về True nếu n là lẻ và False nếu n chẵn • Các kiểu số nguyên chuẩn và khoảng giá trị của nó • Integer: -32 768 32 767 • Byte: 0 255 • ShortInt: -128 127 • Word: 0 65 355 • LongInt: -2 147 483 648 2 147 483 647
V. Các kiểu dữ liệu trong Pascal • Kiểu số thực - Real • Các phép tính số học tương tự như kiểu số nguyên. Không tồn tại phép DIV MOD với các số thực • Có hai dạng biểu diễn là dấu phảy tĩnh và dấu phảy động • Các hàm số học chuẩn dùng cho cả số nguyên và số thực: • ABS(x), SQR(x), Sin(x), Cos(x), Arctan(x), Ln(x), Exp(x), SQRT(x). • Frac(x): cho phần phân số của x. Frac(2.05) = 0.05 • RanDom(n): Cho một số nguyên ngẫu nhiên nằm trong khoảng 0 n. • Trunc(x): Cho phần nguyên của x. Trunc(3.95) = 3. • Round(x): Làm tròn x. Round(3.67) = 4; Round(3.25) = 3 • Các kiểu số thực mở rộng • Kiểu Sóo byte dùng để lưu trữ Số chữ số có nghĩa • Single 4 7 – 8 • Real 6 11 - 12 • Double 8 15 - 16 • Extended 10 19 - 20
V. Các kiểu dữ liệu trong Pascal • Kiểu logic – Boolean • Chỉ nhận hai giá trị là True và False • Các phép toán AND OR NOT • Các phép toán quan hệ cho kết quả kiểu logic: : <> = > < >= <= • Kiểu ký tự - Char • Là các chữ cái, chữ số A – Z; a – z; 0 – 9 • Hằng ký tự được viết trong dấu nháy đơn ‘a’ ‘9’ • Bộ mã ASCII dùng để mã hoá toàn bộ các ký tự • A = 65 B = 66 ... Z = 90 • a = 97 b = 98 ... z = 122 • 0 = 48 9 = 57 • 7 là Bell 13 là Enter 27 là Escape. • Các hàm ký tự: • ORD(ch): Cho số thứ tự của ch trong bộ mã ASCII • CHR(n) Cho ký tự có số thứ tự là n trong bộ mã ASCII • PRED(ch) Cho ký tự liền trước của ch • SUCC(ch) Cho ký tự đứng liền sau của ch • Kiểu đếm được, không đếm được Trong các kiểu chuẩn, Real là không đếm được