intTypePromotion=1
zunia.vn Tuyển sinh 2024 dành cho Gen-Z zunia.vn zunia.vn
ADSENSE

LẬP TRÌNH CĂN BẢN - CHƯƠNG TRÌNH CON

Chia sẻ: Nguyễn Nhi | Ngày: | Loại File: PDF | Số trang:5

69
lượt xem
6
download
 
  Download Vui lòng tải xuống để xem tài liệu đầy đủ

Trong chương trình, khi gặp một lời gọi hàmthì các bước sau được thực hiện: l Nếu hàmcó tham số, trước tiên các tham số sẽ được gán giá trị thực tương ứng. -Chương trình sẽ thực hiện tiếp các câu lệnh trong thân hàm bắt đầu từ lệnh đầu tiên đến câu lệnh cuối cùng. -l Khi gặp lệnh return hoặc dấu } cuối cùng trong thân hàm, chương trình sẽ thoát khỏi hàm để trở về chương trình gọi nó. -l Thực hiện tiếp tục những câu lệnh của chương trình....

Chủ đề:
Lưu

Nội dung Text: LẬP TRÌNH CĂN BẢN - CHƯƠNG TRÌNH CON

  1. Ví dụ (1) In ra 50 ký tự ‘*’ và 50 ký tự ‘+’ LẬP TRÌNH CĂN BẢN l CHƯƠNG TRÌNH CON 1 3 Nội dung chương này Ví dụ (2) Đâu là ưu điểm của việc dùng hàm? Ví dụ l l Khái niệm về hàm trong C l Xây dựng một hàm l Truyền tham số cho hàm l Hàm đệ qui l 2 4
  2. Khái niệm về hàm trong C (1) Khái niệm về hàm trong C (3) Để tránh rườm rà và mất thời gian khi viết chương trình, Có 2 loại hàm: l l những đoạn chương trình lặp đi lặp lại nhiều lần được viết Hàm chuẩn l trong 1 module. Hàm tự định nghĩa l Chia chương trình thành nhiều module, mỗi module giải quyết l 1 công việc nào đó. Mỗi module như trên được gọi là 1 chương trình con. l Các module dễ dàng đượ c kiểm tra tính đúng đắn trước khi l được ráp nối vào chương trình. 5 7 Hàm chuẩn (hàm thư viện) Khái niệm về hàm trong C (2) Được định nghĩa sẵn bởi ngôn ngữ lập trình và đượ c chứa vào các thư viện. Ví dụ: Tìm số lớn nhất trong 3 số a, b, và c. l l Muốn sử d ụng phải khai báo #include l Một số thư viện thườ ng dùng trong C: l stdio.h : Thư viện ch ứa các hàm vào/ ra chuẩn (stan dard input/output): l printf(), scanf(), getc(), putc(), gets(), puts(), fflush(), fopen(), fclose(), fread(), fwrite(), getchar(), putchar(), getw(), putw(), … conio.h : Thư viện ch ứa các hàm vào ra trong chế độ DOS (DOS console): l clrscr(), getch(), getche(), getpass(), cgets(), cputs(), putch(), clreol(), … math.h: Thư viện ch ứa các hàm tính toán: abs(), sqrt(), log(). log10(), sin(), l cos(), tan(), acos(), asin(), atan(), pow(), exp(), … alloc.h: Thư viện ch ứa các hàm liên quan đến việc qu ản lý bộ nhớ: calloc(), l realloc(), malloc(), free(), farmalloc(), farcalloc(), farfree(), … io.h: Thư viện chứa các hàm vào ra cấp thấp: open(), _open(), read(), _read(), l close(), _close(), creat(), _creat(), creatnew(), eof(), filelength(), lock(), … graphics.h: Thư viện ch ứa các hàm liên quan đến đồ họa:initgraph(), line(), l circle(), putpixel(), getpixel(), setcolor(), … 6 8
  3. Hàm tự định nghĩa (hàm người Nguyên tắc hoạt động của hàm dùng) (1) Trong chương trình, khi gặp một lời gọi hàm thì Do người lập trình tự tạo ra nhằm đáp ứng nhu cầu xử lý của l l các bước sau được thực hiện: mình. Nếu hàm có tham số, tr ước tiên các tham số sẽ được l gán giá trị thực tương ứng. Cấu trúc của một hàm tự thiết kế: l Chương trình sẽ thực hiện tiếp các câu lệnh trong thân l hàm bắt đầu từ lệnh đầu tiên đến câu lệnh cuối cùng. Khi gặp lệnh return hoặc dấu } cuối cùng trong thân l hàm, chương trình sẽ thoát khỏi hàm để trở về chương trình gọi nó. Thực hiện tiếp tục những câu lệnh của chương trình. l 9 11 Hàm tự định nghĩa (hàm người Truyền tham số cho hàm (1) dùng) (2) Ví dụ: Hoán đổi nội dung của 2 biến Cú pháp gọi hàm:([Danh sách các tham số]) l l Ví dụ: Tìm UCLN của 2 số tự nhiên: l 10 12
  4. Truyền tham số cho hàm (2) Truyền tham số cho hàm (4) Ta vẫn chưa hoán vị được! Tại sao ta đã hoán vị được? l l Tại sao? l 2 tham số a và b của hoanvi là tham số hình thức l 2 tham số a và b của hoanvi là tham số hình thức được truyền l được truyền bằng địa chỉ (tham biến) – con trỏ. bằng giá trị (tham trị). Khi chương trình con (ctc) được gọi để thi hành, tham l 1 tham trị được coi như 1 biến cục bộ của hàm, l biến chứa địa chỉ tham số thực, ô nhớ của tham số chứa dữ liệu đầu vào cho hàm. thực được dùng trực tiếp trong ctc qua bi ến con trỏ. Còn 2 tham số a,b của hoanvi trong lời gọi hàm trong main() là l tham số thực. Do đó, mọi sự thay đổi trên tham bi ến đều ảnh l Khi chương trình con được gọi để thi hành, tham trị được cấp ô l hưởng đến tham số thực tương ứng. nh ớ và nh ận giá trị là bản sao giá trị của tham số thực. Do đó, mọi sự thay đổi trên tham trị không ảnh hưởng gì đến l tham số thực tương ứng. 13 15 Truyền tham số cho hàm (3) Hàm đệ quy Hãy xem chương trình sau Một hàm được gọi là đệ quy nếu bên trong thân l l hàm có lệnh gọi đến chính nó. Ví dụ: l unsigned int giaithua_dequy(int n) 1 nếu n=0 { n!= n*(n-1)! nếu n#0 if (n==0) return 1; else return n*giaithua_dequy(n-1); } 14 16
  5. Đặc điểm cần lưu ý khi viết hàm đệ quy Hàm đệ quy phải có 2 phần: l Phần dừng: là trường hợp nguyên tố. l Ví dụ: n=0 trong tính n! l Phần đệ quy: là phần có gọi lại hàm đang được định l nghĩa. Ví dụ: nếu n>0 thì n! = n * (n-1)! l 17 Ưu và khuyết điểm của đệ quy Làm chương trình dễ đọc, dễ hiểu và vấn đề được nêu bật rõ l ràng hơn. Đệ quy tốn bộ nhớ nhiều hơn và tốc độ thực hiện chương trình l chậm hơn không đ ệ quy. Tùy từng bài cụ thể mà ta quyết định có nên dùng đệ quy hay l không. Có những trường hợp không dùng đệ quy thì không giải quyết l được bài toán. 18
ADSENSE

CÓ THỂ BẠN MUỐN DOWNLOAD

 

Đồng bộ tài khoản
2=>2