25
BÀI TẬP VÀ THỰC HÀNH 6 Thời gian 2 tiết 1 CHƯƠNG VI : CHƯƠNG TRÌNH CON VÀ LẬP TRÌNH CÓ CẤU TRÚC

Bai 6

Embed Size (px)

Citation preview

Page 1: Bai 6

BÀI TẬP VÀ THỰC HÀNH 6

Thời gian 2 tiết

1

CHƯƠNG VI :

CHƯƠNG TRÌNH CON VÀ LẬP TRÌNH CÓ

CẤU TRÚC

Page 2: Bai 6

2

Giốngnhau

- Đều làchương trìnhcon thực hiện1 công việcnào đó trongchương trìnhchính

Thủtục - Khi thựchiện côngviệc khôngtrả về giá trịcho tên thủtục

Hàm

- Khi thựchiện côngviệc sẽ trả về1 giá trị chotên hàm

Sự giống nhau và khác nhau

giữa thủ tục và hàm

Khác nhau

Page 3: Bai 6

Phân biệt tham số giá trị và tham số biến

+Các tham số thực sự tương ứng

là các giá trị cụ thể thay thế các

tham số hình thức trong lời gọi

thủ tục được gọi là các tham trị.

+ Không có từ khóa var đứng

trước

THAM TRỊ

+Các tham số thực sự tương

ứng là tên chứa các biến dữ liệu

ra thay thế các tham số hình

thức trong lời gọi thủ tục được

gọi là các tham biến

+ có từ khóa var đứng trước

THAM BIẾN

Page 4: Bai 6

4

Procedure <tên thủ tục>[(danh sách tham số)];

[ <phần khai báo>]

Begin

[< dãy các lệnh>]

End;

CẤU TRÚC CHUNG CỦA

THỦ TỤC

Page 5: Bai 6

Quan sát sách giáo khoa trang

103 thủ tục CatDan(s1, s2)

nhận đầu vào là xâu s1 gồm

không quá 79 kí tự, tạo xâu s2

thu được từ xâu s1 bằng việc

chuyển kí tự đầu tiên của nó

xuống vị trí cuối cùng. Ví dụ

nếu s1=‘abcd’ thì s2=‘bcda’ .

5

Page 6: Bai 6

6

Input

Xâu kí tự s1 không quá 79 kí tự

Outp

ut

Xâu kí tự s2 được tạo ra từxâu s1

Ch

ức

ng

thủ

tục Thực hiện

việc tạo xâus2 từ xâu s1 bằng việc

chuyển kí tựthứ nhất đếnvị trí cuối củaxâu.

Xác định bài toán

Page 7: Bai 6

7

Type str79 = string[79];

Procedure CatDan(s1: str79; var s2: str79);

Begin

S2:= copy(s1, 2, length(s1)-1)+s1[1];

End;

Tham trị : s1

Tham biến : s2

Thủ tục CatDan(s1, s2)

Page 8: Bai 6

Quan sát sách giáo khoa trang

103 thủ tục CanGiua(s) nhận

đầu vào là xâu s gồm không

quá 79 kí tự, bổ sung vào đầu s

một số dấu cách để khi đưa ra

màn hình xâu kí tự s ban đầu

được căn giữa dòng (80 kí tự).

8

Page 9: Bai 6

9

Input

Xâu kí tự s không quá 79 kítự

Output

Xâu kí tự s đãđược căn giữa

Chứcnăngthủtục Thủ tục thực

hiện thêm vàotrước xâu s 1 sốkí tự trắng đểkhi đưa ra mànhình kí tự trongs ban đầu đượccăn giữa củadòng gồm 80 kítự.

Xác định bài toán

Page 10: Bai 6

10

Procedure CanGiua(var s: str79);

Var i, n: integer;

Begin

n:= length(s);

n:= (80-n) div 2;

for i:= 1 to n do s:=’ ‘ +s;

End;

Thủ tục CanGiua(s)

Page 11: Bai 6

Quan sát sách giáo khoa trang

103 :theo dõi cách sử dụng 2

thủ tục trên, ta có thể viết

chương trình sau đây: để nhập

1 xâu kí tự từ bàn phím và đưa

xâu đó ra màn hình có dạng

dòng chữ chạy giữa màn hình

văn bản 25x80

11

Page 12: Bai 6

Quan sát chương trình

Chương trình nhập 1 xâu kí tự và đưa xâu đó ra

màn hình có dạng chữ chạy giữa màn hình

12

Page 13: Bai 6

13

Quan sát chương trình

Chương trình nhập 1 xâu kí tự và đưa xâu đó ra

màn hình có dạng chữ chạy giữa màn hình

Page 14: Bai 6

14

Yêu cầu người sử dụng nhập 1

xâu kí tự. Đưa xâu đó ra màn

hình có dạng dòng chữ chạy

giữa màn hình văn bản 25*80.

Chức năng của

chương trình

Page 15: Bai 6

15

Các thủ tục chuẩn:

• chuyển con trỏ màn hình đến vịtrí cột x, dòng y trên màn hình; Gotoxy(x,y)

• dừng trạng thái màn hình trongn miligiay;Delay(n)

• không có tham số và trả về giátrị true khi có 1 phím được gõ;keypressed

Page 16: Bai 6

16

Chạy thử chương trình trên với

dòng chữ:

‘…Mung nghin nam Thang Long

– Ha Noi!...’

Page 17: Bai 6

Quan sát sách giáo khoa trang 104,

viết thủ tục ChuChay(s, dong) nhận

đầu vào là xâu s có dạng chữ chạy ở

dòng dong. Viết và chạy chương trình

có sử dụng thủ tục này.

17

Page 18: Bai 6

18

Vấn đề mới trong

bài tập này là gì ?

Giống câu b nhưng xâu ký

tự phải chạy ở dòng bất kỳ.

Vì vậy phải truyền tham số

quy định dòng chạy cho thủ

tục.

Page 19: Bai 6

19

procedure chuchay(s1 :

str; dong : byte);

var s2 : str;

stop : Boolean;

begin

clrscr;

cangiua(s1);

clrscr;

stop :=false;

while not (stop) do

Thủ tục ChuChay(s,dong)

begin

gotoxy(1, dong);

write(s1);

delay(100);

catdan(s1, s2);

s1:= s2;

stop:=keypressed;

end;

end;

Page 20: Bai 6

Quan sát chương trình

Viết và chạy chương trình có sử dụng thủ tục

ChuChay(s,dong).

20

Page 21: Bai 6

Quan sát chương trình

Viết và chạy chương trình có sử dụng thủ tục

ChuChay(s,dong).

21

Page 22: Bai 6

Quan sát chương trình

Viết và chạy chương trình có sử dụng thủ tục

ChuChay(s,dong).

22

Page 23: Bai 6

23

Chạy thử chương trình

trên với dòng chữ:

‘…Mung nghin nam

Thang Long – Ha Noi!...’

Page 24: Bai 6

24

DẶN DÒ:

1. Những nội dung đã học: Trong

trường hợp nào thì sử dụng thủ

tục : việc thực hiện thủ tục không

trả về giá trị thuộc kiểu xác định

qua tên thủ tục.

2. Chuẩn bị cho bài thực hành số 7:

xem trước nội dung của bài thực

hành số 7, sách giáo khoa , trang 105

Page 25: Bai 6

25

THEEND

!