program StampaFigure;
var
ch : char;
dimensione : integer;
fine : boolean;
procedure StampaRiga (spazi: integer; lung: integer);
var
i : integer;
begin
for i := 1 to spazi do
write(' ');
for i := 1 to lung do
write('*');
writeln
end;
procedure StampaQuadrato (lato: integer);
var
i : integer;
begin
for i := 1 to lato do
StampaRiga(0, lato)
end;
procedure StampaTriangolo (altezza: integer);
var
i : integer;
begin
for i := 1 to altezza do
StampaRiga(altezza-i, 2*i-1)
end;
procedure StampaSaluto;
begin
writeln('CIAO :-)')
end;
begin
fine := FALSE;
repeat
writeln;
writeln('*** IMMETTI UN CARATTERE A SCELTA FRA I SEGUENTI ***');
writeln('***** Q: stampa un quadrato');
writeln('***** T: stampa un triangolo');
writeln('***** F: per terminare il programma');
writeln;
readln(ch);
fine := (ch = 'f') or (ch = 'F');
if not fine then
begin
write('Di che dimensione? ');
readln(dimensione);
case ch of
'Q','q' : StampaQuadrato(dimensione);
'T','t' : StampaTriangolo(dimensione);
end
end
else
StampaSaluto
until fine
end.