Giúp dùm mình về mấy bài tập C++

Thảo luận trong 'Hỏi đáp chung' bắt đầu bởi thuylinh, 3 Tháng mười một 2011.

  1. Offline

    thuylinh

    • Thành Viên Mới

    • Nếu không phải là em thì anh sống sao?
    Số bài viết:
    10
    Đã được thích:
    1
    Điểm thành tích:
    0
    Chào mọi người.
    Tình hình là vừa rồi cũng hơi nghỉ nhiều nên môn C++ em cũng không hiểu cho lắm. Mà chính xác là học C++ em đã không hiểu gì rồi nên bài tập môn C++ em không thể làm được.
    Vậy các pro ai có thể làm được vui lòng làm giúp em mấy bài tập C++ được không ạ.


    *Tính số ngày đã qua kể từ đầu năm cho đến ngày hiện tại. Quy ước ngày được khai báo dưới dạng cấu trúc.
    *Nhập một ngày tháng năm dưới dang cấu trúc. Tính chính xác (kể cả năm nhuận) số ngày đã qua bắt đầu từ ngày 1/ 1/ 1 đến ngày vừa nhập.
    *Khai báo ngày tháng năm theo kiểu cấu trúc. Viết chương trình tính khoảng cách (số ngày) giữa 2 tháng bất kỳ.
    *Viết chương trình nhập vào một ngày tháng năm bất kỳ. Xuất ra màn hình ngày đó là thứ mấy nếu ta xem ngày 1/ 1/ 1 là thứ 2.
    *Viết chương trình nhập vào 2 ngày nào đó của tháng bất kỳ của năm bất kỳ. Tính và hiển thị ra màn hình khoảng cách giữa 2 ngày đó là bao nhiêu ngày.
    *Cho số phức dưới dạng cấu trúc gồm có 2 phần là phần thực và phần ảo. Viết chương trình nhập vào 2 số phức bất kỳ. Tính và xuất ra màn hình kết quả tổng, hiệu, tích, thương của chúng.
    *Cho phân số dưới dạng cấu trúc gồm 2 phần là tử số và mẫu số. Viết chương trình nhập vào 2 phân số. Tính và hiển thị ra màn hình tổng, hiệu, tích, thương của chúng sau khi đã rút gọn.

    Các pro giúp em với.
    P/S: các bài tập trên là bài tập trong chương 5 phần Kiểu Con Trỏ Và Kiểu Cấu Trúc

    Thanks!
  2. Offline

    carokhoto_vt3a

    • Windows 1.0

    Số bài viết:
    17
    Đã được thích:
    16
    Điểm thành tích:
    10
    hj mình k có pro đâu. mình cho bạn xin vài code mà mình thực hành trên lớp. bạn xem mà k hiểu chổ nào có thể liên hệ với mình, mình sẽ giải thích.hj.mà trong code của mình có lời giải thích nữa đó.
    bài dưới đây là tình số ngày đã qua kể từ ngày 1/1/1 (tính toán cả năm nhuận)
    [NOTE]#include<iostream>
    using namespace std;
    void main()
    {
    int i,sg=0,n;
    struct ngaythang
    {
    unsigned int ngay;
    unsigned int thang;
    unsigned int nam;
    };
    ngaythang ngay_hien_tai;
    cout<<"moi nhap ngay hien tai"<<endl;
    cout<<" ngay";cin>>ngay_hien_tai.ngay;
    cout<<" thang";cin>>ngay_hien_tai.thang;
    cout<<" nam";cin>>ngay_hien_tai.nam;
    cout<<"hoom nay la ngay "<<ngay_hien_tai.ngay<<" thang"<<ngay_hien_tai.thang<<" nam "<< ngay_hien_tai.nam<<endl;
    n=ngay_hien_tai.thang-1;
    for(i=1;i<=n;i++)
    {
    if(i==1||i==3||i==5||i==7||i==8||i==10||i==12)
    sg=sg+31;
    else
    {
    if(i==4||i==6||i==9||i==11)
    sg=sg+30;
    else
    {
    if(ngay_hien_tai.nam%4==0)
    sg+=29;
    else
    sg+=28;
    }
    }
    }
    sg=sg+ngay_hien_tai.ngay-1;
    for(i=1;i<ngay_hien_tai.nam;i++)
    if(i%4==0)
    sg+=366;
    else
    sg+=365;
    cout<<"so ngay da qua tu ngay 1/1/1 den ngay "<<ngay_hien_tai.ngay<<"/"<<ngay_hien_tai.thang<<"/"<<ngay_hien_tai.nam<<"la: "<<sg<<" ngay"<<endl;
    }

    [/NOTE]
    bài đây là tính số ngày đã qua kể tù ngày 1/1 cùng năm.hj
    [WARNING]#include<iostream>
    using namespace std;
    void main()
    {
    int i,sg=0,n;
    struct ngaythang
    {
    unsigned int ngay;
    unsigned int thang;
    unsigned int nam;
    };
    ngaythang ngay_hien_tai;
    cout<<"moi nhap ngay hien tai"<<endl;
    cout<<" ngay";cin>>ngay_hien_tai.ngay;
    cout<<" thang";cin>>ngay_hien_tai.thang;
    cout<<" nam";cin>>ngay_hien_tai.nam;
    cout<<"hoom nay la ngay "<<ngay_hien_tai.ngay<<" thang"<<ngay_hien_tai.thang<<" nam "<< ngay_hien_tai.nam<<endl;
    n=ngay_hien_tai.thang-1;
    for(i=1;i<=n;i++)
    {
    if(i==1||i==3||i==5||i==7||i==8||i==10||i==12) //switch(i)
    sg=sg+31; //{
    else //case 1:case 3:case 5:case 7:case 8:case 10:case 12:sg+=31;break;
    { //case 4:case 6:case 9:case 11:sg+=30;break;
    if(i==4||i==6||i==9||i==11) //case 2:tu lam
    sg=sg+30;
    else
    {
    if(ngay_hien_tai.nam%4==0)
    sg+=29;
    else
    sg+=28;
    }
    }
    }
    sg=sg+ngay_hien_tai.ngay-1;
    for(i=1;i<ngay_hien_tai.nam;i++)
    if(i%4==0)
    sg+=366;
    else
    sg+=365;
    cout<<"so ngay da qua tu ngay 1/1/1 den ngay "<<ngay_hien_tai.ngay<<"/"<<ngay_hien_tai.thang<<"/"<<ngay_hien_tai.nam<<"la: "<<sg<<" ngay"<<endl;
    }

    [/WARNING]
    còn số bài còn lại có thể liên hệ tới gmail của lớp mình.
    thanks!
    TheDeath, Le_Duan, zinzu.vh3 người khác thích bài này.
  3. Offline

    thuylinh

    • Thành Viên Mới

    • Nếu không phải là em thì anh sống sao?
    Số bài viết:
    10
    Đã được thích:
    1
    Điểm thành tích:
    0
    bạn có thể cho mình xin gmail của lớp bạn được không?
  4. Offline

    lyvinhr00m

    • cụ lý

    Số bài viết:
    1.234
    Đã được thích:
    930
    Điểm thành tích:
    900
    Share mấy bài đã làm khi trước, chủ yếu tham khảo để làm các bài khác

    1.Phân số :

    Mã:
    #include <iostream>
    using namespace std;
    struct	phanso
    		{
    			int tu;
    			int mau;
    		};
    //Tim uoc chung lon nhat 2 so
    int ucln(int a, int b)
    {
    	int i,uc;
    	for (i=1;i<=a;i++)
    		{
    		if (a%i==0&&b%i==0) uc=i;
    		}
    	return uc;
    };
    //Cong 2 phan so;
    phanso cong(phanso a, phanso b)
    {
    	phanso c;
    	c.tu=a.tu*b.mau+a.mau*b.tu;
    	c.mau=a.mau*b.mau;
    	return c;
    }
    //Tru 2 phan so
    phanso tru(phanso a, phanso b)
    {
    	phanso c;
    	c.tu=a.tu*b.mau-a.mau*b.tu;
    	c.mau=a.mau*b.mau;
    	return c;
    }
    //Nhan 2 phan so
    phanso nhan(phanso a, phanso b)
    {
    	phanso c;
    	c.tu=a.tu*b.tu;
    	c.mau=a.mau*b.mau;
    	return c;
    }
    //Chia 2 phan so
    phanso chia(phanso a, phanso b)
    {
    	phanso c;
    	c.tu=a.tu*b.mau;
    	c.mau=a.mau*b.tu;
    	return c;
    }
    void main()
    {
    	phanso a,b,c;
    	char pheptoan;
    	int uoc_max;
    //Nhap phan so thu nhat
    	cout<<"Nhap phan so thu 1..."<<endl;
    	cout<<"Tu so : "; cin>>a.tu;
    	do
    	{
    		if(a.mau==0) cout<<"\n Mau so phai #0";
    		cout<<"\n Mau so : "; cin>>a.mau;
    	}
    	while(a.mau==0);
    	cout<<endl;
    //Nhap phan so thu 2
    	cout<<"Nhap phan so thu 2..."<<endl;
    	cout<<"Tu so : "; cin>>b.tu;
    	do
    	{
    		if(b.mau==0) cout<<"\n Mau so phai #0";
    		cout<<"\n Mau so : "; cin>>b.mau;
    	}
    	while(b.mau==0);
    	cout<<endl;
    //Lua chon phep toan
    	cout<<"Lua chon phep toan (+,-,*,/).- Nhap 'e' de thoat.."<<endl;
    	cin>>pheptoan;
    	switch (pheptoan)
    	{
    		case '+':
    			c=cong(a,b);
    			break;
    		case '-':
    			c=tru(a,b);
    			break;
    		case '*':
    			c=nhan(a,b);
    			break;
    		case '/':
    			c=chia(a,b);
    			break;
    		default:
    			break;
    	}
    //Toi gian phan so
    	uoc_max=ucln(c.tu, c.mau);
    	c.tu=c.tu/uoc_max;
    	c.mau=c.mau/uoc_max;
    //Xuat ket qua
    	cout<<endl;
    	cout<<a.tu<<"/"<<a.mau<<" "<<pheptoan<<" "<<b.tu<<"/"<<b.mau<<" = "<<a.tu<<"/"<<c.mau<<endl; 
    }
    2. Số phức:

    Mã:
    #include <iostream>
    using namespace std;
    struct sophuc
    {
    	int thuc,ao;
    };
    void tong(sophuc a, sophuc b)
    {
    	sophuc tg;
    	tg.thuc=a.thuc + b.thuc;
    	tg.ao= a.ao+b.ao;
    	cout<<"Tong la:("<<tg.thuc<<","<<tg.ao<<")";
    }
    void hieu(sophuc a, sophuc b)
    {
    	sophuc tg;
    	tg.thuc=a.thuc-b.thuc;
    	tg.ao=a.ao-b.ao;
    	cout<<"Hieu 2 so phuc: ("<<tg.thuc<<","<<tg.ao<<")";
    }
    void tich(sophuc a, sophuc b)
    {
    	sophuc tg;
    	tg.thuc=a.thuc * b.thuc;
    	tg.ao= a.ao * b.ao;
    	cout<<"Tich la:("<<tg.thuc<<","<<tg.ao<<")";
    }
    
    void thuong(sophuc a,sophuc b)
    {
    	sophuc tg;
    	int tongbp=b.thuc*b.thuc+b.ao*b.ao;
    	tg.thuc=(a.thuc*a.ao+b.thuc*b.ao)/tongbp;
    	tg.ao=(a.ao*b.thuc-a.thuc*b.ao)/tongbp;
    	cout<<"Thuong 2 so phuc : ("<<tg.thuc<<","<<tg.ao<<")";
    }
    void main()
    {
    	sophuc sp1,sp2;
    	cout<<"Nhap gia tri so phuc";
    	cout<<"So phuc thu 1:"<<endl;
    	cout<<"thuc";
    	cin>>sp1.thuc;
    	cout<<"ao";
    	cin>>sp1.ao;
    	cout<<"So phuc thu 2:"<<endl;
    	cout<<"thuc";
    	cin>>sp2.thuc;
    	cout<<"ao";
    	cin>>sp2.ao;
    	tong(sp1,sp2);
    	cout<<endl;
    	hieu(sp1,sp2);
    	cout<<endl;
    	tich(sp1, sp2);
    	cout<<endl;
    	thuong(sp1, sp1);
    	
    }
    

    3. Danh sách sinh viên (struct)

    Mã:
    #include <iostream>
    #include <string>
    using namespace std;
    struct sinhvien
    {
    	char ten[50];
    	int tuoi;
    	char diachi[100];
    };
    sinhvien sv[50];
    int n;
    void nhap(sinhvien &sv)
    {
    	cin.ignore();
    	cout<<"Ho ten..."; cin.getline(sv.ten,50);
    	cout<<"Tuoi ..."; cin>>sv.tuoi;
    	cin.ignore();
    	cout<<"Dia chi..."; cin.getline(sv.diachi,100);
    	cout<<endl;
    };
    void xuat(sinhvien sv)
    {
    	cout<<sv.ten<<"\t"<<sv.tuoi<<"\t"<<sv.diachi;
    };
    void hoanvi(sinhvien a[1],sinhvien b[1])
    {
        sinhvien tmp[1];
        tmp[0]=a[0];
        a[0]=b[0];
        b[0]=tmp[0];
    };
    void sapxep()
    {
        for(int i=0; i<n-1; i++)
            for(int j=i+1; j<n; j++)
                if(strcmp(sv[i].ten,sv[j].ten)>0)
    				hoanvi(&sv[i],&sv[j]);
    		return;
    };
    void main()
    {
    
    	int n,i;
    	sinhvien sv[50];
    	cout<<"Nhap so luong sinh vien...";
    	cin>>n;
    	cout<<"Nhap thong tin sinh vien";
    	for(i=0;i<n;i++)
    		nhap(sv[i]);
    	cout<<"DS sinh vien da nhap..."<<endl;
    	for(i=0;i<n;i++)
    	{
    		xuat(sv[i]);
    		cout<<endl;
    	}
    	sapxep();
    	cout<<"Danh sach sinh vien da sap xep"<<endl;
    	for(i=0;i<n;i++)
    	{
    		xuat(sv[i]);
    		cout<<endl;
    	}
    }
    4. Con trỏ - mảng số nguyên:

    Mã:
    #include <iostream>
    using namespace std;
    //Ham nhap
    void nhap(int **p, int n)
    {
    	int i;int *q;
    	q=new int[n];
    	for(i=0;i<n;i++)
    		cin>>*(q+i);
    	*p=q;
    };
    //Ham xuat
    void xuat(int *p, int n)
    {
    	for(int i=0;i<n;i++)
    		cout<<*(p+i)<<"\t";
    };
    //Xoa 1 phan tu
    void xoa(int *p, int &n,int k)
    {
    	for(int i=k-1; i<n;i++)
    		*(p+i)=*(p+i+1);
    		n--;
    };
    //Them 1 phan tu
    void chen(int *p, int &n, int x, int v)
    {
    	for(int i=n;i>v-1;i--)
    		*(p+i)=*(p+i-1);
    		*(p+v-1)=x;
    		n++;
    };
    //Ham sap xep
    void sapxep(int *p, int n)
    {
    	for(int i=0;i<n-1;i++)
    		for(int j=i+1;j<n;j++)
    			if(*(p+i)>*(p+j))
    			{
    				int temp=*(p+i);
    				*(p+i)=*(p+j);
    				*(p+j)=temp;
    
    			}
    };
    void max_min(int *p, int n)
    {
    	int max=*(p+0);
    	int min=*(p+0);
    	for(int i=0;i<n;i++)
    	{
    		if(max<*(p+i)) max=*(p+i);
    		if(min>*(p+i)) min=*(p+i);
    	}
    	cout<<"Max = "<<max<<endl;
    	cout<<"Min = "<<min<<endl;
    }
    void main()
    {
    	int n,*p,k,v,x;
    	
    	//Nhap
    	cout<<"Nhap so phan tu day(n)"<<endl;
    	cin>>n;
    	p=new int [n];
    	cout<<"Nhap gia tri phan tu"<<endl;
    	nhap(&p,n);
    	cout<<"Day sau khi nhap"<<endl;
    	xuat(p,n);
    	cout<<endl;
    	//Max- min
    	max_min(p,n);
    	cout<<endl;
    	//Xoa
    	cout<<"Nhap vi tri can xoa..."; cin>>k;
    	xoa(p,n,k);
    	cout<<"Day sau khi xoa"<<endl;
    	xuat(p,n);
    	cout<<endl;
    	//Them
    	cout<<"Nhap vi tri can chen"; cin>>v;
    	cout<<"\n Nhap gia tri can chen"; cin>>x;
    	chen(p,n,x,v);
    	cout<<"\n Day sau khi chen"<<endl;
    	xuat(p,n);
    	sapxep(p,n);
    	cout<<"\n Day sua khi sap xep"<<endl;
    	xuat(p,n);
    
    }
    TheDeathTập Sống Ích Kỷ thích bài này.
  5. Offline

    Tập Sống Ích Kỷ

    • Thành Viên Mới

    Số bài viết:
    13
    Đã được thích:
    5
    Điểm thành tích:
    0
    cám ơn
    mình cũng học rất ngu môn C++ này
  6. Offline

    carokhoto_vt3a

    • Windows 1.0

    Số bài viết:
    17
    Đã được thích:
    16
    Điểm thành tích:
    10
    t đã cho bạn địa chỉ và pass rồi đó.
    một số bài mình làm rồi mà chưa coppy vào usb nên vẫn còn trong máy trường.để tuần sau học mình sẽ chia sẽ cho,
    trong gmail có tất cả các bài mình làm có ghi bài và chương nên dễ biết đề.
    thanks!
    Special one thích bài này.
  7. Offline

    TheDeath

    • Windows NT

    Số bài viết:
    304
    Đã được thích:
    71
    Điểm thành tích:
    60
    Cấu trúc , ta gét nhất trong C++

Chia sẻ trang này

Advertising: Linux system admin | nukeviet | nukeviet 4 | Upload ảnh miễn phí