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

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

Войти
Регистрация
Восстановить пароль
 
fruktik
32 / 32 / 3
Регистрация: 03.03.2011
Сообщений: 302
#1

Определить тип «дни недели» и выдать все «черные» пятницы года - C++

13.03.2011, 16:14. Просмотров 901. Ответов 9
Метки нет (Все метки)

Используя перечисляемый тип, определить тип «дни недели» и выдать все «черные» пятницы этого года (т.е. число месяца равно13, а день недели – пятница).

можно вкратце объяснить план решения задачи?)
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
13.03.2011, 16:14
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Определить тип «дни недели» и выдать все «черные» пятницы года (C++):

По текущей дате и дню недели определить день недели с такой же датой заданного года - C++
По текущей дате и дню недели определить день недели с такой же датой заданного года. (C++ )

Черные пятницы - C++
Используя перечисляемый тип, определить тип «дни недели» и выдать все «черные» пятницы этого года (т.е. число месяца равно 13, а день...

Для к-го дня года определить день недели - C++
Для к-го дня года, определить день недели. нумерация с 0-воскресенье..6-суббота. Первый день года был понедельник(1). Кода нет,...

Определить день недели по номеру дня года - C++
помогите, пожалуйста!!! составить программу на С++:Дано целое число n.Получить число 1,2,...,7 в зависимости от того,на какой день...

Определить, каким днем недели является 1 января данного года - C++
Помогите, чёт не могу понять, как это всё написать. Вот само задание - вводится номер года. Определить, каким днем недели является 1 января...

Определить, каким днем недели является 1 января данного года, если - C++
Прощу вас мне помочь, осталась последняя лаба. Задание: { Вводится номер года. Определить, каким днем недели является 1 января...

9
LaГushan
124 / 124 / 14
Регистрация: 12.03.2011
Сообщений: 227
13.03.2011, 18:02 #2
Не самый лучший алгоритм, но работает. Надеюсь кто-нибудь предложит лучшее решение.
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
34
35
#include <iostream>
#include <vector>
 
void main()
{
    enum DAYS{MON,TUE,WED,THU,FRI,SAT,SUN};
    std::vector<int> vec;
    std::vector<int>::iterator it;
    int j = 0;
    int d = FRI;
 
    vec.push_back(31);
    vec.push_back(28);
    vec.push_back(31);
    vec.push_back(30);
    vec.push_back(31);
    vec.push_back(30);
    vec.push_back(31);
    vec.push_back(31);
    vec.push_back(30);
    vec.push_back(31);
    vec.push_back(30);
    vec.push_back(31);
 
    for(it = vec.begin();it != vec.end();++it)
    {
        for(j = 1;j <= *it;j++)
        {
             if(d > SUN)
                 d = MON;
             if(j == 13 && d == FRI)
                 std::cout << "13 - FRIDAY" << "\n";
            d+=TUE;
        }
    }
1
IrineK
Заблокирован
13.03.2011, 18:12 #3
Без перечисляемого типа "день недели".
Зато выдает все черные пятницы в любом году с 1900:

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
#include <stdio.h>
#include <time.h>
 
int main ()
{
    time_t rawtime;
  struct tm * timeinfo;
  int year;
  char * month[] = { "January","February", "March","April", "May",
                       "June", "July", "August","September","October", "November","December"};
 
 printf ("Enter year: "); scanf ("%d",&year);
//get current timeinfo and modify it to the user's choice
time ( &rawtime );
timeinfo = localtime ( &rawtime );
timeinfo->tm_year = year-1900;
timeinfo->tm_mday = 13;
 
  for(int i=0; i<12; i++)
  { timeinfo->tm_mon = i;
 //call mktime: timeinfo->tm_wday will be set */
    mktime ( timeinfo );
    if((timeinfo->tm_wday)==5)
        printf ("Your will face the black Friday in %d in %s\n", year, month[timeinfo->tm_mon]);
  }
  return 0;
}
Интересно, что в следующем году у нас будет аж три "черных пятницы".
1
fruktik
32 / 32 / 3
Регистрация: 03.03.2011
Сообщений: 302
13.03.2011, 19:52  [ТС] #4
вооот)спасибо....буду разбираться

Добавлено через 8 минут
LaГushan, можно немного объяснить начало программы... вот особенно со всякими объявлениями, я не очень просто этого понимаю)
0
pavlintseva
1 / 1 / 0
Регистрация: 16.02.2011
Сообщений: 34
13.03.2011, 19:54 #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
#include <stdio.h>
#include <iostream>
#include <conio.h>
 
 
enum week {none, MONDAY, TUESDAY, WEDNESDAY, THURSDAY, FRIDAY, SATUDAY, SUNDAY};
 
int main()
{
int mounth[12]={31,28,31,30,31,30,31,31,30,31,30,31};
int i; //nomer mesiaca
int data; //data meciaca
int day_of_week=6; //den nedeli
int n=0; //kolichestvo chernih piatnic
 
for(i=0;i<12;i++)
{
//printf("\n# %d\n",i+1);
for(data=1;data<mounth[i]+1;data++)
{
//printf("%d - %d\n" , data, day_of_week);
if(data == 13 && day_of_week == FRIDAY) {n++; printf("\nMesyac: %d Pyatnica 13 #%d",i+1,n);}
day_of_week++;
if(day_of_week==8) day_of_week=1;
}
}
getch();
}
1
fruktik
32 / 32 / 3
Регистрация: 03.03.2011
Сообщений: 302
13.03.2011, 19:55  [ТС] #6
pavlintseva, о чем-то мне твой ник говорит)
0
pavlintseva
1 / 1 / 0
Регистрация: 16.02.2011
Сообщений: 34
13.03.2011, 20:01 #7
наверное о том,что хочешь меня поблагодарить)
0
LaГushan
124 / 124 / 14
Регистрация: 12.03.2011
Сообщений: 227
13.03.2011, 20:36 #8
fruktik, в принципе pavlintseva, уже написал более лучшее решение. Уж не знаю зачем я объявлял vector, когда можно было просто всё это записать в целочисленный массив
Но если ради общего развития, то сначала я объявил контейнер - vector. С ним в некоторых моментах удобнее работать, чем с динамическими массивами. Потом объявил итератор, который позволяет получить доступ к данным контейнера. В общем если вкратце, то так. Советую ознакомится с классами-контейнерами более подробно.
0
pavlintseva
1 / 1 / 0
Регистрация: 16.02.2011
Сообщений: 34
13.03.2011, 20:39 #9
безусловно, я не претендовала на лучшее решение)
0
fruktik
32 / 32 / 3
Регистрация: 03.03.2011
Сообщений: 302
13.03.2011, 21:32  [ТС] #10
pavlintseva,а я в тебе не сомневался)
0
13.03.2011, 21:32
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
13.03.2011, 21:32
Привет! Вот еще темы с ответами:

Определить день недели для K-го дня года, если известно, что 1 января было субботой - C++
Здравствуйте! Условие задачи: Дни недели пронумерованы следующим образом: 1 - понедельник, 2 - вторник, ... , 6 - суббота, 7 -...

Дни недели - C++
Пусть а – номер дня недели ( от 1 до 7) первого числа месяца. Найти номер дня недели к-ого числа указанного месяца. Например: 1 ноября — 6...

Определить номер дня недели для заданного номера дня года - C++
а как это примерно будет на C++ ?

Определить номер дня недели для заданного дня года - C++
Дни недели пронумерованы следующим образом: 0 — воскресенье, 1 — понедельник, 2 — вторник, ..., 6 — суббота. Дано целое число K, лежащее в...


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

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

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