
Sưu tầm bởi boy_dt3; nguồn trathai.vn
thư viện iostream.h
công dụng khi co nhập suất dũ liệu(nói chung cú có cin or cout bạn cứ sử dụng hàm này,thừa còn hơn thiếu),
thư viện conio.h công dụng nếu bạn sử dung lệnh xóa màn hình clrscr (có lạc rang sẽ có rượu )
và lệnh dừng màn hình getch() , gotoxy(x, y)(trong chương trình đặt con trỏ màn hình tại vị trí cột x dòng y
để đảm bảo dòng chữ luôn luôn hiện ra tại đúng một vị trí trên màn hình.) và 1 số công dụng nữa bạn tự
nghiên cứu nhé!
thư viện iomanip.h dùng để Định dạng thông tin cần in ra màn hình
ví dụ các lệnh như :endl tương đương với \n (xuống dòng)
setw(n): Bình thường các giá trị được in ra bởi lệnh cout << sẽ thẳng theo lề trái với độ rộng phụ thuộc vào
độ rộng của giá trị đó. Phương thức này qui định độ rộng dành để in ra các giá trị là n cột màn hình. Nếu n
lớn hơn độ dài thực của giá trị, giá trị sẽ in ra theo lề phải, để trống phần thừa (dấu cách) ở trước.
setprecision(n): Chỉ định số chữ số của phần thập phân in ra là n. Số sẽ được làm tròn trước khi in ra
setiosflags(ios::showpoint): Phương thức setprecision chỉ có tác dụng trên một dòng in. Để cố định các giá trị
đã đặt cho mọi dòng in (cho đến khi đặt lại giá trị mới) ta sử dụng phương thức
setiosflags(ios::showpoint)(và 1 số định dạng nữa bạn tự tìm hiểu)
thư viện stdio.h để sử dụng các hàm printf() và scanf() chỉ cần thiết với các bạn thích chơi trội lập trình theo
kiểu cũ
thư viên math.h
1. Các hàm số học
abs(x), labs(x), fabs(x) : trả lại giá trị tuyệt đối của một số nguyên, số nguyên dài và số thực.
pow(x, y) : hàm mũ, trả lại giá trị x lũy thừa y (xy).
exp(x) : hàm mũ, trả lại giá trị e mũ x (ex).
log(x), log10(x) : trả lại lôgarit cơ số e và lôgarit thập phân của x (lnx, logx) .
sqrt(x) : trả lại căn bậc 2 của x.
atof(s_number) : trả lại số thực ứng với số viết dưới dạng xâu kí tự s_number.
2. Các hàm lượng giác
sin(x), cos(x), tan(x) : trả lại các giá trị sinx, cosx, tgx.
thư viến string.h sử lí sâu chuỗi ký tự
thư viện doc.h sử dụng
khi có hàm delay(n)(Để dòng chữ chạy không quá nhanh chương trình sử dụng hàm trễ tạm dừng trong n
phần nghìn giây)(và 1 só công dụng nữa tớ cũng chưa bít hỏi thử madifo xem!!
Đá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.
#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);
Generated by Foxit PDF Creator © Foxit Software
http://www.foxitsoftware.com For evaluation only.

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).
#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;
}
Đá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.
#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++)
{
Generated by Foxit PDF Creator © Foxit Software
http://www.foxitsoftware.com For evaluation only.

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%
/*đơn giá:
từ số: đơn giá
0-50: 500
51-150: 800
151-250: 1000
251-351: 1200
351 - ...: 1500 */
#include <iostream.h>
Generated by Foxit PDF Creator © Foxit Software
http://www.foxitsoftware.com For evaluation only.

#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
#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:
#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){
Generated by Foxit PDF Creator © Foxit Software
http://www.foxitsoftware.com For evaluation only.

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:
#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
Generated by Foxit PDF Creator © Foxit Software
http://www.foxitsoftware.com For evaluation only.

