Пример решения задачи на языке программирования C/C++ - угол между стрелками часов - OkZachet.Ru
 

OkZachet.Ru

Решение задач и контрольных работ|Помощь на экзамене|Онлайн тесты

Скоро сессия студент? OkZachet.Ru - и нет проблем
Опыт. Качество. Гарантии. Бесплатные доработки.
г. Первоуральск, тел. 8(908)639-54-09, email: admin@okzachet.ru

  • Увеличить размер шрифта
  • Размер шрифта по умолчанию
  • Уменьшить размер шрифта
Главная Информатика и программирование C/C++ Пример решения задачи на языке программирования C/C++ - угол между стрелками часов
E-mail Печать PDF

Пример решения задачи на языке программирования C/C++ - угол между стрелками часов

c/c++

Условие:
Даны два числа h и m, где h - часы, m - минуты момента времени. Определить угол в градусах между стрелками часов.


Решение:
Для решения данной задачи определим угол отклонения часовой и минутной стрелки от положения 00 (12) часов и 00 (60 минут). Весь часовой диск это 360 градусов. Один час - 30 градусов, одна минута - 6 градусов.

Наиболее интересным является определение угла поворота часовой стрелки внутри данного часа в зависимости от прошедших минут с начала часа

Полный угол поворота часовой стрелки равен

Соответственно угол между стрелками определяется как модуль разности угла поворота часовой стрелки и минутной стрелки. Если эта разность по модулю больше 180 градусов, то необходимо из 360 вычесть значение этой разности (по модулю) - это и будет искомый угол между стрелками часов.

Код на языке программирования C++

//программа определяет угол
//между часовой и минутной стрелкой
#include <iostream>
#include <cstdio>
#include <cstdlib>
#include <cmath>
#include <ctime>

using namespace std;

int main(int numberOfArgs, char* pszArgs[]){
//для отображения русских букв
setlocale(0,"");

//инициализация генератора случайных чисел
srand(time(NULL));

//инициализация переменных
char again;
int hour;
int minute;
int angle;
int angleH;
int angleM;

do
{
//сгенерируем случайное количество часов от 0 до 11
hour = rand()%12;
//сгенерируем случайное количество часов от 0 до 59
minute = rand()%60;

angleH = hour*30 + (int)(minute*1.0/60*30);
angleM = minute*6;

angle = abs(angleH-angleM);
if(angle > 180)
angle = 360 - angle;

cout<<"Случайное время "<<hour<<":"<<minute<<endl;
cout<<"Угол часовой стрелки aH="<<angleH<<" градусов, угол минутной стрелки aM="<<angleM<<" градусов"<<endl;
cout<<"Угол межде стрелками равен angle="<<angle<<" градусов"<<endl;

//запрос на повторение операции
cout<<"Еще раз? (y/n):";
cin>>again;

//очистка потока ввода
cin.clear();
while(cin.get() !='\n');
} while ( 'y' == again || 'Y' == again); // выход из цикла, если again=='y'*/

//задержка для пользователя
system("pause");
return 0;
}

Пример работы программы

c/c++

Скачать программу (exe-файл)

Решение задачи по программированию на языке C/C++ завершено.

Если все же у Вас остались вопросы по выполнению заданий, то Вы можете ознакомиться с общей информацией по решению контрольных работ и задач на заказ на сайте OkZachet.Ru.

С Уважением, Администратор сайта.

Обновлено 10.09.2017 16:58  

Добавить комментарий

Перед опубликованием все комментарии модерируются!

Комментарии  

 
# Melvin 19.10.2017 00:01
Simply want to say your article is as astounding. The clearness in your post is simply nice
and i can assume you're an expert on this subject. Well with your permission allow me to grab your RSS feed to
keep updated with forthcoming post. Thanks a million and please carry on the gratifying work.
Ответить | Ответить с цитатой | Цитировать
 

Пройти опрос 1

По какому предмету Вам нужна помощь?
 

Пройти опрос 2

Из какого вы города?
 

Пройти опрос 3

Что нужно добавить на сайт?