Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > C/C++ программирование > Общие вопросы C/C++
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 30.10.2012, 05:16   #1
denzel_ua
Новичок
Джуниор
 
Регистрация: 30.10.2012
Сообщений: 1
По умолчанию Определить угол положения часовой стрелки - проверьте меня

Проверьте пожалуйста 2 задачи, не пойму где ошибка.
Если в первой задаче ввести 12:15:00 то получится 183.75', а если это ввести во второй - получится 12:25.

1) Определить угол между положением часовой стрелки в начале суток и в указанный момент

Цитата:
#include <iostream>
using namespace std;

void main()
{
setlocale(LC_ALL, "");
double h,m,s,all_sec,all_min,gr;
cout<<"Введите время: ";
cin>>h>>m>>s;
all_sec=(h*3600.0+m*60.0+s);
all_min=all_sec/60;
gr=(all_min*0.5)/2;
cout<<gr<<" градусов - угол между положением часовой стрелки в начале суток и в указанный момент.\n";

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

Цитата:
#include <iostream>
using namespace std;

void main()
{
setlocale(LC_ALL, "");

double gr,m,all;
int h;
cout<<"Введите количество градусов: ";
cin>>gr;
all=((gr*2.0)/60.0)*2.0; //вычисляем кол-во часов и минут
h=all;
m=(all-h)*100;
cout<<h<<" часов "<<m<<" минут\n\n";
}
denzel_ua вне форума Ответить с цитированием
Старый 30.10.2012, 16:32   #2
Ezhuk
Форумчанин
 
Регистрация: 09.10.2010
Сообщений: 217
По умолчанию

1.
Код:
int main()
{
	setlocale(LC_ALL, "");
	int h,m,s;
	cout<<"Введите время: ";
	cin>>h>>m>>s;
	if( h<0 || h>=24 || m<0 || m>=60 || s<0 || s>=60 ) // само собой время не любое
		return 0;
 	if(h >= 12) // для отрезания полного оборота
		h-=12;
	double angle =(h*30.0 + m/2.0 + s/120.0); // сразу считаем градусы ( 1h= 30гр , 1m= 1/2гр , 1s = 1/120гр ) 
	if(angle > 180 ) 
		angle = 360 - angle;
	cout<<angle<<" градусов - угол между положением часовой стрелки в начале суток и в указанный момент.\n";
	return 0;
}
2.
Код:
int main()
{
	setlocale(LC_ALL, "");

	double gr;
	int h,m;
	cout<<"Введите количество градусов: ";
	cin>>gr;
	m = int(gr*2); // т.к. 1гр = 2с
	h=m/60%12;
	m=m%60;
	cout<<h<<" часов "<<m<<" минут\n\n";
	return 0;
}
Ёж птица гордая, пока не пнешь не полетит.

Последний раз редактировалось Ezhuk; 30.10.2012 в 16:40.
Ezhuk вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Сколько часов, минут и секунд прошло от начала суток до поворота часовой стрелки часов на f градусов (нужна блок-схема) lady.ulumba Помощь студентам 5 08.09.2011 15:08
delphi. Подпрограммы. Определить угол А между векторами Х и У prettykatty Помощь студентам 11 28.06.2010 09:58
Поворот на 90 градусов против часовой стрелки Lindemann Общие вопросы .NET 1 04.01.2010 19:30
Как расположить вершины многоугольника против часовой стрелки ? Вадим Буренков Помощь студентам 7 21.08.2009 10:42
Паскаль. Проверьте меня... Кириллович Помощь студентам 5 22.05.2009 21:39