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



         

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


setcolor(color); moveto(x,у);

for(k=l; k<=a; k++)

{

xl=20*k;

yl=round(240-100*sin(twopi*(k+dfi)/t));

lineto(xl,yl); }

}

/*-------------------------------*/

long offset(int d,int m,int y)

{

/* Вычисляет количество дней от 1.01.1900 до d.m.y */ int k; long dd;

dd=365;

/* Количество дней в 1900 г */

/* Цикл учета полных лет */

for(k=1901; k<y; k++)

{

dd += 365;

if(k % 4 == 0) dd++;

/* Поправка на високосный год */

}

dd += d;

/* Учет дней в году у до месяца m */

for(k=0; k<m-l; k++)

dd += days[k];

/* Добавление дней, прошедших в месяце m */ return dd;

}

/*-----------------------------------*/

int round(double x)

{ /* округление вещественного числа до ближайшего целого */

if(x>=0) return (int)(x+0.5);

return (int)(x-0.5); }

Программа 8.18.pas

program bioritms; uses Graph,Dos; label wwod; const

twopi=2*Pi;

days:array [1..12] of byte = (30,28,31,30,31,30,31,31,30,31,30,31);

var

a, k, d,m, y,dl,ml,yl:word;

gd,gm:integer;

dd: longint;

procedure axis; var

j,stroke:integer; s:string[2];

begin

line(0,140,0,340);

line(0,240,a*20,240);

for j : =1 to a do begin

stroke:=5; str(j,s);

if j mod 5=0 then stroke:=10;

line(j *20,240+stroke,j*20,240-stroke);

if stroke=10 then outtextxy(j*20-5,240+20, s) ;

end;

end;

procedure grafik(t,dfi,color:integer) ;

var

x,y,x1,y1,k:integer;

begin

x:=0;

y:=round(240-100*sin(twopi*dfi/t));

setcolor(color); moveto(x,y) ;

for k:=l to a do begin

xl:=20*k;

yl:=round(240-100*sin(twopi*(k+dfi)/t));

lineto(xl,yl);

end;

end;

function offset(d,m,y:integer)rlongint;

{Вычисляет количество дней от 1.01.1900 до d.m.y}

var

k:integer;

dd:longint;

begin

dd:=365; {Количество дней в 1900 г} {Цикл учета полных лет}

for k:=1901 to y-1 do begin

dd:=dd+365;

{Поправка на високосный год}

if k mod 4=0 then inc(dd);

end;

{Учет дней в году у до месяца m}

for k:=l to m-1 do inc(dd,days[k]);

sdwig:=dd+d; {Добавление дней, прошедших в месяце m}

end;




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