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

Функция: Написать функцию next(t, t1, d), которая присваивает параметру t1 время на d секунд больше, чем время t. - C++

Восстановить пароль Регистрация
 
Рейтинг: Рейтинг темы: голосов - 11, средняя оценка - 5.00
Zalik
2 / 2 / 0
Регистрация: 24.05.2010
Сообщений: 94
24.04.2012, 20:54     Функция: Написать функцию next(t, t1, d), которая присваивает параметру t1 время на d секунд больше, чем время t. #1
Прошу помочь.
Ввести структуру time с полями часы, минуты, секунды. Составить и протестировать функции:
next(t, t1, d), которая присваивает параметру t1 время на d секунд больше, чем время t. Предусмотреть возможность смены суток.
fun(t1, t2, d), которая вычисляет время d, прошедшее от времени t1 до времени t2.

Добавлено через 13 часов 42 минуты
Помогите пожалуйста...
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
24.04.2012, 20:54     Функция: Написать функцию next(t, t1, d), которая присваивает параметру t1 время на d секунд больше, чем время t.
Посмотрите здесь:

Определить время через K (вводится с клавиатуры) секунд C++
C++ Функция, которая увеличивает на Т секунд время
C++ Написать программу которая находит файлы, созданные в нерабочее время
C++ Описать процедуру maxmin (x, y) присваивает параметру х большее из вещественных чисел x и y, а параметру у -- меньшее
Написать программу, которая переводит время из минут и секунд в секунды C++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
balrak
6 / 6 / 1
Регистрация: 01.04.2012
Сообщений: 81
24.04.2012, 22:26     Функция: Написать функцию next(t, t1, d), которая присваивает параметру t1 время на d секунд больше, чем время t. #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
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
#include <iostream>
 
struct time
{
    unsigned int hour, minute, sec;
    time(unsigned int, unsigned int, unsigned int);
};
 
time::time(unsigned int h = 0, unsigned int m = 0, unsigned int s = 0)
{
    hour = (h > 24) ? 0 : h;
    minute = (m > 60)? 0 : m;
    sec = (s > 60)? 0 : s;
}
 
void next(const time* t, time* t1,const unsigned int d)
{
    int mm = d / 60 , hh = mm / 60;
    if((t->hour + hh) > 23)
    {
        std::cout << (t->hour +hh) / 24 << " days pass \n";
        t1->hour = (t->hour + hh) % 24;
    }
    else
        t1->hour = t->hour + (hh % 24);
    t1->minute = t->minute + (mm % 60);
    t1->sec = t->sec + (d % 60);
}
 
void time_miss(const time* t1, const time* t2, time* d)
{
    int i = 0;
    if((t2->sec - t1->sec) > 60)
    {
        i = 1;
        d->sec = t2->sec + 60 - t1->sec;
    }
    else
        d->sec = t2->sec - t1->sec;
    if((t2->minute - t1->minute -i) > 60)
    {
        d->minute = t2->minute + 60 - i - t1->minute;
        i = 1;
    }
    else
    {
        i = 0;
        d->minute = t2->minute - t1->minute;
    }
    if((t2->hour - t1->hour -i) > 24)
    {
        std::cout << "Timer2 < Timer1 \n";
        d->hour = 0;
        d->minute = 0;
        d->sec = 0;
    }
    else
    {
        d->hour = t2->hour - i - t1->hour;
    }
}
 
void print_time(time t)
{
    std::cout << t.hour << ":" << t.minute << ":" << t.sec << "\n";
}
 
void main()
{
    time t1(23,10,10), t2(12,9,7);
    next(&t1, &t2 , 86403*24);
    time* t3 = new time();
    time_miss(&t1, &t2 , t3);
    print_time(t2);
    print_time(t1);
    print_time(*t3);
 
}
Критика уместна , так как сам недавно изучаю с++
Zalik
2 / 2 / 0
Регистрация: 24.05.2010
Сообщений: 94
25.04.2012, 06:17  [ТС]     Функция: Написать функцию next(t, t1, d), которая присваивает параметру t1 время на d секунд больше, чем время t. #3
Огромное спасибо, за помощь!
Поставьте пожалуйста комменты, а то программа находит несколько ошибок.
Например вот здесь:
C
1
void next(const time* t, time* t1,const unsigned int d)
Size of 'next' is unknown or zero
balrak
6 / 6 / 1
Регистрация: 01.04.2012
Сообщений: 81
25.04.2012, 09:31     Функция: Написать функцию next(t, t1, d), которая присваивает параметру t1 время на d секунд больше, чем время t. #4
Zalik, У меня все нормально было
я не 1 раз запускал и проверал
Zalik
2 / 2 / 0
Регистрация: 24.05.2010
Сообщений: 94
25.04.2012, 20:14  [ТС]     Функция: Написать функцию next(t, t1, d), которая присваивает параметру t1 время на d секунд больше, чем время t. #5
Хорошо, спасибо большое. Приду домой и еще раз перепроверю!

Добавлено через 5 часов 50 минут
balrak, Не могу разобрать результат программы! Поставь пожалуйста комменты и с каким временем мы здесь работаем?
balrak
6 / 6 / 1
Регистрация: 01.04.2012
Сообщений: 81
26.04.2012, 00:02     Функция: Написать функцию next(t, t1, d), которая присваивает параметру t1 время на d секунд больше, чем время t. #6
0-23 hour
0-59 minute
0-59 second
если я правильно тебя понял
Zalik
2 / 2 / 0
Регистрация: 24.05.2010
Сообщений: 94
26.04.2012, 07:08  [ТС]     Функция: Написать функцию next(t, t1, d), которая присваивает параметру t1 время на d секунд больше, чем время t. #7
А здесь ты просто создал структуру или выполняются 2 поставленных выше условия? Вот что я не понимаю...
balrak
6 / 6 / 1
Регистрация: 01.04.2012
Сообщений: 81
26.04.2012, 18:07     Функция: Написать функцию next(t, t1, d), которая присваивает параметру t1 время на d секунд больше, чем время t. #8
Создал структуру и сделал функции

Цитата Сообщение от balrak Посмотреть сообщение
next(&t1, &t2 , 86403*24)
которая присваивает параметру t1 время на d секунд больше, чем время t

Цитата Сообщение от balrak Посмотреть сообщение
time_miss(&t1, &t2 , t3)
fun(t1, t2, d), которая вычисляет время d, прошедшее от времени t1 до времени t2.
Как я понял.
Zalik
2 / 2 / 0
Регистрация: 24.05.2010
Сообщений: 94
27.04.2012, 06:27  [ТС]     Функция: Написать функцию next(t, t1, d), которая присваивает параметру t1 время на d секунд больше, чем время t. #9
А какое время установлено первоначально в программе? И откуда берутся t2 и d? Объясни пожалуйста.
Nekto
342 / 287 / 10
Регистрация: 23.03.2012
Сообщений: 838
27.04.2012, 08:45     Функция: Написать функцию next(t, t1, d), которая присваивает параметру t1 время на d секунд больше, чем время t. #10
Цитата Сообщение от Zalik Посмотреть сообщение
А какое время установлено первоначально в программе? И откуда берутся t2 и d? Объясни пожалуйста.
time t1(23,10,10), t2(12,9,7);
balrak
6 / 6 / 1
Регистрация: 01.04.2012
Сообщений: 81
27.04.2012, 21:39     Функция: Написать функцию next(t, t1, d), которая присваивает параметру t1 время на d секунд больше, чем время t. #11
Цитата Сообщение от balrak Посмотреть сообщение
time t1(23,10,10)
Вот тут я создю таймер с настройкой времени 23:10:10
t2 это второй таймер , созданый сразу же после 1
d это время на какое смещен таймер t1
Цитата Сообщение от balrak Посмотреть сообщение
next(&t1, &t2 , 86403*24);
красное число это время в секундах на какое t2 > t1

Кто то может сказать как прога? оцените пожалуйста
Zalik
2 / 2 / 0
Регистрация: 24.05.2010
Сообщений: 94
28.04.2012, 07:54  [ТС]     Функция: Написать функцию next(t, t1, d), которая присваивает параметру t1 время на d секунд больше, чем время t. #12
balrak, Объясни пожалуйста еще раз результат программы... Очень прошу!
balrak
6 / 6 / 1
Регистрация: 01.04.2012
Сообщений: 81
28.04.2012, 23:08     Функция: Написать функцию next(t, t1, d), которая присваивает параметру t1 время на d секунд больше, чем время t. #13
Цитата Сообщение от balrak Посмотреть сообщение
time t1(23,10,10), t2(12,9,7); Создаю 2 таймера на 23:10:10 и 12:09:07
* * next(&t1, &t2 , 86403*24); функция делает копирование таймера 1 в таймер 2 и сдвигает время в
таймере 2 на 86403*24
* * time* t3 = new time(); создает указатель на таймер
* * time_miss(&t1, &t2 , t3); Эта функция расчитывает разницу между t2 i t1 и записывает в t3
* * print_time(t2); печать времени в таймере 2
Вот так вот
Zalik
2 / 2 / 0
Регистрация: 24.05.2010
Сообщений: 94
29.04.2012, 05:08  [ТС]     Функция: Написать функцию next(t, t1, d), которая присваивает параметру t1 время на d секунд больше, чем время t. #14
Спасибо!
Zalik
2 / 2 / 0
Регистрация: 24.05.2010
Сообщений: 94
04.05.2012, 05:58  [ТС]     Функция: Написать функцию next(t, t1, d), которая присваивает параметру t1 время на d секунд больше, чем время t. #15
А можно ли сделать так, чтобы время вводилось с клавиатуры?
amfisat
 Аватар для amfisat
67 / 67 / 1
Регистрация: 16.06.2009
Сообщений: 235
04.05.2012, 08:53     Функция: Написать функцию next(t, t1, d), которая присваивает параметру t1 время на d секунд больше, чем время t. #16
Возможно всё.
В main вместо:
C++
1
time t1(23,10,10), t2(12,9,7);
пишешь:
C++
1
2
3
time t1, t2;
    getTime (&t1);
    getTime (&t2);
И где-нибудь вне main добавляешь функцию ввода времени:
C++
1
2
3
4
5
6
void getTime (time* t)
{
    std::cout << "Enter hours: "; std::cin >> t->hour;
    std::cout << "Enter minuts: "; std::cin >> t->minute;
    std::cout << "Enter seconds: "; std::cin >> t->sec;
}
Zalik
2 / 2 / 0
Регистрация: 24.05.2010
Сообщений: 94
05.05.2012, 06:13  [ТС]     Функция: Написать функцию next(t, t1, d), которая присваивает параметру t1 время на d секунд больше, чем время t. #17
В программе, после ввода мной времени, каждый раз получается один и тот же результат 1 минута и 12 секунд. Почему так? И можно ли сделать так, чтобы время на которое мы сдвигаем первоначальное тоже вводилось с клавиатуры? И оба ответа выводились на экран.
Zalik
2 / 2 / 0
Регистрация: 24.05.2010
Сообщений: 94
10.05.2012, 07:01  [ТС]     Функция: Написать функцию next(t, t1, d), которая присваивает параметру t1 время на d секунд больше, чем время t. #18
Друзья, прошу помощи.

Добавлено через 10 часов 48 минут
Помогите пожалуйста
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
13.05.2012, 21:33     Функция: Написать функцию next(t, t1, d), которая присваивает параметру t1 время на d секунд больше, чем время t.
Еще ссылки по теме:

Написать инструкцию, которая присваивает целой переменной случайное число C++
C++ Написать программу вычисления величины дохода по вкладу. Процентная ставка (% годовых) и время хранения (дней) задаются во время работы программы
Написать функцию, которая принимает указатель на переменную и присваивает ей модуль самой себя. C++

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

Или воспользуйтесь поиском по форуму:
Zalik
2 / 2 / 0
Регистрация: 24.05.2010
Сообщений: 94
13.05.2012, 21:33  [ТС]     Функция: Написать функцию next(t, t1, d), которая присваивает параметру t1 время на d секунд больше, чем время t. #19
Кто может помочь с этой проблемой?
Yandex
Объявления
13.05.2012, 21:33     Функция: Написать функцию next(t, t1, d), которая присваивает параметру t1 время на d секунд больше, чем время t.
Ответ Создать тему
Опции темы

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