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

MỘT SỐ BÀI TẬP NGÔN NGỮ C++ 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 (233.83 KB, 12 trang )

C++
Bài toán 1: tính chu vi ,diện tích ,đg cheo và chu vi hình tròn ngoại tieps hcn,theo 2 canh
nhậpvào từ band phím .
Giải :
#include <iostream.h>
#include<conio.h>
#include<math.h>
main()
{ clrscr();
f load a,b,d;
cout<<”\n nhap vao 2 canh ”;
{cin >> a >> b;
if (a>0&b>0) cout<<”\n vao lai”;}
while (a<=0//b<=0);
{ d=sqrt(a*a+b*b);
cout<<”\n chu vi ”>>2*(a+b);
cout<<”\n dien tich la ”>>a*b;
cout<<”\n đg cheo la ”>>d;
cout<<”\n chu vi hinh tron la ”>>M_PI*d; }
else cout<<”n du lieu vao khong hop le” ;
getch();
return ; }
Bài toán 2: tìm UCLN của 2 số nguyên dạng a, b
Chương trình:
#include <iostream.h>
#include<conio.h>
main()
{ clrscr();
int a.b;
cout<<”\n nhap vao 2 so ”;
{ cin>>a>>b;


ìf (a<=0//b<=0) cout <<”\n vao lai”;}
while (a=b) ;
cout<<”\n UCLN (‘’<<a<<”,”<<b<<”)=”;
while (a=b) if (a>b) a=a-b;
else b=b-a ;
cout<<a;
getch()}
Bài toán 3: tính =

2009 +

2008 + ⋯+

5
Chương trình:
#include<iostream.h>
#include<conio.h>
#include<math.h>
main()
{ clrscr()
ìnf k ; fload S=∅;
for (k=5, k<=2009, k++) S = sqrt(S+k);
cout<<”\n dap so la ”<<S;
getch(); }
b) tính  =

9 +

10 + ⋯+


500
Chương trình:
#include<iostream.h>
#include<conio.h>
#include<math.h>
main()
{ clrscr()
ìnf k ; fload C=∅;
for(k=500, k>9, k ) C=sqrt(c+k);
cout<<”\n dap so la ”<<c
getch(); }
Bài toán 4:Viết phương trình giải bài toán vừa gà vừa chó bó lại cho tròn 36 con 100 chân
chắn .Tìm gà và chó
Chương trình:
#include<iostream.h>
#include<conio.h>
void main()
{ clrscr()
inf ga;
for (ga=0, ga<=36, g++ )
if(2*ga+4*(36-ga)=100)) cout<<”\n”
<<ga<<”con ga”<<36-ga<<”con cho”
getch(); }
Bài toán 5: trăm trâu trăm cỏ trâu đứng ăn năm,trâu nằm ăn ba, lụ khụ trâu già 3 con 1 bó
chương trình:
#include<iostream.h>
#include<conio.h>
void main()
{ clrscr()
ìnf d,n;

for (d=0, d<=20, d++)
for(n=0, n=<=33, n++ )
if(5*d+3*n+(100-d-n)/3.∅ == 100)
cout<<”\n”<<d<<”trau dung”<<n<<”trau nam”<<100-d-n<<”trau gia”;
getch() }
Bài tập 6: viết chương trình cho người ta nhập vào một số nguyên máy thong báo tổng các chữ
số của nó .y/c viết một hàm tính tổng v\cá chữ số
chương trình:
#include<iostream.h>
#include<conio.h>
inf t chuso (int);
void main()
{int n ; clrscr();
do { cout <<”\n……nhap vao so N=”;
cin >>u; iF(n<1)break;}
cout<<”\n”<<u<<”co trong cac chu so la”<<+ chu so(u);
while(5);}
int t chuso (int k)}
int T=∅;
while (k>0)
{ T+= K% 10;
K=K/10 }
} return T;
Bài tập 7: viêt chương trình để người dung nhập vào 2 số nguyên a,b may sẽ in ra UCLN của 2
số dó .y/c chương trình chay liên tục đên khi người ta nhập vào a ỏ b <1 thì thoat ra khỉ chương
trình
Chương trình :
#include<iostream.h>
#include<conio.h>
inf ucln (int,int);

void main ()
{int a,b; clrscr();
do { cout <<”\n… nhap vao 2 so ”;
cin>>a>>b;
if (a<1//b<1) break;
cout <<”\n UCLN (“<<a<<”,”<<b<<”)=”<<UCLN(a,b); }
while (1);
} int UCLN (inf x, int y)
{while (x!=y)
if (x>y) x=x-y;
else y=y-x;
} return x;
Bài toán 8:viết chương trình cho người dung nhập vào số nguyên n đưa lên tổn các ước của n
,y/c chương trình chạy lien tục khi nào nhập số < 1 thì thoát.
Chương trình:
#include<iostream.h>
#include<conio.h>
int TU (int);
void main ()
{ int a; clrscr;
do { cout <<”\n … nhap vao so a”; cin>>a;
ìf (a<1) break;
cout (“\n ”<<a<<”co tong cac uoc la”<<TV(a);
while (1);
} int TV (int a)
for (v=1,u<=a;u++)
if (a%u=0)T+=U;
return T;}
for (u=1; u<=a/2; u++) (không thấy viết j nưa fai hỏi lai)



MẢNG MỘT CHIỀU

Bài tập1: viêt CT nhập vào 1 day gồm n số thực , đêm xem trong dãy đó có bao nhiêu số lớn
hơn số sau cùng của dãy
VD: 15 25 -100 46 72 5 84 20
0 1 2 3 4 5 6 7
CT:
#include<iostream.h>
#include<conio.h>
const n=8;
fload A[n]; int K, dem =∅;
void main()
{ clrscr (); for (k=∅; k<n; k++)
{cout <<”\n A[“<<K<<”]=”;
cin >>A[k];}
for (k=∅; k<n-1; k++) if (A[k]>A[n-1]) dem++;
cout << “\n so pt lon hon pt sau cung la ”<<dem;
getch(); }


Bài tập: 2 viết phương trình cho may làm những việc sau :
a) nhận vào mảng A,B đều là mảng một chiều có u phân tử là nghiệm số nguyên <<
n<<702
b) gọi P(x) là tổng các chữ số của K
VD: P(485)=17
c) xd mảng C có n phần tử sch ( [i]=P(A[i])+ P(B[i] ) )
0=< i =<
d) in lên các phân tư nguyên tố cung nhau vứi phần tử đầu tiên của mảng
Công việc Nhập vào 1 mảng ktra phân tử vào 2 lần A,B

- Hàm tinhd tổng các chứ số
- XD mảng C thông qua mảng A,B
- ktra 2 số có nguyên tố ko , duyệt 3 lần A,B,C
- hàm in kq : in lại toán bộ các phần tử của mảng 1 dong ko dinh với nhau
Chương trình : #include<iostream.h>
#include<conio.h>
cont n= 6
I nt a[n] , b[n], c[n], K;
void nhap int x[], chảr;
int P(int);
void mang c();
int ntcn (int, int)
void in kq (int y[], char);
void main ()
{ clrscr; nhap (a,”A”)’
nhap(b,’B’); mang C();
in kq (a,’A’); in kq (b,’B’); in kq (c,’C’);
getch(); }
void nhap (int x[], char T)
{ cout << (“n… nhap mang “<<T<<”…n”);
for (K=∅, K<n; k++)
do { cout << (“\n”<<T<<”i”<<K<<”J=”);
cin >>x[K];
ìf (x[K]< 3//x[K]>701)
cout <<”moi vao lai”; }
} while (x[K]<3//x[K]>701);
int P(int K)
{ int T=∅ ; while (k>0)
{ T+= K%10;
K=K/10; }

return T; }
void mang C()
{ for (k=0; k< n; k++)
C[K]= P(a[K]+ P(b[K])); }
int ntcn (imt x, int y)
{ while (x!=y) if (x>y) x=x-y;
else y=y-x;
return x==1; }
Bài tập: 3 viết chương trình nhập vào mảng a gồm 10 phân tử , mảng B có 7 phần tử là số
nguyên > 2 và nho hơn 702 sx các phân tử của từng mảng theo tt tăng dần
Chương trình : #include<iostream.h>
#include<conio.h>
conts na=10 ,nb=7;
int a[na], b[nb], k;
void nhap (int x[],char, int);
void sap xep (int x[], int);
void Inkq (int y[], char, int);
void main()
{ clrscr(); nhap(a,’A’,na);
nhap(b,’B’,nb);
Inkq(a,’A’,na); Inkq (b,’B’nb);
getch(); }
void nhap (int x[], char T, int n);
{ cout <<”\n….nhap mang “”<<T<<”,….\n;
for (k=0;k,n;k++)
do { cout <<”\n”<<T<<”I”<<K<<”J”;
cin >> C[k];
if (x[k]<3 // x[k]>701))
cout << “\n moi vao lai”; }
while (x[k] < 3 // x[k]>701 );

void sap xep (int x[], int n);
{ int I,j,k,tg;
for (i=0, i<n-1, i++)
if (x[k]> x[j]) k=j;
if (k>i) { t[i] ; x[i]=x[k]; x[k]=tg } }}
void Inkq (int y[y], char T, int n)
{ cout <<”\n\n……mang”<<T<<”….\n”;
for (k=∅; k< n ; k++) cout << y[k]<<” ”;
cout <<<”\n…….mang”<<T<<”… da sa la \n\n”;
sap xep (y,n);
for (k=∅; k< n; k++) }
Bài tập: 4 viết chương trình nhập vào mảng có u ftử là số những số thực n>7 tìm gt mãx, min,
của mảng.
CT: #include<iostream.h>
#include<conio.h>
const n= 8
fload M[n],max,min;
void main()
{ clrscr()
int k;
cout <<”\n nhap vao cac ptu cua mang M\n\n\n”;
for (k=∅, k<n, k++)
{ cout <<”\n”M[“<<k”]=”;
cin >> M[k] }
max=M[0];mon=M[0];
for (k=1; k<n; k++)
{ if (min> M[k]) min = M[k] }
Bài tập 5 viết CT nhập vào mảng A có n phân tử là các những số nguyên >2 và < 2009 (n>8)8



vsoos phần tử lẻ và số ptư chắn của mảng A
8) continue gập lệnh này máy bỏ qua phần còn lại sau continue để tiếp tục vòng lặp
VD: nhập vào mảng n số nguyên ,. tính tổng các số đó
CT: : #include<iostream.h>
#include<conio.h>
void main ()
const int n=11;
{ clrscr;
int k ,T=0, x;
for (k=1; k<=n; k++)
{ cout <<”\n nhap vao so thu”<<K<<” ”;
cin >>x; if (x<=0) continue;
T+=x; }
cout <<”\n dap so la”<<T;
getch() ; }


HÀM


Bài 1:
Tính chu vi , dt,dg cheo và chu vi dtr ngoại tiếp hcn theo haikichs thước của nóp đc nó nhập
vào từ bàn phím
CT: #include <iostream.h>
#include <conio.h>
#include <math.h>
fload a,b,c;
voidnhap();
i oit khh();
void tinh();

void main()
{ clrscr (); nhap();
tinh();
getch(); }
void nhap ()
{ cout <<”\n nhap haicanh”)
do { cin>>a>>b;
if (khl())cout << “\n moi vao lai”; }
while(khl()); }
int khl()
{return (a<=0//b<=0) }
void tinh ()
{ d=sqrt(a*a+b*b);
cout<<”\n chu vi la”<<2*(a+b);
cout <<”\n dt la ”<<a*b;
cout <<”\n dg cheo la ” sqrt (a*a+b*b);
cout <<”\n chu vi dg tron la ”<<M_PI*d; }
2) Hàm có tham số
Bài 2: Tính chu vi , dt , dg cheo và chu vi dtron ngoạit tiếp hcn theo 2 kích thước của nó
H1: a1, b1; H2:a2,b2; H3: a1+a2, b1+b2. tính tổng các diện tích 3 hinh
CT:
#include <iostream.h>
#include <conio.h>
#include <math.h>
fload a1,b1,a2,b2 S=∅;
void nhap (float&,float&,int k);
int khl(float, float);
void tinh (int, float float);
void main()
{clrsr(); nhap (a1,b1,1); nhap (a2,b2,2);

tinh(1,a1,b1); tinh(a2,b2,2); tinh (3,a1+a2,b1+b2);
cout <<”\n\n tong dt 3hinhla”<<S;
getch();
{ void nhap (float& a,float& b, int k)
{ cout <<”\n nhap 2 canh cua thu”<<k<<”\n”;
do { cin >>a>>b;
if (khl(a,b))cout<<”\n moi vao lai”; }
while (khl(a,b)); }
boit khl (float a,float b)
{ float d, dt;
cout <<”\n…hinh thu”<<J<<” “;
d=sqrt(a*a+b*b); dt=a*b;
cout <<”\n chu vi la”<<2*(a+b);
cout <<”\n dt la”<<dt;
cout <<”\n dg cheo la”<<d;
cout <<”\n chu vi dg tron la “<<M_PI*d;
S+=dt }
Bài 3: Viết ct nhaapj vào 1 số ng dg thong báo xem số dó có phải là SNT ko.CT chay lt cho dên
khio ngươi ta nhập vào số = 0 thì thoat khỏi vòng lặp
CT:
#include <iostream.h>
#include <conio.h>
void main ()
{ clrscr();
loit ngto (int);
loit k;
do {cout <<”\n nhap vao so k=”;
cin >>k; if (k<=0) breadk;
if (ngto(k)) cout <<”\n<<k<<”la so nto”;
else cout <<”\n”<<k<<”ko la sont”; }

while (1);
int ngto (int n);
{ int u,d;
d=0;
for (u=0,u<=u,u++)
if (u%u=0) d++;
return (d==2) }
Bài 4: Tính chu vi ,dt của hcn theo 2 cạnh của no biết
H1 co2 kích thước a1.b1
H2 ‘’’’’’’’’’’’’’’’’’ a2, b2
H3’’’’’’’’’’’’’’’’’’’ a1+a2,b1+b2
CT
#include <iostream.h>
#include <conio.h>
float a1.a2,b1,b2
void nhap (float*,float*,int);
int khl (fload, fload);
void tinh (int, float , float);
void main()
{ clrscr; nhap (&a1,&b1,1);
nhap (& a2,&b2,2);
tinh (1,a1,b1); tinh (2,a2,b2);
tinh (S,a1+a2,b1+b2);
gettch(); }
void nhap (float*a,float*b,int k)
{ cout <<”\n nhap vao 2 canh hinh thu ”<<k<<”\n”;
do {cin >>*a>>*b;
if (khl(*a,*b)) cout <<”\n moi vao lai”; }
while (khl(*a,*b)); }
void tinh (int J, float a, float b)

{ cout <<”\n ………chu vi ”<<J<<”…….\n”;
cout <<”\n chu vi la”<<2*(a+b);
cout <<”\n dien tich la ”<<a*b; }
int khl(float a, float b)
{ return a<=0//b<=0; }
II- Mảng Hai Chiều
Bài 1: Đi thi sao mai điểm hẹn co m thi sinh co SBD từ 1 đến n. Có u giam khao ngồi ở các vị trí
đánh số từ 1….n .Mối thí sinh hat 1 bài đc các giám khao cho điểm độc lâp với nhau. điểm TBC
của n đ tp la kết quả cua thi sinh đó .sau khi vào điểm cho m thi sinh hỏi ban giấm khảo xem
điểm chuẩn là bao nhiêu rồi hiện lên màn hình nhơngx SBD đc vào chung khảo
CT:
#include <iostream.h>
#include <conio.h>
#include<iomanip.h>
cónst m=4,n=3;
float D[m][n+1],T;
int j,k ;
void main ()
{ clrscr ();
cout <<”\n\n nhap diem cua tung em \n\n”;
for (j=0;j<m;j++)
{ T=∅ ;
for (k=d;k<n;k++)
cout <<”D[”,<<j+1<<”][“<<k+1<<”]=”;
cin >> D[j][k];T+=D[j][k];}
D[j][n]=T/n; }
{ coaut <<”\n\n day la bang diem \n\n”;
for (j=∅;j<m;j++)
caout <<setw(8)<<set precision(2)<<D[j][k];
cout <<”\n\n” }

cout <<”\n\n xincho biet diem chuan ?\n”; cin >>T;
cout<<”\n nhung em co so bao danh sau dc vao trung khao\n ”;
getch(); }
Bài 2: Viết CT cho may người vao mảng 2 chieu m dong n cột là các số thực (m>2,n>5)
tìm GT phân tử min max của mảng
CT:
#include <iostream.h>
#include <conio.h>
#include<iomanip.h>
const m=5,n=6;
float a[m][n]; min, max;
int j,k;
void main()
{ clrscr;
cout <<”\n\n nhap vao pt cua mang \n\n”;
for (j=0; j<m ; j++)
{ cout <<”D[”,<<j<<”][“<<k<<”]=”;
cin >>D[j][k]; }
cout <<”\n\n day la mang \n\n”;
{for (j=0; j<m; j++)
{ for (k=0;k<n;k++)
cout <<set co(8)<<set precision(2)<<D[j][k];
} cout <<”\n\n”
min=A[0][0]; max=A[0][0];
for(j=0; j<m ;j++)
{if (min>A[j][k]) A[j][k]= max;
if (min>A[j][k]) A[j][k]= min }
{ cout <<”\n\n pt lon nhat la \n\n”<<max;
cout <<”\n\n pt nho nhat la \n\n”<<min;
getch() }

Bài 3: Viết CT cho máy nhập vào mảng A coa m dong ncootj, m>4,n>5, cá pt là số nguyên lớn
hơn 3 nhỏ hơn 701
CT:
#include <iostream.h>
#include <conio.h>
#include<iomanip.h>
const m=5, n=6;
int A[m][n],j,k;
int ngto(int);
void main()
{ clrscr();
cout <<”\n\n nhap mang \n\n”;
for (j=0; j<m ; j++)
for(k=0; k<n; k++)
do { cout <<”A[“, <<j<<”][“<<k<<”]=”;
cin>> A[j][k];
if (A[j][k]<3//A[j][k]>701)cout <<”moi vao lai”;}
while (A[j][k]<3//A[j][k]>701);
cout <<”\n\n day la mang \n\n”;
for (j=0; j<m; J++)
{for (k=0;k<n;k++
cout <<set co(8)<< A[j][k]; }
cout <<”\n\n”;
cout << “cac SNT la\n\n”;
for (j=0; j<m; j++)
for (k=0; k<m; k++)
if (ngto (A[j][k]))cout << A[j][k]<<” ”;
getch}
int ngto (int n)
{ int u, dem =∅;

for (u=1;u<=n;u++)
if (n%u==0)dem++;
return dem ==2; }







































×