{Ich habe Langeweile, Abi bestanden und bin laut H.Btcher GENIAL}
Program ABPktG;
uses crt;
type P=array[1..3,1..4] of real;
var Pkt:P;
      i:integer;
  a,d,b:real;

procedure Lesen;
begin
textbackground(0);textcolor(9);clrscr;gotoxy(1,3);
for i:=1 to 3 do
 begin
 write('x',i,'-Koordinate des Punktes           ');
  readln(Pkt[i,1]);
 write('x',i,'-Koordinate des Sttzvektors      ');
  readln(Pkt[i,2]);
 write('x',i,'-Koordinate des Richtungsvektors  ');
  readln(Pkt[i,3]);writeln;
 end;
end;

procedure Rechnen;
begin
clrscr;
a:=0;
{erste beide subtrahieren}
 for i:=1 to 3 do
  Pkt[i,4]:=Pkt[i,1]-Pkt[i,2];

{Normalenvektor vom Richtungsvektor}
 d:=(1/sqrt(sqr(Pkt[1,3])+sqr(Pkt[2,3])+sqr(Pkt[3,3])));

{Quadrat von subtrahierten Vektoren}
 b:=(sqr(pkt[1,4])+sqr(pkt[2,4])+sqr(pkt[3,4]));

{Produkt von subtrahiertem und Richtungsvektor}
 for i:=1 to 3 do
  a:=a+(Pkt[i,4]*Pkt[i,3]);

{Endergebniss}
 a:=b-a;
 b:=sqrt(a);
end;

{H A U P T P R O G R A M M}
begin
Lesen;
Rechnen;
textbackground(7);
clrscr;
textcolor(1);
gotoxy(10,11);
writeln('Abstand: ',b);
gotoxy(10,14);
writeln('Abstandý: ',a);
readln;
clrscr;
end.