Orar semigroup #2

Orar semigroup #2

10 decembrie - suma fractiilor, distanta dintre puncte, aria dreptunghiului

1) Se citeşte din fişier un număr n şi n linii, reprezentând datele a n elevi(nume, prenume, clasa, varsta, numar de note, note). Să se afişeze numele elevilor şi media lor în ordine descrescătoare e mediei.

#include<iostream>
#include<fstream>
using namespace std;

struct elev
{char nume[20],prenume[20],clasa[5];
unsigned int varsta, note[10],l;
float medie;
};

int main(){
    int n,i,j,s,k;
    ifstream f("date");
    elev e[100],aux;
    f>>n;

    for(i=0;i<n;i++){
        f>>e[i].nume;
        f>>e[i].prenume;
        f>>e[i].clasa;
        f>>e[i].varsta;
        f>>e[i].l;
        for(j=0;j<e[i].l;j++)
            f>>e[i].note[j];
    }
   
    for(i=0;i<n;i++){s=0;
        for(j=0;j<e[i].l;j++)
            s=s+e[i].note[j];
        e[i].medie=(float)s/e[i].l;
    }

for(i=0;i<n;i++)
    for(j=i+1;j<n;j++)
        if(e[i].medie<e[j].medie)
        {aux=e[i];
        e[i]=e[j];
        e[j]=aux;
        }

for(i=0;i<n;i++)
    cout<<e[i].nume<<" "<<e[i].prenume<<"  "<<e[i].medie<<endl;

return 0;
}

fisierul
4
Muresan Mihai XA 16 4 10 10 1 1
Vanea Sergiu XA 15 4 8 4 10 7
Dodel Radu XA 16 4 6 6 1 10
Tothazan Septimiu XA 15 5 5 5 5 5 5
2) Se citesc de la tastatură într-o structură numitorul şi număratorul a două fracţii. Să se compare fracţiile şi să se afişeze suma lor.
#include<iostream>
using namespace std;
struct fractie
{int x,y;};
int main()
{
fractie A,B,C;
cout<<"Numaratorul primei fractii"<<endl;
cin>>A.x;
cout<<"Numitorul primei fractii"<<endl;
cin>>A.y;
cout<<"Numaratorul celei de a doua fractii"<<endl;
cin>>B.x;
cout<<"Numaratorul celei de a doua fractii"<<endl;
cin>>B.y;
cout<<"Care este suma?"<<endl;
if(A.y==B.y)
{    C.x=A.x+B.x;
    C.y=A.y;
    cout<<C.x<<"/"<<C.y<<endl;
   
}
else {
C.x=A.x*B.y+B.x*A.y;
C.y=A.y*B.y;
cout<<C.x<<"/"<<C.y<<endl;
}
A.x=A.x*B.y;
B.x=B.x*A.y;
cout<<"Care este mai mare?"<<endl;
if(A.x>B.x)
    cout<<"Prima("<<A.x/B.y<<"/"<<A.y<<")";
else if(B.x>A.x)
    cout<<"A doua("<<B.x/A.y<<"/"<<B.y<<")";
else cout<<"=";
cout<<endl<<"Bine, Mihai! Ai un plus!";
}
3) Se citesc de la tastatură coordonatele a doua puncte în plan: x1,y1,x2,y2. Să se afişeze distanţa dintre puncte. Să se folosească o structură pentru fiecare punct.
#include<iostream>
#include<math.h>
using namespace std;
struct punct
{int x,y;};
int main ()
{ punct A,B;
cin>>A.x>>A.y;
cin>>B.x>>B.y;
cout<<sqrt((A.x-B.x)*(A.x-B.x)+(A.y-B.y)*(A.y-B.y));
}
4) Să se definească structura dreptunghi cu câmpurile Lungime, lăţime şi Suprafaţă. Să se citească de la tastatură lungimile şi lăţimile a două dreptunghiuri şi să se afişeze care are aria mai mare.
#include<iostream>
#include<math.h>
using namespace std;
struct dreptunghi
{int L,l,S;};
int main ()
{dreptunghi a,b;
cout<<"Primul"<<endl;
cin>>a.L>>a.l;
cout<<"Al doilea"<<endl;
cin>>b.L>>b.l;
a.S=a.L*a.l;
b.S=b.L*b.l;
if(a.S>b.S)
    cout<<"Primul ocupa o arie gigantica fata de primul";
else if (b.S>a.S)
    cout<<"Al doilea ocupa o arie gigantica fata de primul";
else cout<<"=";
}

joi, 9 decembrie 2010 by DlMuresan
Categories: , , , , , , | Leave a comment

Leave a Reply