Вписване в сайта



съставно условие

Събота, 24 Юли 2010 01:31

съставно логическо условие - следваща дата

Написана от 
Оценете
(3 гласа)

Условие

Високосни години са всички години кратни на 4 с изключения столетията, но без столетия кратни на 400, т.е. 1900 не е високосна, но 1600 и 2000 са високосни.
Съставете програма, която по въведен ден, месец, година отпечатва следващата дата.
Използвайте съставно логическо условие.
Входни данни: естествени числа за ден, месец, година.
Пример: 28, 2, 2000 Изход: 1,3,2000

Решение

 #include <iostream>
using namespace std;
int main()
{int kr_den,den,mesec,godina;//deklarirane na promenliwi
cout<<"Kakto znaete wisokosni godini sa wsichki godini kratni na 4 s \n";
cout<<"izklucheniq stoletiqta, bez stoletiq kratni na 400, \n";
cout<<"t.e. 1900 ne e wisokosna, no 1600 i 2000 sa wisokosni. \n";
cout<<"Ssystawete programa, koqto po wyweden den, mesec, godina \n";
cout<<"otpechatwa sledwashata data. \n";
cout<<"Whodni danni: estestweni chisla za den, mesec, godina. \n";
cout<<"Primer: 31,12,2000 Ihod 1,1,2001 \n";
cout<<"Wywedete estestweno chislo za den [1..31]: ";cin>>den;
cout<<"Wywedete estestweno chislo za mesec [1..12]: ";cin>>mesec;
cout<<"Wywedete estestweno chislo za godina [1000..3000]: ";cin>>godina;
if (mesec==2) //dali II mesec ima 28 ili 29 dena
 { if(
      ((godina % 4 == 0) && (godina % 100 != 0)) ||
       (godina % 400 == 0))   {kr_den=29;}
   //ako godinata se deli na 4, no ne e stoletie ili kratna na 400
  else {kr_den=28;}
 }//kraj prowerka za fewruari
 else if((mesec==4)|| (mesec==6) || (mesec==9) || (mesec==11))
     {kr_den=30; } //april,iuni,septemwri, noemwri
     else {kr_den=31; }
//kraj prowerka za maksimalen broj dni w meseca
if (den<kr_den) den++;//ako wywedeniq den e<ot maksimalniq broj dni w meseca
else {   den=1; //ako e bil posledniq den stawa 1 den ot nowiq mesec
    if (mesec<12) mesec++;
    else{mesec=1; godina++;} //ako e dekemwri stawa qnuari sledwasha godina
}//kraj tyrsene na sledwasha data
  cout<<"Sledwasha data: den: "<<den<<", mesec "<<mesec<<", godina "<<godina<<endl;
system("pause");
  return 0; //oswobovdawa zaetite sistemni resursi
} //kraj na programa systawno uslowie - if

Прочетена 2204 пъти Последно променена в Вторник, 07 Декември 2010 14:09