#include <iostream> // Включить заголовочный файл "iostream". Это библиотечный файл встроенной (стандартной) библиотеки C++ а заголовочные файлы стандартной библиотеки решили называть без расширения .h . Но пользовательские заголовочные файлы принято называть с расширением .h (header - заголовок) или реже .hpp .
int main( ) { // main - главный. Эта функция должн присутствовать в каждой программе. С нее начинается выполнение программы. (На самом деле нет потому что сначала создаются глобальные и статические экземпляры и вызываются их конструкторы но это ты узнаешь скоро).
std:: cout << "What's your name?\n " ; // std:: - область имен стандартной (встроенной) библиотеки. Чтобы имена библиотеки не пересекались с именами пользовательскими в С++ придумали области имен - namespace. Тоже скоро узнаешь. cout - глобальная переменная которую завели в библиотеке - сокращенно от console output - консольный вывод (текста).
std:: string name; // string - класс "строка" для работы со строками. name - имя - моя переменная типа std::string.
std:: cin >> name; // cin - console input - консольный ввод. >> - оператор (функция) чтения с консоли. Здесь читаю с консоли текст и сохраняю его в переменную name. Еще можно читать числа. В зависимости от того в какую переменную читаешь (текст или число) cin пытается распознать в веденной строке текст или число. Это называется форматированный ввод. Кстати это overload - перегрузка функции operator>>(). В зависимости от типа параметра (строка или число) вызывается подходящий >>.
if ( name.empty ( ) ) { // empty() - пустой. Метод класса std::string. Возвращает true (истина) если строка (экземпляр) пустая или false (ложь) если строка не пустая. Так я узнаю удалось ли опепратору >> прочитать с консоли текст. if - если - оператор условия. Если условие в скобочках выполняется то выполняется то что далее в фигурных скобочках {}.
std:: cout << "OK sorry.\n " ;
}
else { // else - иначе. Выполняется если условие в if не выполнилось т.е. здесь если строка не пустая.
std:: cout << "Hi " << name << "! Nice to meet you!\n " ;
}
return 0 ; // return - вернуть. Вернуться из функции с таким-то значением (или без если return без значения). У нас main как написано в начале возвращает int поэтому чтобы не нарушить стек мы должны вернуть int. Компилятор проследит за этим (за редким исключением когда это невозможно но это потом).
}
I2luY2x1ZGUgPGlvc3RyZWFtPiAvLyDQktC60LvRjtGH0LjRgtGMINC30LDQs9C+0LvQvtCy0L7Rh9C90YvQuSDRhNCw0LnQuyAiaW9zdHJlYW0iLiDQrdGC0L4g0LHQuNCx0LvQuNC+0YLQtdGH0L3Ri9C5INGE0LDQudC7INCy0YHRgtGA0L7QtdC90L3QvtC5ICjRgdGC0LDQvdC00LDRgNGC0L3QvtC5KSDQsdC40LHQu9C40L7RgtC10LrQuCBDKysg0LAg0LfQsNCz0L7Qu9C+0LLQvtGH0L3Ri9C1INGE0LDQudC70Ysg0YHRgtCw0L3QtNCw0YDRgtC90L7QuSDQsdC40LHQu9C40L7RgtC10LrQuCDRgNC10YjQuNC70Lgg0L3QsNC30YvQstCw0YLRjCDQsdC10Lcg0YDQsNGB0YjQuNGA0LXQvdC40Y8gLmggLiDQndC+INC/0L7Qu9GM0LfQvtCy0LDRgtC10LvRjNGB0LrQuNC1INC30LDQs9C+0LvQvtCy0L7Rh9C90YvQtSDRhNCw0LnQu9GLINC/0YDQuNC90Y/RgtC+INC90LDQt9GL0LLQsNGC0Ywg0YEg0YDQsNGB0YjQuNGA0LXQvdC40LXQvCAuaCAoaGVhZGVyIC0g0LfQsNCz0L7Qu9C+0LLQvtC6KSDQuNC70Lgg0YDQtdC20LUgLmhwcCAuCgppbnQgbWFpbigpIHsgLy8gbWFpbiAtINCz0LvQsNCy0L3Ri9C5LiDQrdGC0LAg0YTRg9C90LrRhtC40Y8g0LTQvtC70LbQvSDQv9GA0LjRgdGD0YLRgdGC0LLQvtCy0LDRgtGMINCyINC60LDQttC00L7QuSDQv9GA0L7Qs9GA0LDQvNC80LUuINChINC90LXQtSDQvdCw0YfQuNC90LDQtdGC0YHRjyDQstGL0L/QvtC70L3QtdC90LjQtSDQv9GA0L7Qs9GA0LDQvNC80YsuICjQndCwINGB0LDQvNC+0Lwg0LTQtdC70LUg0L3QtdGCINC/0L7RgtC+0LzRgyDRh9GC0L4g0YHQvdCw0YfQsNC70LAg0YHQvtC30LTQsNGO0YLRgdGPINCz0LvQvtCx0LDQu9GM0L3Ri9C1INC4INGB0YLQsNGC0LjRh9C10YHQutC40LUg0Y3QutC30LXQvNC/0LvRj9GA0Ysg0Lgg0LLRi9C30YvQstCw0Y7RgtGB0Y8g0LjRhSDQutC+0L3RgdGC0YDRg9C60YLQvtGA0Ysg0L3QviDRjdGC0L4g0YLRiyDRg9C30L3QsNC10YjRjCDRgdC60L7RgNC+KS4KCXN0ZDo6Y291dCA8PCAiV2hhdCdzIHlvdXIgbmFtZT9cbiI7IC8vIHN0ZDo6IC0g0L7QsdC70LDRgdGC0Ywg0LjQvNC10L0g0YHRgtCw0L3QtNCw0YDRgtC90L7QuSAo0LLRgdGC0YDQvtC10L3QvdC+0LkpINCx0LjQsdC70LjQvtGC0LXQutC4LiDQp9GC0L7QsdGLINC40LzQtdC90LAg0LHQuNCx0LvQuNC+0YLQtdC60Lgg0L3QtSDQv9C10YDQtdGB0LXQutCw0LvQuNGB0Ywg0YEg0LjQvNC10L3QsNC80Lgg0L/QvtC70YzQt9C+0LLQsNGC0LXQu9GM0YHQutC40LzQuCDQsiDQoSsrINC/0YDQuNC00YPQvNCw0LvQuCDQvtCx0LvQsNGB0YLQuCDQuNC80LXQvSAtIG5hbWVzcGFjZS4g0KLQvtC20LUg0YHQutC+0YDQviDRg9C30L3QsNC10YjRjC4gY291dCAtINCz0LvQvtCx0LDQu9GM0L3QsNGPINC/0LXRgNC10LzQtdC90L3QsNGPINC60L7RgtC+0YDRg9GOINC30LDQstC10LvQuCDQsiDQsdC40LHQu9C40L7RgtC10LrQtSAtINGB0L7QutGA0LDRidC10L3QvdC+INC+0YIgY29uc29sZSBvdXRwdXQgLSDQutC+0L3RgdC+0LvRjNC90YvQuSDQstGL0LLQvtC0ICjRgtC10LrRgdGC0LApLgoJc3RkOjpzdHJpbmcgbmFtZTsgLy8gc3RyaW5nIC0g0LrQu9Cw0YHRgSAi0YHRgtGA0L7QutCwIiDQtNC70Y8g0YDQsNCx0L7RgtGLINGB0L4g0YHRgtGA0L7QutCw0LzQuC4gbmFtZSAtINC40LzRjyAtINC80L7RjyDQv9C10YDQtdC80LXQvdC90LDRjyDRgtC40L/QsCBzdGQ6OnN0cmluZy4KCXN0ZDo6Y2luID4+IG5hbWU7IC8vIGNpbiAtIGNvbnNvbGUgaW5wdXQgLSDQutC+0L3RgdC+0LvRjNC90YvQuSDQstCy0L7QtC4gPj4gLSDQvtC/0LXRgNCw0YLQvtGAICjRhNGD0L3QutGG0LjRjykg0YfRgtC10L3QuNGPINGBINC60L7QvdGB0L7Qu9C4LiDQl9C00LXRgdGMINGH0LjRgtCw0Y4g0YEg0LrQvtC90YHQvtC70Lgg0YLQtdC60YHRgiDQuCDRgdC+0YXRgNCw0L3Rj9GOINC10LPQviDQsiDQv9C10YDQtdC80LXQvdC90YPRjiBuYW1lLiDQldGJ0LUg0LzQvtC20L3QviDRh9C40YLQsNGC0Ywg0YfQuNGB0LvQsC4g0JIg0LfQsNCy0LjRgdC40LzQvtGB0YLQuCDQvtGCINGC0L7Qs9C+INCyINC60LDQutGD0Y4g0L/QtdGA0LXQvNC10L3QvdGD0Y4g0YfQuNGC0LDQtdGI0YwgKNGC0LXQutGB0YIg0LjQu9C4INGH0LjRgdC70L4pIGNpbiDQv9GL0YLQsNC10YLRgdGPINGA0LDRgdC/0L7Qt9C90LDRgtGMINCyINCy0LXQtNC10L3QvdC+0Lkg0YHRgtGA0L7QutC1INGC0LXQutGB0YIg0LjQu9C4INGH0LjRgdC70L4uINCt0YLQviDQvdCw0LfRi9Cy0LDQtdGC0YHRjyDRhNC+0YDQvNCw0YLQuNGA0L7QstCw0L3QvdGL0Lkg0LLQstC+0LQuINCa0YHRgtCw0YLQuCDRjdGC0L4gb3ZlcmxvYWQgLSDQv9C10YDQtdCz0YDRg9C30LrQsCDRhNGD0L3QutGG0LjQuCBvcGVyYXRvcj4+KCkuINCSINC30LDQstC40YHQuNC80L7RgdGC0Lgg0L7RgiDRgtC40L/QsCDQv9Cw0YDQsNC80LXRgtGA0LAgKNGB0YLRgNC+0LrQsCDQuNC70Lgg0YfQuNGB0LvQvikg0LLRi9C30YvQstCw0LXRgtGB0Y8g0L/QvtC00YXQvtC00Y/RidC40LkgPj4uCglpZihuYW1lLmVtcHR5KCkpIHsgLy8gZW1wdHkoKSAtINC/0YPRgdGC0L7QuS4g0JzQtdGC0L7QtCDQutC70LDRgdGB0LAgc3RkOjpzdHJpbmcuINCS0L7Qt9Cy0YDQsNGJ0LDQtdGCIHRydWUgKNC40YHRgtC40L3QsCkg0LXRgdC70Lgg0YHRgtGA0L7QutCwICjRjdC60LfQtdC80L/Qu9GP0YApINC/0YPRgdGC0LDRjyDQuNC70LggZmFsc2UgKNC70L7QttGMKSDQtdGB0LvQuCDRgdGC0YDQvtC60LAg0L3QtSDQv9GD0YHRgtCw0Y8uINCi0LDQuiDRjyDRg9C30L3QsNGOINGD0LTQsNC70L7RgdGMINC70Lgg0L7Qv9C10L/RgNCw0YLQvtGA0YMgPj4g0L/RgNC+0YfQuNGC0LDRgtGMINGBINC60L7QvdGB0L7Qu9C4INGC0LXQutGB0YIuIGlmIC0g0LXRgdC70LggLSDQvtC/0LXRgNCw0YLQvtGAINGD0YHQu9C+0LLQuNGPLiDQldGB0LvQuCDRg9GB0LvQvtCy0LjQtSDQsiDRgdC60L7QsdC+0YfQutCw0YUg0LLRi9C/0L7Qu9C90Y/QtdGC0YHRjyDRgtC+INCy0YvQv9C+0LvQvdGP0LXRgtGB0Y8g0YLQviDRh9GC0L4g0LTQsNC70LXQtSDQsiDRhNC40LPRg9GA0L3Ri9GFINGB0LrQvtCx0L7Rh9C60LDRhSB7fS4KCQlzdGQ6OmNvdXQgPDwgIk9LIHNvcnJ5LlxuIjsKCX0KCWVsc2UgeyAvLyBlbHNlIC0g0LjQvdCw0YfQtS4g0JLRi9C/0L7Qu9C90Y/QtdGC0YHRjyDQtdGB0LvQuCDRg9GB0LvQvtCy0LjQtSDQsiBpZiDQvdC1INCy0YvQv9C+0LvQvdC40LvQvtGB0Ywg0YIu0LUuINC30LTQtdGB0Ywg0LXRgdC70Lgg0YHRgtGA0L7QutCwINC90LUg0L/Rg9GB0YLQsNGPLgoJCXN0ZDo6Y291dCA8PCAiSGkgIiA8PCBuYW1lIDw8ICIhIE5pY2UgdG8gbWVldCB5b3UhXG4iOwoJfQoJcmV0dXJuIDA7IC8vIHJldHVybiAtINCy0LXRgNC90YPRgtGMLiDQktC10YDQvdGD0YLRjNGB0Y8g0LjQtyDRhNGD0L3QutGG0LjQuCDRgSDRgtCw0LrQuNC8LdGC0L4g0LfQvdCw0YfQtdC90LjQtdC8ICjQuNC70Lgg0LHQtdC3INC10YHQu9C4IHJldHVybiDQsdC10Lcg0LfQvdCw0YfQtdC90LjRjykuINCjINC90LDRgSBtYWluINC60LDQuiDQvdCw0L/QuNGB0LDQvdC+INCyINC90LDRh9Cw0LvQtSDQstC+0LfQstGA0LDRidCw0LXRgiBpbnQg0L/QvtGN0YLQvtC80YMg0YfRgtC+0LHRiyDQvdC1INC90LDRgNGD0YjQuNGC0Ywg0YHRgtC10Log0LzRiyDQtNC+0LvQttC90Ysg0LLQtdGA0L3Rg9GC0YwgaW50LiDQmtC+0LzQv9C40LvRj9GC0L7RgCDQv9GA0L7RgdC70LXQtNC40YIg0LfQsCDRjdGC0LjQvCAo0LfQsCDRgNC10LTQutC40Lwg0LjRgdC60LvRjtGH0LXQvdC40LXQvCDQutC+0LPQtNCwINGN0YLQviDQvdC10LLQvtC30LzQvtC20L3QviDQvdC+INGN0YLQviDQv9C+0YLQvtC8KS4KfQ==
stdin
Ly8gT2JsaWN6YW5pZSBkYXR5IHdpZWxrYW5vY3kKLy8gd3d3LmFsZ29yeXRtLm9yZwovLyAoYykgMjAwOCBieSBUb21hc3ogTHViaW5za2kKCgojaW5jbHVkZSAmcXVvdDtzdGRpby5oJnF1b3Q7CgovKiBQb2JpZXJ6IHdhcnRvc2MgQSB6IHRhYmVsaSBsYXQgKi8KaW50IGdldEEoaW50IHJvaykKewogICBpZiAocm9rICZsdDs9IDE1ODIpCiAgIHsKICAgICAgcmV0dXJuIDE1OwogICB9CiAgIGlmIChyb2sgJmx0Oz0gMTY5OSkKICAgewogICAgICByZXR1cm4gMjI7CiAgIH0KICAgaWYgKHJvayAmbHQ7PSAxODk5KQogICB7CiAgICAgIHJldHVybiAyMzsKICAgfQogICBpZiAocm9rICZsdDs9IDIxOTkpCiAgIHsKICAgICAgcmV0dXJuIDI0OwogICB9CiAgIGlmIChyb2sgJmx0Oz0gMjI5OSkKICAgewogICAgICByZXR1cm4gMjU7CiAgIH0KICAgaWYgKHJvayAmbHQ7PSAyMzk5KQogICB7CiAgICAgIHJldHVybiAyNjsKICAgfQogICBpZiAocm9rICZsdDs9IDI0OTkpCiAgIHsKICAgICAgcmV0dXJuIDI1OwogICB9CiAgIHJldHVybiAwOyAvKiBwb3phIHpha3Jlc2VtICovCn0KCi8qIFBvYmllcnogd2FydG9zYyBCIHogdGFiZWxpIGxhdCAqLwppbnQgZ2V0QihpbnQgcm9rKQp7CiAgIGlmIChyb2sgJmx0Oz0gMTU4MikKICAgewogICAgICByZXR1cm4gNjsKICAgfQogICBpZiAocm9rICZsdDs9IDE2OTkpCiAgIHsKICAgICAgcmV0dXJuIDI7CiAgIH0KICAgaWYgKHJvayAmbHQ7PSAxNzk5KQogICB7CiAgICAgIHJldHVybiAzOwogICB9CiAgIGlmIChyb2sgJmx0Oz0gMTg5OSkKICAgewogICAgICByZXR1cm4gNDsKICAgfQogICBpZiAocm9rICZsdDs9IDIwOTkpCiAgIHsKICAgICAgcmV0dXJuIDU7CiAgIH0KICAgaWYgKHJvayAmbHQ7PSAyMTk5KQogICB7CiAgICAgIHJldHVybiA2OwogICB9CiAgIGlmIChyb2sgJmx0Oz0gMjI5OSkKICAgewogICAgICByZXR1cm4gMDsKICAgfQogICBpZiAocm9rICZsdDs9IDI0OTkpCiAgIHsKICAgICAgcmV0dXJuIDE7CiAgIH0KICAgcmV0dXJuIDA7IC8qIHBvemEgemFrcmVzZW0gKi8KfQoKLyogb2JsaWN6IGlsZSBkbmkgcG8gMjIgbWFyY2EgcHJ6eXBhZGEgd2llbGthbm9jICovCmludCB3aWVsa2Fub2MoaW50IHJvaykKewogICBpbnQgYSwgYiwgYywgZCwgZTsKICAgCiAgIGEgPSByb2sgJSAxOTsKICAgYiA9IHJvayAlIDQ7CiAgIGMgPSByb2sgJSA3OwogICBkID0gKGEqMTkgKyBnZXRBKHJvaykpICUgMzA7CiAgIGUgPSAoMipiICsgNCpjICsgNipkICsgZ2V0Qihyb2spKSAlIDc7CiAgIGlmICgoZCA9PSAyOSAmYW1wOyZhbXA7IGUgPT0gNikgfHwKICAgICAgIChkID09IDI4ICZhbXA7JmFtcDsgZSA9PSA2KSkKICAgewogICAgICBkLT03OwogICB9CiAgIHJldHVybiBkK2U7Cn0KCi8qIHBvYmllcnogZGFuZSBvZCB1enl0a293bmlrYSAqLwppbnQgbWFpbigpCnsKICAgaW50IHJvazsKICAgaW50IGRhdGE7CiAgIAogICBwcmludGYoJnF1b3Q7UG9kYWogcm9rICgzMy0yNDk5KVxuJnF1b3Q7KTsKICAgc2NhbmYoJnF1b3Q7JWQmcXVvdDssICZhbXA7cm9rKTsKICAgCiAgIGlmICgocm9rICZsdDsgMzMpIHx8IChyb2sgJmd0OyAyNDk5KSkKICAgewogICAgICBwcmludGYoJnF1b3Q7UG9kYW55IHJvayBuaWUgamVzdCB3IHpha3Jlc2llIDMzLTI0OTkuXG4mcXVvdDspOwogICAgICByZXR1cm4gMDsKICAgfQogICAKICAgZGF0YSA9IDIyICsgd2llbGthbm9jKHJvayk7CiAgIGlmIChkYXRhICZndDsgMzEpCiAgIHsKICAgICAgcHJpbnRmKCZxdW90O1dpZWxrYW5vYyBwcnp5cGFkYSAlZCBrd2lldG5pYVxuJnF1b3Q7LCBkYXRhJTMxKTsKICAgfQogICBlbHNlCiAgIHsKICAgICAgcHJpbnRmKCZxdW90O1dpZWxrYW5vYyBwcnp5cGFkYSAlZCBtYXJjYVxuJnF1b3Q7LCBkYXRhKTsKICAgfQogICAKICAgcmV0dXJuIDA7Cn0K
// Obliczanie daty wielkanocy
// www.algorytm.org
// (c) 2008 by Tomasz Lubinski
#include "stdio.h"
/* Pobierz wartosc A z tabeli lat */
int getA(int rok)
{
if (rok <= 1582)
{
return 15;
}
if (rok <= 1699)
{
return 22;
}
if (rok <= 1899)
{
return 23;
}
if (rok <= 2199)
{
return 24;
}
if (rok <= 2299)
{
return 25;
}
if (rok <= 2399)
{
return 26;
}
if (rok <= 2499)
{
return 25;
}
return 0; /* poza zakresem */
}
/* Pobierz wartosc B z tabeli lat */
int getB(int rok)
{
if (rok <= 1582)
{
return 6;
}
if (rok <= 1699)
{
return 2;
}
if (rok <= 1799)
{
return 3;
}
if (rok <= 1899)
{
return 4;
}
if (rok <= 2099)
{
return 5;
}
if (rok <= 2199)
{
return 6;
}
if (rok <= 2299)
{
return 0;
}
if (rok <= 2499)
{
return 1;
}
return 0; /* poza zakresem */
}
/* oblicz ile dni po 22 marca przypada wielkanoc */
int wielkanoc(int rok)
{
int a, b, c, d, e;
a = rok % 19;
b = rok % 4;
c = rok % 7;
d = (a*19 + getA(rok)) % 30;
e = (2*b + 4*c + 6*d + getB(rok)) % 7;
if ((d == 29 && e == 6) ||
(d == 28 && e == 6))
{
d-=7;
}
return d+e;
}
/* pobierz dane od uzytkownika */
int main()
{
int rok;
int data;
printf("Podaj rok (33-2499)\n");
scanf("%d", &rok);
if ((rok < 33) || (rok > 2499))
{
printf("Podany rok nie jest w zakresie 33-2499.\n");
return 0;
}
data = 22 + wielkanoc(rok);
if (data > 31)
{
printf("Wielkanoc przypada %d kwietnia\n", data%31);
}
else
{
printf("Wielkanoc przypada %d marca\n", data);
}
return 0;
}