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

Временной интервала - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Вложение error2872 http://www.cyberforum.ru/cpp-beginners/thread286069.html
#include <iostream> using namespace std; class string { private: char *str; int len; public:
C++ структуры. Здесь я Описал структуру с именем STUDENT, содержащую следующие поля: фамилия и инициалы (name) номер группы (group) успеваемость (массив из пяти элементов) (ses). после того как нажимаю 3-(инф-я об оценках, конкретно вывести тех у кого балл больше 4.0) появляется эта штука Run-Time Check Failure #3 - The variable 'r' is being used without being initialized. переменная r отвечает за то... http://www.cyberforum.ru/cpp-beginners/thread286065.html
Помогите не работает! (Нахождение СКНФ) C++
//--------------------------------------------------------------------------- #include <stdio.h> #pragma hdrstop #include <tchar.h> #include <stdlib.h> #include <math.h> #include <conio.h> //--------------------------------------------------------------------------- #pragma argsused struct STACK
Тема потоки данных C++
Задача: Создается файл путем ввода имени файла с клавиатуры, хочу с помощью функции get() и цикла do while ввести текст, который выведется точно так же на монитор и запишется в файл. Ниже приведен код, который просто отображает введеную строку. #include<iostream> using namespace std; int main() { setlocale(0,"");
C++ resize и vector http://www.cyberforum.ru/cpp-beginners/thread286024.html
что делает функция resize в vector? ну например ...... ...... vector<int>tin; ..... ..... tin.resize(n);?
C++ Игра "Угадай число" Помогите написать программу!!!Вот задание: Игра «Угадай число»: составьте программу определения компьютером задуманного человеком числа от 1 до 1000 с помощью 10 вопросов. Ответы человека – да, нет. подробнее

Показать сообщение отдельно
EpicLove
 Аватар для EpicLove
46 / 2 / 0
Регистрация: 19.04.2011
Сообщений: 48
30.04.2011, 08:05     Временной интервала
Имеется задание :
Заданы моменты начала и конца некоторого промежутка вре-мени в часах, мину¬тах и секундах (в пределах одних суток). Найти продолжительность этого промежутка в тех же единицах1.
Исходными данными для этой задачи являются шесть целых величин, задающих моменты начала и конца интервала, результатами — три целых величины. Вы уже знаете, что тип переменной выбирается, исходя из диапазона и требуемой точности представ-ления данных, а имя дается в соответствии с ее содержимым. Нам потребуется хранить исходные данные, не превышающие величины 60 для минут и секунд и величины 24 для часов, поэтому можно ограничиться коротким целым типом (short 1nt. сокращенно short). Назовем переменные для хранения начала интервала hourl, mini и seel, для хранения конца интервала — hour2. ш1п2 и sec2. а резуль-тирующие величины- hour, ml пи sec.
Для решения этой задачи необходимо преобразовать оба мо-мента времени в секунды, вычесть первый из второго, а затем пре-образовать результат обратно в часы, минуты и секунды. Следова-тельно, нам потребуется промежуточная переменная, в которой бу-дет храниться интервал в секундах. Она может иметь весьма боль-шие значения, ведь в сутках 86400 секунд. В величинах типа short могут храниться значения, не превышающие 32767 для величин со знаком (signed short) и 65535 для величин без знака (unsigned short), поэтому тип short здесь использовать нельзя. Вот почему для этой переменной следует выбрать длинный целый тип (long Int. сокра-щенно long). «Обычный» целый тип int в зависимости от архитек-туры компьютера может совпадать либо с коротким, либо с длинным целым типом.
У меня вышел код :

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
#include <iostream> 
using namespace std;
 
int main()
{
    setlocale (LC_ALL,".1251"); // 2 - ГіГ±ГІГ*Г*Г*âëèâГ*ГҐГ¬ ðóñ. ñèìâîëû, Гў ñâÿçè Г± "ÓÃ" ГЋГ‘ ... ГЇГЁГёГҐГ¬ .1251 =)
    short hour_1, min_1, sec_1, hour_2, min_2, sec_2, hour_, min_, sec_;
    long sum_sec;
    cout << "Ââåäèòå âðåìÿ Г*Г*Г·Г*Г«Г* ГЁГ*òåðâГ*ГЇГ* (Г·Г*Г± ìèГ* Г±ГҐГЄ) ";
    cin >> hour_1 >> min_1 >> sec_1;
    cout << endl << "Ââåäèòå âðåìÿ  ГЄГ®Г*Г¶Г* ГЁГ*òåðâГ*Г«Г* (Г·Г*Г± Г±ГҐГЄ Г±ГҐГЄ) ";
    cin >> hour_2 >> min_2 >> sec_2;
    sum_sec = (hour_2 - hour_1) * 3600 * ((min_1-min_2) * 60 * (sec_2 - sec_1));
    hour_ = sum_sec / 3600;
    min_ = ((sum_sec - hour_) * 3600)  * 60 - min_; 
    sec_ = sum_sec - hour_ * 3600 - min_ * 60;
    
    cout << "ÏðîäîëæèòåëüГ*îñòü ïðîêåæóòêГ* îò " << hour_1 <<':'; 
    cout << min_1 << ':' << sec_1 << " äî " << hour_2 << ':'<< min_2 << ':';
    cout << sec_2 << " Г°Г*ГўГ*Г* "<< hour_  << ':'<< min_ << ':' << sec_ << "\n";
    system("pause");
    return 0;
}
если задавать параментры 12 00 00 и 13 00 00 , мы должны получить результат 1 00 00(как я понимаю)

у меня вызывает затруднение формула

C++
1
2
3
4
    sum_sec = (hour_2 - hour_1) * 3600 * ((min_1-min_2) * 60 * (sec_2 - sec_1));
    hour_ = sum_sec / 3600;
    min_ = ((sum_sec - hour_) * 3600)  * 60 - min_; 
    sec_ = sum_sec - hour_ * 3600 - min_ * 60;
sum_sec как я понимаю вычислять во сколько сек разница между заданным временем
час
минуты
секунды

Мне программа выдает следующее :

Введите время начала интервапа (час мин сек) 13 00 00

Введите время конца интервала (час сек сек) 14 00 00
Продолжительность прокежутка от 13:0:0 до 14:0:0 равна 0:-19008:26368
Прошу помощи в разбирании формулы(не прошу её писать, хочу сам разобраться в написании.
Но прошу объяснить что и как должно высчитываться.

Изначала был дан код с кучей ошибок, данные ошибки исправил, но затруднение вызвала формула, т.к. немного не понимаю её.
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
 
Текущее время: 17:39. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru