0) Визначити, чи рік, введений з клавіатури є високосним.

Рік високосний, якщо він ділиться на 4, і при цьому не ділиться на 100 або якщо ділиться на 400.

#include <iostream>

using namespace std;

int main()

{

    setlocale(LC_ALL, "Ukrainian");

    int r;  

    cout << "Введіть рік: ";

    cin >> r;

    bool l;

    if ((r % 4==0) && (r % 100 !=0) || ( r % 400==0))

        l=true;

    else

        l=false;

if (l)

cout << "Рік високосний" << endl; 

    else

cout << "Рік високосний" << endl; 

    system("pause"); 

    return 0;

}



1) Чи коректна дата, введена з клавіатури?

#include <iostream>

using namespace std;

int main()

{

    setlocale(LC_ALL, "Ukrainian");

    int d,m,r;  

    cout << "Введіть число: ";

    cin >> d;

    cout << "Введіть місяць: ";

    cin >> m;

       cout << "Введіть рік: ";

    cin >> r;

    // визначаємо, чи рік є високосний: якщо він ділиться на 4, або не ділиться на 100 або ділиться на 400

       int l;

       if ((r % 4==0) && (r % 100 !=0) || ( r % 400==0))

             l=1;

       else

             l=0;

       bool correct=true;

    // перевіряємо місяці на 31 день

       if (((m==1) || (m==3) || (m==5) || (m==7) || (m==8) || (m==10) || (m==12)) && (d>31))

             correct=false;

    // перевіряємо місяці на 30 днів   

       if (((m==4) || (m==6) || (m==9) || (m==11)) && (d>30))

             correct=false;

       // перевіряємо лютий

       if ((m==2) && (l==1) && (d>29))

             correct=false;

       if ((m==2) && (l==0) && (d>28))

             correct=false;

       // виведення результату

       if (correct)

             cout << "Дата коректна" << endl; 

       else

             cout << "Дата некоректна" << endl; 

    system("pause"); 

    return 0;

}


Завдання: доповнити програму перевіркою введення неіснуючого місяця, а також від'ємних чисел)


2) Визначити завтрашню дату.

#include <iostream>

using namespace std;

int main()

{

    setlocale(LC_ALL, "Ukrainian");//відображення українських букв, "і" не працює

    int d,m,r; // оголошення змінних.

    cout << "Введіть число: ";

    cin >> d;

    cout << "Введіть місяць: ";

    cin >> m;

       cout << "Введіть рік: ";

    cin >> r;

    // визначаємо, чи рік є високосний: якщо він ділиться на 4, або не ділиться на 100 або ділиться на 400

       int l;

       if ((r % 4==0) && (r % 100 !=0) || ( r % 400==0))

             l=1;

       else

             l=0;

       bool EndOfMonth=false;

    // перевіряємо місяці на 31 день, крім грудня

       if (((m==1) || (m==3) || (m==5) || (m==7) || (m==8) || (m==10)) && (d==31))

             EndOfMonth =true;

       // перевіряємо місяці на 30 днів   

       if (((m==4) || (m==6) || (m==9) || (m==11)) && (d==30))

             EndOfMonth =true;

       // перевіряємо лютий

       if ((m==2) && (l==1) && (d==29))

             EndOfMonth =true;

       if ((m==2) && (l==0) && (d==28))

             EndOfMonth =true;

       // перевіряємо грудень

       if ((m==12) && (d==31))

{

                    d=1;

                    m=1;

                    r++;

             }

       else if (EndOfMonth)

             {

                    d=1;

                    m++;

             }

       else

             d++;

       // виведення результату

       cout << "Завтра буде " << d << "." << m << "." << r << endl;

    system("pause");

    return 0;

}


Завдання: визначити вчорашню дату.


3) Визначити, скільки днів пройшло від початку року.


#include <iostream>

using namespace std;

int main()

{

    setlocale(LC_ALL, "Ukrainian");//відображення українських букв, "і" не працює

    int d,m,r; // оголошення змінних.

    cout << "Введіть число: ";

    cin >> d;

    cout << "Введіть місяць: ";

    cin >> m;

       cout << "Введіть рік: ";

    cin >> r;

    // визначаємо, чи рік є високосний: якщо він ділиться на 4, або не ділиться на 100 або ділиться на 400

       int l;

       if ((r % 4==0) && (r % 100 !=0) || ( r % 400==0))

             l=1;

       else

             l=0;

       // залежно від того, який місяць введено, додаємо дні, що пройшли від початку року

       int k;

       switch (m)

       {

       case 1:

             k=d;

             break;

       case 2:

             k=d+31;

             break;

       case 3:

             k=d+31+28+l;

             break;

       case 4:

             k=d+31+28+l+31;

             break;

       case 5:

             k=d+31+28+l+31+30;

             break;

       case 6:

             k=d+31+28+l+31+30+31;

             break;

       case 7:

             k=d+31+28+l+31+30+31+30;

             break;

       case 8:

             k=d+31+28+l+31+30+31+31+31;      

             break;

       case 9:

             k=d+31+28+l+31+30+31+31+30+31;

             break;

       case 10:

             k=d+31+28+l+31+30+31+31+30+31+30;

             break;

       case 11:

             k=d+31+28+l+31+30+31+31+30+31+30+31;

             break;

       case 12:

             k=d+31+28+l+31+30+31+31+30+31+30+31+30;

             break;

       }

       // виведення результату

       cout << "Пройшло " << k << "днів" << endl;

    system("pause");

    return 0;

}


Завдання: визначити, скільки днів залишилось до кінця року


4) Визначити скільки днів пройшло між вказаними датами.


Біоритми

http://lyna.info/pravilnyj-algoritm-rascheta-bioritmov/

Остання зміна: Понеділок 15 вересня 2014 15:40 PM