MỤC TIÊU HỌC TẬP • Nắm được các bước giải quyết một bài toán trên máy tính điện tử.. • Nắm vững những khái niệm cơ bản của ngôn ngữ: bảng chữ cái, tên, từ khoá, tên chuẩn, hằng, biến, cá
Trang 1BỘ QUỐC PHÒNG HỌC VIỆN QUÂN Y
BÀI GIẢNG TIN HỌC
NGÔN NGỮ LẬP TRÌNH PASCAL
Bộ môn: Toán – Tin học Người biên soạn: Hoàng Anh
NĂM HỌC 2009 - 2010
Trang 2BỘ QUỐC PHÒNG
HỌC VIỆN QUÂN Y
K80
Mẫu 4PP
KẾ HOẠCH BÀI GIẢNG
I PHẦN THỦ TỤC
Đối tượng học viên: Dài hạn
Người biên soạn: Hoàng Anh
Thời gian giảng 180 phút
II MỤC TIÊU HỌC TẬP
• Nắm được các bước giải quyết một bài toán trên máy tính điện tử
• Hiểu và sử dụng được các công cụ diễn giải thuật toán: sơ đồ khối và ngôn ngữ mô phỏng
• Biết cách làm việc với môi trường làm việc tích hợp của Turbo Pascal
• Nắm vững những khái niệm cơ bản của ngôn ngữ: bảng chữ cái, tên, từ khoá, tên chuẩn, hằng, biến, cách chú giải chương trình
• Hệ thống hoá được các kiểu dữ liệu của Pascal Nắm vững và có thể sử dụng được các kiểu dữ liệu vô hướng chuẩn: số nguyên, số thực, logic, ký tự khi viết chương trình
• Nắm được cấu trúc cơ bản của một chương trình Pascal Biết cách khai báo hằng, biến, kiểu Sử dụng được toán tử gán, các toán tử vào ra dữ liệu
• Viết được những chương trình tính toán đơn giản theo cấu trúc tuần tự
III KỸ THUẬT TIẾN HÀNH
Phương pháp dạy học: Trình chiếu + Diễn giảng
Hình thức tổ chức dạy học: Tập trung tại phòng giảng
Phương tiện dạy học: Máy tính; Máy chiếu; Bảng; Phấn
Trang 3IV PHÂN BỐ THỜI GIAN
gian
Phương pháp
Phương tiện
HĐ của học sinh
I CÁC BƯỚC GIẢI BÀI TOÁN TRÊN
MTĐT
3 Lập chương trình
Diễn giải thuật toán sang sơ đồ khối hoặc ngôn
Ngôn ngữ mô phỏng
Sơ đồ khối
Ví dụ: Hai thuật toán tính tổng n số tự nhiên đầu
tiên
20’
Giới thiệu môi trường soạn thảo & biên dịch của
Pascal
Biên dịch
Hiệu chỉnh
II NGÔN NGỮ LẬP TRÌNH PASCAL
Bảng chữ cái
Tên
Tên chuẩn
Dấu chầm phẩy
Chú giải chương trình
Từ khoá
Hằng, biến
dữ liệu
Phân loại các kiểu dữ liệu
Kiểu số nguyên
Kiểu số thực
Kiểu logic
Kiểu ký tự
Khái niệm đếm được, không đếm được
Trang 43 Cấu trúc một chương trình PASCAL 5’
8 Một số thủ tục thường sử dụng 1’
9 Ví dụ
Tính tổng của 3 số a, b, c cho trước 10’
Tính tổng của n số tự nhiên đầu tiên 10’
Tóm tắt bài, nhấn mạnh những điểm quan trọng cần lưu ý 5’
V KIỂM TRA ĐÁNH GIÁ (thông tin phản hồi)
VI TỔNG KẾT BÀI GIẢNG
VII NHẬN XÉT RÚT KINH NGHIỆM
VIII BỔ SUNG
Thông qua Chủ nhiệm bộ môn
Vũ Quang Thường
Ngày 12 tháng 12 năm 2009 Người làm kế hoạch
Hoàng Anh
Trang 5BỘ QUỐC PHÒNG
HỌC VIỆN QUÂN Y
Mẫu 5PP
DUYỆT CỦA CHỦ NHIỆM
Ngày 12 tháng 12 năm 2009
Vũ Quang Thường
Bộ môn, khoa: Toán – Tin học
Mã hiệu bài giảng:
Thời gian giảng: 180 phút
Trang 6NỘI DUNG
I CÁC BƯỚC GIẢI BÀI TOÁN TRÊN MÁY TÍNH ĐIỆN TỬ.
1 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
• Dữ liệu đầu ra
• Các tham số, điều kiện có liên quan
• Phương tiện cho phép sử dụng để giải quyết vấn đề
Người cán bộ tin học cần khái quát, tổng hợp những thông tin thu nhận được và xây dựng được bài toán mà mình cần phải giải quyết một cách rõ ràng, chính xác và khoa học
2 Tìm phương pháp giải quyết vấn đề và thuật toán.
Sau khi đã thiết kế xong bài toán, cần tìm được phương pháp giải quyết bài toán Trong tin học, phương pháp giải quyết vấn đề được mô tả bằng thuật toán
Thuật toán là những mô tả đến 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 đối với một thuật toán là:
• Phải đúng
• Sau một số hữu hạn bước phải dừng và cho kết quả đúng
3 Lập chương trình.
a Diễn giải thuật toán sang dạng sơ đồ khối hoặc ngôn ngữ mô phỏng.
Ngôn ngữ mô phỏng là ngôn ngữ mà nguời lập trình quy định để mô tả thuật giải của minh Tuỳ theo ý muốn của người lập trinh mà có thể có nhiều dạng khác nhau
Có thể dùng tiếng việt, có thể dùng ngôn ngữ phỏng Pascal hoặc kết hợp Khi sử dụng ngôn ngữ mô phỏng, người sử dụng chỉ tập trung chú ý đến việc diễn đạt thuật toán mà không cần chú ý đến những quy định về syntax của một ngôn ngữ cụ thể nào
Ví dụ: Ngôn ngữ PceudoPascal (Phỏng Pascal)
việc 2
Trang 7For i = 1 to n do <việc 1> Làm việc 1 n lần
Sơ đồ khối là một trong những cách mà người lập trình hay dùng để mô tả thuật toán Sơ đồ khối thường được diễn giải bằng những phương tiện mô tả chính sau:
Có thể tính theo hai cách là cộng dồn hoặc tính theo công thức
- Tổng = Σ i (0 ≤ i ≤ n)
- Tổng = n(n+1)/2
Thuật toán được diễn đạt theo dạng sơ đồ khối như sau:
b Lập chương trình.
Các bước lập chương trình bao gồm:
• Chọn ngôn ngữ
• Phân bố bộ nhớ
• Phiên dịch thuật giải từ ngôn ngữ mô phỏng hoặc sơ đồ khối sang ngôn ngữ
đã chọn (viết chương trình nguồn)
• Nhập chương trình nguồn vào máy
Chương trình nguồn được soạn thảo và biên dịch nhờ môi trường phát triển
tích hợp (IDE – Integrated Development Environment) của Turbo Pascal File
chương trình chính có tên là Turbo.exe.
Một số chức năng chính cần chú ý là:
Khởi động: Turbo ↵
Thoát: Alt + X Lưu chương trình nguồn: File -> Save (F2)
Begin
Đọc n
S := n(n+1)/2
In ra S
End
Begin Đọc n
S := S + i i:= i + 1
In ra S End
S := 0; i:=1
i <=
n True
False
Trang 8Mở chương trình mới: File -> Open (F3)
Di chuyển giữa các cửa sổ: F6
Trên mỗi cửa sổ chỉ soạn thảo và biên dịch một chương trình Mỗi chương trình nên lưu trữ vào một file riêng biệt trên đĩa
Các phím soạn thảo: Arrows, Insert, Delete, Home, End, Page Up, Page Down, Back Space, Enter.
Đánh dấu khối: Shift + Arrow.
Các thao tác sao chép, cắt dán, xoá khối: Ctrl+K+C, Ctrl+K+V, Ctrl+K+Y, Ctrl+K+H.
• Dịch chương trình nguồn sang ngôn ngữ máy (F9) Khi dịch ta sẽ được thông
báo về các lỗi cú pháp (nếu có) để sửa chữa
• Hiệu chỉnh chương trình:
Sửa các lỗi cú pháp
Sửa lỗi thuật toán
Sửa lỗi do khả năng của máy
c Thực hiện chương trình: Ctrl + F9
II NGÔN NGỮ LẬP TRÌNH PASCAL.
Ngôn ngữ Pascal do Niklaus Wirth (Đại học kỹ thuật Zurich, Thụy sĩ) sáng tạo ra và công bố vào đầu những năm 70 Ngôn ngữ được đặt tên bằng tên nhà toán học người Pháp Blaise Pascal Tồn tại rất nhiều phiên bản của Pascal trong đó có phiên bản Turbo Pascal của hãng Borland (Mỹ) Pascal là ngôn ngữ lập trình có cấu trúc
Dễ học và được dùng để dạy lập trình trong rất nhiều trường đaị học
Một trong những định nghĩa nổi tiếng của tác giả là:
Cấu trúc dữ liệu + Giải thuật = Chương trình
1 Một số khái niệm cơ bản:
Bảng chữ cái:
Ký tự: A-Z, a-z
Ký số: 0 – 9
Dấu gạch nối: _ (Chú ý phân biệt với dấu trừ - )
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
Trang 9Là 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 các dấu cách) Ví dụ: Delta, X1, X2, Epsilon Độ dài của tên phụ thuộc vào Version của Pascal
Các đối tượng trong chương trình (hằng, biến, hàm, chương trình con) đều được đặt tên để truy cập
Để lám sáng sủa tên, người ta dùng các dấu gạch nối (vì không được phép sử dụng dấu cách)
Tên chuẩn:
Tên chuẩn là những tên được định nghĩa từ trước 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
Lời giải thích (Comment):
Dùng để chú giải cho các đoạn mã của chương trình
Nằm trong cặp ngoặc { } hoặc (* *)
Từ khoá:
Là những từ mang ý nghĩa nhất định đã được ngôn ngữ định nghĩa sẵn và người lập trình không được sử dụng với ý nghĩa mới
Ví dụ: Begin, End, Program
Hằng, Biến:
Hằng và biến là những ô nhớ trong RAM được truy cập bằng tên Sự khác biệt giữa chúng là hằng có giá trị không đổi từ khi khởi tạo còn giá trị của biến
có thể thay đổi được theo thời điểm
Trang 10Dữ liệu
Số liệu ban đầu
Các ký tự
Các hồ sơ nghiêm chỉnh
2 Các kiểu dữ liệu
Kiểu số nguyên (Integer)
Pascal chuẩn sử dụng 2 byte để lưu trữ một số nguyên Từ version 5.0 trở lên dùng 4 byte để lưu trữ
Các phép tính số học với số nguyên: +, -, *, /, DIV, MOD
Các phép toán quan hệ dùng để so sánh số nguyên với nhau và với số thực:
<>, =, >, <, >=, <=.
Hàm ODD(n) Cho giá trị True nếu n lẻ, False nếu n chẵn).
Các kiểu số nguyên chuẩn:
Integer -32 768 ÷ 32 767 = MaxInt
LongInt - 2 147 483 648 ÷ 2 147 483 647
Vô hướng
Chuẩn
Người dùng định nghĩa
Nguyên (Integer) Thực (Real) Logic (Boolean)
Ký tự (Char)
Dạng liệt kê Khoảng con
Có cấu trúc
Mảng (array) Tập hợp (Set) Bản ghi (Record) Tệp (File)
Dữ liệu
Kiểu xâu ký tự (String) Kiểu con trỏ (pointer)
Trang 11Kiểu thực (REAL)
Tương tự như với kiểu Integer
Không tồn tại phép DIV và MOD với số thực
Dạng biểu diễn: Có hai dạng 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ố byte dùng để lưu trữ Số chữ số có nghĩa
Kiểu logic
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ữ viết: A – Z, a – z, 0 – 9
Hằng ký tự được viết trong dấu nháy đơn ‘a’
Bộ mã ASCII dùng 1 byte để mã hoá toàn bộ các ký tự -> có thể biểu diễn tới
256 ký tự
A = 65, B = 66, Z = 90
a = 97, b = 98, z = 122
0 = 48, 9 = 57
Các ký tự nằm trong bảng mã từ 0 đến 9 là các ký tự điều khiển
Không in được
Ký tự 7 là Bell 13 là Enter 27 là Escape.
Các hàm ký tự chuẩn thường dùng
ORD(ch): cho số thứ tự của ch trong bộ mã
Trang 12PRED(ch): cho ký tự nằm liền trước (Pred(ch) = CHR(ORD(ch) – 1) SUCC(ch): cho ký tự nằm liền sau (Succ(ch) = CHR(ORD(ch) + 1)
Khái niệm về đếm được, không đếm được
Trong các kiểu dữ liệu chuẩn, Chỉ có kiểu Real là kiểu không đếm được
3 Cấu trúc một chương trình Pascal.
Một chương trình bất kỳ bao giờ cũng gồm ba thành phần cấu trúc sau
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 (Const) 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
Dòng lệnh 1;
Dòng lệnh 2;
Dòng lệnh n;
End.
Khai báo các nhãn (Label) thường đi với toán tử Go To là một trong những toán tử thường không được khuyến khích sử dụng trong các ngôn ngữ lập trình có cấu trúc
4 Khai báo biến, hằng và kiều.
Hằng được khai báo như sau
Const
Tên hằng 1 = <Giá trị hằng 1>;
Tên hằng 2 = <Giá trị hằng 2>;
Biến được khai báo như sau
Var
Tên biến 1, Tên biến 2, Tên biến n: <Kiểu>;
Trang 13Kiểu dữ liệu mới được mô tả và khai báo như sau
Type
Color = (Red, Green, Blue);
Var
C: Color;
5 Biểu thức:
Biểu thức phải được viết dưới dạng dòng ký tự
Ví dụ:
6 Toán tử gán.
Cú pháp: Tên biến := Biểu thức;
Biểu thức và biến phải cùng kiểu dữ liệu
Nguyên lý làm việc: Tính toán giá trị cuả biểu thức bên phải và gán giá trị cho biến
có tên nằm ở bên trái
Ví dụ:
A := 4;
A := A + 1; Kết quả là biến A có giá trị bằng 5
Chú ý: Nếu bên trái không phải là biến máy sẽ báo lỗi
7 Các toán tử vào ra.
Toán tử:
Writeln Viết ra một giá trị và đưa con trỏ xuống dòng
Readln Đọc vào một giá trị và đưa con trỏ xuống dòng
Cú pháp chung: T(b1, b2, , bn) trong đó T là một trong các toán tử nói trên.
Ví dụ:
Với a = 2, b = 4
Dùng lệnh Write(‘Nghiem kep = ‘, -b/(a+a));
Trên màn hình sẽ xuất hiện: Nghiem kep = -1
Chú ý: trong lệnh Read, nếu đọc vào cùng lúc nhiều biến, người thực hiện chương trình phải gõ đủ các giá trị lệnh mới kết thúc Sau khi gõ xong giá trị một biến thì phải nhấn Enter
ax2 + bx + c
Trang 14Cách viết có quy cách trong lệnh Write, Writeln:
Số thực: Writeln(‘x = ‘, x:8:2); sẽ viết số thực x bằng một con số có 8 chữ số
với 2 chữ số thập phân nằm sau dấu phẩy
Số nguyên: Writeln(‘x = ‘, x:8); sẽ viết số nguyên x với 8 khoảng cách và
được căn lề về bên phải
Muốn in kết quả ra máy in cần viết lệnh: Write(lst, ‘Nghiem kep = ‘, -b/(a+a)); Trên
đầu chương trình phải khai báo: Uses Printer;
Cách dùng kết hợp giữa Read và Write để nhắc người dùng biết là đang gõ vào số liệu gì:
Write(‘a = ‘); Readln(a);
Write(‘b = ‘); Readln(b);
8 Một số thủ tục thường sử dụng.
clrscr() Xoá màn hình và đưa con trỏ về góc trên bên trái
Readkey() Cho ký tự mà người dùng vừa gõ vào bàn phím
Keypressed() Cho giá trị đúng nếu người sử dụng vừa nhấn phím
9 Một số ví dụ chương trình đơn giản.
Ví dụ 1: Tính tổng của ba số a, b, c cho trước
Program Tinh_Gia_Tri;
Uses ctr;
Const
A = 1;
B = 2;
C = 3;
Var
X: Integer;
Begin
X := a + b + c;
End.
Trang 15Ví dụ 2: Tính tổng của n số tự nhiên đầu tiên.
Program Tinh_tong;
Uses ctr;
Var
n: Integer;
Begin
Write(‘n = ‘); Readln(n);
S := n*(n+1)/2;
Write(‘S = ‘, S);
Readln;
End.
III BÀI TẬP
1 Viết chương trình tính diện tích các hình: chữ nhật, vuông, tròn, thang, tam giác
2 Viết chương trình tính thể tích các hình: lập phương, cầu, hộp chữ nhật trụ
3 Viết chương trình tính giá trị các biểu thức đơn giản:
P = a2 + 2a3 – 2bc
∆ = b2 – 4ac
4 Viết chương trình đọc vào: họ tên, điểm toán, điểm lý, điẻm hoá và in ra phiếu điểm của học sinh đó trong đó có cả tổng điểm và điểm trung bình
Họ và tên: Lê văn Nam Điểm toán: 7.0
Điểm trung bình: 7.0
TÀI LIỆU THAM KHẢO
Quách Tuấn Ngọc, Ngôn ngữ lập trình PASCAL, NXB Thống kê, Hà nội, 2001 Phạm Văn Ất, Turbo Pascal, Trường đại học Giao thông vận tải, Hà nội, 1993.