PDA

View Full Version : bài tập c++ chương 6



nguoila
16-12-2011, 08:41 AM
1. Sử dụng hàm, viết chương trình tìm giá trị lớn nhất và giá trị nhỏ nhất của 3 số bất kỳ được nhập vào từ bàn phím
#include<iostream>using namespace std;
void max(float a,float b,float c)
{
if(a>b)
if(a>c)
cout<<"so lon nhat la: "<<a<<endl;
else
cout<<"so lon nhat la: "<<c<<endl;
else
if(b>c)
cout<<"so lon nhat la: "<<b<<endl;
else
cout<<"so lon nhat la: "<<c<<endl;
}
void min(float a,float b,float c)
{
if(a<b)
if(a<c)
cout<<"so nho nhat la: "<<a<<endl;
else
cout<<"so nho nhat la: "<<c<<endl;
else
if(b<c)
cout<<"so nho nhat la: "<<b<<endl;
else
cout<<"so nho nhat la: "<<c<<endl;
}
void main()
{
float a,b,c;
cout<<"moi ban nhap 3 so bat ky:"<<endl;
cin>>a;
cin>>b;
cin>>c;
max(a,b,c);
min(a,b,c);
}
2. Sử dụng hàm, viết chương trình kiểm tra một số bất kỳ nhập vào từ bàn phím có phải là số nguyên tố hay không? Sau đó hiển thị lên màn hình tất cả các số nguyên tố <= 3000.
#include<iostream>using namespace std;
#include<cmath>
void kiemtra(int a)
{
if(a<=0)
cout<<"so vua nhap khong phai la so nguyen to"<<endl;
else
{
if(a==1)
cout<<a<<"la so nguyen to";
if(a==2)
cout<<a<<"la so nguyen to";
if(a==3)
cout<<a<<"la so nguyen to";
for(int i=2;i<a;i++)
if(a%i==0)
{
cout<<a<<" khong phai la so nguyen to"<<endl;
break;
}
if(i==a)
cout<<a<<" la so nguyen to"<<endl;
}
}
void songuyento(int i,int j)
{
cout<<1<<endl;
cout<<2<<endl;
cout<<3<<endl;
for(i=4;i<300;i++)
{
for(j=2;j<i;j++)
if(i%j==0)
break;
if(j==i)
cout<<i<<endl;
}
}
void main()
{
float a;
int i,j;
cout<<"moi ban nhap so bat ky:"<<endl;
cin>>a;
kiemtra(a);
cout<<"cac so nguyen to <=300 la:"<<endl;
songuyento(i,j);
}
4. Sử dụng hàm, viết chương trình xóa dấu cách đầu tiên trong xâu. Sau đó xóa tất cả các dấu cách trong xâu.

#include<iostream>using namespace std;
#include<iostream>
void xoaspacedautien(char s[200])
{
for(int i=0;i<strlen(s);i++)
if(s[i]==32)
{
int j=i;
for(j=i;j<strlen(s)-1;j++)
{
s[j]=s[j+1];
cout<<s[j];
}
break;
}
else
cout<<s[i];
}
void xoaspace(char s[200])
{
for(int i=0;i<strlen(s)-1;i++)
if(s[i]!=32)
cout<<s[i];
}
void main()
{
char s[200];
cout<<"moi ban nhap chuoi:"<<endl;
gets(s);
xoaspacedautien(s);
cout<<endl;
xoaspace(s);
cout<<endl;
}
5. Sử dụng hàm, viết chương trình kiểm tra một số có 4 chữ số bất kỳ có phải là số amstrong hay không? Biết rằng, số có 4 chữ số là số amstrong khi các chữ số của nó mũ 4 cộng lại bằng chính nó
#include<iostream>#include<cmath>
using namespace std;
void amstrong(int n)
{
int d=n%10;
int c=(n/10)%10;
int b=(n/100)%10;
int a=n/1000;
if(a*a*a*a+b*b*b*b+c*c*c*c+d*d*d*d==n)
cout<<n<<" la so amstrong"<<endl;
else
cout<<n<<" khong la so amtrong"<<endl;
}
void main()
{
int n;
cout<<"moi ban nhap so can kiem tra:"<<endl;
cin>>n;
amstrong(n);
}
13. Viết chương trình nhập vào một số bất kỳ rồi hiển thị ra màn hình theo thứ tự ngược lại. Chẳng hạn, số nhập vào là 1234 thì kết quả xuất ra là 4321

#include<iostream>using namespace std;
int innguoc(int n)
{
if(n<10)
return n;
else
{
cout<<n%10;
return (innguoc(n/10));
}
}
void main()
{
int n;
cout<<"moi ban nhap so can in:"<<endl;
cin>>n;
cout<<innguoc(n);
}
15. Xây dựng hàm đệ quy tính S(n) = (2n)! với n được nhập vào từ bàm phím
#include<iostream>#include<cmath>
using namespace std;
int giaithua(int n)
{
if(n=0)
return 1;
else
{
return (n*giaithua(n-1));
}
}
void main()
{
int n;
cout<<"moi ban nhap n:"<<endl;
cin>>n;
cout<<giaithua(2*n);
}



19. Viết chương trình tìm tất cả các số tự nhiên có 4 chữ số mà trong đó mỗi số không có 2 chữ số nào giống nhau.
#include<iostream>#include<cmath>
using namespace std;
void main()
{
int n,a,b,c,d;
for(n=1000;n<9999;n++)
{
d=n%10;
c=(n/10)%10;
b=(n/100)%10;
a=n/1000;
if(a!=b&&a!=c&&a!=d&&b!=c&&b!=d&&c!=d)
cout<<n<<"\t";
}
}

nguoila
16-12-2011, 08:46 AM
sẻ update thêm......

integer
16-12-2011, 12:18 PM
Bài 1 làm ngắn gọn lại:


max=a;
max>b ? (max>c ? max=a: max=c): (b>c ? max=b: max=c);
min=a;
min<b ? (min<c ? min=a : min=c): (b<c ? min=b : min=c);

thanhson_vt03b
17-12-2011, 11:32 AM
sẻ update thêm......
update càng nhanh càng tốt bạn ơi
sắp tới 22 thi C++ rồi :((

nguoila
17-12-2011, 01:00 PM
ừ. tại mấy bữa nay mình ôn toán lên chưa up lên được :)

soidaohoa
17-12-2011, 04:54 PM
có thì up lên cho anh em cùng xem, nếu có câu nào trúng thì hậu tạ =))=))
mình có cái này ai thấy cần thiết thì xem nha
1. Xây dựng hàm kiểm tra một số nguyên dương có phải là số nguyên tố hay không? Áp dụng hàm này để tính và hiển thị ra màn hình tổng của n số nguyên tố đầu tiên. (n nguyên dương bất kỳ được nhập vào từ bàn phím)
#include<iostream>
using namespace std;
// ham kiem tra so nto
int nto(unsigned int n)
{
int kt=true;
if(n==1)
kt=false;
else
for(int i=2;i<n;i++)
if(n%i==0)
{
kt=false;
break;
}
return kt;
}
// chuong trinh chinh
void main()
{
unsigned int n;
cout<<"nhap vao so n= ";
cin>>n;
cout<<"hien thi "<<n<<" so nguyen to dau tien"<<endl;
int dem=0;
int i=2;
int tong=0;
while(dem<n)
{
if(nto(i))
{
cout<<i<<"\t";
tong=tong+i;
dem++;
}
i++;
}
cout<<"\ntong cua "<<n<<" so nguyen to dau tien la: "<<tong<<endl;
}

2. Viết chương trình giải bài toán cổ:
“Vừa gà vừa chó,
Bó lại cho tròn,
Ba mươi sáu con,
Một trăm chân chẵn”.
Hỏi có bao nhiêu con mỗi loại?
· #include<iostream>
· using namespace std;
· void main()
· {
· int i,j;
· for(i=0;i<=36;i++)
· for(j=0;j<=36;j++)
· if(i+j==36&&2*i+4*j==100)
· {
· cout<<"so ga la: "<<i<<endl;
· cout<<"so cho la: "<<j<<endl;
· }
· }
3. Sử dụng con trỏ, nhập vào một chuỗi ký tự, in chuỗi đó ra màn hình. Đếm xem trong chuỗi có bao nhiêu từ?
#include <conio.h>
#include <iostream.h>
int so_tu(char s[])
{
int sotu=0;
for(int i=0;s[i]!='\0';i++)
{
if(s[i]==' ')//neu gap dau cach thi dem duoc 1 tu
if(i!=0 && s[i-1]!=' ')
//ngoai tru truong hop cac dau cach len tiep
//hoac dau cach dau tien
sotu++;
if(s[i+1]=='\0' && s[i]!=' ')
sotu++;
//neu ky tu ga`n cuoi cung khong la dau cach
//thi dem duoc tu cuoi cung
}
return sotu;
}
void main()
{
char xau[100];
cout << "Nhap mot xau ky tu\n";
cin.get(xau,100);
cout << "So tu: " << so_tu(xau)<<endl;
getch();
}

4. Viết chương trình khai báo mảng gồm n số nguyên. Nhập giá trị vào cho mảng sau đó xuất mảng ra màn hình. Tìm và hiển thị ra màn hình giá trị max, min có trong mảng.
#include<iostream>
using namespace std;
void main()
{
int a[100],i,n,max,min;
cout<<"so phan tu cua mang n= ";
cin>>n;
for(i=0;i<n;i++)
{
cout<<"gia tri cua mang thu"<<i+1<<"la ";
cout<<"a["<<i<<"]= ";
cin>>a[i];
}
cout<<"gia tri mang vua nhap la"<<"\n";
for(i=0;i<n;i++)
{
cout<<a[i]<<"\n";
}
max=a[0];
min=a[0];
for(i=0;i<n;i++)
{
if(a[i]>max)
max=a[i];
if(a[i]<min)
min=a[i];
}
cout<<"so lon nhat la "<<max<<"\n";
cout<<"so nho nhat la "<<min<<"\n";
}

5. Viết chương trình nhập vào chiều cao (h) và cân nặng (w) của một người nào đó. Sau đó hiển thị ra màn hình kết quả như sau:
+ Nếu w < h/ 2.5 thì thông báo là “you are thin”
+ Nếu h/ 2.5 <= w <= h/ 2.3 thì thông báo là “Your body is Average”
+ Nếu h/ 2.3 < w thì thông báo là “you are fat”
· #include<iostream>
· using namespace std;
· void main()
· {
· float w,h;
· cout<<"nhap vao chieu cao:";
· cin>>h;
· cout<<"nhap vao can nang:";
· cin>>w;
· if(w<h/2.5)
· {
· cout<<"you are thin";
· }
· if(w>=h/2.5 && w<=2.3)
· {
· cout<<"your body are average";
· }
· if(w>h/2.3)
· {
· cout<<"you are fat";
· }
· }
6. Viết chương trình in ra dãy số Fibonacci nhỏ hơn 3000. Số Fibonacci là số bằng tổng của 2 số trước nó bắt đầu từ f* 1 = f 2 = 1; f3 = 2; … fn = fn-2 + fn-1. (không sử dụng đệ qui).
#include<iostream>
using namespace std;
void main()
{
int n=3000,fi1=1,fi2=1,fi3=2;
cout<<"hien thi cac so fibonaci nho hon 3000"<<endl;
while(fi1+fi2<n)
{
fi3=fi1+fi2;
cout<<fi3<<"\t";
fi2=fi1;
fi1=fi3;
}
cout<<endl;
}

7. Thầy không send nên chúng nên cũng botay.com
8. Viết chương trình định nghĩa kiểu cấu trúc SOPHUC. Khai báo 2 biến cấu trúc số phức. nhập giá trị vào và hiển thị ra màn hình. Tính và hiển thị ra màn hình tổng, hiệu của 2 số phức đó.(không xây dựng hàm)
#include <iostream>
#include <cmath>
using namespace std;
struct sophuc
{
float thuc,ao;
};
sophuc tong(sophuc a,sophuc b)
{
sophuc c;
c.thuc=a.thuc+b.thuc;
c.ao=a.ao+b.ao;
return c;
}
sophuc hieu(sophuc a,sophuc b)
{
sophuc c;
c.thuc=a.thuc-b.thuc;
c.ao=a.ao-b.ao;
return c;
}
void xuat(sophuc a)
{
cout<<a.thuc<<" "<<a.ao<<endl;
}
int main()
{
sophuc a,b,c;
cout<<"Nhap he so phuc va so phuc cua A ";
cin>>a.thuc>>a.ao;
cout<<"Nhap he so phuc va so phuc cua B ";
cin>>b.thuc>>b.ao;
cout<<"Tong hai so phuc ";
c=tong(a,b);
xuat(c);
cout<<"Hieu hai so phuc ";
c=hieu(a,b);
xuat(c);
return 0;
}
9. Viết chương trình phân tích một số nguyên dương n được nhập vào từ bàn phím thành tích các số nguyên tố.
#include <iostream>
using namespace std;
void main ()
{
int i,n;
cout<<"Nhap n= ";
cin>>n;
if (n==0 || n==1)
{
cout<<"Khong the phan tich duoc";
}
for (i=2;i<=n;i++)
{
while (n%i==0)
{
cout<<i<<"\t";
n=n/i;
}
}
cout<<"\n";
}

10. Định nghĩa lớp hình tròn gồm các phương thức và thuộc tính cần thiết. khai báo, nhập giá trị vào cho một đối tượng hình tròn. Hiển thị ra màn hình chu vi và diện tích của nó.
#include<iostream>
using namespace std;
class hinh tron
{
double r;
public:
void nhap dl(double);
void chuvi()
{
cout<<"chu vi la:"<<2*3.14*r<<endl;
}
void dientich();
}
void hinhtron :: nhap dl(double x)
{
r=x;
}
void hinhtron :: dientich()
{
cout<<"dientich="<<r*r*3.14<<endl;
}
void main()
{
hinhtron h1;
double x;
cout<<"nhap ban kinh";
cin>>x;
h1.nhap dl(x);
h1.chuvi();
h1.dientich();
}
11. Khai báo mảng số thực kích thước mxn (m, n tương ứng là số hàng và số cột được nhập vào từ bàn phím). Nhập giá trị vào cho mảng và hiển thị ra màn hình dưới dạng ma trận. tính tổng giá trị các phần tử không âm có trong mảng.
#include<iostream>
using namespace std;
void main()
{
int a[100][100],i,j,m,n,tong;
cout<<"nhap so hang m= ";
cin>>m;
cout<<"nhap so cot n= ";
cin>>n;
cout<<"nhap gia tri cho mang"<<endl;
for(i=0;i<m;i++)
for(j=0;j<n;j++)
{
cout<<"a["<<i<<"]["<<j<<"]= ";
cin>>a[i][j];
}
cout<<"hien thi mang vua nhap dang ma tran"<<endl;
for(i=0;i<m;i++)
{
for(j=0;j<n;j++)
cout<<a[i][j]<<"\t";
cout<<endl;
}
tong=0;
for(i=0;i<m;i++)
for(j=0;j<n;j++)
if(a[i][j]>0)
tong=tong+a[i][j];
cout<<"tong cac so khong am trong mang la: "<<tong<<endl;
}

12. sử dụng con trỏ nhập vào một dãy n số nguyên. Hiển thị dãy vừa nhập ra màn hình. Hiển thị ra màn hình các phần tử âm có trong dãy cùng vị trí tương ứng của nó.
#include<iostream>
using namespace std;
void main()
{
int *p;
int n,i;
cout<<"nhap n so nguyen: ";
cin>>n;
p= new int[n];
for(i=0;i<n;i++)
{
cout<<"nhap vao so nguyen thu "<<i+1<<"= ";
cin>>*(p+i);
}
cout<<"hen thi cac phan tu am va vi tri cua chung"<<endl;
for(i=0;i<n;i++)
if(*(p+i)<0)
{
cout<<*(p+i)<<endl;
cout<<(p+i)<<endl;
}
}
13. viết chương trình giải và biện luận nghiệm của hệ phương trình bậc nhất 2 ẩn:
ax + by =c
a1x+b1y=c1
với các hệ số a, b, c, a1, b1, c1 được nhập vào từ bàn phím.
#include <iostream>
#include <conio.h>
using namespace std;
void main()
{
int a[3], b[3],*p,*q, dthuc;
int i;
float x, y;

cout<<endl<<"Nhap vao cac he so cua phuong trinh thu nhat: "<<endl;
for (i=0;i<=2;i++)
{
cout<<"He so thu : "<<i+1<<": ";
cin>>a[i];
}
cout<<endl<<endl<<"Nhap vao cac he so cua phuong trinh thu hai: "<<endl;
for (i=0;i<=2;i++)
{
cout<<"He so thu : "<<i+1<<": ";
cin>>b[i];
}
p=a;
q=b;

dthuc = (*q)*(*(p+1))-(*p)*(*(q+1));
if (dthuc != 0)
{
y = (float)((*q)*(*(p+2))-(*p)*(*(q+2)))/dthuc;
x = (float)((*(q+2))*(*(p+1))-(*(p+2))*(*(q+1)))/dthuc;
cout<<"Nghiem x = "<<x<<", y = "<<y;
}
else
cout<<endl<<"He phuong trinh vo ngiem.";

getch();
}

14. viết chương trình tính và hiển thị ra màn hình tích 1*2*3* …*n (với n nguyên dương được nhập vào từ bàn phím). Có kiểm tra điều kiện nhập để đảm bảo n nguyên dương.
#include<iostream>
using namespace std;
void main()
{
int i,n,t=1;
cout<<"nhap n= ";
cin>>n;
while(n<0)
{
cout<<"moi ban nhap lai n"<<"\n";
cout<<"n= ";
cin>>n;
}
for(i=1;i<=n;i++)
{
t*=i;
}
cout<<"tich cac so la"<<t<<"\n";
}

15. Viết chương trình nhập vào một số thuộc đoạn [2, 100]. Sau đó kiểm tra xem số vừa nhập có phải là số chính phương không. (biết rằng số chính phương là số bằng bình phương của một số khác như: 4=2*2)
#include<iostream>
#include<cmath>
#include<string>
using namespace std;
int ktra(int n)
{
int kt=0;
for(int i=1;i<=n;i++)
if((i*i)==n)
{
kt=1;
break;
}
return kt;
}

void main()
{
int x;
cout<<" Ut Shit Bi Khin "<<endl;
cout<<" Nhap x : ";
cin>>x;
while(x<2 || x>100)
{
cout<<" x thuoc [2,100] - Nhap Lai : ";
cin>>x;
}
if(ktra(x)==1)
cout<<x<<" la so chinh phuong !"<<endl;
else
cout<<x<<" khong la so chinh phuong !"<<endl;
}

nguoila
18-12-2011, 08:03 AM
bạn post bài vao thẻ code cho dê nhìn