Tải bản đầy đủ (.pdf) (5 trang)

Tìm hiểu hàm và thư viện lập trình phần 8 potx

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (180.74 KB, 5 trang )

36
© 2004, HOÀNG MINH SƠN
Chương 3: Hàm và thư viện
 Chọnthamsố₫ầu vào (=> tham biến)
— Đặctả ý nghĩa: Thể hiệnrõvaitròthamsố
— Đặt tên: Ngắngọn, tự mô tả
—Chọnkiểu: Kiểunhỏ nhấtmà₫ủ biểudiễn
—Chọncáchtruyềnthamsố: cân nhắcgiữatruyềngiátrị hay truyền
₫ịachỉ/tham chiếuvàokiểuhằng
 Chọnthamsố₫ầura(=> thambiếntruyềnqua ₫ịachỉ/qua
tham chiếuhoặcsử dụng giá trị trả về)
— Đặctả ý nghĩa, ₫ặttên, chọnkiểutương tự như tham số₫ầuvào
 Định nghĩabổ sung các kiểudữ liệumớinhư cầnthiết
 Mô tả rõ tiềntrạng (
pre-condition
): ₫iềukiệnbiênchocáctham
số₫ầuvàovàcác₫iềukiệnngoạicảnh cho việcgọihàm
 Mô tả rõ hậutrạng (
post-condition
): tác ₫ộng củaviệcsử dụng
hàm tớingoạicảnh, các thao tác bắtbuộc sau này,
 Thiếtkế thân hàm dựavàocácchứcnăng ₫ã phân tích, sử dụng
lưu ₫ồ thuậttoánvớicáccấutrúc₫iềukiện/rẽ nhánh (kể cả
vòng lặp) => có thể phân chia thành các hàm con nếucần
37
© 2004, HOÀNG MINH SƠN
Chương 3: Hàm và thư viện
Ví dụ minh họa: Tìm số nguyên tố
Bài toán: Xây dựng hàm tìm N số nguyên tố₫ầutiên!
 Phân tích:
—Dữ kiện: N - số số nguyên tố₫ầutiêncầntìm


—Kếtquả: Một dãy N số nguyên tố₫ầutiên
—Cácchứcnăng cầnthựchiện:
z Nhậpdữ liệu? KHÔNG!
z Kiểmtradữ kiện vào (N)? Có/không (NếukiểmtramàN nhỏ
hơn0 thìhàmlàmgì?)
z Cho biếtk số nguyên tố₫ầutiên, xác₫ịnh số nguyên tố tiếp
theo
z Lưutrữ kếtquả mỗilầntìmravàomộtcấutrúcdữ liệuphù
hợp(dãysố cầntìm)
z In kếtquả ra màn hình? KHÔNG!
38
© 2004, HOÀNG MINH SƠN
Chương 3: Hàm và thư viện
 Đặt tên hàm: findPrimeSequence
 Tham số vào: 1
—Ý nghĩa: số các số nguyên tố cầntìm
—Tên: N
—Kiểu: số nguyên ₫ủ lớn(int/long)
—Truyềnthamsố: qua giá trị
 Tham số ra: 1
—Ý nghĩa: dãy N số nguyên tố₫ầu tiên tính từ 1
—Giátrị trả về hay tham biến? Tham biến!
—Tên: primes
—Kiểu: mảng số nguyên (của int/long)
—Truyềnthamsố: qua ₫ịachỉ (int* hoặc long*)
 Tiềntrạng:
—Thamsố N phảilàsố không âm (có nên chọnkiểu unsigned?)
– primes phảimang₫ịachỉ củamảng số nguyên có ít nhấtN
phầntử
 Hậutrạng: không có gì ₫ặcbiệt

39
© 2004, HOÀNG MINH SƠN
Chương 3: Hàm và thư viện
 Khai báo hàm:
void findPrimeSequence(int N, int* primes);
Start
N>0
primes[0]=1
k=1
k<N
primes[k]=findNextPrime
++k
Stop
false
true
true
false
 Thiếtkế thân hàm
—Lưu ₫ồ thuậttoánnhư
hình vẽ
—Phânchia, bổ sung một
hàm mới: findNextPrime
 Lặplạiqui trìnhthiếtkế
hàm cho
findNextPrime
(Bài tậpvề nhà!)
40
© 2004, HOÀNG MINH SƠN
Chương 3: Hàm và thư viện
3.5 Thư việnchuẩn ANSI-C

 Thư việnvào/ra(nhập/xuất) <stdio.h>
 Xử lý ký tự và chuỗikýtự <string.h>, <ctype.h>
 Thư viện hàm toán <math.h>, <float.h>
 Thời gian, ngày tháng <time.h>, <locale.h>
 Cấpphátbộ nhớ₫ộng <stdlib.h>
 Các hàm ký tự rộng <wchar.h>,<wctype.h>
 Các hàm khác <stdlib.h>,

×