Bài 1. Vi t ch ng trình nh p t bàn phím n s nguyên d ng nh h n 100, in ra màn hìnhế ươ ậ ừ ố ươ ỏ ơ
hai c t song song, m t c t là các s , còn c t kia là t ng c a các ch s t ng ng c t thộ ộ ộ ố ộ ổ ủ ữ ố ươ ứ ở ộ ứ
nh t. Tìm và in ra s có t ng c a các ch s là l n nh t, n u có nhi u h n m t s nh v yấ ố ổ ủ ữ ố ớ ấ ế ề ơ ộ ố ư ậ
thì in s đ u tiên.ố ầ
Bài 2. M t ng i g i ti t ki m a đ ng v i lãi su t s% m t tháng (tính lãi hàng tháng). Vi tộ ườ ử ế ệ ồ ớ ấ ộ ệ
m t ch ng trình tính và in ra màn hình hai c t song song, c t th nh t là s tháng đã g i, c tộ ươ ộ ộ ứ ấ ố ử ộ
th hai t ng s ti n (c v n và lãi) ng v i s tháng c t th nh t cho m t kho ng th i gianứ ổ ố ề ả ố ứ ớ ố ở ộ ứ ấ ộ ả ờ
t 1 đ n t tháng, v i a, s, t đ c nh p t bàn phím.ừ ế ớ ượ ậ ừ
Bài 3. M t ng i g i ti t ki m à đ ng v i lãi su t là s% m t tháng trong kỳ h n 6 tháng (6ộ ườ ử ế ệ ồ ớ ấ ộ ạ
tháng tính lãi m t l n). Vi t ch ng trình tính và in ra màn hình hai c t song song, c t thộ ầ ế ươ ộ ộ ứ
nh t là s tháng đã g i, c t th hai là t ng ti n (c v n và lãi) ng v i s tháng c t thấ ố ử ộ ứ ổ ề ả ố ứ ớ ố ở ộ ứ
nh t cho m t kho ng th i gian t 6 tháng đ n t tháng, v i a, s, và t đ c nh p t bàn phím.ấ ộ ả ờ ừ ế ớ ượ ậ ừ
(Bi t r ng n u lĩnh không ch n kỳ nào thì không đ c tính lãi kỳ y).ế ằ ế ắ ượ ấ
Bài 4. Cho x là m t s th c, hãy xây d ng hàm tính và in ra màn hình hai c t song song, c tộ ố ự ự ộ ộ
th nh t là giá tr c a đ i s , c t th hai là giá tr c a hàm f ng v i đ i s c t th nh t:ứ ấ ị ủ ố ố ộ ứ ị ủ ứ ớ ố ố ở ộ ứ ấ
Sau đó, vi t m t ch ng trình nh p t bán phím m t m ng g m n s th c, và g i hàm đã l pế ộ ươ ạ ừ ộ ả ồ ố ự ọ ậ
đ c trên v i đ i s là các s v a nh p.ượ ở ớ ố ố ố ừ ậ
Bài 5. Vi t ch ng trình tính và in ra màn hình s ti n đi n tháng 10/99 c a n khách hàng theoế ươ ố ề ệ ủ
các ch s trên đ ng h đi n c a tháng 9 và c a tháng 10 đ c nh p vào t bàn phím (ph iỉ ố ồ ồ ệ ủ ủ ượ ậ ừ ả
ki m tra đ đ m b o r ng ch s c a tháng sau ph i l n h n ch s c a các tháng tr c).ể ể ả ả ằ ỉ ố ủ ả ớ ơ ỉ ố ủ ướ
Bi t r ng: 50 s đ u ti n giá 500 đ ng/s , 100 s ti p theo giá 800 đ ng/s , 100 s ti p theoế ằ ố ầ ề ồ ố ố ế ồ ố ố ế
n a giá 1000 đ ng/s , 100 s ti p theo n a giá 1200 đ ng/s , và t s th 351 tr đi giá 1500ữ ồ ố ố ế ữ ồ ố ừ ố ứ ở
đ ng/s . ồ ố
Bài 6. Vi t m t ch ng trình nh p vào t bàn phím đi m ki m tra c a m t môn h c c a nế ộ ươ ậ ừ ể ể ủ ộ ọ ủ
h c sinh và in k t qu ra màn hình d i d ng hai c t song song, m t c t là đi m và c t thọ ế ả ướ ạ ộ ộ ộ ể ộ ứ
hai là x p lo i theo đi m v i các qui đ nh sau:ế ạ ể ớ ị
D i 5: Y uướ ế
T 5 đ n d i 7: Trung bình ừ ế ướ
T 7 đ n d i 9: Khá ừ ế ướ
T 9 tr lên: Gi i ừ ở ỏ
Bài 7. Vi t ch ng trình gi i ph ng trình b c hai ax2+bx+c=0 v i a, b, c b t kỳ đ c nh pế ươ ả ươ ậ ớ ấ ượ ậ
vào t bàn phím. In ra màn hình ph ng trình b c hai v i các h s đã nh p, giá tr c a deltaừ ươ ậ ớ ệ ố ậ ị ủ
và các nghi m th c c a nó (n u c ), ng cij l i thì in là không có nghi m th c.ệ ứ ủ ế ố ươ ạ ệ ự
Bài 8. Năm 1999, dân s n c ta là 76 tri u ng i, t l tăng t nhiên là k% m t năm. L pố ướ ệ ườ ỷ ệ ự ộ ậ
m t ch ng trình in ra màn hình hai c t song song, c t th nh t là năm, c t th hai là dân sộ ươ ộ ộ ứ ấ ộ ứ ố
c a năm t ng ng c t m t cho đ n khi dân s tăng s l n so v i năm 1999. Các s k và sủ ươ ứ ở ộ ộ ế ố ầ ớ ố
đ c nh p vào t bàn phím.ượ ậ ừ
Bài 9. Vi t ch ng trình gi i b t ph ng trình b n hai v i a, b, c b t kỳ đ c nh p t bànế ươ ả ấ ươ ậ ớ ấ ượ ậ ừ
phím: ax2+bx+c>0 . In ra màn hình b t ph ng trình v i các h s đã nh p, giá tr c a deltaấ ươ ớ ệ ố ậ ị ủ
và các nghi m th c c a b t ph ng trình.ệ ự ủ ấ ươ
Bài 10. Xây d ng m t hàm s p x p thep th t ự ộ ắ ế ứ ự tăng d nầ m t m ng g m n s th c. Vi tộ ả ồ ố ự ế
ch ng trình đ nh p n s th c t bàn phím, s d ng hàm s p x p nói trên, và in ra màn hìnhươ ể ậ ố ự ừ ử ụ ắ ế
hai c t song song, m t c t là m ng ch a s p x p, m t c t là m ng đã đ c s p x p.ộ ộ ộ ả ư ắ ế ộ ộ ả ượ ắ ế
Bài 11. Xây d ng m t hàm s p x p thep th t ự ộ ắ ế ứ ự gi m d nả ầ m t m ng g m n s th c. Vi tộ ả ồ ố ự ế
ch ng trình đ nh p n s th c t bàn phím, s d ng hàm s p x p nói trên, và in ra màn hìnhươ ể ậ ố ự ừ ử ụ ắ ế
hai c t song song, m t c t là m ng ch a s p x p, m t c t là m ng đã đ c s p x p.ộ ộ ộ ả ư ắ ế ộ ộ ả ượ ắ ế
Bài 12. Cho F là m t s th c l n h n 2, và S=1/2+1/3+…+1/n. Hãy xây d ng m t hàm đ tìmộ ố ự ớ ơ ự ộ ể
giá tr l n nh t c a n sao cho S<=F. Vi t m t ch ng trình đ nh p vào t bàn phím m sị ớ ấ ủ ế ộ ươ ể ậ ừ ố
th c Fi, s d ng hàm nói trên đ i v i các hàm Fi đã nh p và in ra màn hình thành ba c t songự ử ụ ố ớ ậ ộ
song: các giá tr c a Fi, n, và S t ng ng.ị ủ ươ ứ
Bài 13. Cho F là m t s th c l n h n 2, và S=1/2+1/3+…+1/n. Hãy xây d ng m t hàm đ tìmộ ố ự ớ ơ ự ộ ể
giá tr nh nh t c a n sao cho S<=F. Vi t m t ch ng trình đ nh p vào t bàn phím m sị ỏ ấ ủ ế ộ ươ ể ậ ừ ố
th c Fi, s d ng hàm nói trên đ i v i các hàm Fi đã nh p và in ra màn hình thành ba c t songự ử ụ ố ớ ậ ộ
song: các giá tr c a Fi, n, và S t ng ng.ị ủ ươ ứ
Bài 14. Xây d ng m t hàm tính giá tr trung bình c a n s th c. (Giá tr trung bình c a m tự ộ ị ủ ố ự ị ủ ộ
dãy s đ c cho b ng công th c: ố ượ ằ ứ ).
S d ng hàm nói trên đ vi t ch ng trình nh p n s th c t bàn phím và in ra màn hình c tử ụ ể ế ươ ậ ố ự ừ ộ
s đã nh p, t ng, giá tr trung bình c a chúng.ố ậ ổ ị ủ
Bài 15. Xây d ng m t hàm tính giá tr trung bình c a n s th c. (Đ lêcnh chu n c a dãy sự ộ ị ủ ố ự ộ ẩ ủ ố
đ c cho b ng công th c: ượ ằ ứ , v i ớ ).
S d ng hàm nói trên đ vi t ch ng trình nh p n s th c t bàn phím và in ra màn hình c tử ụ ể ế ươ ậ ố ự ừ ộ
s đã nh p, t ng, giá tr trung bình và đ l ch chu n c a chúng.ố ậ ổ ị ộ ệ ẩ ủ
Bài 16. Hãy xây d ng m t hàm đ nh p t bàn phím m t m ng s th c. Vi t m t ch ngự ộ ể ậ ừ ộ ả ố ự ế ộ ươ
trình s d ng hàm đã xây d ng đ c trên đ nh p s li u cho hai m ng s th c, m t m ngử ụ ự ượ ở ể ậ ố ệ ả ố ự ộ ả
có n ph n t , và m t m ng có m ph n t , in ra màn hình hai c t song song, m i c t là m tẩ ử ộ ả ầ ử ộ ỗ ộ ộ
m ng v i ô cu i cùng là t ng c a các ph n t trong m ng, và cu i cùng là t ng c a haiả ớ ố ổ ủ ầ ử ả ỗ ổ ủ
m ng.ả
Bài 17. Hãy xây d ng m t hàm đ nh p t bàn phím m t m ng s th c. Vi t m t ch ngự ộ ể ậ ừ ộ ả ố ự ế ộ ươ
trình s d ng hàm đã xây d ng đ c trên đ nh p s li u cho hai m ng s th c, m t m ngử ụ ự ượ ở ể ậ ố ệ ả ố ự ộ ả
có n ph n t , và m t m ng có m ph n t , in ra màn hình ba c t song song, hai c t đ u là haiẩ ử ộ ả ầ ử ộ ộ ầ
m ng đã nh p, c t th ba t ng c a hai c t đ u, dòng cu i cùng c a c ba c t là t ng c a cácả ậ ộ ứ ổ ủ ộ ầ ỗ ủ ả ộ ổ ủ
ph n t trong c t.ầ ử ộ
Bài 18. Cho tu i và s con c a n ph n trong đ tu i 15-49, hãy xây d ng m t hàm tính và inổ ố ủ ụ ữ ộ ổ ự ộ
b n phân b c a các ph n này theo nhóm 5 tu i. Vi t ch ng trình đ nh p tu i và s conả ố ủ ụ ữ ổ ế ươ ể ậ ổ ố
c a n ph n trong đ tu i 15-49, sau đó s d ng hàm đã xây d ng trên đ in b ng phân bủ ụ ữ ộ ổ ử ụ ự ở ể ả ố
theo tu i.ổ
Bài 19. Cho tu i và s con c a n ph n trong đ tu i 15-49, hãy xây d ng m t hàm tính và inổ ố ủ ụ ữ ộ ổ ự ộ
b n phân b c a các ph n này theo nhóm 5 tu i. Vi t ch ng trình đ nh p tu i và s conả ố ủ ụ ữ ổ ế ươ ể ậ ổ ố
c a n ph n trogn đ tu i 15-49, sau đó s d ng hàm đã xây d ng trên đ in b ng phân bủ ụ ữ ộ ổ ử ụ ự ở ể ả ố
s con c a các ph nố ủ ụ ữ này theo tu i.ổ
Bài 20. Cho m t xây b t kỳ, không s d ng các hàm th vi n v xâu, hãy xây d ng m t hàmộ ấ ử ụ ư ệ ề ự ộ
đ i t t c các ổ ấ ả ch th ngữ ườ thành ch hoaữ (các ký t khác gi nguyên) và in c hai ra mànự ữ ả
hình. Vi t m t ch ng trình nh p m t xây b t kỳ t bàn phím, sau đó s d ng hàm đã xâyế ộ ươ ậ ộ ấ ừ ử ụ
d ng trên đ in k t qu ra màn hình.ự ở ể ế ả
Bài 21. Cho m t xây b t kỳ, không s d ng các hàm th vi n v xâu, hãy xây d ng m t hàmộ ấ ử ụ ư ệ ề ự ộ
đ i t t c các ổ ấ ả ch hoaữ thành ch th ng ữ ườ (các ký t khác gi nguyên) và in c hai ra mànự ữ ả
hình. Vi t m t ch ng trình nh p m t xây b t kỳ t bàn phím, sau đó s d ng hàm đã xâyế ộ ươ ậ ộ ấ ừ ử ụ
d ng trên đ in k t qu ra màn hình.ự ở ể ế ả
Bài 22. Cho m t xây b t kỳ, không s d ng cac shamf th vi n v xâu, hãy xây d ng m tộ ấ ử ụ ư ệ ề ự ộ
hàm đ i t t c các ổ ấ ả ch hoaữ c a xây thành ủ ch th ngữ ườ , và ng c l i, đ i các ượ ạ ổ ch th ngữ ườ
c a xâu thành ủ ch hoaữ (các ch khác gi nguyên) và in c hai ra màn hình. Vi t m t ch ngữ ữ ả ế ộ ươ
trình nh p m t xâu b t kỳ t bàn phím, sau đó s d ng hàm đã xây d ng trên đê in k t quậ ộ ấ ừ ử ụ ự ở ế ả
ra màn hình.
Bài 23. Cho c u trúc:ấ
Code:
struc thisinh{
int sbd; //S báo danhố
char hoten[25]; //H và tênọ
float m1,m2,m3l //Đi m ba môn thiể
float tong; //T ng đi m ba mônổ ể
} danhsach[100];
Hãy xây d ng m t hàm đ nh p s li u cho n thí sinh. Sau đó vi t m t ch ng trình s d ngự ộ ể ậ ố ệ ế ộ ươ ử ụ
hàm nói trên đ nh p s li u và in b ng đi m c a các thí sinh này theo d ng ba c t: S báoể ậ ố ệ ả ể ủ ạ ộ ố
danh, H tên, T ng đi m.ọ ổ ể
Bài 24. Cho m t xây b t, hãy xây d ng m t hàm đ s a các l i chính t ộ ấ ự ộ ể ử ỗ ả không vi t hoa đ uế ầ
câu trong xâu này, in ra xâu ch a s a và xâu đã s a. Sau đó vi t m t ch ng trình đ nh pư ử ử ế ộ ươ ể ậ
m t xâu và s d ng hàm nói trên đ s a l i.ộ ử ụ ể ử ỗ
Bài 25. Cho c u trúc:ấ
Code:
struc dienthoai{
int sdt; //S đi n tho iố ệ ạ
char hoten[25]; //H và tênọ
float sotien; //S ti n ph i n pố ề ả ộ
} thuebao[100];
Hãy xây d ng m t hàm đ nh p s li u cho n thuê bao. Sau đó vi t m t ch ng trình sự ộ ể ậ ố ệ ế ộ ươ ử
d ng hàm nói trên đ nh p s li u và in b ng s ti n ph i n p c a các thuê bao theo d ng baụ ể ậ ố ệ ả ố ề ả ộ ủ ạ
c t: H tên, s đi n tho i, s ti n ph i n p.ộ ọ ố ệ ạ ố ề ả ộ
Bài 26. Hãy xây d ng m t hàm in ra màn hình n i dung m t t p văn b n b t kỳ (có d ng l iự ộ ộ ộ ệ ả ấ ự ạ
sau m i trang màn hình). Sau đó, vi t m t ch ng trình đ nh p vào t bàn phím tên c a m tỗ ế ộ ươ ể ậ ừ ủ ộ
t p văn b n và s d ng hàm nói trên đ in n i dung c a t p này ra màn hình.ệ ả ử ụ ể ộ ủ ệ
Bài 27. Cho tu i và trình đ văn hóa (0-4) c a n ng i, hãy xây d ng m t hàm in b n phân bổ ộ ủ ườ ự ộ ả ố
c a s ng i này theo nhóm 5 tu i và trình đ văn hóa. Sau đó, vi t m t ch ng trình đủ ố ườ ổ ộ ế ộ ươ ể
nh p tu i và trình đ văn hóa c a n ng i, s d ng hàm nói trên đ in k t qu ra màn hình.ậ ổ ộ ủ ườ ử ụ ể ế ả
Bài 28. Vi t m t ch ng trình đ nh p tu i và trình đ văn hóa (0-4) c a n ng i, sau đó ghiế ộ ươ ể ậ ổ ộ ủ ườ
các s li u này lên m t t p mode văn b n.ố ệ ộ ệ ả
Bài 29. Cho m t xâu b t kỳ, hãy xây d ng m t hàm đ s a các l i chính t ộ ấ ự ộ ể ử ỗ ả không có d uấ
cách sau d u ph y và sau d u ch mấ ả ấ ấ , in ra màn hình xâu ch a s a và xâu đã s a. Sau đó vi tư ử ử ế
ch ng trình đ nh p m t xâu b t kỳ và s d ng hàm nói trên đ s a l i.ươ ể ậ ộ ấ ử ụ ể ử ỗ
Bài 30. Cho m t xâu b t kỳ, hãy xây d ng m t hàm đ s a các l i chính t ộ ấ ự ộ ể ử ỗ ả không có d uấ
cách gi a các tữ ừ, in ra xâu g c và xâu đã s a. Sau đó vi t m t ch ng trình đ nh p m t xâuố ử ế ộ ươ ể ậ ộ
ký t b t kỳ và s d ng hàm nói trên đ s a l i.ự ấ ử ụ ể ử ỗ
Bài 31. Cho m t xâu b t kỳ, hãy xây d ng m t hàm đ ộ ấ ự ộ ể vi t hoa ch cái đ u tiên c a t t cế ữ ầ ủ ấ ả
các từ trong xâu đã cho, in ra xâu g c và xâu đã s a. Sau đó vi t m t ch ng trình đ nh pố ử ế ộ ươ ể ậ
m t xâu ký t b t kỳ và s d ng hàm nói trên đ s a l i.ộ ự ấ ử ụ ể ử ỗ
Bài 32. Cho c u trúc:ấ
Code:
struc tiendien{
char hoten[25]; //H và tênọ
float csc,csm; //Ch s cũ, ch s m iỉ ố ỉ ố ớ
float dg; //Đ n giá/Kwơ
float tong; //T ng ti n ph i n pổ ề ả ộ
} danhsach[100];
Hãy xây d ng m t hàm đ nh p s li u cho n h s d ng đi n. Sau đó, vi t m t ch ngự ộ ể ậ ố ệ ộ ử ụ ệ ế ộ ươ
trình s d ng hàm nói trên đ nh p s li u và in b ng tính ti n s d ng đi n tho i c a cácử ụ ể ậ ố ệ ả ề ử ụ ệ ạ ủ
h này theo d ng hai c t: H tên, s đi n tiêu th , T ng s ti n.ộ ạ ộ ọ ố ệ ụ ổ ố ề
Bài 33. Hãy xây d ng m t hàm đ nh p t bàn phím m t m ng các s th c. Vi t ch ng trìnhự ộ ể ậ ừ ộ ả ố ự ế ư
s d ng hàm nói trên đ nh p s li u cho hai m ng s th c cùng có n ph n t , in ra màn hìnhử ụ ể ậ ố ệ ả ố ự ầ ử
ba c t song song, hai c t đ u là hai m ng đã nh p, còn c t th ba là hi u c a hai c t đ u,ộ ộ ầ ả ậ ộ ứ ệ ủ ộ ầ
dòng cu i cùng c a c ba c t là t ng c a các ph n t trong c t.ố ủ ả ộ ỏ ủ ầ ử ộ
Bài 34. Cho F là m t s th c l n h n 2, và ộ ố ự ớ ơ , v i x là m t s nguyên d ng b t kỳ. Hãyớ ộ ố ươ ấ
xây d ng m t hàm đ tìm giá tr ự ộ ể ị l n nh tớ ấ c a n sao cho S<=F, in ra màn hình các giá tr c aủ ị ủ
x, F, S và n. Vi t m t ch ng trình đ nh p vào t bàn phím s th c F, s nguyên d ng x vàế ộ ươ ể ậ ừ ố ự ố ươ
s d ng hàm nói trên đ i v i các giá tr đã nh p đ in k t qu ra màn hình.ử ụ ố ớ ị ậ ể ế ả
Bài 35. Cho F là m t s th c l n h n 2, và ộ ố ự ớ ơ , v i x là m t s nguyên d ng b t kỳ. Hãyớ ộ ố ươ ấ
xây d ng m t hàm đ tìm giá tr ự ộ ể ị nh nh tỏ ấ c a n sao cho S<=F, in ra màn hình các giá tr c aủ ị ủ
x, F, S và n. Vi t m t ch ng trình đ nh p vào t bàn phím s th c F, s nguyên d ng x vàế ộ ươ ể ậ ừ ố ự ố ươ
s d ng hàm nói trên đ i v i các giá tr đã nh p đ in k t qu ra màn hình.ử ụ ố ớ ị ậ ể ế ả
Bài 36. Hãy xây d ng m t hàm đ nh p t bán phím m t m ng cac s th c. Vi t ch ngự ộ ể ậ ừ ộ ả ố ự ế ươ
trình s d ng hàm nói trên đ nh p s li u cho hai m ng s th c cùng có n ph n t , in ra mànử ụ ể ậ ố ệ ả ố ự ầ ử
hình ba c t song song, hai c t đ u là hai m ng đã nh p, c t th ba là tích c a hai c t đ u,ộ ộ ầ ả ậ ộ ứ ủ ộ ầ
dòng cu i cùng c a c ba c t là t ng các ph n t trong c t.ỗ ủ ả ộ ổ ầ ử ộ
Bài 37. Vi t m t ch ng trình đ nh p s báo danh, h tên và đi m thi ba môn Toán, Lý, Hóaế ộ ươ ể ậ ố ọ ể
c a n thí sinh, sau đó ghi các s li u này lên m t t p mode văn b n.ủ ố ệ ộ ệ ở ả
Bài 38. Hãy xây d ng m t hàm in ra mnaf hình n i dung c a m t t p văn b n b t kỳ theoự ộ ộ ủ ộ ệ ả ấ
d ng trang màn hình có đánh s trang. Sau đó, vi t m t ch ng trình đ nh p t bàn phím tênạ ố ế ộ ươ ể ậ ừ
c a m t t p văn b n và s d ng hàm nói trên đ in n i dung c a t p này ra màn hình.ủ ộ ệ ả ử ụ ể ộ ủ ệ
Bài 39. Hãy xây d ng m t hàm in ra mnafh ình n i dung c a m t t p văn b n b t kỳ theoự ộ ộ ủ ộ ệ ả ấ
d ng trang màn hình, dòng đ u c a m i trang có đánh s trang góc bên ph i và tên t pạ ở ầ ủ ỗ ố ở ả ệ
góc trái. Sau đó, vi t m t ch ng trình đ nh p t bàn phím tên c a m t t p văn b n và sế ộ ươ ể ậ ừ ủ ộ ệ ả ử
d ng hàm nói trên đ in n i dung c a t p này ra màn hình.ụ ể ộ ủ ệ
Bài 40. Cho c u trúcấ
Code:
struc thisinh{
int sbd; //S báo danhố
char hoten[25]; //H và tênọ
float m1,m2,m3l //Đi m ba môn thiể
float tong; //T ng đi m ba mônổ ể
} danhsach[100];
Vi t ch ng trình (có s d ng các hàm) đ thêm và b t các thí sinh theo th t gi m d n c aế ươ ử ụ ể ớ ứ ự ả ầ ủ
t ng đi m, và in ra mnaf hình danh sách đã s p.ổ ể ắ
Trích:
tuananhk43
Bài 1. Vi t ch ng trình nh p t bàn phím n s nguyên d ng nh h n 100, in ra màn hình haiế ươ ậ ừ ố ươ ỏ ơ
c t song song, m t c t là các s , còn c t kia là t ng c a các ch s t ng ng c t th nh t.ộ ộ ộ ố ộ ổ ủ ữ ố ươ ứ ở ộ ứ ấ
Tìm và in ra s có t ng c a các ch s là l n nh t, n u có nhi u h n m t s nh v y thì in số ổ ủ ữ ố ớ ấ ế ề ơ ộ ố ư ậ ố
đ u tiên.ầ
Code:
#include <iostream.h>
#include<conio.h>
#include<iomanip.h>
//Ham tinh tong cac chu so
//Vd n=15 thi tra ve gia tri la 6
int tong(int n){
int a,b;
a=(int)n/10;
b=n-a*10;
return a+b;
}
//Ham nhap cac gia tri cho mot mang
void nhap(int *a,int n){
for (int i=0;i<n;i++){
cout<<"Nhap a["<<i<<"]=";
cin>>a[i];
}
}
//Ham in cac gia tri thanh hai cot
void in(int *a,int n){
int tong1=0, tong2=0;
int max; //Dung de tinh gia tri lon nhat cua tong
int val;
cout<<setw(15)<<"STT"<<setw(15)<<"Tong"<<"\n";
max=tong(a[1]);
for(int i=0;i<n;i++){
cout<<setw(15)<<a[i]<<setw(15)<<tong(a[i])<<"\n";
if (max<tong(a[i]))
{
max=tong(a[i]);
val=a[i];
}
}
cout<<" \n";
cout<<setw(15)<<val<<setw(15)<<max<<"\n";
}
int main(){
//clrscr();
int n;
int a[100];
cout<<"Nhap N="; cin>>n;
nhap(a,n);
in(a,n);
//getch();
}
Đáp án Bài 2. M t ng i g i ti t ki m a đ ng v i lãi su t s% m t tháng (tính lãi hàng tháng).ộ ườ ử ế ệ ồ ớ ấ ộ
Vi t m t ch ng trình tính và in ra màn hình hai c t song song, c t th nh t là s tháng đãệ ộ ươ ộ ộ ứ ấ ố
g i, c t th hai t ng s ti n (c v n và lãi) ng v i s tháng c t th nh t cho m t kho ngử ộ ứ ổ ố ề ả ố ứ ớ ố ở ộ ứ ấ ộ ả
th i gian t 1 đ n t tháng, v i a, s, t đ c nh p t bàn phím.ờ ừ ế ớ ượ ậ ừ
Code:
#include <iostream.h>
#include <iomanip.h>
void main(){
float a, s, kq;
int t;
cout<<"nhap so tien gui ban dau: "; cin>>a;
cout<<"nhap lai suat hang thang: "; cin>>s;
cout<<"nhap so thang tiet kiem : "; cin>>t;
kq = a;
cout<<"+ + +"<<endl
<<"| T | Tien von va lai |"<<endl
<<"+ + +"<<endl;
for(int i=1; i<=t; i++){
kq *= (1+s/100);
cout<<"|"<<setw(2)<<i<<" |"
<<setw(17)<<setprecision(2)<<setiosflags(ios::showpoint |
ios::fixed)
<<kq
<<"|"<<endl;
}
cout<<"+ + +"<<endl;
}
khi nh p lãi xu t, n u lãi xu t là 0,7 % / tháng thì hãy nh p 0.7 (ch không ph i nh p làậ ấ ế ấ ậ ứ ả ậ
0.007)
khi đó sau m i tháng ti n lãi và v n s = ti n tháng tr c + ti n tháng tr c x lãi su tỗ ề ố ẽ ề ướ ề ướ ấ
đó chính là công th c trên: kq *= (1 + s/100)ứ
Bài 3. M t ng i g i ti t ki m à đ ng v i lãi su t là s% m t tháng trong kỳ h n 6 tháng (6ộ ườ ử ế ệ ồ ớ ấ ộ ạ
tháng tính lãi m t l n). Vi t ch ng trình tính và in ra màn hình hai c t song song, c t th nh tộ ầ ế ươ ộ ộ ứ ấ
là s tháng đã g i, c t th hai là t ng ti n (c v n và lãi) ng v i s tháng c t th nh t choố ử ộ ứ ổ ề ả ố ứ ớ ố ở ộ ứ ấ
m t kho ng th i gian t 6 tháng đ n t tháng, v i a, s, và t đ c nh p t bàn phím. (Bi t r ngộ ả ờ ừ ế ớ ượ ậ ừ ế ằ
n u lĩnh không ch n kỳ nào thì không đ c tính lãi kỳ y).ế ắ ượ ấ
Code:
#include <iostream.h>
#include <iomanip.h>
void main(){
float a, s, kq;
int t;
cout<<"nhap so tien gui ban dau: "; cin>>a;
cout<<"nhap lai suat hang thang: "; cin>>s;
cout<<"nhap so thang tiet kiem : "; cin>>t;
kq = a;
cout<<"+ + +"<<endl
<<"| t | Tien von va lai |"<<endl
<<"+ + +"<<endl;
for(int i=1; i<=t; i++){
if(i%6==0)
for(int k=0;k<6;k++)kq *= (1+s/100);
cout<<"|"<<setw(2)<<i<<" |"
<<setw(17)<<setprecision(2)<<setiosflags(ios::showpoint |
ios::fixed)
<<kq
<<"|"<<endl;
}
cout<<"+ + +"<<endl;
}
bài này gi ng bài 2, chú ý tính lãi sau m i 6 thángố ỗ
Đáp án Bài 4. Cho x là m t s th c, hãy xây d ng hàm tính và in ra màn hình hai c t songộ ố ự ự ộ
song, c t th nh t là giá tr c a đ i s , c t th hai là giá tr c a hàm f ng v i đ i s c tộ ứ ấ ị ủ ố ố ộ ứ ị ủ ứ ớ ố ố ở ộ
th nh t:ứ ấ
Sau đó, vi t m t ch ng trình nh p t bán phím m t m ng g m n s th c, và g i hàm đã l pế ộ ươ ạ ừ ộ ả ồ ố ự ọ ậ
đ c trên v i đ i s là các s v a nh p.ượ ở ớ ố ố ố ừ ậ
Code:
#include <iostream.h>
#include <iomanip.h>
#include <math.h>
const float PI=4.1415;
//Ham nhap mang cac so thuc
void nhapMang(float *a,char *name, int n){
for (int i=0; i<n;i++)
{
cout<<name<<"["<<i+1<<"]=";
cin>>a[i];
}
}
//Ham tinh gia tri cua ham F theo cong thuc
//Neu X<=0 thi F(x)=0
//Neu 0<X<=2 thi F(x)=x*x-x
//Neu x>2 thi F(X)=(x*x-sin(x*x*PI))
float f(float x)
{
if (x<=0)
return 0;
else
if (x<=2)
return float(pow(x,2)-x);
else
return float(pow(x,2)-sin(pow(x,2)*PI));
}
//Than ham main
void main(){
float a[10], x;
int n;
cout<<"Nhap so phan tu N="; cin>>n;
//Goi ham nhap mang
nhapMang(a,"a",n);
//Dinh dang hien thi so thuc
cout<<setiosflags(ios::showpoint|ios::fixed);
cout<<setprecision(2);
//In gia tri cua mang tuong ung voi gia tri ham F(X)
//Hien thi hai cot song song
cout<<"+ + +"<<endl
<<"| X | F(X) |"<<endl
<<"+ + +"<<endl;
for(int i=0; i<n; i++)
{
cout<<"|"<<setw(10)<<a[i]<<" |";
cout<<setw(17)<<f(a[i])<<"|"<<endl;
}
cout<<"+ + +"<<endl;
}
Bài 5. Vi t ch ng trình tính và in ra màn hình s ti n đi n tháng 10/99 c a n khách hàng theoế ươ ố ề ệ ủ
các ch s trên đ ng h đi n c a tháng 9 và c a tháng 10 đ c nh p vào t bàn phím (ph iỉ ố ồ ồ ệ ủ ủ ượ ậ ừ ả
ki m tra đ đ m b o r ng ch s c a tháng sau ph i l n h n ch s c a các tháng tr c).ể ể ả ả ằ ỉ ố ủ ả ớ ơ ỉ ố ủ ướ
Bi t r ng: 50 s đ u ti n giá 500 đ ng/s , 100 s ti p theo giá 800 đ ng/s , 100 s ti p theoế ằ ố ầ ề ồ ố ố ế ồ ố ố ế
n a giá 1000 đ ng/s , 100 s ti p theo n a giá 1200 đ ng/s , và t s th 351 tr đi giá 1500ữ ồ ố ố ế ữ ồ ố ừ ố ứ ở
đ ng/s .ồ ố
S a đ u bài 1 tý cho đ n gi nử ầ ơ ả : nh p s l ng đi n tiêu th , tính s ti n ph i tr theo đ nậ ố ượ ệ ụ ố ề ả ả ơ
giá trên (ch a có thu VAT), VAT =10%ư ế
Code:
/*đ n giá:ơ
t s : đ n giáừ ố ơ
0-50: 500
51-150: 800
151-250: 1000
251-351: 1200
351 - : 1500 */
#include <iostream.h>
#include <iomanip.h>
void main(){
int n;
float t=0;
cout<<"nhap luong dien tieu thu: ";
cin>>n;
if(n>350)t+=(n-=350)*1500.0;
if(n>250)t+=(n-=250)*1200.0;
if(n>150)t+=(n-=150)*1000.0;
if(n> 50)t+=(n-= 50)* 800.0;
if(n> 0)t+=(n )* 500.0;
cout<<"tien dien: "
<<setprecision(0)
<<setiosflags(ios::fixed)
<<(t*1.1);
}
Gi n u nh p 2 ch s thì tr nó đi cho nhau thì s ra l ng đi n tiêu thờ ế ậ ỉ ố ừ ẽ ượ ệ ụ
đ ng tác ki m tra s sau l n h n s tr c thi t nghĩ r t đ n gi n, đ các b n sv t làm ộ ể ố ớ ơ ố ướ ế ấ ơ ả ể ạ ự
Khi h c đ n ph n m ng, chúng ta s nh p s ng i t ng ng là s ph n t c a m ng, sauọ ế ầ ả ẽ ậ ố ườ ươ ứ ố ầ ử ủ ả
đó v n d ng bài này đ tính ti n đi n cho t ng ng i (t ng giá tr trong m ng)ậ ụ ể ề ệ ừ ườ ừ ị ả
chú ý: t là s ti n ph i tr , t*1.1 là s ti n đã có thu 10%ố ề ả ả ố ề ế
Bài 7. Vi t ch ng trình gi i ph ng trình b c hai ax2+bx+c=0 v i a, b, c b t kỳ đ c nh pế ươ ả ươ ậ ớ ấ ượ ậ
vào t bàn phím. In ra màn hình ph ng trình b c hai v i các h s đã nh p, giá tr c a deltaừ ươ ậ ớ ệ ố ậ ị ủ
và các nghi m th c c a nó (n u c ), ng cij l i thì in là không có nghi m th c.ệ ứ ủ ế ố ươ ạ ệ ự
chú ý: n u a=0 thì s thành pt b c nh t, nên ti n đây đ a luôn bài gpt b1ế ẽ ậ ấ ệ ư
Code:
#include <iostream.h>
#include <iomanip.h>
void main(void)
{
float a,b;
cout<<"Nhap 2 he so cua pt bac nhat:";
cin>>a>>b;
if(a!=0)
cout<<"pt co 1 nghiem thuc x="<<(-b/a);
else
if(b==0)
cout<<"pt lay nghiem nao cung dc";
else
cout<<"pt vo nghiem";
}
gi n u a khác 0 thì có pt b c 2:ờ ế ậ
Code:
#include <iostream.h>
#include <iomanip.h>
#include <math.h>
void main(void)
{
float a,b,c,d,x1,x2;
cout<<"nhap 3 hs cua ptb2: ";
cin>>a>>b>>c;
d=b*b-4*a*c;
if(d>=0){
x1=(-b-sqrt(d))/(2*a);
x1=(-b+sqrt(d))/(2*a);
cout<<"pt co 2 nghiem thuc"<<endl
<<"nghiem thuc 1="<<x1<<endl
<<"nghiem thuc 2="<<x2;
}
else{
cout<<"pt k co nghiem thuc"<<endl
<<"pt co 2 nghiem phuc lien hop"<<endl;
float thuc,ao;
thuc=-b/2/a;
ao=sqrt(-d)/2/a;
cout<<"nghiem ao 1="<<thuc<<"-i"<<ao<<endl;
<<"nghiem ao 2="<<thuc<<"+i"<<ao<<endl;
}
}
Các b n hãy v n d ng ki n th c c a mình đ k t h p thành 1 bài hoàn ch nh đ theo đúngạ ậ ụ ế ứ ủ ể ế ợ ỉ ủ
nghĩa v i a, b, c b t kỳ ớ ấ
Bài 8. Năm 1999, dân s n c ta là 76 tri u ng i, t l tăng t nhiên là k% m t năm. L pố ướ ệ ườ ỷ ệ ự ộ ậ
m t ch ng trình in ra màn hình hai c t song song, c t th nh t là năm, c t th hai là dân sộ ươ ộ ộ ứ ấ ộ ứ ố
c a năm t ng ng c t m t cho đ n khi dân s tăng s l n so v i năm 1999. Các s k và sủ ươ ứ ở ộ ộ ế ố ầ ớ ố
đ c nh p vào t bàn phím.ượ ậ ừ
Gi i:ả
Code:
#include <iostream.h>
#include <iomanip.h>
#include <math.h>
#include <conio.h>
void main(void)
{
clrscr();
int k; //% tang dan so hang nam
float s;//So lan tang
cout<<"Nhap % tang K="; cin>>k;
cout<<"Nhap so lan tang S="; cin>>s;
long dansocu=76000000,dansomoi;
dansomoi=dansocu;
int nam=1999;
//Thiet lap dinh dang
cout<<setiosflags(ios::showpoint|ios::fixed);
cout<<setprecision(2);
cout<<"\n ";
cout<<"\n"<<setw(20)<<"NAM"<<setw(20)<<"DAN SO";
cout<<"\n ";
while(dansomoi<=s*dansocu)
{
cout<<"\n"<<setw(20)<<nam<<setw(20)<<dansomoi;
dansomoi=dansomoi+dansomoi*((float)k/100);
nam++;
}
cout<<"\n \n";
getch();
}
Bài 10. Xây d ng m t hàm s p x p theo th t tăng d n m t m ng g m n s th c. Vi tự ộ ắ ế ứ ự ầ ộ ả ồ ố ự ế
ch ng trình đ nh p n s th c t bàn phím, s d ng hàm s p x p nói trên, và in ra màn hìnhươ ể ậ ố ự ừ ử ụ ắ ế
hai c t song song, m t c t là m ng ch a s p x p, m t c t là m ng đã đ c s p x p.ộ ộ ộ ả ư ắ ế ộ ộ ả ượ ắ ế
Gi i:ả
Code:
#include <iostream.h>
#include <iomanip.h>
#include <math.h>
#include <conio.h>
void NhapMang(float a[],float b[],int n)
{
cout<<"\nNhap mang\n";
for (int i=0;i<n;i++)
{
cout<<"a["<<i<<"]=";
cin>>a[i];
b[i]=a[i];
}
}
void InMang(float a[],float b[],int n)
{
cout<<setw(10)<<"TT";
cout<<setw(20)<<"Mang chua sap xep";
cout<<setw(20)<<"Mang da sap xep";
cout<<"\n ";
for (int i=0;i<n;i++)
{
cout<<endl<<setw(10)<<i+1<<setw(20)<<a[i]<<setw(20)<<b[i];
}
cout<<"\n \n";
}
void SapXep(float a[],int n)
{
//Sap xep tang dan
for(int i=0;i<n-1;i++)
for(int j=i+1;j<n;j++)
if (a[i]>a[j])
{
float tg;
tg=a[i]; a[i]=a[j]; a[j]=tg;
}
}
void main(void)
{
clrscr();
float a[100],b[100];
int n;
cout<<"Nhap N=";
cin>>n;
NhapMang(a,b,n);
SapXep(b,n);
//Thiet lap dinh dang
cout<<setiosflags(ios::showpoint|ios::fixed);
cout<<setprecision(2);
InMang(a,b,n);
getch();
}
Bài 11. Xây d ng m t hàm s p x p thep th t gi m d n m t m ng g m n s th c. Vi tự ộ ắ ế ứ ự ả ầ ộ ả ồ ố ự ế
ch ng trình đ nh p n s th c t bàn phím, s d ng hàm s p x p nói trên, và in ra màn hìnhươ ể ậ ố ự ừ ử ụ ắ ế
hai c t song song, m t c t là m ng ch a s p x p, m t c t là m ng đã đ c s p x p.ộ ộ ộ ả ư ắ ế ộ ộ ả ượ ắ ế
Gi i:ả
Code:
#include <iostream.h>
#include <iomanip.h>
#include <math.h>
#include <conio.h>
void NhapMang(float a[],float b[],int n)
{
cout<<"\nNhap mang\n";
for (int i=0;i<n;i++)
{
cout<<"a["<<i<<"]=";
cin>>a[i];
b[i]=a[i];
}
}
void InMang(float a[],float b[],int n)
{
cout<<setw(10)<<"TT";
cout<<setw(20)<<"Mang chua sap xep";
cout<<setw(20)<<"Mang da sap xep";
cout<<"\n ";
for (int i=0;i<n;i++)
{
cout<<endl<<setw(10)<<i+1<<setw(20)<<a[i]<<setw(20)<<b[i];
}
cout<<"\n \n";
}
void SapXep(float a[],int n)
{
//Sap xep giam dan
for(int i=0;i<n-1;i++)
for(int j=i+1;j<n;j++)
if (a[i]<a[j])
{
float tg;
tg=a[i]; a[i]=a[j]; a[j]=tg;
}
}
void main(void)
{
//clrscr();
float a[100],b[100];
int n;
cout<<"Nhap N=";
cin>>n;
NhapMang(a,b,n);
SapXep(b,n);
//Thiet lap dinh dang
cout<<setiosflags(ios::showpoint|ios::fixed);
cout<<setprecision(2);
InMang(a,b,n);
//getch();
}
Bài 12. Cho F là m t s th c l n h n 2, và S=1/2+1/3+…+1/n. Hãy xây d ng m t hàm độ ố ự ớ ơ ự ộ ể
tìm giá tr l n nh t c a n sao cho S<=F. Vi t m t ch ng trình đ nh p vào t bàn phím m sị ớ ấ ủ ế ộ ươ ể ậ ừ ố
th c Fi, s d ng hàm nói trên đ i v i các hàm Fi đã nh p và in ra màn hình thành ba c t songự ử ụ ố ớ ậ ộ
song: các giá tr c a Fi, n, và S t ng ng.ị ủ ươ ứ
Gi i:ả
Code:
#include <iostream.h>
#include <iomanip.h>
#include <math.h>
#include <conio.h>
int max(double f, double &s)
{
int i=1;
s=0;
while(s<=f)
{
s+=(double)1/double(i++);
}
return i;
}
void main(void)
{
clrscr();
double f[100], s[100];
int n,i;
cout<<"Nhap N="; cin>>n;
for(i=0;i<n;i++)
{
cout<<"F["<<i<<"]"; cin>>f[i];
}
//Thiet lap dinh dang
cout<<setiosflags(ios::showpoint|ios::fixed);
cout<<setprecision(2);
clrscr();
cout<<endl<<setw(10)<<"F"<<setw(10)<<"MAX"<<setw(10)<<"S";
cout<<"\n ";
for(i=0;i<n;i++)
{
cout<<endl<<setw(10)<<f[i]<<setw(10)<<max(f[i],s[i]);
cout<<setw(10)<<s[i];
}
cout<<"\n \n";
getch();
}
Bài 11 (ch l i đ u bài)ế ạ ầ : Nh p n ph n t s th c t bàn phím, in m ng ra màn hình,ậ ầ ử ố ự ừ ả
s p x p gi m d n, in m ng v a s p x p.ắ ế ả ầ ả ừ ắ ế
Code:
#include <iostream.h> //khai bao thu vien su dung luong nhap xuat
#include <iomanip.h> //thu vien dinh dang nhap xuat
#include <math.h> //thu vien cac ham toan hoc
#include <conio.h> //thu vien cung cap cac ham ve man hinh, ban phim
void NhapMang(float a[], int n){
cout << "Nhap mang" << endl; //thong bao qua trinh nhap bat dau
for (int i = 0; i < n ; i++){ //vong lap duyet tu chi so 0 den n-1
cout << "a[" << i << "] = "; //moi lan: thong bao phan tu sap
duoc nhap
cin >> a[i]; //nhap gia tri tu ban phim cho phan
tu thu i
} //ket thuc vong lap
} //ket thuc ham NhapMang
void InMang(float a[], int n){
//Thiet lap dinh dang
cout << setiosflags(ios::showpoint|ios::fixed);
cout << setprecision(2);
//in tung phan tu cua mang, cach nhau boi dau cach (space)
for (int i = 0; i < n; i++)cout << a[i] << " ";
cout << endl;
}
void SapXep(float a[], int n){
//Sap xep giam dan
for(int i = 0; i < n-1; i++)
for(int j = i+1; j<n; j++)
if (a[i] < a[j]){
float tg = a[i];
a[i] = a[j];
a[j] = tg;
}
}
void main(void)
{
clrscr(); //xoa man hinh
float a[100]; //khai bao bien mang a co 100 phan tu s th cố ự
int n; //khai bao bien n luu so luong phan tu trong
mang
cout << "Nhap N = "; //thong bao cho nguoi dung nhap so luong
cin >> n; //nhap gia tri cho bien n tu ban phim
NhapMang(a,n); //nhap n gia tri cho tung phan tu cua mang
cout << "Mang truoc khi sap xep:"<<endl;
InMang(a,n); //in mang truoc khi sap xep
SapXep(a,n); //sap xep mang
cout << "Mang sau khi sap xep:"<<endl;
InMang(a,n); //in mang sau khi da sap xep
getch(); //cho nguoi dung an phim bat ky de thoat
}
Chú ý: n u mu n s p x p tăng d n thì thay toán t so sánh ế ố ắ ế ầ ử nh h nỏ ơ trong đo n codeạ
trên b i toán t so sánh ở ử l n h nớ ơ .
C th hàm s p x p tăng d n s là:ụ ể ắ ế ầ ẽ
Code:
void SapXep(float a[], int n){
//Sap xep tăng d nầ
for(int i = 0; i < n-1; i++)
for(int j = i+1; j<n; j++)
if (a[i] > a[j]){
float tg = a[i];
a[i] = a[j];
a[j] = tg;
}
}
Còn s p x p gi m d n s là:ắ ế ả ầ ẽ
Code:
void SapXep(float a[], int n){
//Sap xep tăng d nầ
for(int i = 0; i < n-1; i++)
for(int j = i+1; j<n; j++)
if (a[i] < a[j]){
float tg = a[i];
a[i] = a[j];
a[j] = tg;
}
}
Bài 11 (ch l i đ u bài)ế ạ ầ : Nh p n ph n t s th c t bàn phím, in m ng ra màn hình,ậ ầ ử ố ự ừ ả
s p x p gi m d n, in m ng v a s p x p.ắ ế ả ầ ả ừ ắ ế
Ta làm bài trên theo cách đ a quá trình nh p s l ng ph n t vào trong hàm nh p b ng cáchư ậ ố ượ ầ ử ậ ằ
khai báo đ i s c a hàm nh p: ố ố ủ ậ đ i s n là tham chi uố ố ế
Code:
#include <iostream.h> //khai bao thu vien su dung luong nhap xuat
#include <iomanip.h> //thu vien dinh dang nhap xuat
#include <math.h> //thu vien cac ham toan hoc
#include <conio.h> //thu vien cung cap cac ham ve man hinh, ban phim
void NhapMang(float a[], int &n){ // n là tham chi uế
cout << "Nhap N = "; //thong bao cho nguoi dung nhap so luong
cin >> n; //nhap gia tri cho bien n tu ban phim
cout << "Nhap mang" << endl; //thong bao qua trinh nhap bat dau
for (int i = 0; i < n ; i++){ //vong lap duyet tu chi so 0 den n-1
cout << "a[" << i << "] = "; //moi lan: thong bao phan tu sap
duoc nhap
cin >> a[i]; //nhap gia tri tu ban phim cho phan
tu thu i
} //ket thuc vong lap
} //ket thuc ham NhapMang
void InMang(float a[], int n){
//Thiet lap dinh dang
cout << setiosflags(ios::showpoint|ios::fixed);
cout << setprecision(2);
//in tung phan tu cua mang, cach nhau boi dau cach (space)
for (int i = 0; i < n; i++)cout << a[i] << " ";
cout << endl;
}
void SapXep(float a[], int n){
//Sap xep giam dan
for(int i = 0; i < n-1; i++)
for(int j = i+1; j<n; j++)
if (a[i] < a[j]){
float tg = a[i];
a[i] = a[j];
a[j] = tg;
}
}
void main(void)
{
clrscr(); //xoa man hinh
float a[100]; //khai bao bien mang a co 100 phan tu s th cố ự
int n; //khai bao bien n luu so luong phan tu trong
mang
NhapMang(a,n); //nhap s l ng n và gia tri cho tung phan tuố ượ
cua mang
cout << "Mang truoc khi sap xep:"<<endl;
InMang(a,n); //in mang truoc khi sap xep
SapXep(a,n); //sap xep mang
cout << "Mang sau khi sap xep:"<<endl;
InMang(a,n); //in mang sau khi da sap xep
getch(); //cho nguoi dung an phim bat ky de thoat
}
Đ bài:ề Vi t hàm nh p n ph n t s th c t bàn phím:ế ậ ầ ử ố ự ừ
Chúng ta ch vi t 1 hàm, khi c n s d ng trong bài nào, ta s đ a hàm này vào bài đóỉ ế ầ ử ụ ẽ ư
Cách 1: (ki u kinh đi n)ể ể
Code:
void NhapMang(float a[], int &n){ // n là tham chi uế
cout << "Nhap N = "; //thong bao cho nguoi dung nhap so luong
cin >> n; //nhap gia tri cho bien n tu ban phim
cout << "Nhap mang" << endl; //thong bao qua trinh nhap bat dau
for (int i = 0; i < n ; i++){ //vong lap duyet tu chi so 0 den n-1
cout << "a[" << i << "] = "; //moi lan: thong bao phan tu sap
duoc nhap
cin >> a[i]; //nhap gia tri tu ban phim cho phan
tu thu i
} //ket thuc vong lap
} //ket thuc ham NhapMang
Cách 2: S d ng con tr nh là bi n m ngử ụ ỏ ư ế ả
Code:
void NhapMang(float *a, int &n){
cout << "Nhap N = "; //thong bao cho nguoi dung nhap so luong
cin >> n; //nhap gia tri cho bien n tu ban phim
cout << "Nhap mang" << endl; //thong bao qua trinh nhap bat dau
for (int i = 0; i < n ; i++){ //vong lap duyet tu chi so 0 den n-1
cout << "a[" << i << "] = "; //moi lan: thong bao phan tu sap
duoc nhap
cin >> *(a+i); //nhap gia tri tu ban phim cho phan
tu thu i
} //ket thuc vong lap
} //ket thuc ham NhapMang
đây a đ c hi u là đ a ch c a đ u m ng, t ng đ ng v i a[0]Ở ượ ể ị ỉ ủ ầ ả ươ ươ ớ
và (a+i) là đ a ch c a ph n t th i trong m ngị ỉ ủ ầ ử ứ ả
Cách 3: K t h p 2 ki u trênế ợ ể
Code:
void NhapMang(float *a, int &n){
cout << "Nhap N = "; //thong bao cho nguoi dung nhap so luong
cin >> n; //nhap gia tri cho bien n tu ban phim
cout << "Nhap mang" << endl; //thong bao qua trinh nhap bat dau
for (int i = 0; i < n ; i++){ //vong lap duyet tu chi so 0 den n-1
cout << "a[" << i << "] = "; //moi lan: thong bao phan tu sap
duoc nhap
cin >> a[i]; //nhap gia tri tu ban phim cho phan
tu thu i
} //ket thuc vong lap
} //ket thuc ham NhapMang
Cách s d ng:ử ụ Hàm nh p m ng v i 3 cách trên đ u có th đ c s d ng vào ậ ả ớ ề ể ượ ử ụ bài 11 ch v iế ớ
bài gi i l n 2ả ầ trênở
Câu h i:ỏ N u đ bài là ế ề Nh p n ph n t ậ ầ ử s nguyênố t bàn phímừ thì chúng ta s thay đ iẽ ổ
ch nào trong 3 hàm trên?ỗ
Đ bàiề : Nh p m ng n ph n t s nguyên t bàn phímậ ả ầ ử ố ừ
a0) Li t kê các s ch n có trong m ngệ ố ẵ ả
b0) Đ m các s ch n có trong m ngế ố ẵ ả
c0) Tính t ng các s ch n có trong m ngổ ố ẵ ả
a1) Li t kê các s nguyên t có trong m ngệ ố ố ả
b1) Đ m các s nguyên t có trong m ngế ố ố ả
c1) Tính t ng các s nguyên t có trong m ngổ ố ố ả
Phân tích:
Ta đã có hàm nh p n ph n t s nguyên trên roài.ậ ầ ử ố ở
sau khi nh p xong s l ng n, và n ph n t s nguyên cho m ngậ ố ượ ầ ử ố ả
ta s duy t qua m i ph n t c a m ng:ẽ ệ ọ ầ ử ủ ả
trong m i l n duy t, n u g p ph n t th a mãn đi u ki n ( là s ch n (a0), ho c là s nguyênỗ ầ ệ ế ặ ầ ử ỏ ề ệ ố ẵ ặ ố
t (a1) ) thì s x lý ph n t đó theo yêu c u (li t kê, đ m ho c là tính t ng )ố ẽ ử ầ ử ầ ệ ế ặ ổ
Ta có code C++ gi i các ý a1, b1, c1 nh sau:ả ư
Code:
#include <iostream.h> //khai bao thu vien su dung luong nhap xuat
#include <iomanip.h> //thu vien dinh dang nhap xuat
#include <math.h> //thu vien cac ham toan hoc
#include <conio.h> //thu vien cung cap cac ham ve man hinh, ban phim
void NhapMang(int *a, int &n){
cout << "Nhap N = "; //thong bao cho nguoi dung nhap so luong
cin >> n; //nhap gia tri cho bien n tu ban phim
cout << "Nhap mang" << endl; //thong bao qua trinh nhap bat dau
for (int i = 0; i < n ; i++){ //vong lap duyet tu chi so 0 den n-1
cout << "a[" << i << "] = "; //moi lan: thong bao phan tu sap
duoc nhap
cin >> *(a+i); //nhap gia tri tu ban phim cho phan
tu thu i
} //ket thuc vong lap
} //ket thuc ham NhapMang
int kiemtra_snt(int x){ // tra ve 1 neu x la snt, nguoc lai tra ve 0
for(int i=2; i<=sqrt(x); i++)
if(x%i==0)return 0; //x chia het cho i => x khong phai la snt
return 1;
}
void lietke_snt(int a[], int n){ //ham in ra cac so nguyen to
for(int i=0; i < n; i++)
if(kiemtra_snt(a[i])) cout<<a[i]<<" ";
cout<<endl;
}
int dem_snt(int a[], int n){ //ham tra ve so luong so nguyen to
int c=0; //khai bao bien c dung de dem snt
for(int i=0; i < n; i++)
if(kiemtra_snt(a[i])) c++; //tang bien dem len 1
return c; //tra ve so luong snt dem duoc
}
int tong_snt(int a[], int n){ //ham tra ve so luong so nguyen to
int t=0; //khai bao bien t dung de tinh tong
for(int i=0; i < n; i++)
if(kiemtra_snt(a[i])) t += a[i]; //cong luy tien vao bien t
return t; //tra ve tong cac so nguyen to
}
void main(void)
{
clrscr(); //xoa man hinh
int a[100]; //khai bao bien mang a co 100 phan tu
so nguyen
int n; //khai bao bien n luu so luong phan tu trong
mang
NhapMang(a,n); //nhap n gia tri cho tung phan tu cua mang
cout<<"Liet ke snt: ";
lietke_snt(a,n);
cout<<"so luong snt: "<<dem_snt(a,n)<<endl;
cout<<"Tong cac so nguyen to: "<<tong_snt(a,n)<<endl;
getch(); //cho nguoi dung an phim bat ky de thoat
}
Còn các ý a0, b0, c0 qu th c r t đ n gi n, ta ch vi c thay hàm ả ự ấ ơ ả ỉ ệ kiemtra là s cho k t quẽ ế ả
nh ý mu n!ư ố
Đ bài: Nh p n ph n t s nguyên, in ra màn hình giá tr nh nh t và l n nh t trongề ậ ầ ử ố ị ỏ ấ ớ ấ
m ngả
Phân tích: Bài này có nhi u cách gi iề ả
Cách 1 (đ n gi n nh t): ơ ả ấ
+đ u tiên yêu c u ng i dùng nh p s l ng ph n t là nầ ầ ườ ậ ố ượ ầ ử
+l p n l n, m i l n nh p 1 giá tr , v a nh p xong là so sánh v i bi n min và max, n u giá trặ ầ ỗ ầ ậ ị ừ ậ ớ ế ế ị
v a nh p bé h n min thì min s b ng s v a nh p, và n u s đó l n h n bi n max thì max sừ ậ ơ ẽ ằ ố ừ ậ ế ố ớ ơ ế ẽ
b ng s đóằ ố
Cách 2: dùng m ng (kinh đi n)ả ể
+ nh p m ng n ph n t s nguyên t bàn phím (đã có thu t toán và code trên)ậ ả ầ ử ố ừ ậ ở
+ gán t m th i min và max b ng ph n t đ u tiênạ ờ ằ ầ ử ầ
+ duy t qua toàn m ng: n u giá tr đang duy t bé h n min ho c l n h n max thì c p nh t l iệ ả ế ị ệ ơ ặ ớ ơ ậ ậ ạ
min và max
Cách 3: dài dòng nh t ấ
+ nh p m ng n ph n t s nguyên t bàn phím (đã có thu t toán và code trên)ậ ả ầ ử ố ừ ậ ở
+ s p x p tăng d n (ho c gi m d n)ắ ế ầ ặ ả ầ
+ n u s p x p tăng d n thì min s là ph n t đâu tiên, và max s là ph n t cu i cùng trongế ắ ế ầ ẽ ầ ử ẽ ầ ử ố
m ng đã s p x p.ả ắ ế
gi mu n roài, đi ng cái đã, lúc khác post code lên.ờ ộ ủ
Bài 16. Hãy xây d ng m t hàm đ nh p t bàn phím m t m ng s th c. Vi t m tự ộ ể ậ ừ ộ ả ố ự ế ộ
ch ng trình s d ng hàm đã xây d ng đ c trên đ nh p s li u cho hai m ng s th c,ươ ử ụ ự ượ ở ể ậ ố ệ ả ố ự
m t m ng có n ph n t , và m t m ng có m ph n t , in ra màn hình hai c t song song, m iộ ả ẩ ử ộ ả ầ ử ộ ỗ
c t là m t m ng v i ô cu i cùng là t ng c a các ph n t trong m ng, và cu i cùng là t ngộ ộ ả ớ ố ổ ủ ầ ử ả ố ổ
c a hai m ng.ủ ả
Gi i:ả
Code:
#include <iostream.h>
#include <iomanip.h>
#include <math.h>
//Do bài yêu c u nh p hai mangầ ậ
//Chúng ta cho thêm tham s name đ hi n th tên m ng khi nh pố ể ể ị ạ ậ
void nhapMang(double *a,char *name, int n){
for (int i=0; i<n;i++)
{
cout<<name<<"["<<i+1<<"]=";
cin>>a[i];
}
}
void main(){
double a[100],b[100];
int n,m,i;
//Nh p s l ng ph n t m ng Aậ ố ượ ầ ử ả
cout<<"Nhap N="; cin>>n;
//Nh p s l ng ph n t m ng Bậ ố ượ ầ ử ả
cout<<"Nhap M="; cin>>m;
//Nhap hai mang a[N], b[M]
nhapMang(a,"a",n);
nhapMang(b,"b",m);
// Thi t l p đ nh d ngế ậ ị ạ
cout<<setiosflags(ios::showpoint|ios::fixed);
cout<<setprecision(2);
//Max chua so phan tu lon hon
int max=m>n?m:n;
double s1=0.0,s2=0.0;//Tong mang a la s1, tong mang b la s2
cout<<endl<<setw(5)<<"TT"<<setw(10)<<"A"<<setw(10)<<"B";
cout<<"\n ";
for(i=0;i<max;i++)
{
if ((i<m) && (i<n))
{
cout<<endl<<setw(5)<<i+1<<setw(10)<<a[i]<<setw(10)<<b[i];
s1=s1+a[i];
s2=s2+b[i];
}
//Luc nay chi con phan tu cua mang A hoac B
else if (i<n)//Neu i<n thi In phan tu cua mang a
{
cout<<endl<<setw(5)<<i+1<<setw(10)<<a[i];
s1=s1+a[i];
}
else if (i<m)//Neu i<m thi In phan tu cua mang b
{
cout<<endl<<setw(5)<<i+1<<setw(10)<<" "<<setw(10)<<b[i];
s2=s2+b[i];
}
}
cout<<"\n ";
cout<<endl<<setw(5)<<"Tong:"<<setw(10)<<s1<<setw(10)<<s2<<endl;
cout<<"Tong: s1+s2="<<s1+s1<<endl;
}
Đ bài: Nh p n ph n t s nguyên, in ra màn hình giá tr nh nh t và l n nh t trongề ậ ầ ử ố ị ỏ ấ ớ ấ
m ngả
Cách 1 (đ n gi n nh t): ơ ả ấ
+đ u tiên yêu c u ng i dùng nh p s l ng ph n t là nầ ầ ườ ậ ố ượ ầ ử
+l p n l n, m i l n nh p 1 giá tr , v a nh p xong là so sánh v i bi n min và max, n u giá trặ ầ ỗ ầ ậ ị ừ ậ ớ ế ế ị
v a nh p bé h n min thì min s b ng s v a nh p, và n u s đó l n h n bi n max thì max sừ ậ ơ ẽ ằ ố ừ ậ ế ố ớ ơ ế ẽ
b ng s đóằ ố
Code:
#include <iostream.h>
void main(){
int x, i, n, min, max;
cout << "Nhap so luong n = "; cin >> n; //nhap so luong
if ( n > 0 ) { //so luong > 0
cout<<" Gia tri phan tu thu dau tien = "; cin >> x; //nhap a[0]
min = max = x; //min=max=a[0]
for ( i = 2 ; i<=n; i++ ){ //vong lap i=2->n
cout<<" Gia tri phan tu thu "<<i<<" = "; cin >> x; //nhap a[i]
if ( x < min ) min = x; //cap nhat min
if ( x > max ) max = x; //cap nhat max
}
cout << "Gia tri lon nhat = " << max << endl; //in ket qua
cout << "Gia tri nho nhat = " << min << endl;
}
}
Đ bài: Nh p n ph n t s nguyên, in ra màn hình giá tr nh nh t và l n nh t trongề ậ ầ ử ố ị ỏ ấ ớ ấ
m ngả
Cách gi i 2: dùng m ng (kinh đi n)ả ả ể
+ nh p m ng n ph n t s nguyên t bàn phím (đã có thu t toán và code trên)ậ ả ầ ử ố ừ ậ ở
+ gán t m th i min và max b ng ph n t đ u tiênạ ờ ằ ầ ử ầ
+ duy t qua toàn m ng: n u giá tr đang duy t bé h n min ho c l n h n max thì c p nh t l iệ ả ế ị ệ ơ ặ ớ ơ ậ ậ ạ
min và max
Code:
#include <iostream.h>
void NhapMang(int *a, int &n){
cout << "Nhap N = "; cin >> n;
cout << "Nhap mang" << endl;
for (int i = 0; i < n ; i++){
cout << "a[" << i << "] = ";
cin >> *(a+i);
}
}
void TimMinMax(int a[], int n, int &min, int &max){
min = max = a[0];
for (int i = 1; i < n ; i++){
if ( a[i] < min ) min = a[i];
if ( a[i] > max ) max = a[i];
}
}
void main(){
int a[100], n, min, max;
NhapMang (a, n);
TimMinMax (a, n, min, max);
cout << "Gia tri lon nhat = " << max << endl;
cout << "Gia tri nho nhat = " << min << endl;
}
Chú ý: bi n min và max trong đ i s hàm TimMminMax là tham chi u nhéế ố ố ế
void TimMinMax(int a[], int n, int &min, int &max)
code trên hàm tìm min và max dùng cách kinh đi n,ở ể
ta có th thay đ i b ng cách dùng con tr nh sau:ể ổ ằ ỏ ư
Code:
void TimMinMax(int *a, int n, int &min, int &max){
min = max = *a;
for (int i = 1, *p=++a; i < n ; i++, p++){
if ( *p < min ) min = *p;
if ( *p > max ) max = *p;
}
}
chú ý a t ng đ ng v i con tr tr vào đ u m ng nên *a t ng đ ng v i a[0]ươ ươ ớ ỏ ỏ ầ ả ươ ươ ớ
ban đ u p tr vào ph n t a[1] (kh i kh i t o con tr *p=++a, t c là p tr t i a[1] )ầ ỏ ầ ử ố ở ạ ỏ ứ ỏ ớ
trong m i vòng l p p tr vào a[i], và c p nh t min và max n u a[i] < min ho c a[i] > maxỗ ặ ỏ ậ ậ ế ặ
sau đó p tr đ n ph n t ti p theo (l nh p++ )ỏ ế ầ ử ế ệ
(bi n i đây đ m b o duy t s duy t t a[1] đ n a[n-1] : duy t h t)ế ở ả ả ệ ẽ ệ ừ ế ệ ế
Có ai ko hi u cách làm vi c c a hàm tìm min max th 2 này không?ể ệ ủ ứ
Đ bài: Nh p n ph n t s nguyên, in ra màn hình giá tr nh nh t và l n nh t trongề ậ ầ ử ố ị ỏ ấ ớ ấ
m ngả
Cách gi i 3: dài dòng nh t ả ấ
+ nh p m ng n ph n t s nguyên t bàn phím (đã có thu t toán và code trên)ậ ả ầ ử ố ừ ậ ở
+ s p x p tăng d n (ho c gi m d n)ắ ế ầ ặ ả ầ
+ n u s p x p tăng d n thì min s là ph n t đâu tiên, và max s là ph n t cu i cùng trongế ắ ế ầ ẽ ầ ử ẽ ầ ử ố
m ng đã s p x p.ả ắ ế
Code:
#include <iostream.h>
void NhapMang(int *a, int &n){
cout << "Nhap N = "; cin >> n;
cout << "Nhap mang" << endl;
for (int i = 0; i < n ; i++){
cout << "a[" << i << "] = ";
cin >> *(a+i);
}
}
void SapXep(int a[], int n) { //s p x p tăng d nắ ế ầ
for (int i = 0; i < n - 1; i++)
for (int j = i + 1; j < n; j++)
if ( a[i] > a[j] ){
int tg = a[i];
a[i] = a[j];
a[j] = tg;
}
}
void main(){
int a[100], n;
NhapMang (a, n);
SapXep (a, n);
cout << "Gia tri nho nhat = " << a[0] << endl;
cout << "Gia tri lon nhat = " << a[n-1] << endl;
}
Đ bàiề : Nh p n ph n t s nguyên. Nh p ph n t c n tìm ki m X. N u trong nậ ầ ử ố ậ ầ ử ầ ế ế
ph n t đã nh p có X thì báo "tìm th y", "s l n tìm th y" và "các v trí tìm th y",ầ ử ậ ấ ố ầ ấ ị ấ
ng c l i báo "không tìm th y"ượ ạ ấ
Ví d :ụ m ng A g m các ph n t (theo th t ch s tăng d n t 0) là ả ồ ầ ử ứ ự ỉ ố ầ ừ 5, 2, 1, 6, 2, 4, 1, 3
giá tr tìm ki m ị ế X = 2
v y k t qu s là: ậ ế ả ẽ Tìm th y 2 (2 l n) t i v trí: 1, 4ấ ầ ạ ị
Phân tích:
sau khi nh p m ngậ ả
ta s đ m s l ng ph n t X có trong m ngẽ ế ố ượ ầ ử ả
n u đ m th y có: ti n hành li t kê các v tríế ế ấ ế ệ ị
ng c l i thì thông báo không có. ượ ạ
Đ n gi n v y thôiơ ả ậ
ta s chia các công vi c ra t ng hàm riêngẽ ệ ừ
hàm nh p kinh đi nậ ể
hàm đ m tr v s l ng ph n t có giá tr b ng giá tr cho tr cế ả ề ố ượ ầ ử ị ằ ị ướ
hàm li t kê: t g t hàm trên, m i khi g p a[i] b ng x thì in v trí ra (v trí là i)ệ ươ ự ỗ ặ ằ ị ị
Code C++ đây th c hành nào:ự