ESERCIZI SUL PHP
Esempio 0

Si sviluppi un applicazione che stampi a video la tabella 10x10 di zeri ed uni visualizzata in figura.
0101010101
0101010101
0101010101
0101010101
0101010101
0101010101
0101010101
0101010101
0101010101
0101010101

Soluzione:

Utilizzando il blocco note (NOTEPAD.EXE) scriviamo il seguente file di testo. 

<?
for ($i=1;$i<=5; $i++)
  {
    printf("%s","0101010101\n");
    printf("%s","1010101010\n");
  }
?>

Vi ricordo di salvarlo in c:\php selezionando in corrispondenza della voce "Salva come" l'opzione: "Tutti i file". Inoltre fornite come estensione del vostro documento la sigla ".PHP"

Per eseguire il vostro programma basta richiamare una finestra Dos. Per richiamarla usare il menu Esegui e digitare il comando Command (Cmd in WinNT).

Nella finestra DOS digitate CD C:\PHP<invio> ed in seguito php -q <Nome esercizio.php> per eseguirlo (vedi figura).

Se tutto č impostato correttamente a video vedete la sequenza di 0 ed 1.

CONSIDERAZIONI

L'esercizio proposto ha un numero di righe e colonne ben definito: 10x10. Questo semplifica la soluzione poichč ci basta stampare per 5 volte le sequenza di stringhe "0101010101" e "1010101010" per ottenere la nostra tabella. 
Supponiamo invece che il numero di 0 ed 1 dipenda da due variabili: $N (numero di colonne), $M (numero di righe) entrambe inizializzate in cima al programma. La soluzione per il nostro esercizio potrebbe diventare:

<?
$M=10;
$N=10;
for ($i=1;$i<=$N; $i++)
   {
      for ($j=1;$j<=$M; $j++)
          {
              if ( ($i+$j) % 2==0 )
                 printf("%s","0");
              else 
                 printf("%s","1");
          }
      printf("\n");
   }
?>

Si noto come gli zeri si presentino sempre in corrispondenza di colonne e righe con indice contemporaneamente pari oppure contemporaneamente dispari. Ricordando che la somma di 2 numeri pari o di due numeri dispari da sempre un numero pari segue la condizione per stampare il carattere 0:

($i+$j) % 2==0

dove % č l'operatore resto nella divisione intera. 

Posso fare un ulteriore considerazione: il valore visualizzato in corrispondenza della colonna $i e della riga $j č uguale al resto della divisione intera per 2 della somma dei 2 indici. Questa particolaritą introduce una ulteriore semplifica al nostro programma:

<?
$M=10;
$N=10;
for ($i=1;$i<=$N; $i++)
   {
      for ($j=1;$j<=$M; $j++)
         printf("%s",($i+$j) % 2);
      printf("\n");
 }
?>

Attenzione: quando si sviluppa un programma analizzate tutte le sue particolaritą: questo potrebbe semplificare di molto la vostra soluzione.