{ File: rettang3.pas }

{ Scopo: esempio di uso di procedure con variabili locali e con parametri }

program StampaRettangolo;
{ Stampa un rettangolo di caratteri.
  In questa versione possono essere scelti:
    - l'altezza
    - la larghezza
    - lo spostamento a destra
}

var                          { VARIABILI GLOBALI }
  altezza,                   { altezza del rettangolo }
  larghezza,                 { larghezza del rettangolo }
  spostamento : integer;     { spostamento a destra }
  i           : integer;     { indice del ciclo che scandisce le righe }


  procedure StampaRiga (spazi: integer; lung: integer);
                      { PARAMETRI FORMALI }

  var                 { VARIABILI LOCALI }
    i : integer;      { indice del ciclo che scandisce le posizioni }
  begin
    for i := 1 to spazi do
      write(' ');
    for i := 1 to lung do
      write('*');
    writeln
  end; { StampaRiga }


begin { StampaRettangolo }
  write('Altezza rettangolo ? ');
  readln(altezza);
  write('Larghezza rettangolo ? ');
  readln(larghezza);
  write('Spostamento a destra ? ');
  readln(spostamento);
  for i := 1 to altezza do
    StampaRiga(spostamento,larghezza)
      { spostamento e carattere sono i PARAMETRI ATTUALI corrispondenti
        ai parametri formali spazi e lung }
end. { StampaRettangolo }