/***********************************************
esStampaForme.cpp

  Scrivere un programma che legge un intero n da tastiera
  e stampa a video le seguenti forme una di seguito all'altra:

   1) La cornice di un quadrato di lato n

        * * *
        *   *
        * * *

   2) Un triangolo rettangolo di lato n

        *
        * *
        * * *

   3) La diagonale principale di un quadrato di lato n

        *
          *
            *

   4) Un triangolo rettangolo rovesciato di lato n

        * * *
          * *
            *

   5) La diagonale secondaria di un quadrato di lato n

            *
          *
        *

*******************************************************/

#include <iostream>
using namespace std;

int main() {

    int n = 0;
    cout<<"lato? ";
    cin>>n;

    int i, j;

    cout << endl << "Cornice di un quadrato" << endl;
    i = 0;
      while (i < n) {
        int j = 0;
        while (j < n) {
          if ((i==0) || (i==n-1))
            cout << "* ";
          else{
            if ((j==0) || (j==n-1))
               cout << "* ";
            else
               cout << "  ";
          }
          j = j + 1;
        }
        cout << endl;
        i = i + 1;
      }


    // 1

    cout << endl << "Triangolo rettangolo" << endl;
    i = 0;
    while ( i < n) {
      j = 0;
      while ( j <= i ) {
	  cout<<"* ";
          j = j + 1;
      }
      cout<<endl;
      i = i + 1;
    }


    // 2

    cout << endl << "Diagonale principale" << endl;
    i = 0;
    while ( i < n) {
      j = 0;
      while ( j < n ) {
	  if ( j == i ) {
	      cout<<"* ";
	  }
	  else {
	      cout << "  ";
	  }
          j = j + 1;
      }
      cout<<endl;
      i = i + 1;
    }


    // 3

    cout << endl << "Triangolo rettangolo rovesciato" << endl;
    i = 0;
    while ( i < n) {
      j = 0;
      while ( j < n ) {
	  if ( j >= i ) {
	      cout << "* ";
	  }
	  else {
	      cout << "  ";
	  }
          j = j + 1;
      }
      cout<<endl;
      i = i + 1;
    }


    // 4

    cout << endl << "Diagonale secondaria" << endl;
    i = 0;
    while ( i < n) {
      j = 0;
      while ( j < n ) {
	  if ( j == n - 1 - i ) {
	      cout<<"* ";
	  }
	  else {
	      cout << "  ";
	  }
          j = j + 1;
      }
      cout<<endl;
      i = i + 1;
    }

    return 0;
}
