С Новым годом! Форум программистов, компьютерный форум, киберфорум
Наши страницы

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

Войти
Регистрация
Восстановить пароль
 
 
Рейтинг: Рейтинг темы: голосов - 14, средняя оценка - 4.86
Chappi
2 / 2 / 0
Регистрация: 04.07.2010
Сообщений: 36
#1

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

04.07.2010, 16:07. Просмотров 1909. Ответов 29
Метки нет (Все метки)

кто нибудь может сталкивался с похожей прогой помогите.....
Даны натуральные числа а, b, с, которые обозначают число, месяц и год, например 1, 4, 1901 - 1 апреля 1901 года. Получить тройку чисел, соответствующих следующему дню
как я понял на выводе просто добавить 1 день...
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
04.07.2010, 16:07
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Получить тройку чисел, соответствующих следующему дню (C++):

Преобразовать массив целых чисел Х по следующему правилу: - C++
Преобразовать массив целых чисел Х по следующему правилу: а) все отрицательные элементы массива Х перенести в его начало, а все...

Бесконечная последовательность рациональных чисел v0, v1 , . образована по следующему закону : - C++
Описание задачи необходимо вставлять в текстовом виде Бесконечная последовательность рациональных чисел v0, v1 , ... образована по...

Получить новый файл, каждый элемент которого равен сумме соответствующих компонентов двух заданных файлов - C++
Даны два файла с числами. Получить новый файл, каждый элемент которого равен сумме соответствующих компонентов заданных файлов...

Цикл While, вывод таблицы символов и соответствующих им целых чисел - C++
Всем доброго времени суток!!! Ситуация следующая... Задача: Символ 'b' равен char('a' + 1), 'c' - char('a' + 2) и т.д. Используя цикл...

Из 2 заданых бинарных файлов вывести в 3 разность соответствующих чисел - C++
Имеются два бинарных файла содержащих числа. Создать третий файл каждый элемент, которого равен разнице между соответствующими элементами...

Массив: Получить новый массив В по следующему правилу: В1=А1+А10 - C++
помогите пож-та.Дан массив А(10). Получить новый массив В по следующему правилу: В1=А1+А10 В2=А2+А9 и так далее. Вывести на экран ...

29
besstiaa
94 / 94 / 7
Регистрация: 04.06.2010
Сообщений: 223
04.07.2010, 19:22 #16
При такой проверке у тебя после 31.12.2009 получится 1.12.2009 )

Да и к тому же в месяце дней может быть меньше В феврале, например Да и год иногда может меняться...
0
Vladimir616
112 / 112 / 3
Регистрация: 05.07.2009
Сообщений: 224
04.07.2010, 19:22 #17
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
#include <iostream> 
using namespace std;
int main ()
{
    setlocale(LC_ALL, "rus");
    int date;
    int mounth;
    int x = 0;
    int y = 0;
    int z = 0;
    int year;
    std::cout << "Введите год не больше 2010\n";
    std::cin >> x;
    std::cout << "Введите месяц \n";
    std::cin >> y;
    std::cout << "Введите день \n";
    std::cin >> z;
    if (x > 2010 || y > 12 || z > 31)
        puts ("Неправильно введён месяц или год");
    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++;
    }
    year = x;
    mounth = y;
    date = z + 1 ;
    puts("Полученная дата");
    cout << "Год  "<< year << '\n';
    cout << "Месяц " << mounth <<'\n';
    cout << "День  "<< date<<'\n';
    puts ("Thank you for using my program");
    system ("Pause");
}
Полностью рабочая версия, переводит месяц и год вперёд, только не спрашивайте пожалуйста, как это работает.
0
Chappi
2 / 2 / 0
Регистрация: 04.07.2010
Сообщений: 36
04.07.2010, 19:28  [ТС] #18
cheto y menia vse ravno krokoziabri)))
вместо русского всмысле)))
0
Vladimir616
112 / 112 / 3
Регистрация: 05.07.2009
Сообщений: 224
04.07.2010, 19:31 #19
Chappi, а компилятор какой?
0
Chappi
2 / 2 / 0
Регистрация: 04.07.2010
Сообщений: 36
04.07.2010, 19:32  [ТС] #20
Vladimir616, Dev-C++ ,у вас какой???
0
besstiaa
94 / 94 / 7
Регистрация: 04.06.2010
Сообщений: 223
04.07.2010, 19:33 #21
В DEV-C++ такая конструкция "русификации" вроде не работает... Где-то недавно писали.
0
Vladimir616
112 / 112 / 3
Регистрация: 05.07.2009
Сообщений: 224
04.07.2010, 19:33 #22
А у меня Microsoft Visual Studio 2008.
0
Chappi
2 / 2 / 0
Регистрация: 04.07.2010
Сообщений: 36
04.07.2010, 19:36  [ТС] #23
ясн...дак особо то и не нужен он)а многа весит visual studio???
0
Vladimir616
112 / 112 / 3
Регистрация: 05.07.2009
Сообщений: 224
04.07.2010, 19:38 #24
~4гб.
0
Chappi
2 / 2 / 0
Регистрация: 04.07.2010
Сообщений: 36
04.07.2010, 20:20  [ТС] #25
О_одив то 8мб))))
0
easybudda
Модератор
Эксперт CЭксперт С++
9700 / 5650 / 964
Регистрация: 25.07.2009
Сообщений: 10,873
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)))
Почаще так делайте... Особенно, если от Вас только часть программы требуется, а остальное другие пишут. Они Вам будут благодарны...

0
CyBOSSeR
04.07.2010, 21:12
  #27

Не по теме:

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

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

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

Получить третий массив той же размерности, каждый элемент которого равен большему из соответствующих элементов данного массива - C++
Плиз, помогите решить задачу!!! Скоро сессия, не успеваю решить все задачи!!! Выручайте!!! Даны два целочисленных массива одинаковой...

Преобразовать массив целых чисел Х по следующему правилу: элементы массива Х циклически сдвинуть на k позиций - C++
Мужики, нужна программа, вот условие &quot;Преобразовать массив целых чисел Х по следующему правилу: элементы массива Х циклически сдвинуть на...

Используя цикл, выведите на экран таблицу символов и соответствующих им целых чисел - C++
Задание 1. Символ ' b' равен char ('а' +1), 'с' — равен char ('а' +2) и т.д. Используя цикл, выведите на экран таблицу символов и...

Используя цикл, выведите на экран таблицу символов и соответствующих им целых чисел - C++
Подскажите. Символ 'b' равен char('a'+1), 'c'-равен char('a'+2)и т.д. Используя цикл, выведите на экран таблицу символов и...


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

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

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