Мы знаем, сколько дней в каждом году и знаем что 1 января 1980 года был вторник, тогда:
1. Надо подсчитать число дней с 1980 года по нужную дату - это несложно сделать, зная количество дней в конкретном году и месяце.
2. Прибавить ко всему 1 (вторник, на день позже вторника) и подсчитать остаток от деления на 7, получиться число от 0 до 6 означающее день недели (0-понедельник)
Примерно так.
Помогите,пожалуйста,решить задачи на Turbo Pascal-e.
пожалуйста, помогите составить блок-схему к программе:
program qu;
uses crt;
const t=0.00001;
function Dlina(x1,y1,x2,y2:real):real;
begin
Dlina:=sqrt(sqr(x1-x2)+sqr(y1-y2));
end;
function Ravn(x1,y1,x2,y2,x3,y3:real):boolean;
begin
if (abs(Dlina(x1,y1,x2,y2)-Dlina(x1,y1,x3,y3))<t)
or (abs(Dlina(x1,y1,x2,y2)-Dlina(x2,y2,x3,y3))<t)
or (abs(Dlina(x1,y1,x3,y3)-Dlina(x2,y2,x3,y3))<t)
then Ravn:=true else Ravn:=false;
end;
var a:array[1..200] of real;
n,i,j,k,p:integer;
begin
clrscr;
randomize;
repeat
write('vvedite kol-vo tochek, ne menee 3 n=');
readln(n);
until n>=3;
n:=n*2;
writeln('Massiv koordinat:');
for i:=1 to n do
a:=5*random;
write('X=');
for i:=1 to n-1 do
if odd(i) then write(a:4:1);
writeln;
write('Y=');
for i:=2 to n do
if i mod 2=0 then write(a:4:1);
writeln;
writeln('Vershini treug');
p:=0;
for i:=1 to n-5 do
for j:=i+2 to n-3 do
for k:=j+2 to n-1 do
if Ravn(a,a[i+1],a[j],a[j+1],a[k],a[k+1])then
begin
p:=1;
writeln(i,',',i+1,' ',j,',',j+1,' ',k,',',k+1);
end;
if p=0 then write('Takix Net!');
readln
end.
program qu;
uses crt;
const t=0.00001;
function Dlina(x1,y1,x2,y2:real):real;
begin
Dlina:=sqrt(sqr(x1-x2)+sqr(y1-y2));
end;
function Ravn(x1,y1,x2,y2,x3,y3:real):boolean;
begin
if (abs(Dlina(x1,y1,x2,y2)-Dlina(x1,y1,x3,y3))<t)
or (abs(Dlina(x1,y1,x2,y2)-Dlina(x2,y2,x3,y3))<t)
or (abs(Dlina(x1,y1,x3,y3)-Dlina(x2,y2,x3,y3))<t)
then Ravn:=true else Ravn:=false;
end;
var a:array[1..200] of real;
n,i,j,k,p:integer;
begin
clrscr;
randomize;
repeat
write('vvedite kol-vo tochek, ne menee 3 n=');
readln(n);
until n>=3;
n:=n*2;
writeln('Massiv koordinat:');
for i:=1 to n do
a:=5*random;
write('X=');
for i:=1 to n-1 do
if odd(i) then write(a:4:1);
writeln;
write('Y=');
for i:=2 to n do
if i mod 2=0 then write(a:4:1);
writeln;
writeln('Vershini treug');
p:=0;
for i:=1 to n-5 do
for j:=i+2 to n-3 do
for k:=j+2 to n-1 do
if Ravn(a,a[i+1],a[j],a[j+1],a[k],a[k+1])then
begin
p:=1;
writeln(i,',',i+1,' ',j,',',j+1,' ',k,',',k+1);
end;
if p=0 then write('Takix Net!');
readln
end.