BÀI TẬP ÔN CUỐI KỲ
MÔN CƠ SỞ LẬP TRÌNH TRÊN C++
1. Viết chương trình nhập vào 4 số nguyên, tìm số lớn nhất, nhỏ nhất của 4 số.
#include<iostream.h>
#include<conio.h>
void main()
{
int a,b,c,d,max,min;
clrscr();
cout<<"\n Hay nhap 4 so nguyen =";cin>>a>>b>>c>>d;
max=a;
if (max<b) max=b;
if (max<c) max=c;
if (max<d) max=d;
cout<<"\n So lon nhat trong 4 so ="<<max;
min=a;
if (min>b) min=b;
if (min>c) min=c;
if (min>d) min=d;
cout<<"\n So nho nhat trong 4 so ="<<min;
getch();
}
2. Viết chương trình thể hiện trò chơi oẳn tù tì với qui ước: Búa = ‘B’; Bao =
‘O’; Kéo =‘K’. Nhập vào hai kí tựđại diện cho hai người chơi. Xuất ra màn
hình câu thông báo người chơi nào thắng hoặc hòa.
#include<iostream.h>
#include<conio.h>
void main()
{
char a,b;
clrscr();
cout<<"\n Ban a ra cai gi = ";cin>>a;
cout<<"\n Ban b ra cai gi = ";cin>>b;
switch (a)
{
case 'B':
switch (b)
{case 'B':cout<<"\n Hai ban hoa nhau "; break;
case 'O':cout<<"\n Ban b thang roi "; break;
case 'K':cout<<"\n Ban a thang roi "; break;
default:cout<<"\n Ban b nhap sai khong tinh duoc";break;
}
break;
case 'O':
switch (b)
{case 'B':cout<<"\n Ban a thang roi "; break;
case 'O':cout<<"\n Hai ban hoa nhau "; break;
case 'K':cout<<"\n Ban b thang roi "; break;
default:cout<< "\n Ban b nhap sai khong tinh duoc";break;
}
break;
case 'K':
switch (b)
{case 'B':cout<<"\n Ban b thang roi "; break;
case 'O':cout<<"\n Ban a thang roi "; break;
case 'K':cout<<"\n Hai ban hoa nhau "; break;
default: cout<<"\n Ban b nhap sai khong tinh duoc";break;
}
break;
default: cout<<"\n Ban a nhap sai khong tinh duoc !";
}
getch();
}
3. Viết chương trình in ra màn hình bản cửu chương 2 đến 10.
#include<iostream.h>
#include<conio.h>
#include<iomanip.h>
void main()
{
int i,j;
clrscr();
for(i=1;i<=10;i++)
{for(j=2;j<=10;j++)
cout<<j<<"x"<<i<<"="<<setw(2)<<i*j<<setw(3);
cout<<endl;
}
getch();
}
4. Viết chương trình In ra kết quả của bài toán vui
Trăm trâu, trăm cỏ.
Trâu đứng ăn năm.
Trâu nằm ăn ba.
Trâu già ăn một.
Hỏi số trâu đứng, trâu năm, trâu già ?
#include <iostream.h>
#include <conio.h>
void main()
{
int dung,gia,nam;
clrscr();
for(dung=1;dung<100;dung++)
for(nam=1;nam<=100-dung;nam++)
for(gia=1;gia<=100-(dung+nam);gia++)
if (dung*5+nam*3+gia==100)
cout<<"\n dung = "<<dung<<" nam= "<<nam<<" gia= "<<gia;
getch();
}
5. Viết chương trình tính lương của nhân viên dựa theo thâm niên công tác
(TNCT) như sau:
a. Lương = hệ số * lương căn bản, trong đó lương căn bản là 1100000
đồng.
- Nếu TNCT < 12 tháng: hệ số = 1.92
- Nếu 12 <= TNCT < 36 tháng: hệ số = 2.34
- Nếu 36 <= TNCT < 60 tháng: hệ số = 3
- Nếu TNCT >= 60 tháng: hệ số = 4.5
#include<iostream.h>
#include<conio.h>
#include<iomanip.h>
void main()
{
int tnct;
float heso;
cout<<"\n Hay nhap so thang tham nien cua nhan vien =";cin>>tnct;
if (tnct<12) heso =1.92;
else
if (tnct<36) heso =2.34;
else
if (tnct<60) heso =3.0;
else heso=4.5;
float lcb=1100000;
float luong=1.0*heso*lcb;
cout<<"\n Luong linh cua nhan vien ="<<luong;
getch();
}
6. Nhập vào ngày, tháng của một năm hiện tại. Bạn hãy viết chương trình:
- Kiểm tra tính hợp lệ của ngày, tháng nhập;
- Cho biết tháng này thuộc quý mấy trong năm;
- Cho biết tháng nhập có bao nhiêu ngày;
- Cho biết ngày hôm sau của ngày đã nhập là ngày nào.
#include<iostream.h>
#include<conio.h>
void main()
{
int ngay,thang,nam,songay;
clrscr();
nhaplai:
cout<<"\n Hay nhap ngay thang nam =";cin>>ngay>>thang>>nam;
if (ngay<0||ngay>31) { cout<<"\n Nhap ngay sai ! nhap lai ";
goto nhaplai;}
if (thang<0||thang>12) { cout<<"\n Nhap sai thang ! nhap lai ";
goto nhaplai;}
switch (thang)
{
case 1:case 2:case 3:{cout<<"\n Thang nay thuoc qui 1";break;}
case 4:case 5:case 6:{cout<<"\n Thang nay thuoc qui 2";break;}
case 7:case 8:case 9:{cout<<"\n Thang nay thuoc qui 3";break;}
case 10:case 11:case 12:{cout<<"\n Thang nay thuoc qui 4";break;}
}
switch (thang)
{
case 1:case 3:case 5:case 7: case 8:case 10:case 12 :{songay=31;break;}
case 4:case 6:case 9:case 11: {songay=30;break;}
case 2:if(nam%4==0) songay=28;
else songay=29;
break; }
cout<<"\n Thang "<<thang<<" vua nhap co so ngay ="<<songay<<" ngay";
int ngaymai,homnay=ngay;
cout<<"\n Hom nay la "<<homnay<<" thang "<<thang<<" nam "<<nam;
switch (thang)
{
case 1:case 3:case 5:case 7: case 8:case 10:case 12:
if(homnay<31) ngaymai=homnay+1;
else
{ngaymai=1;thang+=1;
if (thang>12)
{thang=1;
nam+=1;}}
break;
case 4:case 6:case 9:case 11: {
if (homnay<30) ngaymai=homnay+1;
else
{ngaymai=1;thang+=1;}
break;}
case 2:if(nam%4==0)
{if (homnay<29) ngaymai=homnay+1;
else
{ngaymai=1;thang+=1;}}
else
{ if (homnay<28) ngaymai=homnay+1;
else
{ngaymai=1;thang+=1;}}
break;
}
cout<<"\n Ngay mai la "<<ngaymai<<" thang "<<thang<<" nam "<<nam;
getch();
}
7. Viết chương trình nhập vào ngày, tháng, năm nào đó và 1 số n . In ra màn
hình ngày sau n .Ví dụ : Nhập ngày 10 tháng 05 năm 2014 và n =100
In ra : Ngày sau n = 26 tháng 08 năm 2014.
#include<iostream.h>
#include<conio.h>
void main()
{
int ngay=0,thang=0,nam=0,n,songay=0;
clrscr();
cout<<"\n Hay nhap ngay, thang, nam =";cin>>ngay>>thang>>nam;
cout<<"\n Hay nhap so n =";cin>>n;
ngay=ngay+n;
do
{
switch (thang)
{
case 1:case 3:case 5: case 7: case 8: case 10: case 12 :songay=31;break;
case 4: case 6: case 9: case 11 : songay=30;break;
case 2:if(nam%4==0) songay=29;
else songay=28;break;
default: cout<<"Ban nhap sai thang "; break;
}
if (ngay>songay)
{
ngay=ngay-songay;
thang+=1;
if(thang>12)
{ thang =1;
nam+=1;}
}
}
while (ngay>songay);
cout<<"\n Ngay sau "<<n<<" ngay la "<<ngay<<"/"<<thang<<"/"<<nam;
getch();
}
8. Viết chương trình nhập vào 2 phân số, xuất ra tổng hiệu tích thương của hai
phân sốđó. Lưu ý kiểm tra điều kiện nhập mẫu khác 0 (dùng do …while).
#include<iostream.h>
#include<conio.h>
#include<iomanip.h>
void main()
{
int tua,maua,tub,maub;
float tong,hieu,tich,thuong;
clrscr();
do
{ cout<<"\n Hay nhap phan so a =";cin>>tua>>maua;
cout<<"\n Hay nhap phan so b =";cin>>tub>>maub; }
while (maua==0||maub==0);
tong=1.0*(tua*maub+tub*maua)/(maua*maub);
hieu=1.0*(tua*maub-tub*maua)/(maua*maub);
tich=1.0*(tua*tub)/(maua*maub);
thuong=1.0*(tua*maub)/(maua*tub);
cout<<setiosflags(ios::showpoint)<<setprecision(2);
cout<<"\n Tong cua 2 phan so ="<<tong;
cout<<"\n Hieu cua 2 phan so ="<<hieu;
cout<<"\n Tich cua 2 phan so ="<<tich;
cout<<"\n Thuong cua 2 phan so ="<<thuong;
getch();
}
9. Viết chương trình nhập vào 2 phân số, xuất ra tổng hiệu tích thương của hai
phân sốđó. Lưu ý kiểm tra điều kiện nhập mẫu khác 0 (dùng do …while).
#include<iostream.h>
#include<conio.h>
#include<iomanip.h>
void main()
{
int tua,maua,tub,maub;
float tong,hieu,tich,thuong;
clrscr();
do
{
cout<<"\n Hay nhap phan so a ";cin>>tua>>maua;
cout<<"\n Hay nhap phan so b ";cin>>tub>>maub;
}
while (maua==0||maub==0);
tong=1.0*(tua*maub+tub*maua)/(maua*maub);
hieu=1.0*(tua*maub-tub*maua)/(maua*maub);
tich=1.0*(tua*tub)/(maua*maub);
thuong=1.0*(tua*maub)/(maua*tub);
cout<<setiosflags(ios::showpoint)<<setprecision(2);
cout<<"\n Tong cua 2 phan so ="<<tong;
cout<<"\n Hieu cua 2 phan so ="<<hieu;
cout<<"\n Tich cua 2 phan so ="<<tich;
cout<<"\n Thuong cua 2 phan so ="<<thuong;
getch();}
10. Chương trình cho phép nhập vào một số nguyên dương, là lượng điện tiêu
thụ (kWh) trong tháng của nhà bạn. Chương trình tính và in số tiền nhà bạn
phải trả cho tháng đó được tính theo giá định mức như bảng sau:
100 kwh đầu
tiên
50 kwh tiếp 50 kwh tiếp 100 kwh tiếp Từ 300 kwh trở
lên
550 VND 900 VND 1250 VND 1450 VND 1700 VND
#include<iostream.h>
#include<conio.h>
#include<iomanip.h>
void main()
{
int sokw;
float thanhtien;
clrscr();
cout<<"\n Hay nhap so kw tieu thu :";cin>>sokw;
if(sokw<=100)
thanhtien=sokw*0.550;
else if(sokw>100&&sokw<=150)
thanhtien=100*0.550+(sokw-100)*0.900;
else if(sokw<=200)
thanhtien=100*0.550+50*0.900+(sokw-150)*1.250;
else if(sokw<=300)
thanhtien=100*0.550+50*0.900+50*1.250+(sokw-200)*1.450;
else
thanhtien=100*0.550+50*0.900+50*1.250+100*1.450+(sokw-
300)*1.700;
cout<<"\n So kw tieu thu trong thang ="<<sokw<<" Phai tra
="<<thanhtien<<"000 dong";
getch();
}
11. Nhập vào một số nguyên có 3 chữ số, hãy in ra cách đọc của nó.
#include<iostream.h>
#include<conio.h>
#include<string.h>
void main()
{
int tram,chuc,donvi,so;
clrscr();
cout<<"\n Hay doc mot so =";cin>>so;
tram=so/100;
chuc=(so%100)/10;
donvi=so%10;
char chuoi[100]="";
switch (tram)
{
case 1:strcat(chuoi,"Mot tram");break;
case 2:strcat(chuoi,"Hai tram");break;
case 3:strcat(chuoi,"Ba tram"); break;
case 4:strcat(chuoi,"Bon tram");break;
case 5:strcat(chuoi,"Nam tram");break;
case 6:strcat(chuoi,"Sau tram");break;
case 7:strcat(chuoi,"Bay tram");break;
case 8:strcat(chuoi,"Tam tram");break;
case 9:strcat(chuoi,"Chin tram");break; }
switch (chuc)
{
case 0:strcat(chuoi," khong");break;
case 1:strcat(chuoi," muoi");break;
case 2:strcat(chuoi," hai");break;
case 3:strcat(chuoi," ba"); break;
case 4:strcat(chuoi," bon");break;
case 5:strcat(chuoi," nam");break;
case 6:strcat(chuoi," sau");break;
case 7:strcat(chuoi," bay");break;
case 8:strcat(chuoi," tam");break;
case 9:strcat(chuoi," chin");break; }
switch (donvi)
{
case 0:strcat(chuoi," khong");break;
case 1:strcat(chuoi," muoi");break;
case 2:strcat(chuoi," hai");break;
case 3:strcat(chuoi," ba"); break;
case 4:strcat(chuoi," bon");break;
case 5:strcat(chuoi," nam");break;
case 6:strcat(chuoi," sau");break;
case 7:strcat(chuoi," bay");break;
case 8:strcat(chuoi," tam");break;
case 9:strcat(chuoi," chin");break; }
cout<<"\n Chuoi so doc la = "<<chuoi;
getch();
}
12. Viết chương trình tìm ước chung lớn nhất, bội chung nhỏ nhất của 2 số
nguyên M, N nhập từ bàn phím.
#include<iostream.h>
#include<conio.h>
void main()
{
int a,b;
cout<<"\n Hay nhap hai so a,b =";cin>>a>>b;
int m=a,n=b;
while (m!=n)
{
if(m>n) m-=n;
else
n-=m;
}
int us=m;
cout<<"\n uscln cua a,b ="<<us;
int bs=a;
if(bs>b) bs=b;
while (bs%a!=0||bs%b!=0) bs++;
cout<<"\n bscnn cua a,b ="<<bs;
getch();
}
13. Viết chương trình giải phương trình bậc 2 với các hệ số nhập từ bàn phím
(xét đầy đủ các trường hợp).
#include<iostream.h>
#include<conio.h>
#include<math.h>
void main()
{
float a,b,c,denta;
clrscr();
nhaplai:
cout<<"\n Hay nhap he so a =";cin>>a;
if (a==0)
{
cout<<"\n Ban nhap sai du lieu ! khong tinh duoc";
goto nhaplai;}
cout<<"\n Hay nhap he so b =";cin>>b;
cout<<"\n Hay nhap he so c =";cin>>c;
denta=b*b-4*a*c;
if (denta==0)
cout<<"\n Phuong trinh co mot nghiem kep"<<1.0*(-b/a);
else
if (denta>0)
{ cout<<"\n Phuong trinh co hai nghiem ";
cout<<setiosflags(ios::showpoint)<<setprecision(2);
float x1=1.0*(-b+sqrt(denta))/(2*a);
float x2=1.0*(-b-sqrt(denta))/(2*a);
cout<<"\n x1 ="<<x1;
cout<<"\n x2 ="<<x2; }
else
cout<<"\n Phuong trinh vo nghiem";
getch();
}
14. Viết chương trình in ra phần tử thứ n của dãy Fn sau: F
1
=1, F
2
= 2, F
n
= 5F
n−1
+ 3F
n−2
(n ≥ 3)
#include<iostream.h>
#include<conio.h>
#include<math.h>
void main()
{
long ft=1,fs=2,fn,n;
int i=3;
clrscr();
cout<<"\n Hay nhap n =";cin>>n;
do
{fn=5*fs+3*ft;
ft=fs;
fs=fn;
i++;}
while (i<=n);
cout<<"\n Ket qua fn ="<<fn;
getch();
}
15.Nhập vào 4 chữ số. In ra tổng của 4 chữ số này và chữ số hàng chục, hàng đơn
vị của tổng (ví dụ 4 chữ số 3, 1, 8, 5 có tổng là 17 và chữ số hàng chục là 1 và
hàng đơn vị là 7, cần in ra 17, 1, 7).
#include<iostream.h>
#include<conio.h>
void main()
{
int ngan,tram,chuc,donvi,so;
cout<<"\n Hay nhap mot so 4 chu so =";cin>>so;
ngan=so/1000;
donvi=so%10;
tram=(so/100)%10;
chuc=(so%100)/10;
int tong=ngan+tram+chuc+donvi;
chuc = (tong%100)/10;
donvi = tong%10;
cout<<"Day in tong ="<<tong<<" chuc= "<<chuc<<" don vi =" <<donvi;
getch();
}
16.Nhập vào tuổi cha và tuổi con hiện nay sao cho tuổi cha –tuổi >=25. Tìm xem
bao nhiêu năm nữa tuổi cha sẽ bằng đúng 2 lần tuổi con (ví dụ 30 và 5, sau 20
năm nữa tuổi cha là 50 gấp đôi tuổi con là 25).
#include<iostream.h>
#include<conio.h>
void main()
{
int cha,con,sonam=0;
clrscr();
nhaplai:
cout<<"\n Hay nhap tuoi cha , tuoi con =";cin>>cha>>con;
if(cha-con<25)
{cout<<"\n Ban nhap sai roi ! Xin nhap lai";
goto nhaplai;}
while(cha!=2*con)
{ cha+=1;
con+=1;
sonam+=1;
}
cout<<"\n Sau "<<sonam<<" nam tuoi cha gap 2 tuoi con";
cout
<<"\n Tuoi cha = "<<cha<<" Tuoi con =" <<con;
getch();
}
17.Viết chương trình nhập một số nguyên (n>=5) . Vẽ lên màn hình vẽ bằng các
dấu sao (*) có chiếu cao n.
#include<iostream.h>
#include<conio.h>
void main()
{
int n,i,j;
clrscr();
cout<<"\n Hay nhap n =";cin>>n;
cout<<"\n Hinh tam giac 1";
cout<<endl;
for (i=1;i<=n;i++)
{
for(j=1;j<=n;j++)
if(j==1||j==i||i==n) cout<<'*';
else cout<<' ';
cout<<endl; }
getch();
}
#include<iostream.h>
#include<conio.h>
void main()
{
int n,i,j;
clrscr();
cout<<"\n Hay nhap n =";cin>>n;
cout<<"\n Hinh tam giac 2";
cout<<endl;
for (i=1;i<=n;i++)
{
for(j=1;j<=n;j++)
if(j==1||j==n+1-i||i==1) cout<<'*';
else cout<<' ';
cout<<endl; }
getch();
}
#include<iostream.h>
#include<conio.h>
void main()
{
int n,i,j;
clrscr();
cout<<"\n Hay nhap n =";cin>>n;
cout<<"\n Hinh tam giac 3";
cout<<endl;
for (i=1;i<=n;i++)
{
for(j=1;j<=n;j++)
if(j==n||j==n+1-i||i==n) cout<<'*';
else cout<<' ';
cout<<endl; }
getch();
}
#include<iostream.h>
#include<conio.h>
void main()
{
int n,i,j;
clrscr();
cout<<"\n Hay nhap n =";cin>>n;
cout<<"\n Hinh tam giac ";
cout<<endl;
for (i=1;i<=n;i++)
{
for(j=1;j<=2*n-1;j++)
if(j==n+1-i||i==j-n+1||i==n) cout<<'*';
else cout<<' ';
cout<<endl; }
getch();
}
18.Viết chương trình nhập một số nguyên n>=5. Vẽ lên màn hình các chữ ∑, chữ
M, chữ Z bằng các dấu sao (*) có chiều cao n.
#include<iostream.h>
#include<conio.h>
void main()
{
clrscr();
int h,i,j,n;
cout<<"\n hay nhap chieu cao chu =";cin>>h;
for (i=1;i<=h;i++)
{
for (j=1;j<=h;j++)
if (i==1||i==h+1-j||i==h) cout<<'*';
else
cout<<' ';
cout<<endl;
}
getch();
}
#include<iostream.h>
#include<conio.h>
void main()
{
clrscr();
int h,i,j,n;
cout<<"\n Hinh chu Zima";
cout<<endl;
for(j=1;j<=n;j++) cout<<'*';
cout<<endl;
for (i=2;i<=n/2;i++)
{
for(j=1;j<=n/2;j++)
if(j==i) cout<<'*';
else cout<<' ';
cout<<endl; }
for(j=1;j<=n;j++) if(j==n/2+1) cout<<'*';
else cout<<' ';
cout<<endl;
for (i=2;i<=n/2;i++)
{
for(j=1;j<=n/2;j++)
if(j==n/2+1-i+1) cout<<'*';
else cout<<' ';
cout<<endl; }
for(j=1;j<=n;j++) cout<<'*';
cout<<"\n Hinh chu M";
cout<<endl;
for (i=1;i<=n/2;i++)
{
for(j=1;j<=n;j++)
if(j==1||j==n||i==j||i==n+1-j) cout<<'*'; else cout<<' ';
cout<<endl; }
for(j=1;j<=n;j++) if(j==1||j==n/2+1||j==n) cout<<'*';
else cout<<' ';
cout<<endl;
for (i=1;i<=n/2;i++)
{
for(j=1;j<=n;j++)
if(j==1||j==n) cout<<'*';
else cout<<' ';
cout<<endl; }
getch();
}
19.Cho ε = 1e−6. Tính gần đúng các số sau:
a Số pi theo công thức Euler:
2222
2
1
3
1
2
1
1
1
6
n
++++=
π
dừng lặp khi
6
2
10
1
−
<
n
.
b e
x
theo công thức:
!n
x
!
x
!
x
e
n
x
++++=
21
1
21
dừng lặp khi
6
10
−
<
!n
x
n
.
c
)!n(
x
)(
!
x
!
x
xxsin
n
n
12
1
53
1253
+
−+++−=
+
, dừng lặp khi
6
12
10
12
−
+
<
+ )!n(
x
n
.
long gt(int x)
{
long i,kq=1;
for(i=1;i<=x;i++)
kq=kq*i;
return kq;
}
#include<iostream.h>
#include<conio.h>
#include<math.h>
void main()
{
clrscr();
cout<<"\n Tinh so pi";
float s=0;
int n=1;
do
{s+=1.0/(n*n);
n++;
}
while (1.0/(n*n)>=1.0e-6);
float pi=sqrt(s*6);
cout<<"So pi tinh duoc ="<<pi;
cout<<"\n Tinh e mu x";
int x;
cout<<"\n Hay nhap so mu cua e =";cin>>x;
float emu=1;
n=1;
do
{
emu+=1.0*(pow(x,n)/gt(n));
n++;}
while (abs(pow(x,n)/gt(n))>=1.0e-6);
cout<<"\n emu"<<x<<" = "<<emu;
cout<<"\n Tinh sinx ";
cout<<"\n Hay nhap he goc cua sin x =";cin>>x;
float sinx=1;
n=1;
int dau=1;
do
{
sinx+=1.0*dau*(pow(x,2*n+1)/gt(2*n+1));
n++; dau=-(dau);}
while (abs(pow(x,2*n+1)/gt(2*n+1))>=1.0e-6);
cout<<"\n Sin("<<x<<") = "<<sinx;
getch();
}
20. Nhập vào một mảng (n phần tử, n nhập từ bàn phím)
- Đếm số phần tử dương và in ra tổng các phần tử dương của mảng
- Kiểm tra mảng có sắp thứ tự tăng dần hay không ?
#include<iostream.h>
#include<conio.h>
#include<math.h>
void main()
{
int i,n,a[100],kt; clrscr();
cout<<"\n Hay nhap so phan tu mang =";cin>>n;
for(i=1;i<=n;i++)
{ cout<<"a["<<i<<"]=";cin>>a[i];}
cout<<"\n Day vua nhap =";
for(i=1;i<=n;i++) cout<<a[i]<<' ';
int soptd=0,tongptd=0;
for(i=1;i<=n;i++)
if(a[i]>0) {soptd++;tongptd+=a[i];}
cout<<"\n So cac phan tu duong ="<<soptd;
cout<<"\n Tong cac phan tu duong ="<<tongptd;
cout<<endl;
cout<<"\n Kiem tra day tang dan:";
kt=1;
for(i=1;i<=n-1;i++)
if(a[i]>a[i+1]) kt=0;
if(kt==1) cout<<"\n Day vua nhap la day tang dan";
else cout<<"\n Day vua nhap la day khong tang dan ";
getch();
}
21. Nhập một mảng số nguyên n phần tử với n nhập từ bàn phím . Hãy in ra màn
hình những phần tử là số nguyên tố .
int kt(int x)
{ int i=2;
while(x%i!=0) i++;
if (i>=x) return 1;
else return 0;}
#include<iostream.h>
#include<conio.h>
void main()
{
int i,n,a[100];
clrscr();
cout<<"\n Hay nhap so phan tu mang =";cin>>n;
for(i=1;i<=n;i++)
{ cout<<"a["<<i<<"]=";cin>>a[i];}
cout<<"\n Day vua nhap =";
for(i=1;i<=n;i++) cout<<a[i]<<' ';
cout<<"\n In ra cac phan tu la so nguyen to = ";
int dem=0;
for(i=1;i<=n;i++)
if(kt(a[i])) {cout<<a[i]<<' ';
dem+=1;}
if(dem==0) cout<<"Khong co so nguyen to nao ";
getch();}
22. Viết chương trình nhập một mảng số nguyên n phần tử với n nhập từ bàn
phím. Hãy in ra màn hình những phần tử là số chính phương (số chính
phương a có
Ví dụ : Nhập 12 9 16 17 25 In ra 9 16 25
int kt(int x)
{
if ((sqrt(x)==(int)sqrt(x)) return 1;
else return 0;
}
#include<iostream.h>
#include<conio.h>
#include<math.h>
void main()
{ int i,n,a[100];
clrscr();
cout<<"\n Hay nhap so phan tu mang =";cin>>n;
for(i=1;i<=n;i++)
{ cout<<"a["<<i<<"]=";cin>>a[i];}
cout<<"\n Day vua nhap =";
for(i=1;i<=n;i++) cout<<a[i]<<' ';
// Kiem tra so chinh phuong
cout<<"\n Day co cac so chinh phuong la = ";
int dem=0;
for(i=1;i<=n;i++)
if(kt(a[i])) {cout<<a[i]<<' ';
dem+=1;}
if (dem==0) cout<<" Khong co so chinh phuong nao ";
cout<<"\n Day co "<<dem<<" Phan tu la so chinh phuong";
getch();}
23. Nhập một dãy số n các số nguyên, với n nhập từ bàn phím . Hãy kiểm tra dãy
trên có đối xứng hay không?
Ví dụ : nhập dãy : 1 3 5 4 5 3 1 là dãy đối xứng
#include<iostream.h>
#include<conio.h>
void main()
{ int i,n,a[100];
clrscr();
cout<<"\n Hay nhap so phan tu mang =";cin>>n;
for(i=1;i<=n;i++)
{ cout<<"a["<<i<<"]=";cin>>a[i];}
cout<<"\n Day vua nhap =";
for(i=1;i<=n;i++) cout<<a[i]<<' ';
cout<<"\n Kiem tra day doi xung:";
int kt=1;
for(i=1;i<=n/2;i++)
if(a[i]!=a[n+1-i]) kt=0;
if(kt==1) cout<<"\n Day vua nhap doi xung";
else cout<<"\n Day vua nhap khong doi xung ";
getch(); }
24. Nhập một dãy số n các số nguyên, với n nhập từ bàn phím . Hãy kiểm tra dãy
trên có tạo thành một dãy cấp số cộng hay không ?
Ví dụ : Nhập dãy 1 3 5 7 9 11 là một cấp số cộng có công sai =2
#include<iostream.h>
#include<conio.h>
void main()
{ int i,n,a[100];
clrscr();
cout<<"\n Hay nhap so phan tu mang =";cin>>n;
for(i=1;i<=n;i++)
{ cout<<"a["<<i<<"]=";cin>>a[i];}
cout<<"\n Day vua nhap =";
for(i=1;i<=n;i++) cout<<a[i]<<' ';
cout<<"\n Kiem tra cap so cong ";
int kt=1;
for(i=2;i<=n-1;i++)
if((a[i]-a[i-1])!=(a[i+1]-a[i])) kt=0;
if (kt==1) cout<<"\n Day kiem tra la cap so cong , cong sai ="<<a[i]-a[i-1];
else cout<<"\n Day khong tao thanh day cap so cong ";
getch();
}
25. Các số sinh đôi là các số nguyên tố mà khoảng cách giữa chúng là .Hãy viết
chương trình in ra tất cả các căp số sinh đôi <1000
Hướng dẫn : Dùng chương trình con tìm số nguyên tố kết hợp mảng một chiều.
int kt(int x)
{ int i=2;
while(x%i!=0) i++;
if (i>=x) return 1;
else return 0;}
#include<iostream.h>
#include<conio.h>
void main()
{
clrscr();
int i,b=1,a[200];
for(i=1;i<1000;i++)
if(kt(i)) {a[b]=i; b+=1;}
int j;
cout<<"\n Cac cap dinh doi <1000 la =";
for(j=1;j<b;j++)
if (a[j+1]-a[j]==2) cout<<"\n "<<a[j]<<" "<<a[j+1];
getch();
}
26. Viết chương trình nhập 2 dãy số nguyên có cùng n phần tử a1 và a2, với n
nhập từ bàn phím . In ra các phần tử có trong a1 và không có trong a2.
Ví dụ : nhập a1 =12 3 56 6 15 a2= 12 4 14 15
In ra : 3 56 6
#include<iostream.h>
#include<conio.h>
void main()
{ int n,a1[50],a2[50];
clrscr();
cout<<"\n Hay nhap so phan tu day =";cin>>n;
//Nhap va in day a1
for(int i=1;i<=n;i++)
{cout<<"a1["<<i<<"]=";cin>>a1[i];}
cout<<"\n Cac phan tu trong day a1 =";
for (i=1;i<=n;i++) cout<<a1[i]<<' ';
cout<<endl;
//Nhap va in day a2
for(i=1;i<=n;i++)
{cout<<"a2["<<i<<"]=";cin>>a2[i];}
cout<<"\n Cac phan tu trong day a2 =";
for (i=1;i<=n;i++) cout<<a2[i]<<' ';
cout<<"\n Cac phan tu co trong a1 khong co trong a2 =";
for(i=1;i<=n;i++)
{ int kt=1;
for(int j=1;j<=n;j++)
if(a1[i]==a2[j]) kt=0;
if(kt==1) cout<<a1[i]<<' '; }
getch(); }
27. Viết chương trình nhập vào một ma trận vuông (n*n) với n nhập từ bàn phím
. Tìm và in ra các phần tử lớn nhất và nhỏ nhất của từng dòng.
#include<iostream.h>
#include<conio.h>
void main()
{
int n,a[10][10];
clrscr();
cout<<"\n Hay nhap so phan tu n =";cin>>n;
for(int i=1;i<=n;i++)
for(int j=1;j<=n;j++)
{cout<<"a["<<i<<","<<j<<"]=";cin>>a[i][j];}
cout<<"\n Ma tran vua nhap la \n";
for(i=1;i<=n;i++)
{
for(int j=1;j<=n;j++) cout<<a[i][j]<<' ';
cout<<endl;
}
for(i=1;i<=n;i++)
{
int max=a[i][1];
for(int j=1;j<=n;j++)
if (max<a[i][j]) max=a[i][j];
cout<<"\n so lon nhat cua dong "<<i<<" = "<<max;
}
cout<<endl;
for(i=1;i<=n;i++)
{ int min=a[i][1];
for(int j=1;j<=n;j++)
if (min>a[i][j]) min=a[i][j];
cout<<"\n so nho nhat cua dong "<<i<<" = "<<min; }
getch(); }
28. Nhập một dãy số nguyên dương x
1
, x
2
, , x
n
. với n nhập từ bàn phím
-Tách dãy x thành hai dãy: dãy A gồm các số chẵn, dãy B gồm các số lẻ
#include<iostream.h>
#include<conio.h>
void main()
{
int i,n,x[100],a1[50],a2[50];
clrscr();
cout<<"\n Hay nhap so phan tu mang =";cin>>n;
for(i=1;i<=n;i++)
{ cout<<"x["<<i<<"]=";cin>>x[i];}
cout<<"\n Day vua nhap =";
for(i=1;i<=n;i++) cout<<x[i]<<' ';
cout<<"\n Tach thanh 2 day chan le ";
int a=1,b=1;
for(i=1;i<=n;i++)
if(x[i]%2!=0) {a1[a]=x[i]; a++;}
else {a2[b]=x[i];b++;}
cout<<"\n Day chua cac so le =";
for(i=1;i<a;i++) cout<<a1[i]<<' ';
cout<<"\n Day chua cac so chan =";
for(i=1;i<b;i++) cout<<a2[i]<<' ';
getch();
}
29. Viết chương trình: Nhập vào một ma trận vuông (kích thước n: nhập từ bàn
phím)
- Đếm số lượng các phần tử dương nằm ở ma trận tam giác trên
- Tính tổng của các dòng trong ma trận.
#include<iostream.h>
#include<conio.h>
void main()
{
int i,j, n,a[10][10];
clrscr();
cout<<"\n Hay nhap so phan tu n =";cin>>n;
for(i=1;i<=n;i++)
for(j=1;j<=n;j++)
{cout<<"a["<<i<<","<<j<<"]=";cin>>a[i][j];}
cout<<"\n Ma tran vua nhap la \n";
for(i=1;i<=n;i++)
{ for(j=1;j<=n;j++) cout<<a[i][j]<<' ';
cout<<endl; }
//Tinh Tong cac phan tu nam trong tam giac tren
int dem=0;
for(i=1;i<=n;i++)
for(j=1;j<=n;j++)
if(i<=j&&a[i][j]>0) dem+=1;
cout<<"Tong so cac phan tu duong trong tam giac tren ="<<dem;
//Tinh Tong tren cac dong cua ma tran
for(i=1;i<=n;i++)
{
int tong=0;
for(j=1;j<=n;j++) tong+=a[i][j];
cout<<"\n Tong cua dong "<<i<<" = "<<tong; }
getch(); }
30. Nhập một ma trận vuông cấp n . Kiểm tra xem ma trận đó có là ma trận đơn
vị hay không ?.
Ghi chú : ma trận đơn vị là ma trận có các phần tử trên đường chéo chính =1 ,
các phần tử còn lại =0.
#include<iostream.h>
#include<conio.h>
void main()
{
int i,j, n,a[10][10];
clrscr();
cout<<"\n Hay nhap so phan tu n =";cin>>n;
for(i=1;i<=n;i++)
for(j=1;j<=n;j++)
{cout<<"a["<<i<<","<<j<<"]=";cin>>a[i][j];}
cout<<"\n Ma tran vua nhap la \n";
for(i=1;i<=n;i++)
{ for(j=1;j<=n;j++) cout<<a[i][j]<<' ';
cout<<endl; }
//Kiem tra ma tran
int kt =1;
for(i=1;i<=n;i++)
for(j=1;j<=n;j++)
{if(i==j&&a[i][j]!=1) kt=0;
if(i!=j&&a[i][j]!=0) kt=0; }
if(kt==1) cout<<"\n Ma tran tren la ma tran don vi ! ";
else cout<<"Ma tran tren khong phai ma tran don vi !";
getch();
}
31.Nhập một ma trận vuông cấp n*n
- In ra các phần tử trên đường chéo chính
- In ra các phần tử trên đường chéo phụ
- In ra các phần tử trong tam giác trên
In ra các phần tử trong tam giác dưới
#include<iostream.h>
#include<conio.h>
void main()
{ int i,j, n,a[10][10];
clrscr();
cout<<"\n Hay nhap so phan tu n =";cin>>n;
for(i=1;i<=n;i++)
for(j=1;j<=n;j++)
{cout<<"a["<<i<<","<<j<<"]=";cin>>a[i][j];}
cout<<"\n Ma tran vua nhap la \n";
for(i=1;i<=n;i++)
{ for(j=1;j<=n;j++) cout<<a[i][j]<<' ';
cout<<endl; }
cout<<"\n Cac phan tu tren duong cheo chinh \n";
for(i=1;i<=n;i++)
{ for(j=1;j<=n;j++)
if(i==j) cout<<a[i][j]<<' ';
else cout<<" ";
cout<<endl; }
cout<<"\n Cac phan tu tren duong cheo phu \n";
for(i=1;i<=n;i++)
{ for(j=1;j<=n;j++)
if(i==n+1-j) cout<<a[i][j]<<' ';
else cout<<" ";
cout<<endl; }
cout<<"\n Cac phan tu tren tam giac tren \n";
for(i=1;i<=n;i++)
{ for(j=1;j<=n;j++)
if(i<=j) cout<<a[i][j]<<' ';
else cout<<" ";
cout<<endl; }
cout<<"\n Cac phan tu tren tam giac duoi \n";
for(i=1;i<=n;i++)
{ for(j=1;j<=n;j++)
if(i>=j) cout<<a[i][j]<<' ';
else cout<<" ";
cout<<endl; }
getch(); }
32. Viết chương trình nhập vào một ma trận vuông cấp n , với n nhập từ bàn
phím . Kiểm tra và in ra các cột kề nhau hoàn toàn bằng nhau ?
Ví du : ma tran cap 4 1 4 4 8
12 5 5 9
1 4 4 8
2 7 7 10
In ra cot 2 va 3 hòan toàn giống nhau .
#include<iostream.h>
#include<conio.h>
void main()
{