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

Tài liệu Tin học đại cương - bài 11: đệ quy tập tin docx

27 1,6K 3
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 đề Đệ quy
Trường học Trường Đại học Công nghệ Thông tin - Đại học Quốc gia Thành phố Hồ Chí Minh
Chuyên ngành Tin học đại cương
Thể loại Bài giảng
Thành phố Thành phố Hồ Chí Minh
Định dạng
Số trang 27
Dung lượng 609 KB

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

Nội dung

 Trong bất cứ hàm đệ qui nào cũng phải có điều kiện dừng, điều kiện này sẽ kết thúc quá trình đệ qui bằng một đoạn mã chương trình được viết theo lối thông thường... Sử dụng cấu trúc lự

Trang 1

TIN HỌC ĐẠI CƯƠNG

www.uit.edu.vn

BÀI 11

ĐỆ QUY

Trang 3

 Đệ qui phi tuyến

NỘI DUNG BÀI ĐỆ QUY

Trang 4

 Trong bất cứ hàm đệ qui nào cũng phải có điều

kiện dừng, điều kiện này sẽ kết thúc quá trình

đệ qui bằng một đoạn mã chương trình được viết theo lối thông thường

Ví dụ:

if (N==1)

return 1;

ĐIỀU KIỆN DỪNG

Trang 5

Sử dụng cấu trúc lựa chọn Sử dụng cấu trúc lặp

Sử dụng liên tục các lời gọi hàm Sử dụng vòng lặp tường minh Kết thúc khi đến trường hợp cơ sở Kết thúc khi điều kiện để tiếp

tục vòng lặp sai Làm cho các lời gọi hàm đơn giản dần cho

đến khi tới trường hợp cơ sở Thay đổi biến đếm trong vòng lặp cho đến khi nó làm cho

điều kiện lặp sai Không thoát ra được khi các bước đệ qui

không làm cho bài toán đơn giản hơn và cuối

cùng hội tụ về trường hợp cơ sở

Lặp sẽ không thoát ra được khi điều kiện lặp không bao giờ sai

Đệ qui tồi hơn, nó liên tục đưa ra các lời gọi

hàm làm tốn thời gian xử lý và không gian

nhớ Mỗi lần gọi hàm, lại cần thêm một bản

sao của hàm, tốn thêm bộ nhớ (lưu các biến

của hàm, địa chỉ trở về của hàm )

Phương pháp lặp được chuộng hơn

SO SÁNH ĐỆ QUY VÀ LẶP

Trang 6

 Đệ qui phi tuyến

PHÂN LOẠI CÁC DẠNG ĐỆ QUY

Trang 8

 Viết hàm đệ qui tính xn, n nguyên dương.

Điều kiện dừng: nếu n=0 thì x 0 =1.

}

VÍ DỤ VỀ ĐỆ QUY TUYẾN TÍNH

Trang 9

/*Gọi đqui đến <tên> để

giải quyết vấn đề nhỏ hơn */

/*Gọi đqui đến <tên> để

giải quyết vấn đề còn lại */

ĐỆ QUY NHỊ PHÂN

Trang 10

 Điều kiện dừng: nếu n=0 hay n=1 thì Fn=1.

long fibo( int n) {

if ((n==0)||(n==1)) return 1;

else

return (fibo(n-1)+fibo(n-2));

VÍ DỤ VỀ ĐỆ QUY NHỊ PHÂN

Trang 13

ĐỆ QUY HỖ TƯƠNG

Trang 15

/* Prototype */

unsigned long TinhY( int n);

unsigned long TinhX( int n);

Trang 18

 Tập tin văn bản (text file, ASCII file): *.PAS, *.C, …

(các tập tin mã nguồn chương trình) Mỗi tập tin văn bản gồm nhiều dòng Mã ngăn cách dòng (chuyển dòng khác) là mã 10 ($OA), được tách ra thành mã 13 ($OD) và mã 10 ($OA) Mã kết thúc tập tin là mã 26 ($O1A) Các ký tự trên mỗi dòng đều phải có mã ASCII từ khoảng trắng (#32 hay

$O20) trở lên, nếu nhỏ hơn $O20 thì phải là các

ký tự điều khiển hợp lệ.

 Tập tin nhị phân (binary file): *.COM, *.EXE,

*.DOC, *.XLS, *BMP, *PCX, *.GIF,…

 Dữ liệu ghi lên tập tin không bị thay đổi và khi ta

đóng tập tin thì mã kết thúc tập tin sẽ được ghi lên

KHÁI NIỆM TẬP TIN

Trang 19

 Có các hàm làm việc với tập tin thông qua con trỏ tập

tin FILE *pf; Con trỏ này được xác định khi ta mở tập tin

 Mỗi biến file đại diện trong RAM luôn có một con trỏ

file Lúc đầu, con trỏ file trỏ vào phần tử đầu tiên, sau mỗi lần đọc hay ghi dữ liệu vào biến file con trỏ tự động trỏ tới mẫu tin kế tiếp.

 Chỉ thao tác được trên file khi file đang được mở.

CÁC THAO TÁC TRÊN FILE

Trang 20

w+ Mở một tập tin ở cả hai chế độ ghi đọc.

a+ Tập tin được mở để ghi và đọc Vị trí đầu tiên để truy xuất tập tin là cuối tập tin vừa mở

t Mở tập tập tin kiểu văn bản

b Mở tập tập tin kiểu nhị phân (binary data)

CÁC CHẾ ĐỘ LÀM VIỆC TRÊN FILE

Trang 21

ơ

Trang 23

int chdir( char *s);

char *getcwd( char *s, int n);

int mkdir( char *s);

int rmdir( char *s);

int findfirst( char *path, struct

ffblk *fd, int attrib);

int findnext( struct ffblk *fd);

CÁC HÀM THAO TÁC THƯ MỤC

Trang 24

FILE *in_file, *out_file;

Trang 25

out_file = fopen (out_name, "w" );

if ( out_file == NULL )

printf( “Can't open” );

else {

VÍ DỤ MINH HỌA

Trang 26

VÍ DỤ MINH HỌA

Trang 27

www.uit.edu.vn

Ngày đăng: 17/02/2014, 01:20

TỪ KHÓA LIÊN QUAN

🧩 Sản phẩm bạn có thể quan tâm

w