Если ограничиваться только целочисленным числом суток, будет всегда получаться полные часы, а минуты и секунды будут нулевыми.
// PascalABC.NET 3.1, сборка 1172 от 19.02.2016 begin var d:=ReadReal('Количество суток')*24; var h:=Trunc(d); d:=Frac(d)*60; var m:=Trunc(d); d:=Frac(d)*60; var s:=Round(d); // преодоление ошибок неточного представления чисел в ЭВМ if s=60 then begin Inc(m); s:=0 end; if m=60 then begin Inc(h); m:=0 end; WritelnFormat('{0}ч {1}м {2}с ',h,m,s) end.
Текстовый процессор — вид прикладной компьютерной программы, предназначенной для производства (включая набор, редактирование, форматирование, иногда печать) любого вида печатной информации. Иногда текстовый процессор называют текстовым редактором второго рода.
Текстовые процессоры, в отличие от текстовых редакторов, имеют больше возможностей для форматирования текста, внедрения в него графики, формул, таблиц и других объектов. Поэтому они могут быть использованы не только для набора текстов, но и для создания различного рода документов, в том числе официальных. Классическим примером текстового процессора является Microsoft Word.
begin writeln('Введите d'); read(d); writeln('Введите m,n,p'); read(m, n, p); if (m = d) or (n = d) or (p = d) then begin if (m = d) then writeln('m = d'); if (n = d) then writeln('n = d'); if (p = d) then writeln('p = d'); if (m = d) and (n = d) then writeln('m,n = d'); if (m = d) and (p = d) then writeln('m,p = d'); if (p = d) and (n = d) then writeln('p,n = d'); end else begin writeln('Ни одно не равно d'); if ((d - m) > (d - n)) and ((d - m) > (d - p)) then writeln('(d-m) - максимальное'); if ((d - n) > (d - m)) and ((d - n) > (d - p)) then writeln('(d-n) - максимальное'); if ((d - p) > (d - m)) and ((d - p) > (d - n)) then writeln('(d-p) - максимальное'); if ((d - m) = (d - n)) and ((d - m) = (d - p)) and ((d - n) = (d - p)) then writeln('(d-m)=(d-n)=(d-p)'); end; end.
// PascalABC.NET 3.1, сборка 1172 от 19.02.2016
begin
var d:=ReadReal('Количество суток')*24;
var h:=Trunc(d);
d:=Frac(d)*60;
var m:=Trunc(d);
d:=Frac(d)*60;
var s:=Round(d);
// преодоление ошибок неточного представления чисел в ЭВМ
if s=60 then begin Inc(m); s:=0 end;
if m=60 then begin Inc(h); m:=0 end;
WritelnFormat('{0}ч {1}м {2}с ',h,m,s)
end.
Тестовые решения:
Количество суток 0.35
8ч 24м 0с
Количество суток 4
96ч 0м 0с
Количество суток 2.532
60ч 46м 5с