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

Получить тройку чисел, соответствующих следующему дню - C++

Восстановить пароль Регистрация
 
 
Рейтинг: Рейтинг темы: голосов - 14, средняя оценка - 4.86
Chappi
2 / 2 / 0
Регистрация: 04.07.2010
Сообщений: 36
04.07.2010, 16:07     Получить тройку чисел, соответствующих следующему дню #1
кто нибудь может сталкивался с похожей прогой помогите.....
Даны натуральные числа а, b, с, которые обозначают число, месяц и год, например 1, 4, 1901 - 1 апреля 1901 года. Получить тройку чисел, соответствующих следующему дню
как я понял на выводе просто добавить 1 день...
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
04.07.2010, 16:07     Получить тройку чисел, соответствующих следующему дню
Посмотрите здесь:

C++ Получить третий массив той же размерности, каждый элемент которого равен большему из соответствующих элементов данного массива
C++ Из 2 заданых бинарных файлов вывести в 3 разность соответствующих чисел
выведите на экран таблицу символов и соответствующих им целых чисел. C++
Преобразовать массив целых чисел Х по следующему правилу: C++
C++ Цикл While, вывод таблицы символов и соответствующих им целых чисел
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
besstiaa
 Аватар для besstiaa
93 / 93 / 7
Регистрация: 04.06.2010
Сообщений: 223
04.07.2010, 19:33     Получить тройку чисел, соответствующих следующему дню #21
В DEV-C++ такая конструкция "русификации" вроде не работает... Где-то недавно писали.
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Vladimir616
110 / 110 / 3
Регистрация: 05.07.2009
Сообщений: 224
04.07.2010, 19:33     Получить тройку чисел, соответствующих следующему дню #22
А у меня Microsoft Visual Studio 2008.
Chappi
2 / 2 / 0
Регистрация: 04.07.2010
Сообщений: 36
04.07.2010, 19:36  [ТС]     Получить тройку чисел, соответствующих следующему дню #23
ясн...дак особо то и не нужен он)а многа весит visual studio???
Vladimir616
110 / 110 / 3
Регистрация: 05.07.2009
Сообщений: 224
04.07.2010, 19:38     Получить тройку чисел, соответствующих следующему дню #24
~4гб.
Chappi
2 / 2 / 0
Регистрация: 04.07.2010
Сообщений: 36
04.07.2010, 20:20  [ТС]     Получить тройку чисел, соответствующих следующему дню #25
О_одив то 8мб))))
easybudda
Модератор
Эксперт С++
 Аватар для easybudda
9371 / 5421 / 914
Регистрация: 25.07.2009
Сообщений: 10,423
04.07.2010, 20:39     Получить тройку чисел, соответствующих следующему дню #26
Chappi, вот Вам аж целый класс с добавлялкой дня
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
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
#include <iostream>
#include <exception>
#include <stdexcept>
#include <cstdlib>
 
class Date {
private:
    int m_year;
    int m_month;
    int m_day;
    static const int month_days[12];
    void checkCorrect() const {
        try {
            if ( m_year < 1900 || m_year > 2030 )
                throw std::range_error("Wrong year.");
            if ( m_month < 1 || m_month > 12 )
                throw std::range_error("Wrong month.");
            if ( m_day < 1 || m_day > lastDay() )
                throw std::range_error("Wrong day.");
        }
        catch (std::range_error & e){
            std::cerr << e.what() << std::endl;
            exit(EXIT_FAILURE);
        }
        catch (...) {
            std::cerr << "Unknown error" << std::endl;
            exit(EXIT_FAILURE);
        }
    }
 
public:
    Date() : m_day(1), m_month(1), m_year(1970) {}
    Date(int day, int month, int year) : m_day(day), m_month(month), m_year(year) {
        checkCorrect();
    }
    bool isLeap() const { return m_year % 4 == 0 && m_year % 100 != 0 || m_year % 400 == 0; }
    int lastDay() const {
        int ld = month_days[m_month - 1];
        if ( m_month == 2 )
            ld += static_cast<int>(isLeap());
        return ld;
    }
    Date nextDay() const {
        Date nd(*this);
        nd.m_day += 1;
        if ( nd.m_day > nd.lastDay() ){
            nd.m_day = 1;
            nd.m_month += 1;
            if ( nd.m_month > 12 ){
                nd.m_month = 1;
                nd.m_year += 1;
            }
        }
        return nd;
    }
    friend std::ostream & operator << (std::ostream & ost, const Date & dat){
        ost << dat.m_day << '-' << dat.m_month << '-' << dat.m_year;
        return ost;
    }
    friend std::istream & operator >> (std::istream & ist, Date & dat){
        ist >> dat.m_day;
        ist.ignore();
        ist >> dat.m_month;
        ist.ignore();
        ist >> dat.m_year;
        dat.checkCorrect();
        return ist;
    }
};
 
const int Date::month_days[12]  = { 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31 };
 
int main(){
    Date dat;
    std::cout << "Default value: " << dat << std::endl;
    std::cout << "Next day: " << dat.nextDay() << std::endl;
    std::cout << "Enter a new date in format d-m-y: ";
    std::cin >> dat;
    std::cout << "Next day: " << dat.nextDay() << std::endl;
 
    exit(EXIT_SUCCESS);
}
Добавлено через 9 минут

Не по теме:

Цитата Сообщение от Vladimir616 Посмотреть сообщение
if(z == (y!=2?((y%2)^(y>7))+30!(x%400)||!(x%4)&&(x%25)?29:28)))
Почаще так делайте... Особенно, если от Вас только часть программы требуется, а остальное другие пишут. Они Вам будут благодарны...

CyBOSSeR
04.07.2010, 21:12
  #27

Не по теме:

easybudda, зачем ты в checkCorrect ловишь исключения, если никак их обработать не сможешь? И является ли получение некорректных данных веской причиной для аварийного завершения программы? Просто кидай исключение при получении некорректных данных - пусть их источник сам решает как их обрабатывать.

Chappi
2 / 2 / 0
Регистрация: 04.07.2010
Сообщений: 36
04.07.2010, 21:32  [ТС]     Получить тройку чисел, соответствующих следующему дню #28
easybudda, красота
спасибо!)у меня уже этих программ штук 10 и все одинаковые)))
своих штуки 4 выложили ещё штуки 4 и вот твоя ну почти 10))))
все их вместе собрать и конец оперативе можно устроить))))
кстате кто нить фибонатчи делал прогу?????
easybudda
Модератор
Эксперт С++
 Аватар для easybudda
9371 / 5421 / 914
Регистрация: 25.07.2009
Сообщений: 10,423
04.07.2010, 22:02     Получить тройку чисел, соответствующих следующему дню #29
CyBOSSeR, ну я там сначала хотел по-другому сделать, потом по-третьему... в оконцовке вот так вот получилось... В принципе можно просто строку кидать с сообщением, что именно не правильно, выводить её и требовать, чтобы заново дату ввели. Да и добавлялку лучше не одного дня делать, а произвольного количества... Короче много вариантов...

Цитата Сообщение от Chappi Посмотреть сообщение
кстате кто нить фибонатчи делал прогу?????
Кстати, кого-то я сегодня уже предупреждал, чтобы с темы не сходил...
Последовательность фибоначи
Нахождение экстремума фкнкции одной переменной
http://www.cyberforum.ru/cpp/thread144695.html
поиском по религиозным причинам не пользуетесь?
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
19.09.2010, 13:11     Получить тройку чисел, соответствующих следующему дню
Еще ссылки по теме:

C++ Массив: Получить новый массив В по следующему правилу: В1=А1+А10
Используя цикл, выведите на экран таблицу символов и соответствующих им целых чисел C++
C++ Бесконечная последовательность рациональных чисел v0, v1 , . образована по следующему закону :

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

Или воспользуйтесь поиском по форуму:
ugosdaryn
 Аватар для ugosdaryn
2 / 2 / 1
Регистрация: 17.12.2009
Сообщений: 77
19.09.2010, 13:11     Получить тройку чисел, соответствующих следующему дню #30
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 <iostream> 
using namespace std;
int main ()
{
        int date, mounth, x, y, z, year;
       
        cin>>x>>y>>z;
     
        if (x > 2010 || y > 12 || z > 31);
        if(z == (y!=2?((y%2)^(y>7))+30:(!(x%400)||!(x%4)&&(x%25)?29:28)))
         {
                y++;
                z = 0;
        }
        if(y > 12)
        {
                y = 1;
                x++;
        }
                
        date = x+1;
        mounth = y;
        year = z ;
      
        cout << date << " " << mounth <<" "<< year;
       
      return 0;
}
Все же не идет. Помогите пожалуйста!!!
Yandex
Объявления
19.09.2010, 13:11     Получить тройку чисел, соответствующих следующему дню
Ответ Создать тему
Опции темы

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