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

Задача через сколько минут будет 90 градсов - C++

Восстановить пароль Регистрация
 
alex_news
0 / 0 / 0
Регистрация: 19.12.2013
Сообщений: 8
19.12.2013, 12:23     Задача через сколько минут будет 90 градсов #1
Задали программу: Задано время в часа и минутах. Определить через сколько минут часовая и минутная стрелки будут образовывать угол в 90 градусов (Часовая стрелка перемещается дискретно, т. е. по часу) . Не могу подобрать формулу, которая расчитывала бы все случаи. Есть предложения?
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
// лаба 2ц.cpp: определяет точку входа для консольного приложения.
//
 
#include "stdafx.h"
#include <iostream>
#include "math.h"
 
using namespace std;
 
void main(void)
 
{setlocale(LC_ALL, "Russian");
    int n, m, d,c,a;
char ans='y';
while (ans=='y' || ans=='Y')
 
    {cout<<"Введите часы: ";
    cin>>n;
    cout<<"Введите минуты: ";
    cin>>m;
    d=5*n;
    c=m-d;
    a=d-m;
 
    if ((13<=n) || (60<=m)) 
    cout<<"Некорректно введены данные. Проверьте, чтобы значение часа было положительным и меньше 12, а значение минут было положительным и меньше 60.                     Хотите повторить ввод? Y/N ";
    else if (c==15 || a==15) cout<<"Угол между стрелками 90 градусов. Хотите повторить ввод? Y/N ";
    else if (m>30) cout<<"Через "<<abs(m-15-d)<<" минут угол между часовой и минутной стрелкой будет 90 градусов.  Хотите повторить ввод? Y/N  ";
    else if (m<30) cout<<"Через "<<abs(d-m-15)<<" минут угол между часовой и минутной стрелкой будет 90 градусов.  Хотите повторить ввод? Y/N  ";
    else if (m=d) cout<<"Через "<<15<<" минут угол между часовой и минутной стрелкой будет 90 градусов.  Хотите повторить ввод? Y/N  ";
    cin>>ans;}
 
system ("pause");}
Добавлено через 11 часов 57 минут
Ну, помогите плиз!
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
19.12.2013, 12:23     Задача через сколько минут будет 90 градсов
Посмотрите здесь:

сколько человек прожил месяцев, дней, часов, минут, секунд C++
C++ Одноклеточная амеба каждые 3 часа делится на 2 клетки. Определить, сколько амеб будет через 3, 6, 9, 12, ... , 24 часа ?
C++ Определить, сколько и каких животных и людей будет у Максима через месяц, если все люди размножаются с геометрической прогрессией, а животные по формуле - (3*day)+4.
C++ Какое время будут показывать часы через р часов q минут r секунд?
C++ Задача про лотосы: за сутки каждый лотос делится пополам. Определить сколько будет через месяц.
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Miwa123
37 / 37 / 1
Регистрация: 16.04.2013
Сообщений: 317
Записей в блоге: 1
19.12.2013, 13:06     Задача через сколько минут будет 90 градсов #2
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
#include <iostream>
#include <conio.h>
using namespace std;
 
int main()
{
    int temp;
    for(int i=0;i<24;i++)
        for(int j=0;j<60;j+=5)
        {
            temp=i;
            if(temp>12)
                temp-=12;
            if(abs(temp-float(j)/5)==3 || abs(temp-float(j)/5)==9)
                cout<<"Hours: "<<i<<"  Minute: "<<j<<endl;
        }
    getch();
}
мне курсач нужно делать. зачем я это писал..
korlend
5 / 5 / 0
Регистрация: 17.12.2013
Сообщений: 10
19.12.2013, 13:22     Задача через сколько минут будет 90 градсов #3
ну и дополню свой вариантик, не зря же писал)
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
#include "stdafx.h"
#include <iostream>
#include <math.h>
 
using namespace std;
 
 
int main()
{
    int hour=0;
    int min=0;
    int counter=0;
    while(hour!=12)
    {
        if(min==60)
        {
            hour++;
            min=0;
        }
        //cout<<hour<<" "<<min<<endl;;
        if(abs(min-hour*5)==15 || abs(min-hour*5)==45)
        {
            counter++;
            cout<<hour<<" "<<min<<" 90"<<endl;;
        }
        min++;
    }
    system("pause");
    return 0;
}
alex_news
0 / 0 / 0
Регистрация: 19.12.2013
Сообщений: 8
19.12.2013, 13:28  [ТС]     Задача через сколько минут будет 90 градсов #4
спасибо конечно, все работает, вот только нужно ввести время самому в консоль и она тебе выводила количество минут, через которое угол будет 90 градусов


Добавлено через 14 секунд
korlend, не запускается
korlend
5 / 5 / 0
Регистрация: 17.12.2013
Сообщений: 10
19.12.2013, 17:38     Задача через сколько минут будет 90 градсов #5
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 "stdafx.h"
#include <iostream>
#include <math.h>
 
using namespace std;
 
 
int main()
{
    setlocale(LC_ALL,"rus");
    int hour=-1;
    int min=-1;
    int counter=0;
    while((hour<0 || hour>12) || (min<0 || min>60))
    {   
        system("cls");
        cout<<"введите последовательно часы и минуты"<<endl;
        cin>>hour>>min;
    }
    while(hour!=12)
    {
        if(min==60)
        {
            hour++;
            min=0;
        }
        if(abs(min-hour*5)==15 || abs(min-hour*5)==45)
        {
            cout<<"через "<<counter<<" минут будет 90 градусов"<<endl;
            break;
        }
        counter++;
        min++;
        if(hour==11 && min==60)
            hour=0;
    }
    system("pause");
    return 0;
}
alex_news
0 / 0 / 0
Регистрация: 19.12.2013
Сообщений: 8
19.12.2013, 18:04  [ТС]     Задача через сколько минут будет 90 градсов #6
korlend, спасибо!
korlend
5 / 5 / 0
Регистрация: 17.12.2013
Сообщений: 10
19.12.2013, 20:23     Задача через сколько минут будет 90 градсов #7
прощу прощения, кое что упустил, при вводе 11-ти часов и минут 45+ считало бы неправильно
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 "stdafx.h"
#include <iostream>
#include <math.h>
 
using namespace std;
 
 
int main()
{
    setlocale(LC_ALL,"rus");
    int hour=-1;
    int min=-1;
    int counter=0;
    while((hour<0 || hour>12) || (min<0 || min>60))
    {   
        system("cls");
        cout<<"введите последовательно часы и минуты"<<endl;
        cin>>hour>>min;
    }
    while(hour!=12)
    {
        if(min==60)
        {
            hour++;
            min=0;
        }
        if(abs(min-hour*5)==15 || abs(min-hour*5)==45)
        {
            cout<<"через "<<counter<<" минут будет 90 градусов"<<endl;
            break;
        }
        counter++;
        min++;
        if(hour==11 && min==60)
            hour=-1;
    }
    system("pause");
    return 0;
}
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
19.12.2013, 22:13     Задача через сколько минут будет 90 градсов
Еще ссылки по теме:

Программа должна писать сколько лет, месяцев, дней, часов, минут, секунд прожил человек C++
C++ Написать программу, определяющую, сколько мышек успеют съесть N кошек за Y минут
C++ Сколько мух осталось в комнате через К минут? Смоделировать процесс

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

Или воспользуйтесь поиском по форуму:
ZeR_0
116 / 108 / 37
Регистрация: 30.01.2013
Сообщений: 297
19.12.2013, 22:13     Задача через сколько минут будет 90 градсов #8
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
#include <iostream>
#define segment 5
 
int main(void){
    setlocale(LC_ALL,"rus");
 
    size_t hour;
    size_t minute;
    size_t left, right;
 
    do{
        system("CLS");
        std::cout << "Часы (hh): ";
        std::cin >> hour;
        std::cout << "Минуты (mm): ";
        std::cin >> minute;
    }while((hour > 12 || hour <= 0) || (minute > 59 || minute < 0));
 
    std::cout << "Ближайшие 90 градусов через: ";
 
    if(hour*segment-15 <= 0) 
        left = 75 - hour*segment;
    else 
        left = hour*segment - 15;
 
    if(hour*segment + 15 > 60)
        right = hour*segment - 45;
    else 
        right = hour*segment + 15;
 
    if(minute >= right)
        std::cout << (60 - minute) + left;  
    else if(minute < left)
        std::cout << left - minute;
    else std::cout << right - minute;
 
    std::cout << " минут(-у/-ы)" << std::endl;
 
    return 0;
}
Yandex
Объявления
19.12.2013, 22:13     Задача через сколько минут будет 90 градсов
Ответ Создать тему
Опции темы

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