Hàm in - Nhập môn lập trình | Trường Đại học CNTT Thành Phố Hồ Chí Minh
Hàm in - Nhập môn lập trình | Trường Đại học CNTT Thành Phố Hồ Chí Minh được được sưu tầm và soạn thảo dưới dạng file PDF để gửi tới các bạn sinh viên cùng tham khảo, ôn tập đầy đủ kiến thức, chuẩn bị cho các buổi học thật tốt. Mời bạn đọc đón xem!
Môn: Nhập môn lập trình
Trường: Trường Đại học Công nghệ Thông tin, Đại học Quốc gia Thành phố Hồ Chí Minh
Thông tin:
Tác giả:
Preview text:
lOMoAR cPSD| 40425501 Nội dung NMLT - H m (Function) NMLT - H m (Function) lOMoAR cPSD| 40425501 & & VC VC BB BB Đặt vấn ề printf( Nhap mot so nguyen duong: ); scanf( %d , &a); printf( Nhap mot so nguyen duong: ); scanf( %d , &b); printf( Nhap mot
so nguyen duong: ); scanf( %d , &c); NMLT - H m (Function) & lOMoAR cPSD| 40425501 & VC VC BB BB Đặt vấn ề Đặt vấn ề
3 oạn lệnh t nh s1 = a!, s2 = b!, s3 = c!
Giải phÆp => Viết 1 lần v sử dụng nhiều lần
{ T nh s1 = a! = 1 * 2 * * a } s1 = 1; for
Đoạn lệnh nhập tổng quÆt, với n = a, b,
(i = 2; i <= a ; i++) c s1 = s1 * i;
do { printf( Nhap mot so nguyen duong: );
{ T nh s2 = b! = 1 * 2 * * b } s2 = 1; for scanf( %d , &n);
(i = 2; i <= b ; i++) } while (n <= 0); s2 = s2 * i;
Đoạn lệnh t nh giai thừa tổng quÆt, n = a, b,
{ T nh s3 = c! = 1 * 2 * * c } s3 = 1; for (i = 2; i <= c ; i++) c s3 = s3 * i;
{ T nh s = n! = 1 * 2 * * n } NMLT - H m (Function)
s = 1; for (i = 2; i <= n ; i++) s = s * i; NMLT - H m (Function) && NMLT - H m (Function) NMLT - H m (Function) & lOMoAR cPSD| 40425501 & VC VC BB BB VCVCBBBB H m NMLT - H m (Function) & lOMoAR cPSD| 40425501 & VC VC BB BB KhÆi niệm
Một oạn chương tr nh c tŒn, ầu v o v ầu ra. C
chức năng giải quyết một số
vấn ề chuyŒn biệt cho chương tr nh ch nh.
Được gọi nhiều lần với cÆc tham số khÆc nhau.
Được sử dụng khi c nhu cầu: TÆi sử dụng. Sửa lỗi v cải tiến. && NMLT - H m (Function) NMLT - H m (Function) & lOMoAR cPSD| 40425501 & VC VC BB BB VCVCBBBB H m NMLT - H m (Function) & lOMoAR cPSD| 40425501 & VC VC BB BB Cœ phÆp
([danh sÆch tham số]) { [return ;] } Trong
: kiểu bất kỳ của C (char, int,
long, float, ). Nếu kh ng trả về th l void. h m>: theo quy tắc ặt tŒn ịnh danh. : tham số h nh thức ầu
v o giống khai bÆo biến, cÆch nhau bằng H m V dụ 1 TŒn h m: XuatTong
C ng việc: t nh v xuất tổng 2 số nguyŒn
Đầu v o: hai số nguyŒn x v y Đầu ra: kh ng c
void XuatTong(int x, int y) { int s; s = x + y;
printf( %d cong %d bang %d , x, y, s); } NMLT - H m (Function)
dấu , : trả về cho h m qua lệnh return. NMLT - H m (Function) NMLT - H m (Function) & lOMoAR cPSD| 40425501 & VC VC BB BB && NMLT - H m (Function) & lOMoAR cPSD| 40425501 & VC VC BB BB VCVCBBBB H m NMLT - H m (Function) NMLT - H m (Function) & lOMoAR cPSD| 40425501 & VC VC BB BB V dụ 2 TŒn h m: TinhTong
C ng việc: t nh v trả về tổng 2 số nguyŒn
Đầu v o: hai số nguyŒn x v y
Đầu ra: một số nguyŒn c giÆ trị x + y
int TinhTong(int x, int y) { int s; s = x + y; return s; } && NMLT - H m (Function) & lOMoAR cPSD| 40425501 & VC VC BB BB
VCVCBBBB Chương tr nh con - Function NMLT - H m (Function) NMLT - H m (Function) & lOMoAR cPSD| 40425501 & VC VC BB BB V dụ 3 TŒn h m: NhapXuatTong
C ng việc: nhập v xuất tổng 2 số nguyŒn
Đầu v o: kh ng c Đầu ra: kh ng c void NhapXuatTong()
{ int x, y; printf( Nhap 2 so nguyen: );
scanf( %d%d , &x, &y); printf( %d cong
%d bang %d , x, y, x + y); } NMLT - H m (Function) lOMoAR cPSD| 40425501 & & VC VC BB BB Tầm vực KhÆi niệm L
phạm vi hiệu quả của biến v h m. Biến:
To n cục: khai bÆo trong ngo i tất cả cÆc h m
(kể cả h m main) v c tÆc dụng lŒn to n bộ chương tr nh.
Cục bộ: khai bÆo trong h m hoặc khối { } v chỉ
c tÆc dụng trong bản th n h m hoặc khối khối
con n ). Biến cục bộ sẽ bị x a khỏi bộ nhớ khi
kết thœc khối khai bÆo n . NMLT - H m (Function) && NMLT - H m (Function) NMLT - H m (Function)
Downloaded by Mai Le Thi Nguyet (hoathanvu729@gmail.com) lOMoAR cPSD| 40425501
VCVCBBBB Một số lưu NMLT - H m (Function)
Downloaded by Mai Le Thi Nguyet (hoathanvu729@gmail.com) NMLT -Hm (Function ) & lOMoAR cPSD| 40425501 & VC VC BB BB
Th ng thường người ta thường ặt phần tiŒu ề
h m/nguyŒn mẫu h m (prototype) trŒn h m
main v phần ịnh nghĩa h m dưới h m main.
void XuatTong(int x, int y); // prototype void main() { }
void XuatTong(int x, int y)
{ printf( %d cong %d bang %d , x, y, x + y); } NMLT - H m (Function) NMLT - H m (Function)
Downloaded by Mai Le Thi Nguyet (hoathanvu729@gmail.com) lOMoAR cPSD| 40425501
VCVCBBBB&& CÆc cÆch truyền ối số NMLT - H m (Function)
Downloaded by Mai Le Thi Nguyet (hoathanvu729@gmail.com) NMLT -Hm (Function ) & lOMoAR cPSD| 40425501 & VC VC BB BB
Truyền GiÆ trị (Call by Value)
CÆc cÆch truyền ối số
Truyền ối số cho h m ở dạng giÆ trị.
Truyền Địa chỉ (Call by Address)
C thể truyền hằng, biến, biểu thức
Truyền ối số cho h m ở dạng ịa chỉ
nhưng h m chỉ sẽ nhận giÆ trị. (con trỏ).
Được sử dụng khi kh ng c nhu cầu
Kh ng ược truyền giÆ trị cho tham
thay ổi giÆ trị của tham số sau khi thực hiện số n y. h m. Được sử dụng khi c nhu cầu
void TruyenGiaTri(int x)
thay ổi giÆ trị của tham số sau khi thực { hiện h m. x++;
void TruyenDiaChi(int *x) { } *x++; } NMLT - H m (Function) NMLT - H m (Function) NMLT - H m (Function)
Downloaded by Mai Le Thi Nguyet (hoathanvu729@gmail.com) lOMoAR cPSD| 40425501
CÆc cÆch truyền ối số
Truyền Tham chiếu (Call by Reference) (C++)
Truyền ối số cho h m ở dạng ịa chỉ (con
trỏ). Được bắt ầu bằng & trong khai bÆo.
Kh ng ược truyền giÆ trị cho tham số n y.
Được sử dụng khi c nhu cầu thay ổi giÆ
trị của tham số sau khi thực hiện h m.
void TruyenThamChieu(int &x) { NMLT - H m (Function)
Downloaded by Mai Le Thi Nguyet (hoathanvu729@gmail.com) NMLT -Hm (Function ) & lOMoAR cPSD| 40425501 & VC VC BB BB x++; NMLT - H m (Function) NMLT - H m (Function)
Downloaded by Mai Le Thi Nguyet (hoathanvu729@gmail.com) lOMoAR cPSD| 40425501 } NMLT - H m (Function) && NMLT - H m (Function)
Downloaded by Mai Le Thi Nguyet (hoathanvu729@gmail.com) NMLT -Hm (Function ) & lOMoAR cPSD| 40425501 & VC VC BB BB
VCVCBBBB Lưu khi truyền ối số NMLT - H m (Function) NMLT - H m (Function)
Downloaded by Mai Le Thi Nguyet (hoathanvu729@gmail.com) lOMoAR cPSD| 40425501 Lưu &&
Trong một h m, cÆc tham số c thể truyền theo nhiều cÆch.
void HonHop(int x, int &y) { x++; y++; } NMLT - H m (Function)
Downloaded by Mai Le Thi Nguyet (hoathanvu729@gmail.com) NMLT -Hm (Function ) & lOMoAR cPSD| 40425501 & VC VC BB BB
VCVCBBBB Lưu khi truyền ối số NMLT - H m (Function) NMLT - H m (Function)
Downloaded by Mai Le Thi Nguyet (hoathanvu729@gmail.com) lOMoAR cPSD| 40425501 Lưu
Sử dụng tham chiếu l một cÆch
ể trả về giÆ trị cho chương tr nh.
int TinhTong(int x, int y) { return x + y; }
void TinhTong(int x, int y, int &tong) { tong = x + y; }
void TinhTongHieu(int x, int y, int &tong, int &hieu)
{ tong = x + y; hieu = x y; } NMLT - H m (Function)
Downloaded by Mai Le Thi Nguyet (hoathanvu729@gmail.com) NMLT -Hm (Function ) & lOMoAR cPSD| 40425501 & VC VC BB BB BBBB Lời gọi h m NMLT - H m (Function) NMLT - H m (Function)
Downloaded by Mai Le Thi Nguyet (hoathanvu729@gmail.com) lOMoAR cPSD| 40425501 CÆch thực hiện
Gọi tŒn của h m ồng thời truyền cÆc ối số
(hằng, biến, biểu thức) cho cÆc tham số
theo œng thứ tự ª ược khai bÆo trong h m.
CÆc biến hoặc trị n y cÆch nhau bằng dấu ,
CÆc ối số n y ược ược ặt trong cặp dấu ngoặc ơn ( ) (<ối số 1>, , <ối số n>); NMLT - H m (Function) NMLT - H m (Function)
Downloaded by Mai Le Thi Nguyet (hoathanvu729@gmail.com) NMLT -Hm (Function ) & & VC VC BB BB l O M o A R c P S D | 4 0 4 2 5 5 0 1 NMLT - H m (Function) NMLT - H m (Function) D o w nl oa de d by M ai Le Th i N gu ye t (h oa th an vu 72 9 @ g m ail .c o m) l O M o A R c P S D | 4 0 4 2 5 5 0 1 Lời gọi h m NMLT - H m (Function) D o w nl oa de d by M ai Le Th i N gu ye t (h oa th an vu 72 9 @ g m ail .c o NMLT -Hm (Function ) m) & & VC VC BB BB l O M o A R c P S D | 4 0 4 2 5 5 0 1 && NMLT - H m (Function) NMLT - H m (Function)
Downloaded by Mai Le Thi Nguyet (hoathanvu729@gmail.com) l O M o A R c P S D | 4 0 4 2 5 5 0 1
VCVC Lời gọi chương tr nh con NMLT - H m (Function)
Downloaded by Mai Le Thi Nguyet NMLT -Hm (Function ) (hoathanvu729@gmail.com) & & VC VC BB BB l O M o A R c P S D | 4 0 4 2 5 5 0 1 BBBB NMLT - H m (Function) NMLT - H m (Function)
Downloaded by Mai Le Thi Nguyet (hoathanvu729@gmail.com) lOMoAR cPSD| 40425501
VCVCBBBB&& Đệ quy NMLT - H m (Function) NMLT -Hm (Function )
Downloaded by Mai Le Thi Nguyet (hoathanvu729@gmail.com) & & VC VC BB BB lOMoAR cPSD| 40425501 KhÆi niệm
Một chương tr nh con c thể gọi một chương tr nh con khÆc.
Nếu gọi ch nh n th ược gọi l sự ệ quy. Số lần gọi n y phải c giới hạn ( iểm dừng) V dụ T nh S(n) = n! = 1*2* *(n-1)*n Ta thấy S(n) = S(n-1)*n
Vậy thay v t nh S(n) ta sẽ i t nh S(n-1) NMLT - H m (Function) NMLT - H m (Function)
Downloaded by Mai Le Thi Nguyet (hoathanvu729@gmail.com) lOMoAR cPSD| 40425501
Tương tự t nh S(n-2), , S(2), S(1), NMLT - H m (Function) NMLT -Hm (Function )
Downloaded by Mai Le Thi Nguyet (hoathanvu729@gmail.com) & & VC VC BB BB lOMoAR cPSD| 40425501 S(0) = 1 NMLT - H m (Function) NMLT - H m (Function)
Downloaded by Mai Le Thi Nguyet (hoathanvu729@gmail.com) lOMoAR cPSD| 40425501 BBBB Đệ quy NMLT - H m (Function) NMLT -Hm (Function )
Downloaded by Mai Le Thi Nguyet (hoathanvu729@gmail.com) lOMoAR cPSD| 40425501 V dụ
a. Viết h m ổi một k tự hoa sang k tự thường. int GiaiThua(int n) b. { if (n == 0) return
Viết thủ tục giải phương tr nh bậc nhất. 1;
c. Viết thủ tục giải phương tr nh bậc hai.
else return GiaiThua(n 1) * n; } int GiaiThua(int
d. Viết h m trả về giÆ trị nhỏ nhất của 4 số n) nguyŒn.
{ if (n > 0) return GiaiThua(n 1) * n; else return 1;
e. Viết thủ tục hoÆn vị hai số nguyŒn. }
f. Viết thủ tục sắp xếp 4 số nguyŒn NMLT - H m (Function) tăng dần. B i tập thực h nh NMLT - H m (Function)
5. B i 4, 5, 6, 7, 8 trang 140-141 chương 8 (C u
lệnh iều kiện v rẽ nhÆnh) NMLT - H m (Function) NMLT -Hm (Function )
Downloaded by Mai Le Thi Nguyet (hoathanvu729@gmail.com) lOMoAR cPSD| 40425501
VCVCBBBB&& B i tập thực h nh NMLT - H m (Function)
Downloaded by Mai Le Thi Nguyet (hoathanvu729@gmail.com) NMLT -Hm (Function ) lOMoAR cPSD| 40425501
6. B i tập 3 trang 155 chương 9 (C u lệnh lặp). H m
nhận v o một số nguyŒn dương n v thực hiện: a. Trả về số ảo của số . b. C phải l số
ối xứng (Trả về True/False)
c. C phải l số ch nh phương.
d. C phải l số nguyŒn tố.
e. Tổng cÆc chữ số lẻ.
f. Tổng cÆc chữ số nguyŒn tố.
g. Tổng cÆc chữ số ch nh phương. && NMLT - H m (Function)
Downloaded by Mai Le Thi Nguyet (hoathanvu729@gmail.com) NMLT -Hm (Function ) lOMoAR cPSD| 40425501 VCVC B i tập thực h nh NMLT - H m (Function)
Downloaded by Mai Le Thi Nguyet (hoathanvu729@gmail.com) NMLT -Hm (Function ) lOMoAR cPSD| 40425501 BBBB
7. B i tập 4 trang 156 chương 9 (C u lệnh lặp). H m
nhận v o một số nguyŒn dương n v thực hiện: a. S = 1 + 2 + + n b. S = 12 + 22 + + n2 c. S = 1 + 1/2 + + 1/n d. S = 1 * 2 * * n e. S = 1! + 2! + + n!
8. H m trả về USCLN của 2 số nguyŒn.
9. In ra n phần tử của dªy Fibonacy. NMLT - H m (Function)
Downloaded by Mai Le Thi Nguyet (hoathanvu729@gmail.com) NMLT -Hm (Function )