esercizi di grafica con turbo pascal 1.1 su mac

Program seno1;
{ sinusoide e cosinusoide piene e con diverso colore }
{$U-}
   USES Memtypes,QuickDraw,OSIntf,ToolIntf;
   
   VAR
      gPort:   GrafPort;      
      sagoma: EventRecord;
      vertici:rect;
procedure fine;
begin
 textsize(24);
 textface([shadow]);
 textfont(0);    
 moveto(10,30);
 drawstring('premi return per finire');
end;
   
procedure disegna;
var a,b,y,seno,coseno,altezza1,altezza2:integer;
       radiante:real;
 
 begin
    b:=10;
    y:=200;
    altezza1:=80;
    altezza2:=100;
   for a:=0 to 360 do
    begin
      radiante:=a*3.14/60;
      seno:=trunc(sin(radiante)*altezza1);
      coseno:=trunc(cos(radiante)*altezza2);
      moveto(b,y);
      penpat(white);
      lineto(b,y+seno);
      penpat(gray);
      lineto(b,y+coseno);
      b:=b+1;
     end; 
 end;          
 
 
BEGIN
{inizializzazione sottoprogrammi o routine}
   InitGraf(@thePort);      
   initfonts;
   InitCursor;
   HideCursor;
   OpenPort(@gPort);   
   
{inizio programma principale}   
   PenPat(white);
   BackPat(Black);
   EraseRect(gPort.portRect);
   FrameRect(gPort.portRect);
   disegna;
   fine;
   WHILE NOT OSEventAvail(mDownMask + keyDownMask, sagoma) DO;
END.

Program seno2;
{ sinusoide e cosinusoide puntiformi e con diverso colore }
{$U-}
   USES Memtypes,QuickDraw,OSIntf,ToolIntf;
   
   VAR
      gPort:   GrafPort;      
      sagoma: EventRecord;
      vertici:rect;
procedure fine;
begin
 textsize(24);
 textface([shadow]);
 textfont(0);    
 moveto(10,30);
 drawstring('premi return per finire');
end;
procedure titolo;
begin
 textface([shadow]);
 textface([outline]);
 textfont(0);
 textsize(18);
 moveto(20,370);
 drawstring('sinusoide e cosinusoide');
end;
  
procedure disegna;
var a,b,y,seno,coseno,altezza1,altezza2:integer;
       radiante:real;
 
 begin
    b:=10;
    y:=200;
    altezza1:=80;
    altezza2:=100;
    { assi cartesiani }
    moveto(10,y);
    lineto(400,y);
    moveto(10,10);
    lineto(10,370);
    { traccia sinusoide e cosinusoide }
   for a:=0 to 360 do
    begin
      radiante:=a*3.14/60;
      seno:=trunc(sin(radiante)*altezza1);
      coseno:=trunc(cos(radiante)*altezza2);
      moveto(b,y+seno);
      penpat(white);
      line(0,1);
      penpat(gray);
      moveto(b,y+coseno);
      line(0,1);
      b:=b+1;
     end; 
 end;          
  
BEGIN
{inizializzazione sottoprogrammi o routine}
   InitGraf(@thePort);      
   initfonts;
   InitCursor;
   HideCursor;
   OpenPort(@gPort);   
   
{inizio programma principale}   
   PenPat(white);
   BackPat(Black);
   EraseRect(gPort.portRect);
   FrameRect(gPort.portRect);
   titolo;
   disegna;
   fine;
   WHILE NOT OSEventAvail(mDownMask + keyDownMask, sagoma) DO;
END.

Program seno3;
{ sinusoide e cosinusoide puntiformi e con diverso colore e spessore }
{ sinusoide e cosinusoide piene }
{$U-}
   USES Memtypes,QuickDraw,OSIntf,ToolIntf;
   
   VAR
      gPort:   GrafPort;      
      sagoma: EventRecord;
      vertici:rect;
procedure fine;
var d:integer;
begin
 textsize(24);
 textface([shadow]);
 textfont(0);    
 moveto(10,30);
 drawstring('premi return per finire');
  for d:=1 to 5 do
   sysbeep(1);
end;
procedure titolo;
begin
 textface([shadow]);
 textface([outline]);
 textfont(0);
 textsize(18);
 moveto(20,370);
 drawstring('sinusoide e cosinusoide');
 sysbeep(1);
end;
  
procedure disegna;
var a,b,y,seno,coseno,altezza1,altezza2:integer;
       radiante:real;
 
 begin
    b:=10;
    y:=200;
    altezza1:=80;
    altezza2:=100;
    { assi cartesiani }
    moveto(10,y);
    lineto(400,y);
    moveto(10,10);
    lineto(10,370);
    { traccia sinusoide e cosinusoide }
   for a:=0 to 360 do
    begin
      radiante:=a*3.14/60;
      seno:=trunc(sin(radiante)*altezza1);
      coseno:=trunc(cos(radiante)*altezza2);
      moveto(b,y+seno);
      penpat(white);
      pensize(10,5);
      line(0,1);
      pensize(5,5);
      penpat(gray);
      moveto(b,y+coseno);
      line(0,1);
      b:=b+1;
     end; 
 end;  
         
  procedure disegna1;
var a,b,y,seno,coseno,altezza1,altezza2:integer;
       radiante:real;
 
 begin
    b:=10;
    y:=200;
    altezza1:=80;
    altezza2:=100;   
    { traccia sinusoide e cosinusoide }
   for a:=0 to 360 do
    begin
      radiante:=a*3.14/60;
      seno:=trunc(sin(radiante)*altezza1);
      coseno:=trunc(cos(radiante)*altezza2);
      moveto(b,y);
      penpat(white);         
      lineto(b,y+seno);      
      penpat(gray);
      moveto(b,y);
      lineto(b,y+coseno);
      b:=b+1;
     end; 
 end;          
BEGIN
{inizializzazione sottoprogrammi o routine}
   InitGraf(@thePort);      
   initfonts;
   InitCursor;
   HideCursor;
   OpenPort(@gPort);   
   
{inizio programma principale}   
   PenPat(white);
   BackPat(Black);
   EraseRect(gPort.portRect);
   FrameRect(gPort.portRect);
   titolo;
   disegna;
   disegna1;
   fine;
   WHILE NOT OSEventAvail(mDownMask + keyDownMask, sagoma) DO;
END.