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

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

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 69, средняя оценка - 5.00
RWR
5 / 5 / 0
Регистрация: 19.10.2009
Сообщений: 73
#1

Идет K-ая секунда суток. Определить, сколько полных часов и полных минут прошло к этому моменту. - C++

26.10.2009, 19:47. Просмотров 9291. Ответов 13
Метки нет (Все метки)

помогите, не пойму как это подсчитать
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
26.10.2009, 19:47
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Идет K-ая секунда суток. Определить, сколько полных часов и полных минут прошло к этому моменту. (C++):

Идёт k-тая секунда суток. Определить, сколько полных часов и полных минут прошло к этому моменту. C++ - C++
Идёт k-тая секунда суток. Определить, сколько полных часов и полных минут прошло к этому моменту. C++

Идет n-я секунда суток. Определить, сколько полных часов и полных минут прошло до этого момента. - C++
Идет n-я секунда суток. Определить, сколько полных часов и полных минут прошло до этого момента.

Определить число полных часов и число полных минут, прошедших с начала суток - C++
С начала суток часовая стрелка повернулась на y градусов (0<=y<=360, y - вещественное число). Определить число полных часов и число полных...

C++ Идёт k-я секунда суток. Определите, сколько целых часов h и целых минут m прошло с начала суток - C++
Идёт k-я секунда суток. Определите, сколько целых часов h и целых минут m прошло с начала суток. Например, если k=13257=33600+4060+57,...

Определить значение угла для минутной стрелки, а также количество полных часов и полных минут - C++
вот задание Часовая стрелка образует угол у с лучом, проходящим через центр и через точку, соответствующую 12 часам на циферблате. 0<у ≤...

С начала суток часовая стрелка повернулась на "y" градусов. Сколько часов и минут прошло с начала суток? - C++
С начала суток часовая стрелка повернулась на "y" градусов. Сколько часов и сколько минут прошло с начала суток? #include...

13
manfeese
129 / 128 / 16
Регистрация: 04.01.2009
Сообщений: 415
26.10.2009, 19:52 #2
C++
1
2
3
int hour, min, sec;
min = sec/60;
hour = sec/3600;
Вот и все по-моему. Че тут сложного?
1
RWR
5 / 5 / 0
Регистрация: 19.10.2009
Сообщений: 73
26.10.2009, 19:54  [ТС] #3
manfeese," / "- вычисляет целочисленное деление? прост я с ним не встречался
0
TanT
эволюционирую потихоньку
465 / 463 / 43
Регистрация: 30.06.2009
Сообщений: 1,399
26.10.2009, 19:58 #4
есть у меня заначка

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
#include <iostream>
#include <cmath>
 
using namespace std;
 
// все возможные форматы времени
#define HHMMinMM(hour, minute) (hour*60+minute)
#define HourMinuteSec_In_Hour(hour, minute, sec)   (hour+(double)minute/60+(double)sec/3600)
#define HourMinuteSec_In_Minute(hour, minute, sec) (hour*60+minute+(double)sec/60)
#define HourMinuteSec_In_Sec(hour, minute, sec)    (hour*3600+minute*60+sec)
// только для вывода
#define Minute_In_HourMinuteSec(minute)     (int)(minute/60)<<":"<<(int)minute%60<<":"<<(int)(((int)(minute*100)%100)*60/100)
#define Minute_In_HourMinute(minute)     (int)(minute/60)<<":"<<(int)minute%60
#define Sec_In_HourMinuteSec(sec)           (int)(sec/3600)<<":"<<((int)sec%3600)/60<<":"<<((int)sec%3600)%60
 
 
// только для вывода c ограничение на день, то есть от 0:0:0 до 23:59:59
#define Minute_In_Hour0Minute_OneDay(minute)          ((int)(minute/60)%24)<<":"<<"0"<<(int)minute%60
#define Minute_In_HourMinute_OneDay(minute)       ((int)(minute/60)%24)<<":"<<(int)minute%60
#define Minute_In_HourMinuteSec_OneDay(minute)  ((int)(minute/60)%24)<<":"<<(int)minute%60<<":"<<(int)(((int)(minute*100)%100)*60/100)
#define Sec_In_HourMinuteSec_OneDay(sec)        ((int)(sec/3600)%24)<<":"<<((int)sec%3600)/60<<":"<<((int)sec%3600)%60
 
 
void main()
{ 
    int arrayN[ ]={10,9,2,3,4,6,8,5,10,9, 10};
    long second;
 
    cout<<"Enter second: "; cin>>second;
    cout<<"Result: "<<Sec_In_HourMinuteSec_OneDay(second);
    cout<<endl; system("pause");
}
1
RWR
5 / 5 / 0
Регистрация: 19.10.2009
Сообщений: 73
26.10.2009, 22:21  [ТС] #5
Цитата Сообщение от RWR Посмотреть сообщение
manfeese," / "- вычисляет целочисленное деление? прост я с ним не встречался
ну и тупость я наплел, извеняюсь, я со знаками запутался

Добавлено через 10 минут
C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
#include <stdio.h>
#include <stdlib.h>
 
int main()
{
        int hour,min,sec;
        printf("Idet Secunda");
        scanf("%d", sec);
        min=sec/1440;
        hours=sec/86400;
        printf("Proshlo minut %d", min);
        printf("Proshlo chasov %d", hours);
        return 0;
}
подскажите что не так
0
Rififi
2359 / 1052 / 44
Регистрация: 03.05.2009
Сообщений: 2,656
26.10.2009, 22:25 #6
RWR,
" / "- вычисляет целочисленное деление? прост я с ним не встречался
если делишь целые числа, то дробная часть отбрасывается. для вещественных - всё как положено.
1
RWR
5 / 5 / 0
Регистрация: 19.10.2009
Сообщений: 73
26.10.2009, 23:20  [ТС] #7
Rififi, спасибо я с этим уже разобрался

Добавлено через 18 минут
min=sec/1440;
hours=sec/86400;

может ошибки здес

Добавлено через 33 минуты
ну я уверен что решается все очень просто, только как сделать так, чтобы прога работала
0
manfeese
129 / 128 / 16
Регистрация: 04.01.2009
Сообщений: 415
27.10.2009, 00:50 #8
min=sec/1440;
hours=sec/86400;

может ошибки здес
Да, скорее всего здесь! чтобы определить количество прошедших минут за текущие сутки, ты делиш текущую секунду на 1440, походу это не правильно! В сутках 1440 минут, выходит, что твое максимальное значение в минутах будет 60 а в часах вообще 1.

Просто вопрос в другом: полных минут тебе конкретно в чем надо вычислить: в часе или в сутках???
С часами тут все понятно, ну а если же тебе все таки надо определить, сколько полных минут прошло в сутках, то тогда значения min и hour должны быть равны тому, что я приводил ранее:
C++
1
2
3
int hour, min, sec;
min = sec/60;
hour = sec/3600;
таким образом, максимальное значение минут в таком случае будет составлять 1440, а часов 24.
То есть имея значение секунд, например, 14550 получится полных часов 4, а полных минут 242.

А если тебе все таки надо полное значение минут в часе, то следуеть приравнять так:
C++
1
2
3
int hour, min, sec;
hour = sec/3600;
min = (sec-hour*3600)/60;
В этом случае, если количество секунд, например, будет опять-таки 14550, полных часов так и останется 4, а полных минут в часе получится 2. То есть фактически тебе показывает текущее время, зная секунды: 4ч 2м.
0
Ламер
5 / 5 / 0
Регистрация: 25.10.2009
Сообщений: 13
27.10.2009, 01:31 #9
Присоединяюсь к предыдущему оратору с одним дополнением:
будь внимательнее с именами переменных "hour" и "hours" - разные переменные
а код получился твой таким:

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
#include <iostream>
using namespace std;
 
int main()
{
        int hour,min,sec;
        printf("Idet Secunda \n");
        cin>>sec;
        hour=sec/3600;
        min=(sec-hour*3600)/60;
        sec=(sec-hour*3600-min*60);
 
        printf("Proshlo Vremeni \n Hour:%d min:%d sec:%d \n", hour,min,sec);
        return 0;
}
0
RWR
5 / 5 / 0
Регистрация: 19.10.2009
Сообщений: 73
27.10.2009, 07:00  [ТС] #10
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 <stdio.h>
#include <stdlib.h>
 
int main()
{
        int hour,min,sec;
        printf("Idet Secunda");
        scanf("%d", sec);
        min = sec/60;
        hour = sec/3600;
        printf("Proshlo Vremeni \n Hour:%d min:%d \n", hour,min);
        return 0;
}
 
manfeese, тогда должно быть вот так, а прога не работает
 
[SIZE=1][COLOR=grey][I]Добавлено через 5 минут[/I][/COLOR][/SIZE]
int main()
{
        int sec;
        float hour,min;
        printf("Idet Secunda");
        scanf("%d", sec);
        min = sec/60;
        hour = sec/3600;
        printf("Proshlo Vremeni \n Hour:%.1f min:%.1f \n", hour,min);
        return 0;
}
прога работаетвот таком виде но результат выдает неправильный
если секунд 65, то часов прошло 596483, а минут 35789004
0
manfeese
129 / 128 / 16
Регистрация: 04.01.2009
Сообщений: 415
27.10.2009, 10:37 #11
Ошибка в восьмой строке!
C++
1
scanf("%d", sec);
Эта функция предполагает записи не самой переменной а ее адреса, то есть
C++
1
scanf("%d", &sec);
0
LLLob
22 / 22 / 5
Регистрация: 21.10.2009
Сообщений: 38
27.10.2009, 12:32 #12
Вот реализация этой программы на языке С++
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
#include<iostream>
#include<windows.h>
using namespace std;
void main()
{
    SetConsoleOutputCP(1251);
    int k, m, h;
    cout<<"Введите k-секунду\n";
             cin>>k;
    if(k<60)
    {
        cout<<"Не прошло ни одной полной минуты"<<endl;
        cin.get();
        cin.get();
    }
    else
    {
    if(k<3600 && k>=60)
    {
        m=k/60;
        cout<<"Прошло полных "<<m<<" минут(ы)"<<endl;
        cin.get();
        cin.get();
    }
    else
    {
        h=k/3600;
        m=(k-(3600*h))/60;
        cout<<"Прошло полных "<<h<<" часов(а)"<<endl;
        cout<<"Прошло полных "<<m<<" минут(ы)"<<endl;
        cin.get();
        cin.get();
    }
    }
Здесь осуществляется проверка: прошло меньше минуты, прошло меньше часа, прошло больше часа - исходя из этого ведется подсчет полных минут, часов
1
manfeese
129 / 128 / 16
Регистрация: 04.01.2009
Сообщений: 415
27.10.2009, 14:45 #13
если вычислять время по текущей секунде, то можно еще использовать такой метод приравнения:

C++
1
2
3
 hour=sec/3600;
min=(sec%3600)/60;
sec=(sec%3600)%60;
По-моему работает чуть-чуть быстрее, чем мой предыдущий пример

C++
1
2
3
4
        
hour=sec/3600;
min=(sec-hour*3600)/60;
sec=(sec-hour*3600-min*60);
Добавлено через 23 минуты
Вот пример такой проги, в которой входящие секунды принимают любое значение от 0 и до ...максимального значения int.
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
#include <iostream.h>
 
void TimeBySecond(int &Hour,int &Min, int &Sec)
{
  Hour = (Sec/3600)%24;
  Min = (Sec%3600)/60;
  Sec = (Sec%3600)%60;
}
 
int main()
{
    int h,m,s;
    cout<<"Input seconds: ";  cin>>s;
 
    TimeBySecond(h,m,s);
    cout<<"Time: "<<h<<":"<<m<<":"<<s;
        cin.get();
        cin.get();
    return 0;
}
Добавлено через 8 минут
А если вычислять полные часы и минуты в сутках, то вот так:

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
#include <iostream.h>
 
void FullBySecond(int &Hour,int &Min, int &Sec)
{
  Hour =Sec/3600;
  Min = Sec/60;
}
 
int main()
{
    int h,m,s;
    cout<<"Input seconds: ";  cin>>s;
 
    FullBySecond(h,m,s);
    cout<<"Full hours: "<<h;
    cout<<"\nFull minutes:"<<m;
        cin.get();
        cin.get();
    return 0;
}
1
RWR
5 / 5 / 0
Регистрация: 19.10.2009
Сообщений: 73
27.10.2009, 14:58  [ТС] #14
спасибо, manfeese, я разобрался

C
1
2
3
4
5
6
7
8
9
10
11
12
13
#include <stdio.h>
#include <stdlib.h>
 
int main()
{
        int sec,hour,min;
        printf("Idet Secunda");
        scanf("%d", &sec);
        hour=sec/3600;
        min=(sec-hour*3600)/60;
        printf("Proshlo Vremeni \n Hour:%d min:%d \n", hour,min);
        return 0;
}
работающая на С
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
27.10.2009, 14:58
Привет! Вот еще темы с ответами:

Вычислить сколько полных недель прошло между указанными датами - C++
Заданы натуральные числа а1, b1, a2, b2, которые обозначают числа и номера месяцев не високосного года (год один и тот же). Вычислить...

Определить наименьшее число полных минут до момента, когда часовая и минутная стрелка на циферблате совпадут - C++
Даны целые числа h и m, указывающие момент времени &quot;h часов m минут&quot;. Определить наименьшее число полных минут, которые должны пройти до...

Вычислить количество дней, полных месяцев, и полных лет, прошедших между датами - C++
Даны натуральные числа a1, b1 , c1 (число, месяц, год) a2, b2, c2 (число, месяц, год) ...

Определить наименьшее время (число полных минут), которые должны пройти до того момента, когда часовая и минутная стрелки на циферблате совпадут - C++
Нужно ввести целые числа m и n (часы и минуты), 0 &lt;= m &lt;= 11, 0 &lt;= n &lt;= 59, которые определяют время суток. Определить наименьшее время...


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

Или воспользуйтесь поиском по форуму:
14
Yandex
Объявления
27.10.2009, 14:58
Ответ Создать тему
Опции темы

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