esercizi di grafica con turbo pascal 1.1 su mac
Program SFONDI4; { ESEMPI DI tratteggi da usare per riempire figure con FILL..} { vari modi di assegnare valori ai tratteggi e alla procedura }
{$U-}
USES Memtypes,QuickDraw,OSIntf,ToolIntf;
VAR gPort: GrafPort; sagoma: EventRecord; vertici:rect; sfondo:array[0..19] of pattern; x1,y1,x2,y2,contasfondo,a:integer; sfondo1:pattern;
procedure preparaicone; begin stuffhex(@sfondo[0],'1234567899876543'); stuffhex(@sfondo[1],'101010101010101010'); stuffhex(@sfondo[2],'1212121212121212'); stuffhex(@sfondo[3],'1203450654076507'); stuffhex(@sfondo[4],'9875679875679877'); stuffhex(@sfondo[5],'9871239871237654'); stuffhex(@sfondo[6],'1345678456987687'); stuffhex(@sfondo[7],'0365748923987456'); stuffhex(@sfondo[8],'1212563458709860'); stuffhex(@sfondo[9],'9734562345566679'); stuffhex(@sfondo[10],'9999999999999999'); stuffhex(@sfondo[11],'8888888888888888'); stuffhex(@sfondo[12],'7777777777777777'); stuffhex(@sfondo[13],'6666666666666666'); stuffhex(@sfondo[14],'5555555555555555'); stuffhex(@sfondo[15],'4444444444444444'); stuffhex(@sfondo[16],'3333333333333333'); stuffhex(@sfondo[17],'9871239871237654'); stuffhex(@sfondo[18],'1234567899876543'); stuffhex(@sfondo[19],'101010101010101010');
END;
procedure disegna1; begin setrect(vertici,10,10,100,100); framerect(vertici);
pensize(15,15); setrect(vertici,120,10,200,100); framerect(vertici);
pensize(1,1); setrect(vertici,230,10,300,100); paintrect(vertici);
setrect(vertici,320,10,400,100); fillrect(vertici,sfondo1);
{ seconda serie} setrect(vertici,10,120,100,200); framerect(vertici);
stuffhex(@sfondo1,'123321123321123321'); pensize(15,15); setrect(vertici,120,120,200,200); framerect(vertici);
pensize(1,1); setrect(vertici,230,120,300,200); paintrect(vertici);
setrect(vertici,320,120,400,200); fillrect(vertici,sfondo1);
{ terza serie } setrect(vertici,10,220,100,300); fillrect(vertici,sfondo[0]); setrect(vertici,120,220,200,300); fillrect(vertici,sfondo[1]); setrect(vertici,220,220,300,300); fillrect(vertici,sfondo[2]); setrect(vertici,320,220,400,300); fillrect(vertici,sfondo[3]);
end;
BEGIN {inizializzazione sottoprogrammi o routine} InitGraf(@thePort); initfonts; InitCursor; HideCursor; preparaicone; OpenPort(@gPort);
{inizio programma principale} PenPat(white); BackPat(Black); EraseRect(gPort.portRect); FrameRect(gPort.portRect); { procedura operativa modificabile..altre procedure aggiungere } stuffhex(@sfondo1,'111222333444555666'); disegna1; WHILE NOT OSEventAvail(mDownMask + keyDownMask, sagoma) DO; END.
Program SFONDI5; { ESEMPI DI tratteggi da usare per riempire figure con FILL..} { vari modi di assegnare valori ai tratteggi e alla procedura } { inserimento pausa sonora }
{$U-}
USES Memtypes,QuickDraw,OSIntf,ToolIntf;
VAR gPort: GrafPort; sagoma: EventRecord; vertici:rect; sfondo:array[0..5] of pattern; x1,y1,x2,y2,contasfondo,a:integer; sfondo1:pattern;
procedure suona(durata:integer;testo:string); begin for a:=1 to durata do begin sysbeep(5); textfont(0); moveto(10,360); drawstring(testo); end; hidepen; moveto(10,340); pensize(40,40); showpen; penpat(white); lineto(200,340); penpat(black); end;
procedure preparaicone; begin stuffhex(@sfondo[0],'1234567899876543'); stuffhex(@sfondo[1],'101010101010101010'); stuffhex(@sfondo[2],'1212121212121212'); stuffhex(@sfondo[3],'1203450654076507'); stuffhex(@sfondo[4],'9875679875679877'); stuffhex(@sfondo[5],'9871239871237654');
END;
procedure disegna1;
begin suona(10,'prima serie '); setrect(vertici,10,10,100,100); framerect(vertici);
pensize(15,15); setrect(vertici,120,10,200,100); framerect(vertici);
pensize(1,1); setrect(vertici,230,10,300,100); paintrect(vertici);
setrect(vertici,320,10,400,100); fillrect(vertici,sfondo1);
suona(10,'seconda serie '); { seconda serie} setrect(vertici,10,120,100,200); framerect(vertici);
stuffhex(@sfondo1,'123321123321123321'); pensize(15,15); setrect(vertici,120,120,200,200); framerect(vertici);
pensize(1,1); setrect(vertici,230,120,300,200); paintrect(vertici);
penpat(dkgray); backpat(black); setrect(vertici,230,120,300,200); fillrect(vertici,sfondo1);
suona(20,'terza serie ');
{ terza serie } setrect(vertici,10,220,100,300); fillrect(vertici,sfondo[0]); setrect(vertici,120,220,200,300); fillrect(vertici,sfondo[1]); setrect(vertici,220,220,300,300); fillrect(vertici,sfondo[2]); setrect(vertici,320,220,400,300); fillrect(vertici,sfondo[3]); suona(10,'fine esempio '); end;
BEGIN {inizializzazione sottoprogrammi o routine} InitGraf(@thePort); initfonts; InitCursor; HideCursor; preparaicone; OpenPort(@gPort);
{inizio programma principale} PenPat(black); BackPat(white); EraseRect(gPort.portRect); FrameRect(gPort.portRect); { procedura operativa modificabile..altre procedure aggiungere } stuffhex(@sfondo1,'111222333444555666'); disegna1; WHILE NOT OSEventAvail(mDownMask + keyDownMask, sagoma) DO; END.
Program SFONDI6; { ESEMPI DI tratteggi da usare per riempire figure con FILL..} { vari modi di assegnare valori ai tratteggi e alla procedura } { inserimento pausa sonora e stili e FONT dimensioni variabili}
{$U-}
USES Memtypes,QuickDraw,OSIntf,ToolIntf;
VAR gPort: GrafPort; sagoma: EventRecord; vertici:rect; sfondo:array[0..5] of pattern; x1,y1,x2,y2,contasfondo,a:integer; sfondo1:pattern;
procedure suona(n,durata:integer;testo:string;caratteri:integer);
begin for a:=1 to durata do begin sysbeep(1); textfont(caratteri); textsize(n); moveto(10,360); drawstring(testo); end; hidepen; moveto(10,340); pensize(40,40); showpen; penpat(white); lineto(400,340); penpat(black); end;
procedure preparaicone; begin stuffhex(@sfondo[0],'1234567899876543'); stuffhex(@sfondo[1],'101010101010101010'); stuffhex(@sfondo[2],'1212121212121212'); stuffhex(@sfondo[3],'1203450654076507'); stuffhex(@sfondo[4],'9875679875679877'); stuffhex(@sfondo[5],'9871239871237654'); END;
procedure disegna1;
begin textface([bold]); suona(12,5,'prima serie ',0); pensize(1,1); setrect(vertici,10,10,100,100); framerect(vertici);
pensize(15,15); setrect(vertici,120,10,200,100); framerect(vertici);
pensize(1,1); setrect(vertici,230,10,300,100); paintrect(vertici);
setrect(vertici,320,10,400,100); fillrect(vertici,sfondo1);
textface([underline]); suona(14,10,'seconda serie ',4); { seconda serie} setrect(vertici,10,120,100,200); framerect(vertici);
pensize(15,15); stuffhex(@sfondo1,'123321123321123321'); setrect(vertici,120,120,200,200); framerect(vertici);
pensize(1,1); setrect(vertici,230,120,300,200); paintrect(vertici);
setrect(vertici,230,120,300,200); fillrect(vertici,sfondo1);
textface([shadow]); suona(18,10,'terza serie ',2);
{ terza serie } setrect(vertici,10,220,100,300); fillrect(vertici,sfondo[0]); setrect(vertici,120,220,200,300); fillrect(vertici,sfondo[1]); setrect(vertici,220,220,300,300); fillrect(vertici,sfondo[2]); setrect(vertici,320,220,400,300); fillrect(vertici,sfondo[3]); textface([outline]); suona(24,20,'fine esempio :premi return ',9); end;
BEGIN {inizializzazione sottoprogrammi o routine} InitGraf(@thePort); initfonts; InitCursor; HideCursor; preparaicone; OpenPort(@gPort);
{inizio programma principale} PenPat(black); BackPat(white); EraseRect(gPort.portRect); FrameRect(gPort.portRect); { procedura operativa modificabile..altre procedure aggiungere } stuffhex(@sfondo1,'111222333444555666'); disegna1; WHILE NOT OSEventAvail(mDownMask + keyDownMask, sagoma) DO; END.
Program SFONDI7; { ESEMPI DI tratteggi da usare per riempire figure con FILL..} { vari modi di assegnare valori ai tratteggi e alla procedura } { inserimento pausa sonora e stili e FONT dimensioni variabili}
{$U-}
USES Memtypes,QuickDraw,OSIntf,ToolIntf;
VAR gPort: GrafPort; sagoma: EventRecord; vertici:rect; sfondo:array[0..5] of pattern; x1,y1,x2,y2,contasfondo,a:integer; sfondo1:pattern;
procedure suona(n,durata:integer;testo:string;caratteri:integer);
begin for a:=1 to durata do begin sysbeep(1); textfont(caratteri); textsize(n); moveto(10,360); drawstring(testo); end; moveto(10,340); pensize(40,40); penpat(white); lineto(400,340); penpat(black); end;
procedure preparaicone; begin stuffhex(@sfondo[0],'1234567899876543'); stuffhex(@sfondo[1],'101010101010101010'); stuffhex(@sfondo[2],'1212121212121212'); stuffhex(@sfondo[3],'1203450654076507'); stuffhex(@sfondo[4],'9875679875679877'); stuffhex(@sfondo[5],'9871239871237654'); END;
procedure disegna1;
begin textface([bold]); suona(12,5,'prima serie ',0); pensize(1,1); setrect(vertici,10,10,100,100); frameoval(vertici);
pensize(15,15); setrect(vertici,120,10,200,100); frameoval(vertici);
pensize(1,1); setrect(vertici,230,10,300,100); paintoval(vertici);
setrect(vertici,320,10,400,100); filloval(vertici,sfondo1);
textface([underline]); suona(14,10,'seconda serie ',4); { seconda serie} setrect(vertici,10,120,100,200); frameoval(vertici);
pensize(15,15); stuffhex(@sfondo1,'123321123321123321'); setrect(vertici,120,120,200,200); frameoval(vertici);
pensize(1,1); setrect(vertici,230,120,300,200); paintoval(vertici);
setrect(vertici,230,120,300,200); filloval(vertici,sfondo1);
textface([shadow]); suona(18,10,'terza serie ',2);
{ terza serie } setrect(vertici,10,220,100,300); filloval(vertici,sfondo[0]); setrect(vertici,120,220,200,300); filloval(vertici,sfondo[1]); setrect(vertici,220,220,300,300); filloval(vertici,sfondo[2]); setrect(vertici,320,220,400,300); filloval(vertici,sfondo[3]); textface([outline]); suona(24,20,'fine esempio :premi return ',9); end;
BEGIN {inizializzazione sottoprogrammi o routine} InitGraf(@thePort); initfonts; InitCursor; HideCursor; preparaicone; OpenPort(@gPort);
{inizio programma principale} PenPat(black); BackPat(white); EraseRect(gPort.portRect); framerect(gPort.portRect); { procedura operativa modificabile..altre procedure aggiungere } stuffhex(@sfondo1,'111222333444555666'); disegna1; moveto(10,350); drawstring('premi return per finire'); WHILE NOT OSEventAvail(mDownMask + keyDownMask, sagoma) DO; END.