Na początek chyba jak dla Ciebie to skok na zbyt głęboką wodę.
Musisz poznać sposób przypisywania typów zmiennych -
do wykorzystywanych funkcji oraz umieć tworzyć własne procedury
i funkcje, programowanie to algorytmy - od tego nie uciekniesz
Najważniejsza jest umiejętność debugowania ,z tym należy
zaczynać od TP7.
Polecam poświęcić trochę czasu na TP7 i Dev-Pascal (1.9.2)
to pozwoli “podciągnąc” poziom 
Poniżej Twój program (taki jak jest - czyli nie działający- ale publikowany
w sposób przyjety - wcięcia strukturalne i ujęty w “code”
Program Zaglebione_wielokaty;
uses Graph;
var
Driver,Mode,i,r,j,v,f,w,n: integer;
omega,omega1,a,b,c,d,a1,b1,c1,d1: integer;
xa,ya,x1,y1,k1,w1,x2,y2,k2,w2,x,y: integer;
{ Gdzie:
r - promien okregu opisanego na wielokacie,
v - ilosc wierzcholkow wielokata;
f - kat obrotu wielokata,
w - wspolczynnik redukcyjny,
n - ilosc wielokatow,
}
Pixel: word;
begin
{ tryb graficzny }
Driver:=Detect;
InitGraph(Driver,Mode,'');
{ wprowadzanie danych przez uzytkownika }
writeln('Podaj promien okregu opisanego na wielokącie: ');
readln(r);
writeln('Podaj ilosc wierzcholkow wielokata: ');
readln(v);
writeln('Ppdaj kat o jaki wielokat ma sie obracac: ');
readln(f);
writeln('Podaj wspolczynnik redukcyjny: ');
readln(w);
writeln('Ile ma byc wielokatow? Podaj ich liczbe: ');
readln(n);
{ obliczenia }
{ wspolczynnik wielokata }
omega:=2*3.14/n;
a:=cos(omega);
b:=-sin(omega);
c:=-b;
d:=a;
{ wspolczynnik obrotu }
omega1:=f*3.14/180;
a1:=w*cos(omega1);
b1:=-w*sin(omega1);
c1:=-b1;
d1:=a1;
xa:=r;
ya:=0;
{ petle }
for j:=1 to v do
begin
x1:=xa;
y1:=ya;
k1:=x1+512;
w1:=-y1+384;
for i:=1 to n do
begin
x2:=a*x1+b*y1;
y2:=c*x1+d*y1;
k2:=x2+512;
w2:=-y2+384;
line(k1,w1,k2,w2,14);
end;
x:=xa;
y:=ya;
xa:=a1*x+b1*y;
ya:=c1*x+d1*y;
end;
readln;
end.