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

Модули. Многофайловые проекты - C++

Восстановить пароль Регистрация
 
AlanZzz
0 / 0 / 0
Регистрация: 07.11.2013
Сообщений: 26
25.11.2013, 23:27     Модули. Многофайловые проекты #1
Определить функцию, возвращающую количество недель с начала года. Выполнить перегрузку функции для следующих типов параметров:
1.Структура «дата» (год, месяц, день).
2.Три целочисленных параметра: год, месяц, день.
3.Два целочисленных параметра: месяц, день (считать передаваемые

спасибо скажу! даже примерных накидок нет.. хелп
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
25.11.2013, 23:27     Модули. Многофайловые проекты
Посмотрите здесь:

крупные проекты C++ C++
C++ Модули. Многофайловые проекты- Помогите пожалуйста.
C++ Не компилируются проекты
Многофайловые программы C++
C++ Классы. Многофайловые проекты. Описать класс с именем STUDENT
C++ Публичные проекты. Junior C++
C++ Проекты и солюшин
C++ Многофайловые программы
C++ Как компилировать проекты для юникода?
C++ Первые проекты C++
Не могу открыть старые проекты C++
C++ Функции и многофайловые программы в Си

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
ПерС
366 / 282 / 84
Регистрация: 05.11.2013
Сообщений: 806
Записей в блоге: 5
Завершенные тесты: 1
26.11.2013, 08:37     Модули. Многофайловые проекты #2
ну вот те, например, определение номера недели в году и тест
параметры: день, месяц, год (случай 2)
остальное можно переделать, передавать вместо них структуру (случай 1)
или год по умолчанию принять текущим (случай 3)
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
#include <math.h>
 
long int getWeekNum (int day,int month,int year) { //Корректно определяем номер недели в году
 long int  a = floor((14-month) / 12);
 long int  y = year + 4800 - a;
 long int  m = month + 12 * a - 3;
 long int  J = day + floor((153 * m + 2) / 5) + 365 * y + floor(y/4) -
  floor(y/100) + floor(y/400) - 32045;
 long int d4 = (((J + 31741 - (J % 7)) % 146097) % 36524) % 1461;
 long int  L = floor(d4 / 1460);
 long int  d1 = ((d4 - L) % 365) + L;
 long int  week = floor(d1/7) + 1;
 return week;
}
 
#include <iostream>
int main () {
 int d=26,m=11,y=2013;
 cout << getWeekNum (d,m,y);
 cin.get();
 return 0;
}
номер определяется корректно, т.е. по ИСО, цетато:

По стандарту ИСО 8601, он же ГОСТ ИСО 8601-2001, первой рабочей неделей года считается та, на которую выпадает первый четверг года. То есть, первая неделя года – это та, на которую пришлось больше трех дней (больше половины недели) из наступившего года. Некоторое неудобство в том, что в году получается когда 52, а когда 53 рабочих недели. Плюс ко всему 1 января может запросто оказаться 52 неделей предыдущего года.
Но именно этот вариант официально принят в России с 2002 года как государственный и остается им на данный момент.
сейчас, с 25.11.2013, началась 48-я неделя этого года
AlanZzz
0 / 0 / 0
Регистрация: 07.11.2013
Сообщений: 26
26.11.2013, 15:04  [ТС]     Модули. Многофайловые проекты #3
ПерС, объясни пожалуйста функции)))
не могу объяснить,на паре сижу
ПерС
366 / 282 / 84
Регистрация: 05.11.2013
Сообщений: 806
Записей в блоге: 5
Завершенные тесты: 1
27.11.2013, 09:48     Модули. Многофайловые проекты #4
думаю, объяснить этот код тяжеловато...
как альтернатива - пиши просто циклами с перебором, как вот здесь число дней между датами я искал
Yandex
Объявления
27.11.2013, 09:48     Модули. Многофайловые проекты
Ответ Создать тему
Опции темы

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