Помогите плиз с задачей

0 голосов
13 просмотров

Помогите плиз с задачей


image

Информатика (14 баллов) | 13 просмотров
Дан 1 ответ
0 голосов

Var n,m,p,q,r: integer;
    h: real;
begin
  write('число часов m и число минут n через пробел: ');
  readln(m,n);
  m:=m mod 12;
  p:=m; r:=n;
  h:=m*5+n/12;
// когда стрелки совпадут
  q:=0;
  repeat
    n:=(n+1) mod 60;
    h:=h+1/12;
    m:=round(h) mod 60;
    inc(q);
  until n=m;  
  if q>64 then q:=0;
  writeln('стрелки совпадут через ',q,' мин.');
// когда стрелки станут перпендикулярны  
  h:=p*5+r/12;
  n:=r;  p:=0;
  repeat
    n:=(n+1) mod 60;
    h:=h+1/12;
    m:=round(h) mod 60;
    inc(p);
  until abs(m-n)=15;
  if p>30 then p:=0;
  writeln('стрелки перпендикулярны через ',p,' мин.');
end.

число часов m и число минут n через пробел: 11 14
стрелки совпадут через 46 мин.
стрелки перпендикулярны через 30 мин.

число часов m и число минут n через пробел: 3 15
стрелки совпадут через 1 мин.
стрелки перпендикулярны через 18 мин.

(9.7k баллов)
0

Не доработана программа. Измененная ниже.

0

var n,m,p,q,r: integer;
h: real;
begin
write('число часов m и число минут n через пробел: ');
readln(m,n);
m:=m+n div 60;
n:=n mod 60;
m:=m mod 12;
p:=m; r:=n;
h:=m*5+n/12;
// когда стрелки совпадут
q:=0;
repeat
if round(h)=n then break;
inc(n);
h:=h+1/12;
m:=round(h);
inc(q);
until (n mod 60)=(m mod 60);
writeln('стрелки совпадут через ',q,' мин.');

0

// когда стрелки станут перпендикулярны
h:=p*5+r/12;
n:=r; p:=0;
repeat
if (abs(round(h)-n)=15) or
(abs(round(h)-n)=45) then break;
inc(n);
h:=h+1/12;
m:=round(h);
inc(p);
until (abs(m-n)=15) or (abs(m-n)=45);
writeln('стрелки перпендикулярны через ',p,' мин.');
end.

0

а можно запись в делфи пожалуйста,забыл сразу указать