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

bài giảng pascal

48 1,3K 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 48
Dung lượng 443,91 KB

Nội dung

Chương 1: Thuật giải và chương trình1.Thuật giải algorithm Là một tập hữu hạn các thao tác các công việc, các phép toán có thể đặt tên được và được thực hiện theo một trình tự thích hợp

Trang 1

LẬP TRÌNH PASCAL

LỚP: CĐ CK 2011

Trang 2

Chương 1: Thuật giải và chương trình

1.Thuật giải (algorithm)

Là một tập hữu hạn các thao tác (các công việc, các phép toán) có thể đặt tên được và được thực hiện theo một trình tự thích hợp trên một số đối tượng để đạt được mục đích mong muốn

 "Hữu hạn" ở đây được hiểu cả về mặt thời gian thực hiện lẫn công cụ thực hiện.

I. Khái niệm

Trang 3

+ Tính dừng: Thuật toán phải kết thúc sau một số hữu hạn bước.

+ Tính xác định: Các thao tác ở mỗi bước phải hết sức rõ ràng và chỉ được hiểu theo một nghĩa duy nhất Trong cùng một điều kiện hai máy khác nhau hoặc hai lần thao tác khác nhau phải cho cùng một kết quả khi thực hiện cùng một thuật toán.

+ Tính hàng loạt: Thuật toán có hiệu lực như nhau đối với các bài

toán cùng loại (có cùng miền áp dụng thuật toán).

+ Tính khả thi: Thuật toán phải bao gồm các thao tác mà máy có thể thực hiện được (chỉ bao gồm những phép toán số học, các phép

so sánh, các phép logic, các phép nhập xuất thông tin tiêu chuẩn).

+ Tính đầy đủ: Thuật toán phải vét được hết các tình huống, các khả năng có thể xảy ra, không bỏ sót bất kỳ một trường hợp nào.

II CÁC ĐẶC TRƯNG CỦA THUẬT TOÁN

Trang 4

III CÁC DẠNG DIỄN TẢ THUẬT TOÁN

1 Diễn đạt bằng văn bản (ngôn ngữ tự nhiên)

-Khá đơn giản; gần gũi với tư duy của con người nhưng phụ thuộc rất nhiều vào cách diễn đạt của người sử dụng

Vì vậy nó không tránh khỏi có những chỗ rườm rà khiến cho người đọc không có được một cái nhìn khái quát với toàn bộ thuật toán

2 Diễn đạt bằng ngôn ngữ lập trình

Ngôn ngữ lập trình (language program) là ngôn ngữ do các chuyên gia tin học tạo ra chuyên dùng để viết chương trình cho máy tính Nó được xây dựng khá đơn giản về chính tả và ngữ pháp khá gần gũi với ngôn ngữ khoa học kỹ thuật, quản lý

Trang 5

III CÁC DẠNG DIỄN TẢ THUẬT TOÁN

3 Diễn đạt bằng lưu đồ

 Điểm bắt đầu và chấm dứt thuật toán

 Thao tác nhập hay xuất dữ liệu

 Khối xử lý công việc

 Khối quyết định lựa chọn

 Điểm nối

 Chuẩn bị

 Khối chương trình con

 Đường đi của chương trình

Trang 6

Bước 1: Nhập vào 2 hệ số a và b

Bước 2: Xét điều kiện a = 0 ?

Nếu đúng là a = 0, thì đi đến bước 3 Nếu không, nghĩa là a ≠ 0, thì đi đến bước 4

Bước 3: Xét điều kiện b = 0 ?

Nếu b = 0, thì báo phương trình có vô số nghiệm Chuyển đến bước 5

Nếu b ≠ 0, thông báo phương trình vô nghiệm Chuyển đến bước 5

Bước 4:

PT có một nghiệm duy nhất là x = - b/a

Bước 5: Kết thúc thuật toán

III CÁC DẠNG DIỄN TẢ THUẬT TOÁN

Bằng văn bản

Ví dụ 2: Thuật toán giải phương trình bậc nhất ax + b = 0

Trang 7

Bằng Lưu Đồ

Trang 8

Ví dụ 3 : Tính tổng S của n số nguyên đầu tiên, ta tiến hành theo hai thuật giải sau

Trang 9

Ví dụ 4: Thuật giải đổi chỗ

Viết thuật giải để nhập vào 2 số A, B từ bàn phím sau đó đổi giá trị của biến A cho biến B và ngược lại.

Trang 10

Ví dụ 5: Thuật giải tìm số lớn nhất trong 2 số

Trang 11

BÀI TẬP

1 Viết thuật giải nhập 1 số từ bàn phím và in ra bình phương của số đó nếu số đó là số dương

2.Viết thuật giải nhập từ bàn phím một số tự nhiên N và in ra các số nguyên trong phạm vi từ 1 đến N

3 Viết thuật giải nhập từ bàn phím 2 số tự nhiên m, n (m<n) và in ra màn hình các số chia hết cho m trong khoảng từ 1 đến n

Hướng dẫn: Để kiểm tra xem một số x có chia hết cho m không ta dùng biểu thức kiểm tra X MOD M=0 Nếu biểu thức này là đúng thì x chia hết cho m.

4 Viết thuật giải nhập 3 số từ bàn phím và in ra số lớn nhất trong ba số đó

5 Viết thuật giải nhập 2 số từ bàn phím và in ra UCLN, BCNN của hai số đó

Trang 12

CHƯƠNG 2: CÁC KHÁI NIỆM CƠ BẢN CỦA NGÔN NGỮ LẬP TRÌNH PASCAL

 I. GIỚI THIỆU

Pascal là ngôn ngữ lập trình cấp cao do giáo sư Niklaus Writh (trường ĐH kỹ thuật Zurich, Thuỵ sỹ) sáng tác và công bố vào đầu những năm 1970

Nó giúp cho sinh viên cũng như người mới học lập trình có được thói quen viết một chương

trình có cấu trúc sáng sủa, rõ ràng dễ đọc và dễ hiểu.

Trang 13

 Pascal là một ngôn ngữ có định kiểu mạnh mẽ Có nghĩa một biến và một hằng của một kiểu dữ liệu không thể tự do đem trộn lẫn với biến và hằng của một kiểu dữ liệu khác Khi

sử dụng phải khai báo rõ kiểu của chúng.

 Các kiểu dữ liệu trong Pascal hết sức phong phú thể hiện được nhiều kiểu dữ liệu từ đơn giản đến phức tạp.

 Pascal là một ngôn ngữ có cấu trúc Một ngôn ngữ có cấu trúc khối là một ngôn ngữ mà

ta có thể tách các thông tin dữ liệu (biến, hằng, ) và các lệnh cần dùng cho một nhiệm

vụ xác định thành những khối riêng để người lập trình có thể giải quyết dần dần từng khối một hoặc cho nhiều người cùng tham gia lập trình

Ưu điểm của Pascal

Trang 14

 Tính cấu trúc của Pascal được thể hiện trên 3 mặt:

Cấu trúc về mặt dữ liệu: từ các dữ liệu kiểu đơn giản hoặc lệnh có cấu trúc ta có thể xây

dựng các dữ liệu có cấu trúc phức tạp hơn

Cấu trúc về mặt lệnh: từ các lệnh đơn giản hoặc lệnh có cấu trúc ta có thể xây dựng các

lệnh phức tạp hơn

Cấu trúc về mặt chương trình: một chương trình có thể chia thành những đơn thể (modul)

tương đối độc lập và những chương trình con

Ưu điểm của Pascal

Trang 15

II CÁC PHẦN TỬ CƠ BẢN CỦA NGÔN NGỮ PASCAL 

2.1 Bộ ký tự

 Ngôn ngữ Pascal được xây dựng từ bộ ký hiệu cơ bản sau:

 Bộ 26 chữ cái La tinh: 26 chữ cái thường a, b, c, , z

26 chữ cái hoa: A,B,C, Z

dấu nháy đơn ' các ký hiệu khác như [] $

 Dấu cách (space) được dùng để ngăn cách các từ

Trang 16

2.2 Từ khoá

 Là các từ riêng của Pascal, có ngữ nghĩa đã được xác định, không được dùng nó vào các việc khác hoặc đặt tên mới trùng với các từ khóa

 Từ khóa chung:

PROGRAM, BEGIN, END, PROCEDURE, FUNCTION 

 Từ khóa để khai báo:

CONST, VAR, TYPE, ARRAY, STRING, RECORD, SET,

FILE, LABEL

 Từ khóa của lệnh lựa chọn:

IF THEN ELSE, CASE OF 

 Từ khóa của lệnh lặp:

FOR TO DO, FOR DOWNTO DO,

WHILE DO, REPEAT UNTIL 

 Từ khóa điều khiển:

WITH, GOTO, EXIT, HALT 

 Từ khóa toán tử:

AND, OR, NOT, IN, DIV, MOD

Trang 17

2.3 Tên chuẩn

 Tên chuẩn là tên đã được định nghĩa sẵn trong Pascal, nhưng người ta có thể định nghĩa lại nếu muốn Trong Pascal ta có các tên chuẩn sau đây: 

Boolean, Char, Integer, Word, Byte, Real, Text

False, True, MaxInt

Abs, Chr, Cos, Sin, Eof, Eoln

Exp, Ln, Odd, Ord

Round, Trunc, Sqr, Pred, Succ

Dispose, New, Get, Put,

Read, Readln, Write, Writeln, Reset, Rewrite

Trang 18

2.4 Tên hay định danh

Là một dãy ký tự do người sử dụng tự đặt cho các hằng, biến, hàm, thủ tục, tên chương trình, tên kiểu dữ liệu mới Tên hay định danh trong Pascal phải tuân thủ các qui định sau:

 Tên phải được bắt đầu bằng một chữ cái hoặc chữ số.

 Trong tên không chứa dấu cách

 Tên không được trùng với một từ khoá của Pascal

 Số ký tự của tên bị hạn chế là 8 (Pascal chuẩn), 127 (Turbo Pascal)

Ví dụ: Các tên viết như sau:

Chú ý: Để làm cho tên được sáng sủa người ta cho phép dùng dấu gạch dưới (_) khi viết tên Ví dụ:

GIAI_PHUONG_TRINH

• Các từ trong Pascal có thể viết hoa hoặc viết thường mà giá trị và ý nghĩa của chúng không thay đổi.

Trang 19

III CẤU TRÚC CỦA MỘT CHƯƠNG TRÌNH PASCAL

Trang 20

Một chương trình Pascal có các phần:

* Phần tiêu đề: Phần này bắt đầu bằng từ khóa Program rồi tiếp đến là tên của chương trình và chấm dứt bằng dấu

chấm phẩy (;)

Tên chương trình phải được đặt theo đúng qui cách của danh hiệu tự đặt Phần tiêu đề có hoặc không

* Phần khai báo dữ liệu: Một chương trình Pascal có thể có một số hoặc tất cả các khai báo dữ liệu sau:

USES : khai báo các thư viện chương trình

CONST : khai báo hằng

TYPE : định nghĩa kiểu dữ liệu mới

VAR : khai báo các biến

Phần khai báo CT con (có thể có hoặc không tùy theo nhu cầu)

* Phần thân chương trình: Phần thân chương trình là phần quan trọng nhất và bắt buộc phải có, phần này luôn nằm giữa 2 từ khoá là BEGIN và END ở giữa là lệnh mà các chương trình chính cần thực hiện Sau từ khóa END là dấu chấm (.) để báo kết thúc chương trình

III CẤU TRÚC CỦA MỘT CHƯƠNG TRÌNH PASCAL

Trang 22

Ví dụ: Viết chương trình tính diện tích hình tròn biết bán kính là R , tính diện tích hình vuông

biết cạnh là a

PROGRAM VI_DU; (* Dòng tiêu đề *)

VAR R, A, Dientich: Real;(* Khai báo ba biến thực *)

BEGIN

Write ('Ban kinh : R= '); Readln (R);

Dientich:=3.14*R*R; (* Tính diện tích hình tròn *)

Writeln (‘Dien tich hinh tron la:', Dientich:10:3);

Write ('Do dai canh hinh vuong: A= '); Readln (A);

Trang 23

 Dữ liệu (DATA) được định nghĩa là tất cả những gì được máy tính xử lý Các kiểu dữ liệu cần tới máy tính xử lý có rất nhiều, tồn tại dưới nhiều dạng khác nhau về bản chất, ý nghĩa, không chỉ là số liệu mà còn là các kí tự, các mệnh đề logic thể hiện qua các đối tượng cụ thể cần xử lý như tiền lương, địa chỉ, tên, tuổi, văn bản, tín hiệu

 Về phương diện ngôn ngữ bậc cao thì dữ liệu đã được khái quát hoá với các kiểu dữ liệu Một kiểu dữ liệu (Data Type) được định nghĩa với hai điểm chính như sau:

 - Một tập hợp các giá trị mà một biến thuộc kiểu đó có thể nhận được

 - Trên đó xác định một số phép toán.

V CÁC KIỂU DỮ LIỆU CƠ SỞ

Trang 24

Một biến phải gắn liền với một kiểu dữ liệu Các kiểu DL trong Pascal

Trang 25

Kiểu dữ liệu đơn giản

Kiểu số nguyên( Integer ) Kiểu số thực( Real )

Kiểu ký tự( Char ) Kiểu logic( Boolean )

Kiểu dữ liệu có cấu trúc

Kiểu mảng( Array ) Kiểu chuỗi( String ) Kiểu tập hợp( Set ) Kiểu bản ghi( Record ) Kiểu tập tin( File,Text )

Trang 26

5.2 Kiểu số nguyên (Integer type)

a. Kiểu số nguyên trong Turbo Pascal : Được định nghĩa với các từ khóa sau:

V CÁC KIỂU DỮ LIỆU CƠ SỞ

Trang 27

b Các phép toán số học đối với số nguyên 

Trang 28

5.3 Kiểu số thực (Real type)

Có năm kiểu số thực được tổng kết qua bảng sau:

Trang 29

 Các giá trị thực được biểu diễn theo hai cách: dạng dấu phẩy tĩnh và dạng dấu phẩy động.

Dạng dấu phẩy tĩnh: viết dạng thập phân bình thường Ví dụ: 2.14, +5.0, -25.345678, 0.0006

Dạng dấu phẩy động: số được tách thành hai phần là định trị và bậc Phần định trị là một

số nguyên hay số thực viết dưới dạng dấu phẩy tĩnh Phần bậc là một số nguyên.Hai phần cách nhau bởi chữ E hay e

Ví dụ: 123.456E-4: biểu diễn số 0.0123456

0.15E+5: biểu diễn số 15000.05E8: biểu diễn 500000000.0-55.3e2: biểu diễn -5530.0

 Các ký tự biểu diễn một số thực phải viết liền nhau.

Trang 30

Các phép toán số học cơ bản +, -, * , / được sử dụng trong kiểu real.

Chú ý: Riêng phép toán DIV và MOD không thực hiện đối với kiểu số thực  

Trang 31

5.4 Kiểu logic (Boolean)

 Một dữ liệu thuộc kiểu BOOLEAN là một đại lượng được chứa trong 1 byte ở Turbo Pascal và chỉ

có thể nhận được một trong hai giá trị logic là TRUE (đúng) và FALSE (sai)

 Qui ước: TRUE > FALSE 

 Các phép toán trên kiểu Boolean: 

Trang 32

Các phép toán quan hệ cho kết quả kiểu Boolean: 

Trang 33

5.5 Kiểu ký tự (Char type)

 Tất cả các dữ liệu viết ở dạng chữ ký tự được khai báo bởi từ khóa CHAR. 

 Một ký tự được viết trong hai dấu nháy đơn ‘ ‘ Để tiện trao đổi thông tin cần phải sắp xếp, đánh số các ký tự, mỗi cách sắp xếp như vậy gọi là bảng mã Bảng mã thông dụng hiện nay là bảng mã ASCII

 Để thực hiện các phép toán số học và so sánh, ta dựa vào giá trị số thứ tự mã ASCII của từng ký tự, chẳng hạn: 'A'

< 'a' vì số thứ tự mã ASCII tương ứng là 65 và 97.

 Trong Turbo Pascal mỗi ký tự được chứa trong 1 byte Các hàm chuẩn liên quan đến kiểu ký tự: 

Trang 34

Phép toán Ý nghĩa Ví dụ

Các phép toán so sánh logic ‘A’<>’B  TRUE

Trang 36

X : Boolean ; Chon : Char ;  Cần khai báo các biến trước khi sử dụng chúng trong chương trình Khai báo một biến là khai báo sự tồn tại của biến

đó và cho biết nó thuộc kiểu gì.

VI KHAI BÁO BIẾN, HẰNG, KIỂU VÀ BIỂU THỨC

Trang 37

<Tên kiểu> = <Mô tả xây dựng kiểu>; 

Diem = Real;

Tuoi = 1 100 ; Color = (Red, Blue, Green) ; Thu = (Sun, Mon, Tue, Wed, Thu, Fri, Sat) ; khi đã khai báo kiểu gì thì ta có quyền sử dụng để khai báo biến như ở ví dụ sau: 

Dtb : Diem ;

T : tuoi ; Mau : Color ; Ngay_hoc : Thu; 

VI KHAI BÁO BIẾN, HẰNG, KIỂU VÀ BIỂU THỨC

Trang 38

Mức ưu tiên: Các phép toán:

1 Biểu thức trong ngoặc đơn ( )

VI KHAI BÁO BIẾN, HẰNG, KIỂU VÀ BIỂU THỨC

Trang 39

6.4 Biểu thức (Expression)

c Qui ước tính thứ tự ưu tiên

Khi tính một biểu thức có 3 qui tắc về thứ tự ưu tiên như sau: 

Qui tắc 1 : Các phép toán nào có ưu tiên cao hơn sẽ được tính trước

Qui tắc 2 : Trong các phép toán có cùng thứ tự ưu tiên thì sự tính toán sẽ được thực hiện từ trái sang phải

Qui tắc 3 : Phần trong ngoặc từ trong ra ngoài được tính toán để trở thành một giá trị đơn

d Kiểu của biểu thức

Là kiểu của kết quả sau khi tính biểu thức. 

Ví dụ : Biểu thức sau được gọi là biểu thức Boolean:

not (('a'>'c') and ('c'>'C')) or ('B'='b') có giá trị TRUE 

VI KHAI BÁO BIẾN, HẰNG, KIỂU VÀ BIỂU THỨC

Trang 40

+ Trong một chương trình Pascal, sau phần mô tả dữ liệu là phần mô tả các câu lệnh Các câu lệnh có nhiệm

vụ xác định các công việc mà máy tính phải thực hiện để xử lý các dữ liệu đã được mô tả và khai báo

+ Câu lệnh được chia thành câu lệnh đơn giản và câu lệnh có cấu trúc

- Câu lệnh đơn giản

+ Vào dữ liệu : Read, Readln + Ra dữ liệu : Write, Writeln

+ Lời gọi chương trình con (gọi trực tiếp tên của chương trình con) + Xử lý tập tin : RESET, REWRITE, ASSIGN

VII CÁC THỦ TỤC NHẬP/XUẤT

Trang 41

+ - Câu lệnh có cấu trúc

+ Lệnh ghép : BEGIN END + Lệnh chọn : IF THEN ELSE

CASE OF + Lệnh lặp : FOR TO DO

REPEAT UNTIL 

WHILE DO + Các câu lệnh phải được ngăn cách với nhau bởi dấu chấm phẩy ( ; ) và các câu lệnh có thể viết trên một dòng hay nhiều dòng.

VII CÁC THỦ TỤC NHẬP/XUẤT

Trang 44

Writeln( ‘ chu vi= ’ , (dai+rong)*2);

Writeln( ‘ ket thuc chuong trinh ’ );

Trang 45

c := ‘A’ ; c := Chr(90) ;

i := (35+7)*2 mod 4 ; i := i div 7 ;

x := 0.5 ; q := i > 2*j +1 ; q := not p ; 

VII CÁC THỦ TỤC NHẬP/XUẤT

Trang 46

3 Biết rằng trong chương trình có một lệnh gán: i:=n mod 4

Hỏi n có thể khai báo kiểu real được không?

4 Biết rằng trong chương trình có sử dụng một lệnh gán i:=ORD(n) Hãy xác định các kiểu có thể sử dụng được trong khai báo của n

5 Biết rằng S1 và S2 là hai biến kiểu Byte và trong chương trình có lệnh gán S:=S1+S2 Xác định kiểu khai báo đúng nhất của S

6 Biết rằng n là một biến kiểu Byte và trong chương trình có lệnh gán S:=n*(n+1) Hỏi S có thể nhận các kiểu khai báo nào?

Trang 47

7.Biết rằng trong chương trình có một lệnh gán: i:=ORD(n) Hỏi kiểu của i có thể là kiểu số thực được không?

8 Biết rằng trong chương trình có sử dụng lệnh gán i:=n MOD 4 Hỏi kiểu của n có thể là real được không

9.Biết rằng n là một biến kiểu Integer và trong chương trình có sử dụng lệnh gán S:=n*(n+1)/2 Hỏi kiểu của S có thể trùng với kiểu của n được hay không?

10 Biết n là một biến kiểu Integer và S:=n*n Hỏi biến i có thể khai báo kiểu Integer được không nếu gán i:=SQRT(S)

11 Biết rằng n là một biến kiểu integer và S:=n*(n div (trunc (n/2))) Hỏi S có thể nhận giá trị kiểu Integer được không?

Ngày đăng: 23/10/2014, 09:30

TỪ KHÓA LIÊN QUAN

w