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

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

Войти
Регистрация
Восстановить пароль
 
alex_news
0 / 0 / 0
Регистрация: 19.12.2013
Сообщений: 8
#1

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

19.12.2013, 12:23. Просмотров 427. Ответов 7
Метки нет (Все метки)

Задали программу: Задано время в часа и минутах. Определить через сколько минут часовая и минутная стрелки будут образовывать угол в 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++(в виде кода программы) 1.В озере растут лотосы. За сутки каждый лотос делится пополам, и вместо одного лотоса...

Сколько минут будет длиться пожар? - C++
Склад, имеющий форму квадрата со стороной N (1 &lt;= N &lt;= 1000), разбит на пронумерованные слева направо по строкам единичные квадраты...

Сколько мух осталось в комнате через К минут? Смоделировать процесс - C++
Когда в комнате было N мух, их начали выгонять, но то что-бы выгнать одну муху уходила 1 минута. Через каждые 5 минут в комнату влетала...

Определить, сколько амеб будет через 24 часа - C++
помогите пожалуйста решить задачу на си одноклеточная амеба каждые 3 часа делится на 2 клетки. Определить, сколько амеб будет через...

Определить, через сколько лет будет погашена ссуда - C++
Некто взял ссуду в банке величиной А руб. под В% годовых. Ежегодно за-емщик вносит платежи в счет ссуды в С руб. Написать программу,...

Определить, сколько клеток будет через определенные промежутки времени - C++
Одноклеточная амеба каждые 3 часа делится на две клетки. Определить, сколько клеток будет черещ 3, 6, 9, ..., 24 часа. Если первоначально...

Вычислить, сколько роботов будет через определенное количество лет - C++
Есть определенное количество роботов (ввести с клавиатуры). В начале года они делятся на группы по 5 и по 3 работа. За год группа из 5...

После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
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++
У Максима х знакомых. Из них все четные - женского пола, а нечетные - животные. Те животные, индекс которых равен 3 - домашние. Из них...

Определить сколько амёб будет через заданный промежуток времени, если известна скорость деления амёбы - C++
Нужно решить задачу: Одноклеточная амёба каждые 3 часа делится на 2 клетки. Определите сколько амёб будет через 3, 6, 9, 12 ... 24 часа. ...

Одноклеточная амеба каждые 3 часа делится на 2 клетки. Определить, сколько амеб будет через 3, 6, 9, 12, ... , 24 часа ? - C++
Одноклеточная амеба каждые 3 часа делится на 2 клетки. Определить, сколько амеб будет через 3, 6, 9, 12, ... , 24 часа ? (HELP)

Посчитать, сколько раз будет вызвана рекурсивная функция, если ей будет передан заданный аргумент - C++
int foo(int n) { if (n &lt;= 0) return 1; return foo((n * 2) / 3) + foo(n - 2); }Нужно посчитать, сколько всего раз...

Сколько кроликов будет через год, если каждый год пара кроликов (самец и самка) даёт приплод - C++
Условие Пара кроликов каждый год даёт приплод двух (самца и самку),которые через месяц способны давать новый приплод . Сколько кроликов...


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

Или воспользуйтесь поиском по форуму:
ZeR_0
117 / 109 / 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 градсов
Ответ Создать тему
Опции темы

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