Informatică, întrebare adresată de ap449989, 9 ani în urmă

Bunaa!!Am test maine la informatica din c++ din niste probleme si chiar nu ma pricep....ma puteti ajuta,va rog?. Multumesc anticipat!

1.Se citesc de la tastatura doua intervale de timp exprimate in ore,minute si secunde.Sa se calculeze si sa se afiseze suma celor 2 intervale de timp.

2.Se citeste de la tastatura o data calendaristica exprimata in zi,luna si an.se mai citeste di un numar n de zile (indicatie:se va folosi un vector cu 12 elemente in care se va memora fiecare element numarul de zile din luna corespunzatoare pozitiei din vector,prima luna fiind ianuarie)

3.Se citesc de la tastatura 2 date calendaristice.Sa se afiseze care data este mai recenta si diferenta de zile dintr e cele 2 date.

Răspunsuri la întrebare

Răspuns de artur99
4
1. La 1, aduni ora cu ora și minutul cu minutul. Apoi, fiind posibilitatea ca suma minutelor să treacă de 60, pui o condiție, și rezolvi.
ora = ora1+ora2;
min = min1+min2;

if(min>=60){
   min = min - 60;
   ora = ora + 1;
}

2 și 3. 
Aici cred că avem nevoie de același vector:
cin>>zi>>luna>>an;
cin>>n;
v[1] = 31;
if((an % 4 == 0) && !(an % 100 == 0)|| (an % 400 == 0))
    v[2] = 29; //an bisect
else
    v[2] = 28; //an nebisect
v[3] = 31;
v[4] = 30;
v[5] = 31;
v[6] = 30;
v[7] = 31;
v[8] = 31;
v[9] = 30;
v[10] = 31;
v[11] = 30;
v[12] = 31;


//ok, acum adăugăm zilele:

zi = zi + n;

//acum facem scăderile de rigoare
//Adică pentru cazul în care numărul de zile adăugate
//ar fi trecut peste limita de lună
while(zi > v[luna]){
    zi = zi - v[luna];  //scadem zilele din luna curentă
    luna = luna + 1;  //și trecem la luna următoare
    if(luna > 12){    //Dacă cumva luna următoare ar fi 13,
                            //trebuie să o resetăm la 1
        luna = 1;
        an = an + 1;    //Și creștem anul, pentru că am trecut la următorul.
    }
}




3.
cin>>zi1>>luna1>>an1;
cin>>zi2>>luna2>>an2;

if(
    an1 > an2 ||
    an1 == an2 && luna1 > luna2 ||
    an1 == an2 && luna1 == luna2 && zi1 > zi1
){
    cout<<"prima data este mai mare";
}else if(an1 == an2 && luna1 == luna2 && zi1 == zi1){
    cout<<"datele sunt egale";
}else{
    cout<<"a doua data este mai mare";
}

artur99: Ultima parte n-am mai reușit să o fac. N-am nicio idee acum. :(
Alte întrebări interesante