/* File: figure1.c */
/* Time-stamp: "2001-03-21 14:53:00 calvanes" */
/* Scopo: esempio di uso di funzioni (con variabili locali e senza parametri)
 */

/* Permette all'utente di stampare su schermo figure geometriche.
   L'utente interagisce con il programma tramite una semplice interfaccia.
   E' possibile scegliere solamente la forma della figura da stampare (quadrato
   o triangolo).
*/

#include <stdio.h>

#define ALTEZZA 9

void StampaQuadrato(void)
{
  int i, j;  /* i e j sono variabili locali!!! */

  for(i = 1; i <= ALTEZZA; i++) {
    for(j = 1; j <= ALTEZZA; j++)
      printf("*");
    printf("\n");
  }
}


void StampaTriangolo(void)
{
  int i, j;  /* i e j sono variabili locali!!! */

  for(i = 1; i <= ALTEZZA; i++) {
    for(j = 1; j <= ALTEZZA - i ; j++)
      printf(" ");
    for(j = 1; j <= 2*i - 1 ; j++)
      printf("*");
    printf("\n");
  }
}


void StampaSaluto(void)
{
  printf("Ho finito!\n");
}


int main(void)
{
  char ch;
  do {
    printf("\nIMMETTI UN CARATTERE A SCELTA FRA I SEGUENTI\n");
    printf("  q: stampa un quadrato\n");
    printf("  t: stampa un triangolo\n");
    printf("  f: per terminare il programma:\n");
    scanf("%c", &ch); getchar();
    printf("\n");
    switch(ch) {
      case 'q' : StampaQuadrato(); break;
      case 't' : StampaTriangolo(); break;
      case 'f' : StampaSaluto(); break;
    }
  } while (ch != 'f');

  return 0;
}