Практика программирования (Бейсик, Си, Паскаль)



         

Задачи, советы и ответы - часть 16


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)




Содержание  Назад  Вперед