1. Trang chủ
  2. » Giáo án - Bài giảng

Bài tập Pascal (chi tiết) - Tham khảo

51 2K 28
Tài liệu đã được kiểm tra trùng lặp

Đ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

Tiêu đề Bài Giảng Ngôn Ngữ Lập Trình Pascal
Tác giả Đinh Văn Thái
Trường học Trường Đại Học
Chuyên ngành Tin học
Thể loại Bài giảng
Năm xuất bản 2006
Thành phố Quảng Bình
Định dạng
Số trang 51
Dung lượng 481,5 KB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

LỜI MỞ ĐẦUTheo khung chương trình của Bộ Giáo Dục và Đào Tạo, Ngôn ngữ Lập trình Pascal là một phần quan trọng trong học phần Tin học Đại cương thuộc các khối ngành Khoa học Tự nhiên, đ

Trang 1

LỜI MỞ ĐẦU

Theo khung chương trình của Bộ Giáo Dục và Đào Tạo, Ngôn ngữ Lập trình Pascal

là một phần quan trọng trong học phần Tin học Đại cương thuộc các khối ngành Khoa học

Tự nhiên, đặc biệt là ngành Công nghệ Thông tin

Nhằm đáp ứng yêu cầu học tập của học sinh, sinh viên bước đầu làm quen với công việc

lập trình, chúng tôi đã biên soạn Bài Giảng ngôn ngữ lập trinh Pascal nhằm giúp cho

sinh viên có một tài liệu học tập, rèn luyện tốt khả năng lập trình, tạo nền tảng vững chắc cho các môn học tiếp theo trong chương trình đào tạo Cử nhân Công nghệ Thông tin

Giáo trình bai gồm rất nhiều bài tập từ đơn giản đến phức tạp Các bài tập này được

biên soạn dựa trên khung chương trình giảng dạy môn Tin học Đại cương Bên cạch đó,

chúng tôi cũng bổ sung một số bài tập dựa trên cơ sở một số thuật toán chuẩn với các cấu trúc dữ liệu được mở rộng nhằm nâng cao kỹ năng, phương pháp lập trình cho sinh viên.Nội dung trong mỗi chương đều có phần lý thuyết, phần bài tập mẫu và cuối cùng là phần bài tập tự giải để bạn đọc tự mình kiểm tra những kiến thức và kinh nghiệm đã học Chúng tôi hy vọng sớm nhận được những ý kiến đóng góp, phê bình của bạn đọc về nội dung, chất lượng và hình thức trình bày để giáo trình này ngày một hoàn thiện hơn

QB, Tháng 11 Năm 2006

TÁC GIẢ

Trang 2

CHƯƠNG I

THUẬT TOÁN

I Khái niệm thuật toán

1 Khái niệm: Thuật toán là một dãy hữu hạn các thao tác, được sắp xếp theo một trình

tự xác định, sao cho từ Input của bài toán ta xác định được Output cần tìm.

2 Ví dụ: Một hộp kín chứa hữu hạn các viên bi có kích thước khác nhau Hãy tìm thuật

toán tìm ra viên bi lớn nhất, biết rằng mỗi lần chỉ được bốc một viên

Thuật toán được trình bày như sau:

Bước 1: Bốc một viên bất kỳ

Bước 2: Kiểm tra xem hộp đã rỗng chưa?

Nếu đúng chuyển qua bước 4

Nếu sai chuyển qua bước 3

Bước 3: Bốc tiếp một viên bi khác, so sánh hai viên và giữ lại viên lớn rồi chuyễn qua bước 2

Bước 4: Viên bi hiện tại là viên bi lớn nhất, kết thúc

II Các tính chất của thuật toán.

1 Tính phổ dụng: Thuật toán không chỉ để giải quyết một bài toán riêng lẽ mà được

dùng để giải quyết một lớp các bài toán (có thể la vô hạn), các bài toán cùng loại

2 Tính hữu hạn: Thuật toán phải được kết thúc sau một số hữu hạn bước thực hiện

các thao tác.Một thuật toán không có tính hữu hạn là không khả thi

3 Tính xác định: Thuật toán đòi hỏi mỗi bước thao tác phải rõ ràng và xác định một

cách đơn trị bước tiếp theo

4 Tính hiệu quả: Thể hiện ở các yêu cầu sau:

- Tính đúng đắn

- Tính tối ưu: Tiết kiệm thời gian thực hiện, tiết kiệm bộ nhớ

III Các đại lượng của thuật toán.

1 Đại lượng vào: Là những đại lượng cho trước làm cơ sở cho việc hình thành nên

bài toán

2 Đại lượng ra: Thường là kết quả sau khi đã thực hiện xong thuật toán và đó cũng

chính là yêu cầu của bài toán

3 Đại lượng trung gian: Là các đại lượng tham gia vào quá trình để giải bài toán

nhưng không phải là đại lượng vào mà cũng chẳng phải là đại lượng ra

Ví dụ: Bài toán giải phương trình bậc hai: ax2 + bx + c = 0 (a ≠ 0)

Đại lượng vào là các hệ số a,b,c

Đại lượng ra là: hoặc là nghiệm kép, hoặc là hai nghiệm phân biệt nhưng cũng có khi

là một câu thông báo vô nghiệm

Đại lượng trung gian: delta = b2 – 4ac

Trang 3

4 Hằng, biến, kiểu:

Để biểu diễn các đại lượng nêu trên của thuật toán ta sử dụng các hằng, biến và phải

có kiểu dữ liệu nhất định

- Hăng: Là đại lượng không thay đổi trong quá trình thực hiện thuật toán.

- Biến: Là đại lượng có thể thay đổi giá trị trong quá trình thực hiện thuật

toán

- Kiểu: Là tập hợp các giá trị (miền trị) mà các đại lượng cóthể nhận, đồng

thời với việc quy định các phép toán tác động trên đó

IV Biểu diễn của thuật toán

1 Các dạng biểu diễn của thuật toán: Có thể biểu diễn thuật toán bằng 3 dạng sau:

- Liệt kê các bước (như ở ví dụ 1)

- Cấu trúc theo ngôn ngữ quy ước của thuật toán

- Sơ đồ khối

2 Biểu diễn thuật toán bằng sơ đồ khối: Đây là dạng biểu diễn có cấu trúc trực quan,

rõ ràng

a Các kí hiệu dùng để biểu diễn thuật toán:

Dùng để chỉ sự bắt đầu và kết thúc của thuật toán

Dùng để chỉ việc nhập dữ liệu và ghi dữ liệu ra màn hình

Dùng để biểu diễn các thao tác của thuật toán

Dùng để kiểm tra điều kiện

Dùng để hướng đi của thuật toán

Ngoài ra ta còn sử dụng ký hiệu := để biểu diễn cho việc gán giá trị cho các biến

Trang 4

Ví dụ 2: Sơ đồ thuật toán để giải bài toán tính tổng:

T

Trang 5

BÀI TẬP CHƯƠNG I Bằng phương pháp dùng sơ đồ khối, trình bày thuật toán giải các bài toán sau đây:

1 Tính S = 1 + 2 + 3 + … + n.

2 Tính S = 1 – 2 + 3 - … + (-1)n-1n

3 Giải phương trình bậc 2: ax2 + bx + c = 0 (a ≠ 0)

4 Tìm ước chung lớn nhất của hai số nguyên dương

5 Tìm bội chung nhỏ nhất của hai số nguyên dương

6 Kiểm tra một số nguyên dương có phải là một số nguyên tố hay không

CHƯƠNG II

Begin

Trang 6

CÁC KIẾN THỨC CHUNG VỀ NGÔN NGỮ LẬP TRÌNH PASCAL

Pascal là một ngôn ngữ lập trình bậc cao do 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 và nhà triết học người Pháp nổi tiếng Blaise Pascal

I Các tập tin cần thiết khi lập trình với Turbo Pascal

Để lập trình được với Turbo Pascal, tối thiểu cần 2 file sau:

TURBO.EXE: Dùng để soạn thảo và dịch chương trình.

TURBO.TPL: Thư viện chứa các đơn vị chuẩn để chạy với TURBO.EXE.

Ngoài ra, muốn lập trình đồ hoạ thì phải cần thêm các tập tin:

GRAPH.TPU: Thư viện đồ hoạ.

*.BGI: Các file điều khiển các loại màn hình tương ứng khi dùng đồ hoạ.

*.CHR: Các file chứa các font chữ đồ họa.

II Các bước cơ bản khi lập một chương trình Pascal

1 Các bước lập trình tổng quát:

Bước 1: Phân tích bài toán; Xác định dữ liệu vào, dữ liệu ra làm cơ sở cho việc hình

thành giải thuật

Bước 2: Xây dựng thuật toán: Trên cơ sở xác định dữ liệu vào, ra; các giả thiết của bài

toán, các mối liên hệ giữa chúng và những kiến thức liên quan ta cần đưa ra thuật toán tương ứng

Bước 3: Tổ chức dữ liệu và lập chương trình theo thuật toán đã đè ra.

2 Các bước lập trình và thực hiện (với Turbo Pascal):

Bước 1: Khởi động Turbo Pascal (Turbo exe)

Bước 2: Soạn thảo chương trình.

Bước 3: Biên dịch (Nhấn tổ hợp phím ALT – F9).

+ Nếu thành công thì chuyễn qua bước 4

+ Nếu không thành công chuyễn qua bước 2

Bước 4: Chạy thử chương trình.

+ Nếu tốt chuyễn qua bước 5

+ Nếu chưa tốt thì quay về bước 2

Bước 5: Ghi vào đĩa, dịch thành file *.exe.

Bước 6: Kết thúc.

F2: Lưu chương trình đang soạn thảo vào đĩa

F3: Mở file mới hoặc file đã tồn tại trên đĩa để soạn thảo

Alt-F3: Đóng file đang soạn thảo.

Trang 7

Alt-F5: Xem kết quả chạy chương trình.

F8: Chạy từng câu lệnh một trong chương trình

Alt-X: Thoát khỏi Turbo Pascal

Alt-<Số thứ tự của file đang mở>: Dịch chuyển qua lại giữa các file đang mở.

F10: Vào hệ thống Menu của Pascal

IV.Các thao tác cơ bản khi soạn thảo chương trình

IV.1 Các phím thông dụng

Insert: Chuyển qua lại giữa chế độ đè và chế độ chèn.

Home: Đưa con trỏ về đầu dòng.

End: Đưa con trỏ về cuối dòng.

Page Up: Đưa con trỏ lên một trang màn hình.

Page Down: Đưa con trỏ xuống một trang màn hình.

Del: Xoá ký tự ngay tại vị trí con trỏ.

Back Space (): Xóa ký tự bên trái con trỏ.

Ctrl-PgUp: Đưa con trỏ về đầu văn bản.

Ctrl-PgDn: Đưa con trỏ về cuối văn bản.

Ctrl-Y: Xóa dòng tại vị trí con trỏ.

IV.2 Các thao tác trên khối văn bản

Chọn khối văn bản: Shift + <Các phím ←↑→↓>

Ctrl-KY: Xoá khối văn bản đang chọn

Ctrl-Insert: Đưa khối văn bản đang chọn vào Clipboard

Shift-Insert: Dán khối văn từ Clipboard xuống vị trí con trỏ.

V Các khái niệm và các thành phần cơ bản

1 Bộ ký tự (Dùng để soạn thảo chương trình)

Bao gồm các loại ký tự sau đây:

 Các chữ cái: a z; A Z (Khi soạn thảo chương trình, Turbo Pascal không phân biệt chữ hoa hay chữ thường)

a Từ: Là một dãy liên tiếp các ký tự không chứa ký tự trắng và ký tự điều khiển.

b Từ khoá: Là từ dành riêng của Pascal với chức năng và cú pháp được quy định sẵn

Vì vậy khi sử dụng phải theo đúng quy định và không được sử dụng các từ khoá vào các công việc khác

Ví dụ: Begin, end, if, then, const, var, function,…

3 Tên và tên chuẩn

Trang 8

a Tên: Là một từ bao gồm tối đa 255 ký tự, chỉ được lấy trong các chử cái, chử số và

dấu gạch nối, nhưng không được bắt đầu bằng số Tên dùng để đặt cho các đối tượng trong chương trình như hằng, biến, hàm, thủ tục, kiểu dữ liệu,…

b.Tên chuẩn: Là tên mà Turbo Pascal đã định sẵn để chỉ các hàm, hằng, biến, thủ tục thư

viện của nó

VI Cấu trúc chung của một chương trình Pascal

{ Phần tiêu đề }

PROGRAM Tên_chương_trình;

{ Phần khai báo và định nghĩa}

USES ;

CONST .;

TYPE ;

VAR .;

PROCEDURE .;

FUNCTION ;

{ Phần thân chương trình } BEGIN

END.

1 Phần tiêu đề:

Từ khoá để khai báo là Program tiếp đến là tên của chương trình do người dùng tự đặt Phần này không bắt buộc phải có

2 Phần khai báo và định nghĩa:

Uses: Dùng để khai báo các Unit (đơn vị chương trình) của Turbo Pascal Nếu có nhiều

Unit thì sử dụng dấu phẩy “,” để ngăn cách

Const: Dùng để khai báo các hằng.

Cú pháp: Tên_hằng = Giá trị

Type: Dùng để định nghĩa các kiểu dữ liệu của người dùng.

Cú pháp: Tên_kiểu = định nghĩa cụ thể cho từng kiểu

Var: Khai báo biến.

Cú pháp: Tên_biến: Kiểu_dữ liệu;

(Hoặc khai báo trực tiếp không thông qua kiểu.)

Nếu có nhiều biến cùng kiểu thì sử dụng dấu phẩy “,” để ngăn cách

Procedure: Định nghĩa chương trình con dạng thủ tục.

Function: Định nghĩa chương trình con dạng hàm

3 Phần thân chương trình: Được bắt đầu bằng từ khoá “Begin” và kết thúc bởi từ khoá

“End” Giữa cặp từ khoá này có các câu lệnh của chương trình

Chú ý:

- Turbo Pascal cũng sử dụng dấu “;” để kết thúc phần này chuyển qua phần khác cũng như giữa khai báo này qua khai báo khác của chương trình

Trang 9

- Khi soạn thảo chương trình cho phép đưa vào các câu chú thích nhưng phải được đặt trong cặp dấu móc {…} hoặc (*…*).

Ví dụ 1: Chương trình Pascal đơn giản nhất

Trang 10

I Tổng quan về các kiểu dữ liệu trong Turbo Pascal

Các kiểu dữ liệu trong Turbo Pascal được chia làm hai loại:

- Các kiểu dữ liệu đơn gian

- Các kiểu dữ liệu co cấu trúc

1 Các kiểu dữ liệu đơn giản gồm:

 Kiểu do người dung định nghĩa:

- Kiểu đoạn con

- Kiểu liệt kê

2 Các kiểu dữ liệu có cấu trúc:

 Miền trị: Chỉ có hai giá trị là True và False

 Các phép toán: AND, OR, NOT, XOR.(Xem bảng dưới đây)

Các phép toán: phép so sánh (=, <, >)

Trong Pascal, khi so sánh các giá trị boolean ta tuân theo qui tắc: FALSE < TRUE.Giả sử A và B là hai giá trị kiểu Boolean Kết quả của các phép toán được thể hiện qua bảng dưới đây:

Trang 11

Tên kiểu Phạm vi Dung lượng

+, -, *, / (phép chia cho ra kết quả là số thực).

Phép chia lấy phần nguyên: DIV (Ví dụ : 34 DIV 5 = 6).

Phép chia lấy số dư: MOD (Ví dụ: 34 MOD 5 = 4).

2.2.2 Các phép toán xử lý bit:

Trên các kiểu ShortInt, Integer, Byte, Word có các phép toán:

• NOT, AND, OR, XOR

Chú ý: Các kiểu số thực Single, Double và Extended yêu cầu phải sử dụng chung với bộ

đồng xử lý số hoặc phải biên dich chương trình với chỉ thị {$N+} để liên kết bộ giả lập số.

3.2 Các phép toán trên kiểu số thực: +, -, *, /

Chú ý:

(1) Miền trị của các kiểu dữ liệu (trừ comp) được hiểu là lấy trong các đoạn:

 [-max, -min]

Trang 12

 [max, min]

 số 0

Nếu một số < -max hoặc > max thì sẽ không biểu diễn được và xem như là tràn số

Nếu một số <-min nhỏ hơn 0 hoặc lớn hơn 0 nhỏ hơn min thì được xem như là 0

(2) Chế độ mặc định của TurboPascal là chỉ cho phép làm việc với kiểu số thực REAL Muốn sử dụng các kiểu khác ta vào bảng chọn OPTION -> COMPILER-> NUMERIC PROCESING rồi đánh dấu [x] vào mục 8087/80287

(3) Trong máy tính số thực được biểu diễn dưới hai dạng:

- Để biểu diễn một ký tự, ta có thể sử dụng một trong số các cách sau đây:

• Đặt ký tự trong cặp dấu nháy đơn Ví dụ 'A', '0'

• Dùng hàm CHR(n) (trong đó n là mã ASCII của 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 là mã ASCII của ký tự cần biểu diễn) Ví dụ #65

- Phép so sánh: Muốn so sánh hai ký tự ta so sánh các mã ASCII tương ứng của chúng, ký hiệu nào có mã ASCII lớn hơn được xem là lớn hơn Ví dụ: ‘a’ > ’A’ Vì 97 > 65

Chú ý: Một kiểu dữ liệu được gọi là vô hướng đếm được nếu miền trị của nó là một tập

hợp đếm được và trên đó tồn tại quan hệ thứ tự Ví dụ: Kiểu Byte; kiểu Integer; kiểu Char; kiểu Boolean…

III Kiểu liệt kê và kiểu đoạn con

1 Kiểu liệt kê:

a Định nghĩa kiểu và khai báo biến:

 Định nghĩa kiểu:

Type ten_kieu = (Danh sách các giá trị);

Giải thích:

Ten_ kieu ký hiệu cho tên kiểu do người dung tự đặt

Danh sách các giá trị là tập hợp các giá trị được phân cách bởi dấu phẩy “,”

Trang 13

 Khai báo biến:

Var ten_bien : ten_kieu;

Giải thích:

ten_bien ký hiệu cho tên biến do người dùng tự đặt

ten_kieu đã được khai báo;

Ví dụ:

Type ngay = (sun, mon, tue, wed, thu, fri, sat);

Cviec = (dihoc, dilam, thuchanh, nghi);

Var hqua, hnay: ngay;

Viec: cviec;

Cũng có thể khai báo biến kiểu liệt kê trực tiếp mà không cần khai báo kiểu

Ví dụ: var gioitinh: (nam, nu);

Mau: (xanh, do, tim, vang);

b Các tác động lên dữ liệu kiểu liệt kê:

• Có thể thực hiện phép gán giá trị cho biến

Trang 14

- Giá trị kiểu liệt kê thường được dùng để làm chỉ số cho lệnh lặp for, các trường hợp chọn lựa trong lệnh Case, hoặc chỉ số cho mảng.

2 Kiểu đoạn con:

a Định nghĩa kiểu và khai báo biến:

 Định nghĩa kiểu:

Type ten_kieu = hang duoi hang tren;

Giải thích:

Ten_ kieu ký hiệu cho tên kiểu do người dung tự đặt

Hang_duoi tức là ký hiệu giá trị hằng cận dưới, hang tren tức là ký hiệu giá trị hằng cận trên tất nhiên là hang tren >= hang duoi và phải có cùng kiểu vô hướng đếm được

 Khai báo biến:

Var ten_bien : ten_kieu;( Tên kiểu đã được khai báo)

SIN(x): Trả về sin(x) theo radian

COS(x): Trả về cos(x) theo radian

ARCTAN(x): Trả về arctang(x) theo radian

LN(x): Trả về ln(x)

EXP(x): Trả về ex

TRUNC(x): Trả về số nguyên gần với x nhất nhưng bé hơn x

INT(x): Trả về phần nguyên của x

FRAC(x): Trả về phần thập phân của x

ROUND(x): Làm tròn số nguyên x

PRED(n): Trả về giá trị đứng trước n

SUCC(n): Trả về giá trị đứng sau n

ODD(n): Cho giá trị TRUE nếu n là số lẻ

INC(n): Tăng n thêm 1 đơn vị (n:=n+1)

DEC(n): Giảm n đi 1 đơn vị (n:=n-1)

2.Các hàm trên kiểu ký tự:

- UPCASE(ch): Trả về ký tự in hoa tương ứng với ký tự ch Ví dụ: UPCASE('a') = 'A'.

- ORD(ch): Trả về số thứ tự trong bảng mã ASCII của ký tự ch Ví dụ ORD('A')=65.

- CHR(n): Trả về ký tự tương ứng trong bảng mã ASCII có số thứ tự là n Ví dụ:

CHR(65)='A'

- PRED(ch): cho ký tự đứng trước ký tự ch Ví dụ: PRED('B')='A'.

Trang 15

- SUCC(ch): cho ký tự đứng sau ký tự ch Ví dụ: SUCC('A')='B'.

Chú ý: Một kiểu dữ liệu gọi là vô hướng đếm được nếu miền trị của nó là một tập hợp

đếm được và trên đó tồn tại quan hệ thứ tự Ví dụ: Kiểu Byte, Kiểu Integer; Kiểu Char, Kiểu Boolean…

BÀI TẬP CHƯƠNG III

1 Tìm công thức để đổi một ký tự là chữ hoa thành chữ thường

2 Dùng các hàm và các phép toán để biểu diễn các công thức sau:

I Biểu thức

Trang 16

1 Hằng: Hằng là một đại lượng có giá trị không thay đổi trong suốt chương trình Có

các loại hằng: hằng số, hằng ký tự, hằng xâu, hằng logic… Từ khoá để khai báo hằng là CONST

Logic = ODD(5); {Logic =TRUE}

Chú ý: Chỉ các hàm chuẩn dưới đây mới được cho phép sử dụng trong một biểu thức

hằng:

2 Biến: Biến là một đại lượng mà giá trị của nó có thể thay đổi trong quá trình thực

hiện chương trình Biến dùng để lưu trữ dữ liệu, biến được khai báo sau từ khoá VAR Việc khai báo các biến là nhằm cung cấp các vùng nhỡ để lưu trữ dữ liệu trong quá trình thực hiện chương trình

3 Cú pháp:

VAR <Tên biến>[,<Tên biến 2>,…] : <Kiểu dữ liệu>;

Ví dụ:

VAR x, y: Real; {Khai báo hai biến x, y có kiểu là Real}

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

4 Toán tử: Là các phép toán tác động lên dữ liệu (hay còn gọi là toán hạng).

Ví dụ: Các phép +, -, *, /, and, or, not…

5 Toán hạng: Là một trong các đại lượng sau:

Trang 17

Chú ý:

(1) Trong một biểu thức các toán tử trong dấu ngoặc “(…)” được ưu tiên thực hiện trước

(2) Nếu có nhiều phép toán cùng cấp ưu tiên thì các phép toán được thực hiện tuần tự

từ trái qua phải

(3) Mỗi biểu thức cho kết quả bằng số được gọi là biểu thức số học, cho kết quả là kiểu logic thì được gọi là biểu thức logic

- Câu lệnh ghép: BEGIN END;

- Các cấu trúc điều khiển: IF , CASE , FOR , REPEAT , WHILE

2 Câu lệnh đơn giản:

a Lệnh gán:

Cú pháp: <Tên biến>:=<Biểu thức>;

• Ý nghĩa: Lệnh sẽ thực hiện việc gán giá trị của Biểu thức cho Tên biến

b Thủ tục ghi dữ liệu lên màn hình:

Để xuất dữ liệu ra màn hình, ta sử dụng ba dạng sau:

(1) WRITE(<tham số 1> [, <tham số 2>, ]);

(2) WRITELN(<tham số 1> [, <tham số 2>, ]);

(3) WRITELN;

Các thủ tục trên có chức năng như sau:

(1) Sau khi xuất giá trị của các tham số ra màn hình thì con trỏ không xuống dòng

(2) Sau khi xuất giá trị của các tham số ra màn hình thì con trỏ xuống đầu dòng tiếp theo

- 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ụ:

WRITELN(x); WRITE(sin(3*x));

- Viết có qui cách: dữ liệu xuất ra sẽ được canh lề ở phía bên phải.

Ví dụ:

Trang 18

c Nhập dữ liệu từ bàn phím

Để nhập dữ liệu từ bàn phím vào các biến có kiểu dữ liệu chuẩn (trừ các biến kiểu BOOLEAN), ta sử dụng cú pháp sau đây:

Cú pháp:

(1) READ(<biến 1> [,<biến 2>, ,<biến n>]);

(2).READLN(<biến 1> [,<biến 2>, ,<biến n>]);

(3) READLN;

• Ý nghĩa:

(1): Cho phép lần lượt nhập dữ liệu cho các biến

(2): Tương tự dạng (a)chỉ khác ở chổ sau khi nhập xong dữ liệu con trỏ được đưa về đầu dòng tiếp theo

(3): Chỉ làm thao tác tạm dừng chương trình, chờ gõ phím Enter để tiếp tục

Chú ý: Khi 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.

3 Các hàm và thủ tục thường dùng trong nhập xuất dữ liệu

Hàm KEYPRESSED: Hàm trả về giá trị TRUE nếu như có một phím bất kỳ được

nhấn, nếu không hàm cho giá trị là FALSE

Hàm READKEY: Hàm có chức năng đọc một ký tự từ bộ đệm bàn phím.

Thủ tục GOTOXY(X,Y:Integer): Di chuyển con trỏ đến cột X dòng Y.

Thủ tục CLRSCR: Xoá màn hình và đưa con trỏ về góc trên bên trái màn hình.

Thủ tục CLREOL: Xóa các ký tự từ vị trí con trỏ đến hết dòng.

Thủ tục DELLINE: Xoá dòng tại vị trí con trỏ và dồn các dòng ở phía dưới 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.

4 Các ví dụ:

Ví dụ 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:

Trang 19

Công thức tính diện tích tam giác: S = sin( )

Write('Nhap vao do dai canh thu nhat: '); Readln(a);

Write('Nhap vao do dai canh thu hai: '); Readln(b);

Write('Nhap vao goc giua hai canh: '); Readln(goc);

Write('Nhap vao n= '); Readln(n);

Write('Nhap vao x= '); Readln(x);

S:=EXP(1/n*LN(x));

Writeln('S = ',S:0:2);

Readln;

End.

Ví dụ 3 : Viết chương trình nhập vào 2 số a, b Sau đó hoán đổi giá trị của 2 số đó:

a/ Cho phép dùng biến trung gian

Program Swap;

Var a,b,tam: Integer;

Begin

Write('Nhap vao a= '); Readln(a);

Write('Nhap vao b= '); Readln(b);

tam:=a; {tam lấy giá trị của a}

a:=b; {a lấy giá trị của b}

b:=tam;{b lấy lại giá trị của tam}

Writeln('a = ',a,’ b = ‘,b);

Trang 20

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}

C y B x

+

+ +

Bài tập 2: Viết chương trình tách một số n thành 2 số a, b sao cho tích P=a*b2 đạt cực đại với n được nhập vào từ bàn phím

Trang 21

CHƯƠNG VCÂU LỆNH CÓ CẤU TRÚC

Trong đó: btdk ký hiệu cho biểu thức logic.

Dạng (1) gọi là dạng thiếu, dạng (2) gọi là dạng đủ

Trang 22

Writeln('So vua nhap vao la so chan')

Writeln('Phuong trinh co vo so nghiem')

Else { Trường hợp a=0 và b 0 }

Writeln('Phuong trinh vo nghiem')

Const n: CL n ; END;

CASE <BT> OF Const 1: CL 1 ; Const 2: CL 2 ;

Const n: CL n ; ELSE CL n+1 ; END;

 Trong đó:

 BT: Biểu thức kiểu vô hướng đếm được như kiểu nguyên, kiểu logic, kiểu ký tự, kiểu liệt kê

Trang 23

 Const i: Hằng thứ i, có thể là một giá trị hằng, các giá trị hằng (phân cách nhau bởi dấu phẩy) hoặc các đoạn hằng (dùng hai dấu chấm để phân cách giữa giá trị đầu và giá trị cuối).

 Giá trị của biểu thức và giá trị của tập hằng i (i=1¸n) phải có cùng kiểu

Khi gặp lệnh CASE, chương trình sẽ kiểm tra:

- Nếu giá trị của biểu thức BT nằm trong tập hằng const i thì máy sẽ thực hiện lệnh CLi

tương ứng

- Ngược lại:

+ Đối với dạng 1: Không làm gì cả

+ Đối với dạng 2: thực hiện lệnh CLn+1

 Các ví dụ:

Viết chương trình nhập vào tuổi của một người và cho biết người đó là thiếu niên, thanh niên, trung niên hay lão niên Biết rằng: nếu tuổi nhỏ hơn 18 là thiếu niên, từ 18 đến 39 là thanh niên, từ 40 đến 60 là trung niên và lớn hơn 60 là lão niên

1 17: Writeln(Nguoi nay la thieu nien');

18 39: Writeln(Nguoi nay la thanh nien');

40 60: Writeln(Nguoi nay la trung nien');

Else Writeln(Nguoi nay la lao nien');

FOR <biến đếm>:=<giá trị cuối> DOWNTO <giá trị đầu> DO CL;

 Sơ đồ thực hiện vòng lặp FOR:

Trang 24

 Ý nghĩa:

Dạng tiến: Câu lệnh sẽ được thực hiện bằng số lần mà Biến đếm được gán tăng dần

lần lượt từ giá trị của giá trị đầu đến giá trị của giá trị cuối.

Dạng lùi: Câu lệnh sẽ được thực hiện bằng số lần mà Biến đếm được gán giảm dần

lần lượt từ giá trị của giá trị cuối đến giá trị của giá trị đầu

Chú ý: Khi sử dụng câu lệnh lặp FOR cần chú ý các điểm sau:

 Không nên tuỳ tiện thay đổi giá trị của biến đếm bên trong vòng lặp FOR vì làm như vậy có thể sẽ không kiểm soát được biến đếm.

 Giá trị Max và Min trong câu lệnh FOR sẽ được xác định ngay khi vào đầu vòng lặp

Do đó cho dù trong vòng lặp ta có thay đổi giá trị của nó thì số lần lặp cũng không thay đổi.

Trang 25

Readln;

End.

Ví dụ 2: Viết chương trình nhập vào N số nguyên từ bàn phím Hãy tính và in ra màn hình

tổng của các số vừa được nhập vào

Ý tưởng:

Dùng phương pháp cộng dồn Cho vòng lặp FOR chạy từ 1 tới N, ứng với lần lặp thứ i,

ta nhập vào số nguyên X và đồng thời cộng dồn X vào biến S

Ngày đăng: 01/08/2013, 05:41

HÌNH ẢNH LIÊN QUAN

Ví dụ 2: Sơ đồ thuật toán để giải bài toán tính tổng: - Bài tập Pascal (chi tiết) - Tham khảo
d ụ 2: Sơ đồ thuật toán để giải bài toán tính tổng: (Trang 4)

TỪ KHÓA LIÊN QUAN

w