Форум программистов, компьютерный форум CyberForum.ru

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
Program_Michael
0 / 0 / 0
Регистрация: 03.08.2011
Сообщений: 28
#1

здравствуйте, можете объяснить? - C++

04.08.2011, 17:46. Просмотров 512. Ответов 5
Метки нет (Все метки)

Я нашел код в разделе "для профессионалов" - там задачка, которая решается с помощью формулы Зеллера.....

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
#include <iostream>
 
int main()
{
        int year, mon, day, yyear, hund, dday;
        std::cout<<"Enter day, month and year: ";
        std::cin>>day>>mon>>year;
        std::cout<<"Date is: "<< day <<"/"<< mon <<"/" << year <<'\n';
        if(mon<3)
        {
                mon+=12;
                year-=1;
                day+=1;
        }
        yyear=year%100;
        hund=year/100;
        dday=(((mon+1)*26/10)+day+yyear+yyear/4+hund/4-2*hund)%7;
        if(dday==0)
                std::cout<<"Saturday\n";
        else if(dday==1)
                std::cout<<"Sunday\n";
        else if(dday==2)
                std::cout<<"Monday\n";
        else if(dday==3)
                std::cout<<"Tuesday\n";
        else if(dday==4)
                std::cout<<"Wednseday\n";
        else if(dday==5)
                std::cout<<"Thursday\n";
        else if(dday==6)
                std::cout<<"Friday\n";
        return 0;
}
Объясните пожалуйста, что значит вот эта строка??:
C++
1
2
3
4
5
{
                mon+=12;
                [B][I]year-=1;[/I][/B]
                day+=1;
        }
точнее не что обозначает, а почему там на 1 должно отниматься???

И вот эта:
C++
1
2
3
4
[B][I]yyear=year%100[/I][/B];
        hund=year/100;
        dday=(((mon+1)*26/10)+day+yyear+yyear/4+hund/4-2*hund)%7;
        if(dday==0)
Что эта строка обозначает? Заранее спасибо!))

Добавлено через 1 минуту
Сорри....выделить строку не получилось, я думаю, вы поймете, про какие строки идет речь
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
04.08.2011, 17:46
Здравствуйте! Я подобрал для вас темы с ответами на вопрос здравствуйте, можете объяснить? (C++):

Можете объяснить эту программу? - C++
Можете объяснить эту программу? пж #include &lt;stdio.h&gt; #include &lt;conio.h&gt; #include &lt;locale&gt; #define DLSTR 80 void COPY(char...

Можете объяснить, как работает следующая проверка (на ввод букв)? - C++
do { k=scanf_s(&quot;%d&quot;,&amp;mas); if (k==0) { fflush(stdin); printf(&quot;\nОшибка,введите число:&quot;); } ...

можете привести пример программы со структурой данных, и объяснить как она работает - C++
можете привести пример программы со структурой данных, и объяснить как она работает. Добавлено через 23 минуты или опишу часть...

Программисты, можете ли вы мне объяснить почему выдает эту ошибку час сижу не могу исправить - C++
Задание: Разработать программу для генерации числового массива, его сортировки по возрастанию и по убыванию, а также поиска элементов по...

Программа на контестере проходит только 1 тест из 9. Можете объяснить, в чем моя ошибка и как ее исправить! - C++
Объясните, в чем моя ошибка в решении задачи. Условие: 103. Подсчет войск ограничение времени на тест: 0.5 сек. ...

Turbo C++ Ребята Здравствуйте! - C++
Turbo C++ Ребята Здравствуйте! Прошу у вас помощи, буду очень признательна! мне надо решить с объяснением две задачи по одномерным и...

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
soon
2540 / 1305 / 81
Регистрация: 09.05.2011
Сообщений: 3,086
Записей в блоге: 1
05.08.2011, 00:47 #2
В сам код особо не вникал, но
Цитата Сообщение от Program_Michael Посмотреть сообщение
year-=1;
я так думаю необходимо, поскольку мы прибавляем к месяцам 12 (т.е. 1 год), и, соответственно, должны убрать из year этот самый год.
Цитата Сообщение от Program_Michael Посмотреть сообщение
Что эта строка обозначает?
По видимому, остаток от деления на 100, разве нет?
Program_Michael
0 / 0 / 0
Регистрация: 03.08.2011
Сообщений: 28
05.08.2011, 12:20  [ТС] #3
soon, Спасибо большое)))
ForEveR
В астрале
Эксперт С++
7970 / 4732 / 321
Регистрация: 24.06.2010
Сообщений: 10,541
Завершенные тесты: 3
05.08.2011, 15:48 #4
Оч старый код. Лучше будет так. Ну и переменных как-то многовато...

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
#include <iostream>
 
int main()
{
        char days[] = {"Saturday", "Sunday", "Monday", "Tuesday", "Wednseday", "Thursday", "Friday"};
        int year, mon, day, yyear, hund, dday;
        std::cout<<"Enter day, month and year: ";
        std::cin>>day>>mon>>year;
        std::cout<<"Date is: "<< day <<"/"<< mon <<"/" << year <<'\n';
        if(mon<3)
        {
                mon+=12;
                year-=1;
                day+=1;
        }
        yyear=year%100;
        hund=year/100;
        dday=(((mon+1)*26/10)+day+yyear+yyear/4+hund/4-2*hund)%7;
        std::cout << days[dday] << '\n';
        return 0;
}
soon
05.08.2011, 15:55
  #5

Не по теме:

Суть та-же, первый код визуально больше из-за if/else

Цитата Сообщение от ForEveR Посмотреть сообщение
Ну и переменных как-то многовато...
А у вас больше =) За счет массива.

ForEveR
В астрале
Эксперт С++
7970 / 4732 / 321
Регистрация: 24.06.2010
Сообщений: 10,541
Завершенные тесты: 3
05.08.2011, 16:05 #6
soon, Тот тоже мой код. Просто ранее написанный.
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
05.08.2011, 16:05
Привет! Вот еще темы с ответами:

Здравствуйте, у меня по услышаному. (СТРОКИ) - C++
Как, скажем, для задоного char* s={&quot;abcdefghij&quot;}; заменить значение буквы. Тоесть: s++; *s = 'x'; *s - как бы указатель на букву...

Здравствуйте господа программисты и сисадмины - C++
Здравствуйте господа программисты и сисадмины... можете мне помочь. ? мне нужно написать програмку по данному условию.... помогите.... я...

Здравствуйте, Почему не работает этот код? - C++
Здравствуйте.Прошу помочь.Почему не работает этот код? std::ifstream input_file(&quot;http://nanshakov.16mb.com/developed/test/hash.txt&quot;); ...

Здравствуйте, как запихнуть базу данных в программу.?? - C++
Задача заключается в том что я незнаю как запихнуть информацию(база данных) во время написание программы, и очень бы хотелось чтоб вы мне...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
Yandex
Объявления
05.08.2011, 16:05
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru