Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.97/229: Рейтинг темы: голосов - 229, средняя оценка - 4.97
5 / 5 / 0
Регистрация: 19.10.2009
Сообщений: 73

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

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

Студворк — интернет-сервис помощи студентам
помогите, не пойму как это подсчитать
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
26.10.2009, 19:47
Ответы с готовыми решениями:

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

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

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

13
 Аватар для manfeese
133 / 132 / 29
Регистрация: 04.01.2009
Сообщений: 415
26.10.2009, 19:52
C++
1
2
3
int hour, min, sec;
min = sec/60;
hour = sec/3600;
Вот и все по-моему. Че тут сложного?
1
5 / 5 / 0
Регистрация: 19.10.2009
Сообщений: 73
26.10.2009, 19:54  [ТС]
manfeese," / "- вычисляет целочисленное деление? прост я с ним не встречался
0
эволюционирую потихоньку
 Аватар для TanT
468 / 466 / 91
Регистрация: 30.06.2009
Сообщений: 1,401
26.10.2009, 19:58
есть у меня заначка

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
5 / 5 / 0
Регистрация: 19.10.2009
Сообщений: 73
26.10.2009, 22:21  [ТС]
Цитата Сообщение от 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
MCSD: APP BUILDER
 Аватар для IT_Exp
8795 / 1074 / 104
Регистрация: 17.06.2006
Сообщений: 32,602
26.10.2009, 22:25
RWR,
" / "- вычисляет целочисленное деление? прост я с ним не встречался
если делишь целые числа, то дробная часть отбрасывается. для вещественных - всё как положено.
1
5 / 5 / 0
Регистрация: 19.10.2009
Сообщений: 73
26.10.2009, 23:20  [ТС]
Rififi, спасибо я с этим уже разобрался

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

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

Добавлено через 33 минуты
ну я уверен что решается все очень просто, только как сделать так, чтобы прога работала
0
 Аватар для manfeese
133 / 132 / 29
Регистрация: 04.01.2009
Сообщений: 415
27.10.2009, 00:50
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 / 2
Регистрация: 25.10.2009
Сообщений: 13
27.10.2009, 01:31
Присоединяюсь к предыдущему оратору с одним дополнением:
будь внимательнее с именами переменных "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
5 / 5 / 0
Регистрация: 19.10.2009
Сообщений: 73
27.10.2009, 07:00  [ТС]
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
133 / 132 / 29
Регистрация: 04.01.2009
Сообщений: 415
27.10.2009, 10:37
Ошибка в восьмой строке!
C++
1
scanf("%d", sec);
Эта функция предполагает записи не самой переменной а ее адреса, то есть
C++
1
scanf("%d", &sec);
0
22 / 22 / 7
Регистрация: 21.10.2009
Сообщений: 38
27.10.2009, 12:32
Вот реализация этой программы на языке С++
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
133 / 132 / 29
Регистрация: 04.01.2009
Сообщений: 415
27.10.2009, 14:45
если вычислять время по текущей секунде, то можно еще использовать такой метод приравнения:

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
5 / 5 / 0
Регистрация: 19.10.2009
Сообщений: 73
27.10.2009, 14:58  [ТС]
спасибо, 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
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
27.10.2009, 14:58
Помогаю со студенческими работами здесь

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

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

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

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

Задана дата d.m.g. Сколько полных кварталов прошло от начала этого года
Задана дата d.m.g. Сколько полных кварталов прошло от начала этого года?


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

Или воспользуйтесь поиском по форуму:
14
Ответ Создать тему
Новые блоги и статьи
SDL3 для Web (WebAssembly): Идентификация объектов на Box2D v3 - использование userData и событий коллизий
8Observer8 02.03.2026
Содержание блога Финальная демка в браузере. Итоговый код: finish-collision-events-sdl3-c. zip https:/ / www. cyberforum. ru/ blog_attachment. php?attachmentid=11680&amp;d=1772460536 Одним из. . .
Реалии
Hrethgir 01.03.2026
Нет, я не закончил до сих пор симулятор. Эта задача сложнее. Не получилось уйти в плавсостав, но оно и к лучшему, возможно. Точнее получалось - но сварщиком в палубную команду, а это значит, в моём. . .
Ритм жизни
kumehtar 27.02.2026
Иногда приходится жить в ритме, где дел становится всё больше, а вовлечения в происходящее — всё меньше. Плотный график не даёт вниманию закрепиться ни на одном событии. Утро начинается с быстрых,. . .
SDL3 для Web (WebAssembly): Сборка библиотек: SDL3, Box2D, FreeType, SDL3_ttf, SDL3_mixer и SDL3_image из исходников с помощью CMake и Emscripten
8Observer8 27.02.2026
Недавно вышла версия 3. 4. 2 библиотеки SDL3. На странице официальной релиза доступны исходники, готовые DLL (для x86, x64, arm64), а также библиотеки для разработки под Android, MinGW и Visual Studio. . . .
SDL3 для Web (WebAssembly): Реализация движения на Box2D v3 - трение и коллизии с повёрнутыми стенами
8Observer8 20.02.2026
Содержание блога Box2D позволяет легко создать главного героя, который не проходит сквозь стены и перемещается с заданным трением о препятствия, которые можно располагать под углом, как верхнее. . .
Конвертировать закладки radiotray-ng в m3u-плейлист
damix 19.02.2026
Это можно сделать скриптом для PowerShell. Использование . \СonvertRadiotrayToM3U. ps1 <path_to_bookmarks. json> Рядом с файлом bookmarks. json появится файл bookmarks. m3u с результатом. # Check if. . .
Семь CDC на одном интерфейсе: 5 U[S]ARTов, 1 CAN и 1 SSI
Eddy_Em 18.02.2026
Постепенно допиливаю свою "многоинтерфейсную плату". Выглядит вот так: https:/ / www. cyberforum. ru/ blog_attachment. php?attachmentid=11617&stc=1&d=1771445347 Основана на STM32F303RBT6. На борту пять. . .
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru