и распаковки времени суток. Исходными
write(a[k+j]:4)
else write(' ':4); k:=k+7;
end;
end;
end;
begin {main}
clrscr;
write('Задайте год : ');
readln(Y);
write('Задайте месяц : ');
readln(M);
calendar(Y,M);
readln; end.
Задание 9.09. Преобразования времени суток
Составить процедуры упаковки и распаковки времени суток. Исходными данными для их работы должны быть либо показания часов (H — часы, M -минуты, S — секунды), либо часть суток, представленная вещественным числом t (0<= t <= 1).
Программа 9_09.bas
DECLARE SUB UnpackTime(T!,H%,M%,S%)
DECLARE FUNCTION PackTime!(H%,M%,S%)
КЕМ Упаковка и распаковка показаний часов
CLS
Н%=18: М%=0: S%=0
T=PackTime(H%,М%,S%)
PRINT USING "##:##:## = ###.##";H%;M%;S%;T
T= 5
UnpackTime T,H%,M%,S%
PRINT USING "##:##:## = ###.##";H%;M%;S%;T
END
FUNCTION PackTime(H%,M%,S%)
' Упаковка времени - перевод часов (Н%)
' минут (М%) и секунд (S%) в часть суток
PackTime = (Н% * 3600! + м% * 60 + S%) / 86400!
END FUNCTION
SUB UnpackTime(Т,H%,M%,S%)
' Распаковка времени - перевод части суток
' в часы (Н%), минуты (М%) и секунды (S%)
t1!=T*86400 H%=INT(tl1/3600! )
t1!=t1!-3600!*H% M%=INT(t1!/60!)
S%=INT(t1!-60!*M%)
END SOB
Программа 9_09.c
#include <stdio.h>
#include <conio.h>
double pack_time(int H, int M,int S) ;
void unpack_time(double t,int *H,int *M,int *S);
main() {
int H=18,M=0,S=0;
double T;
clrscr();
T=pack_time(H,M,S);
printf("\n%2d:%2d:%2d=%f",H,M,S,T);
T=0.75;
unpack_time(T,&H, &M,&S);
printf("\n%2d:%2d:%2d=%f",H,M,S,T);
getch();
}
/*----------------------------------------*/
double pack_time(int H,int M,int S)
/****************************************/
/* Упаковка времени - перевод часов (Н) .*/
/* минут (М) и секунд (S) в часть суток */
/****************************************/
{
return (H*3600.0+M*60+S)/86400.0; }
/*--------------------------------------*/
void unpack_time(double t,int *H,int *M,int *S)
Содержание Назад Вперед