0 / 0 / 0
Регистрация: 03.08.2011
Сообщений: 28
1

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

04.08.2011, 17:46. Показов 810. Ответов 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 минуту
Сорри....выделить строку не получилось, я думаю, вы поймете, про какие строки идет речь
__________________
Помощь в написании контрольных, курсовых и дипломных работ, диссертаций здесь
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
04.08.2011, 17:46
Ответы с готовыми решениями:

Можете объяснить пожалуйста
Что означает Array = (rand() % 1000) / 10.;

можете объяснить 4строчки
string buffer;//Буфер памяти while (!input.eof() &amp;&amp; getline(input, buffer)) {//Считывает...

Можете объяснить фрагмент кода
Дан фрагмент кода c++ int** mat = new int* ; int a, b, c; int n = 0; int tmpsize = 0; for...

Можете объяснить эту программу?
Можете объяснить эту программу? пж #include &lt;stdio.h&gt; #include &lt;conio.h&gt; #include &lt;locale&gt;...

5
2554 / 1319 / 178
Регистрация: 09.05.2011
Сообщений: 3,086
Записей в блоге: 1
05.08.2011, 00:47 2
В сам код особо не вникал, но
Цитата Сообщение от Program_Michael Посмотреть сообщение
year-=1;
я так думаю необходимо, поскольку мы прибавляем к месяцам 12 (т.е. 1 год), и, соответственно, должны убрать из year этот самый год.
Цитата Сообщение от Program_Michael Посмотреть сообщение
Что эта строка обозначает?
По видимому, остаток от деления на 100, разве нет?
1
0 / 0 / 0
Регистрация: 03.08.2011
Сообщений: 28
05.08.2011, 12:20  [ТС] 3
soon, Спасибо большое)))
0
В астрале
Эксперт С++
8045 / 4802 / 655
Регистрация: 24.06.2010
Сообщений: 10,562
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;
}
1
soon
05.08.2011, 15:55
  #5

Не по теме:

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

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

0
В астрале
Эксперт С++
8045 / 4802 / 655
Регистрация: 24.06.2010
Сообщений: 10,562
05.08.2011, 16:05 6
soon, Тот тоже мой код. Просто ранее написанный.
1
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
05.08.2011, 16:05
Помогаю со студенческими работами здесь

Можете объяснить данную сортировку?
Можете объяснить данную сортировку? void sort(vector &lt;people&gt; &amp; x) { int min_year =...

Циклы do while можете поподробнее объяснить
На других сайтах читал, пытался сделать, но не получается

Можете объяснить несколько строк из С++ и АСМ
Здравствуйте. Можете кто нибудь объяснить эти вещи? Тут несколько строк из C++ и АSM... char...

Можете пошагово более подробно объяснить решение?
В частности, не могу понять, откуда взялась s и для чего нужен &amp;. Код: #include &lt;iostream&gt;...

Можете объяснить что делает этот код?
#include &lt;iostream&gt; using namespace std; int main() { char s; cin&gt;&gt;s; ...

Можете объяснить как работает часть этого кода?
Можете объяснить как работает эта часть кода? string s, y, smin = &quot; &quot;; int umin = 10000; while...


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

Или воспользуйтесь поиском по форуму:
6
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2022, CyberForum.ru