Помощь - Поиск - Пользователи - Календарь
Полная версия: Перевод времени
Форум «Всё о Паскале» > 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
Это текстовая версия — только основной контент. Для просмотра полной версии этой страницы, пожалуйста, нажмите сюда.