Помощь - Поиск - Пользователи - Календарь
Полная версия: Перевод времени
Форум «Всё о Паскале» > Pascal, Object Pascal > Задачи
111
Здравствуйте! rolleyes.gif
Подскажите, плиз, как перевести минуты в часы (и обратно) в следующей задачке:
В бригаде, работающей на уборке сена, имеется N косилок. Первая из них работала m часов, а каждая следующая на 10 минут дольше, чем предыдущая. Сколько часов проработала вся бригада?
плиз, люди, подскажите! Задачку нужно сдать уже послезавтра!
volvo
Вообще - то 1 час = 60 минутам (соответственно, минута = 1/60 часа) blink.gif
Дож
Код
For i:=0 to N-1 do begin
All:=m*60+i*10;
end;
All:=m/60;
kent
У меня вот так получилось...

uses Crt;
var m,N,i : Integer;
    Hours,minuten,step : Integer;
begin
     Clrscr;
     Write('Input N:');
     ReadLn(N);
     Write('Input m:');
     ReadLn(m);
     step := m * 60;
     minuten := m * 60;
     for i := 2 to N do begin
        step := step + 10;
        minuten :=  minuten + step;
     end;
     hours := minuten div 60;
     minuten := minuten mod 60;
     WriteLn('Works Time:',hours,' hours ',minuten,' minuten;');
     ReadKey;
end.

klem4
Цитата
cколько часов проработала вся бригада?


что-то у тебя многовато переменных ... blum.gif

uses crt;
var
   n,m,i,s : word;
begin

   clrscr;

   write('n='); readln(n);
   write('m='); readln(m);

   s := m;

   for i := 1 to n-1 do inc(s, i*10 + m);

   writeln('All time : ', s div 60,' hours, ', s mod 60,' minuts');

   readln;

end.
kent
Цитата
что-то у тебя многовато переменных ...

klem4, у тебя программа неправильно работает... blum.gif
n=3
m=1
All Time: 0 hours, 33 minuts
volvo
To: klem4
арифметическую прогрессию не напоминает? wink.gif
uses crt;
var
   n, m, s : word;
begin
   clrscr;

   write('n='); readln(n);
   write('m='); readln(m);

   s := n * trunc((2 * m * 60 + (n - 1) * 10) / 2);
   writeln(s div 60, ' hrs ', s mod 60, ' mins');

   readln;
end.
klem4
все правильно 1 + 11 + 21 = 33

гага только я считал в минутах!!! а не в часах (типа m минут)))) Да, тогда это не то.
APAL
To: klem4
Сдается мне, что цикл надо с нуля начинать, т.к. первая косилка без 10-ти минутной "добавки"...


For i:=0 to N-1 do
  Sum:=Sum+m*60+i*10;
Hour:=Sum div 60; {часы}
Min:=Sum mod 60; {минуты}


P.S.: Каюсь, не проверял, тут писал...
klem4
Apal, моя прога вообще не то считает что нужно, я же писал, но вроде если считать правильным мой вариань рассуждений, что m - минуты, то все норм работает ... Хотя это собственно не важно smile.gif

Вот если надо мое доделаное решение через цикл

uses crt;
var
   n,m,i,s : word;
begin

   clrscr;

   write('n='); readln(n);
   write('m='); readln(m);

   m := m * 60;
   s := m;

   for i := 1 to n-1 do inc(s, i*10 + m);

   writeln('All time : ', s div 60,' hours, ', s mod 60,' minuts');

   readln;

end.



хехе щас проглядел месаджы, это предложил дож в 3 посте blum.gif
Это текстовая версия — только основной контент. Для просмотра полной версии этой страницы, пожалуйста, нажмите сюда.