Mail.ruПочтаМой МирОдноклассникиВКонтактеИгрыЗнакомстваНовостиКалендарьОблакоЗаметкиВсе проекты

Ребята подскажите как тут в коде считаются минуты? C#

Rodion Kukartsev Ученик (99), закрыт 5 лет назад
Тут получается переменная h_f это у нас Часы, а минуты это переменная m_f и там строчка кода int m_f = (int)((h-h_f)*60.0);
Лучший ответ
Олег Олегович Просветленный (22841) 5 лет назад
(int) - отбрасывает дробную часть (не явное преобразование вещественного числа в целое)

h = 12 * F / 360 Определяем положение минутной стрелки в круге 360 градусов и 12 часов, если ввели 105 градусов по формуле получаем 3,5 часа. и отбрасываем дробную. h_f = 3 часа

затем убираем целые часы из полученного дробного числа, остается полчаса, это 30 минут
Mr. SomeoneМудрец (13651) 5 лет назад
:D
Олег Олегович Просветленный (22841) Действительно смешно получилось, я исправил свой ответ
Rodion KukartsevУченик (99) 5 лет назад
А как это записать математически на примере любого числа формулу бы
Олег Олегович Просветленный (22841) Я только что понял, что это стрелки часов. Сейчас подправлю.
Соколов МаксимМастер (1754) 5 лет назад
А разве (int) указано неявно? Может это как раз явное преобразование double в int?
Математически формулы описал на картинке. Но в алгоритме многое не учтено.
Соколов Максим Мастер (1754) Ну там m_f в последней формуле, да.
Остальные ответы
maximka460 Мудрец (12094) 5 лет назад
Я этого не видел. Кто спросит, не видел и всё! Нужно в церковь незабыть зайти.
Rodion KukartsevУченик (99) 5 лет назад
Всё видел ты)
Mr. Someone Мудрец (13651) 5 лет назад
Инфа берется по часовой стрелке. В h целое число - это количество часов и десятичное - это количество минут в десятичном виде. (int)h достает целое число, так-что h_f - количество часов. Количество минут - 60 * десятичное представление количества минут h - h_f. Вотаквот :)
Rodion KukartsevУченик (99) 5 лет назад
А как это записать математически на примере любого числа формулу бы
Mr. Someone Мудрец (13651) 125° h = 34.56 h_f = 34 m_f = (34.56 - 34) * 60 = 0.56 * 60 = 56% * 60 = 33.6 минут. Можно найти количество секунд с эти .6 s_f = 0.6 * 60 = 36
fdf df Ученик (174) 5 лет назад
program imena;
uses crt;
const n=10;
var
kol: Integer ;
sr:real;
s1,s2,s3,s4:Integer;
b,j:Integer;
i: integer;
c: integer;
a: array [1..n] of Integer;
k: array [1..n] of String ;
begin
Write('введите значение для решения задачи:' );
Write(' "0" - ввод с клавиатуры, "1" - случайные числа: ');
ReadLn(b);
if b=0 then
for i:= 1 to n do begin
Write('Введите возраст: ');
ReadLn(a[i]);
if a[i]<=7 then
k[i]:='дошкольник';
if ((a[i]>7) and (a[i]<18)) then
k[i]:='школьник';
if ((a[i]>=18) and (a[i]<54)) then
k[i]:='работник';
if a[i]>=54 then
k[i]:='пенсионер';
end;
clrscr;
for i:= 1 to n do begin
writeln (i,') Человек в возрасте "',a[i],'" лет - ', k[i]);
end;
for i:= 1 to n do begin
if (k[i]='дошкольник') then
s1:=s1+1;
if (k[i]='школьник') then
s2:=s2+1;
if (k[i]='работник') then
s3:=s3+1;
if (k[i]='пенсионер') then
s4:=s4+1;
end;
while j<1 do begin
if ((s1>s2) and (s1>s3) and (s1>s4)) then
writeln ('--- В группе больше всего дошкольников, их: ', s1);
j:=j+1;
if ((s1s3) and (s2>s4)) then
writeln ('--- В группе больше всего школьников, их: ', s2);
j:=j+1;
if ((s3>s2) and (s3>s1) and (s3>s4)) then
writeln ('--- В группе больше всего работников, их: ', s3);
j:=j+1;
if ((s4>s2) and (s4>s1) and (s3<s4)) then
writeln ('--- В группе больше всего пенсионеров, их: ', s4);
j:=j+1;
end;
for i:= 1 to n-1 do begin
kol:=((kol+a[i+1]));
sr:=kol div 10;
end;
writeln ('--- Средний возраст всех людей: ',sr);
exit;
if b=1 then
Randomize;
for i:= 1 to n do begin
a[i]:=Random(100);
if a[i]<=7 then
k[i]:='дошкольник';
if ((a[i]>7) and (a[i]<18)) then
k[i]:='школьник';
if ((a[i]>=18) and (a[i]<54)) then
k[i]:='работник';
if a[i]>=54 then
k[i]:='пенсионер';
end;
clrscr;
for i:= 1 to n do begin
writeln (i,') Человек в возрасте "',a[i],'" лет - ', k[i]);
end;
for i:= 1 to n do begin
if (k[i]='дошкольник') then
s1:=s1+1;
if (k[i]='школьник') then
s2:=s2+1;
if (k[i]='работник') then
s3:=s3+1;
if (k[i]='пенсионер') then
s4:=s4+1;
end;
while j<1 do begin
if ((s1>s2) and (s1>s3) and (s1>s4)) then
writeln ('--- В группе больше всего дошкольников, их: ', s1);
j:=j+1;
if ((s1s3) and (s2>s4)) then
writeln ('--- В группе больше всего школьников, их: ', s2);
j:=j+1;
if ((s3>s2) and (s3>s1) and (s3>s4)) then
writeln ('--- В группе больше всего работников, их: ', s3);
j:=j+1;
if ((s4>s2) and (s4>s1) and (s3<s4)) then
writeln ('--- В группе больше всего пенсионеров, их: ', s4);
j:=j+1;
end;
for i:= 1 to n-1 do begin
kol:=((kol+a[i+1]));
sr:=kol div 10;
end;
writeln ('--- Средний возраст всех людей: ',sr);
end.
пппМыслитель (9199) 5 лет назад
Тот момент когда речь зашла об исходном коде и ты решил "блеснуть" знаниями ☺
Ашот ТрубашатМастер (1702) 5 лет назад
Это вообще паскаль xD
Похожие вопросы