Esercizi in Php per gli alunni di III A Mercurio, III C Mercurio



Creare la tabellina del numero acquisito dal modulo form
<?php
$a=$_POST['a'];
echo "La tabellina del $a:\n";
for ($i = 1; $i<=10;$i++){
echo "$a per $i = ". ($a*$i) ."\n";
}

?>
-------------------------------------------------------------------------------------------
Creare la tabellina del due senza modulo form usando il ciclo while
<?php
$a = 2;
$b = 0;
$i = 1;
echo " La tabellina del $a  ". "\n";
while($b<20)
{
    $b = $a * $i;
    echo "$a per $i = $b\n";
    $i++;
}
 ?>
-------------------------------------------------------------------------------------------
Creare un programma in php cche controlli formalmente se sono stati digitati i 13 elementi del codice fiscale
pagina html
<html>
 <head>
  <title>Cosice Fiscale</title>
 </head>
 <body>
 <form action="codicefiscale.php" method="POST">

 

Controllo del codice fiscale


 <input type="text" size="13" maxlength="13" name="codice"> Inserire qui il codice fiscale
 <input type="submit" value="invia"><input type="reset" value="cancella">
 </form>
 </body>
</html>

seconda pagina in php:
<?php
 $codice=$_POST['codice'];
 if(strlen($codice)!=13;
 echo "Il codice non è valido. Ridigitare!";
 else echo"$codice";



 ?>
--------------------------------------------------------------------------------------------
Inserire da modulo form i dati di un'azienda
pagina html
<HTML>
<BODY>
<FORM ACTION="ditta.php"  METHOD="POST">
<INPUT TYPE="Text" NAME="Nome"> Nome
<INPUT TYPE="Text" NAME="Ragionesociale"> Ragione sociale
<INPUT TYPE="Text" NAME="Indirizzo"> Indirizzo
<INPUT TYPE="Text" NAME="Partitaiva"> Partita IVA
<INPUT TYPE="Submit" VALUE="invia">
<INPUT TYPE="Reset" VALUE="cancella">
</FORM>
</BODY>
</HTML>
pagina php
<HTML>
<BODY>
<?php
   
$Nome=$_POST['Nome'];
$Ragionesociale=$_POST['Ragionesociale'];
$Indirizzo=$_POST['Indirizzo'];
$Partitaiva=$_POST['Partitaiva'];
echo"Nome: $Nome ";
echo"Ragione sociale: $Ragionesociale ";
echo"Indirizzo: $Indirizzo ";
echo"Partita IVA: $Partitaiva";
?>
</BODY>
</HTML>
------------------------------------------------------------------------------------------
acquisire un numero intero e visualizzare i suoi divisori
Pagina html
<html>
 <head>
  <title>Divisori</title>
 </head>
 <body bgcolor="lightblue">
  <!-- acquisire un numero intero e visualizzare i suoi divisori -->

  

Digitare un numero intero


   <form action="divisori.php" method="post">

    <input type="text" size="10" maxlength="10" name="numint">

    <input type="submit" value="Invia">
    <input type="reset" value="Cancella">
   </form>
 </body>
</html>
pagina php
<?php
 echo"<html><body bgcolor='lightblue'>";
 //inizializzazione della variabile
 $numint=$_POST['numint'];
 if($numint!=floor($numint) || ($numint<=0))
  echo "Errore! Il numero digitato non è intero o non è posivivo. Ridigitare.";
 else {
  for($i=1;$i<=$numint;$i++) {
   if($numint % $i==0)
    echo  "Il numero $i è divisore di $numint.";
  
  }
 }
?>
--------------------------------------------------------------------------------------
Creare un programma in php che dati due numeri interi e positivi individui i numeri divisibili per sette e li memorizzi in un file di testo
Pagina Html
<html>
 <head>
  <title>Numeri divisibili per sette</title>
 </head>
 <body bgcolor="lightblue">
  

Inserire due numeri interi positivi.


  <form action="divsette.php" method="post">
   <table border="0" align="center">
    <tr>
     <td align="center">Primo numero&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp</td>
     <td align="center">Secondo numero</td>
    </tr>
    <tr>
    </tr>
    <tr>
     <td><input type="text" name="num1" size="20" maxlength="20"></td>
     <td><input type="text" name="num2" size="20" maxlength="20"></td>
    </tr>
    <tr>
    </tr>
    <tr>
     <td align="center"><input type="submit" value="Invia -->&nbsp&nbsp&nbsp&nbsp"></td>
     <td align="center"><input type="reset" value="<-- Cancella"></td>
    </tr>
   </table>
  </form>
 </body>
</html>
Pagina php
<html>
 <head>
  <title>Numeri divisibili per sette</title>
 </head>
 <body bgcolor='lightblue'>
  <?php
   // Inizializzazione delle variabili
   $num1=$_POST['num1'];
   $num=$num1;
   $num2=$_POST['num2'];
   
   /* Verifica che i numeri acquisiti siano positivi e maggiori di zero */
   if ($num1<=0 || $num2<=0) {
    echo "<span>ERRORE!! Uno o entrambi i numeri acquisiti sono minori o uguali a zero.</span>";
    echo "<span>Ridigitare i numeri richiesti.</span>";
   }
   else { // Verifica che i numeri acquisiti siano interi
    if ($num1<>floor($num1) || $num2!=floor($num2)) {
     echo "<span>ERRORE!! Uno o entrambi i numeri acquisiti non sono interi.</span>";
     echo "<span>Ridigitare i numeri richiesti.</span>";
    }
    else {
     // Scambio dei numeri se num1 > di num2
     if ($num1>$num2) {
      $tr=$num1;
      $num1=$num2;
      $num2=$tr;
     }
     /*  Visualizzazione in un browser dei numeri divisibili per sette compresi tra i due numeri acquisiti */
     // Utilizzo del ciclo di iterazione pre condizionale
     /* while ($num1<=$num2) {
      if($num1%7==0)
       echo "$num1 è divisibile per sette.";
     
      $num1++;
     } */
     // Utilizzo del ciclo di iterazione post condizionale
     /* do {
      if($num1%7==0)
       echo "$num1 è divisibile per sette.";
     
      $num1++;
     } while ($num1<=$num2); */
     // Utilizzo del ciclo di iterazione for
     for ($i=$num1;$i<=$num2;$i++) {
      if($i%7==0)
       echo "$i è divisibile per sette.";
     }
     // Memorizzazione dei dati nel file divsette.txt
     $fp=fopen("divsette.txt","a");
     //Verifica dell'esistenza di divsette.txt
     if ($fp) {
      // Blocco del file per la scrittura
      flock($fp,2);
      $nl=chr(13) . chr(10);
      for ($i=$num1;$i<=$num2;$i++) {
       if($i%7==0)
        fputs ($fp,"$i$nl");
       }
      }
      // Sblocco del file divsette.txt
      flock($fp,3);
      // Chiusura del file divsette.txt
      fclose($fp);  
     }
    }
  ?>
 </body>
</html>
----------------------------------------------------------------------------------------------------------------------------------------
Creare un programma in Php per la risoluzione dun'equazione di secondo grado
Pagina Html
<html>
 <head>
 <title>Equazioni di secondo grado</title>
 </head>
  <body bgcolor="lightyellow">
  <FORM ACTION="equsecondo.php" METHOD="POST">
  <INPUT TYPE="TEXT" NAME="a"> Coefficiente x^2
  <INPUT TYPE="TEXT" NAME="b"> Coefficiente x
  <INPUT TYPE="TEXT" NAME="c"> Termine noto
  <INPUT TYPE="SUBMIT" VALUE="invia">
  <INPUT TYPE="RESET" VALUE="cancella">
  </FORM>
  </body>
</html>
Pagina Php
<?php
echo"<body bgcolor='lightyellow'>";
$a=$_POST['a'];
$b=$_POST['b'];
$c=$_POST['c'];
 //Inserire a, b, c
$d=pow($b,2)-4*$a*$c;
$e=(-1*$b+sqrt($d))/2*$a;
$f=(-1*$b-sqrt($d))/2*$a;
if($a<>0){
if($d>0)
echo"Le soluzioni sono $e e $f";
if($d==0)
echo"La soluzione è $e";
if($d<0)
echo"Soluzione impossibile";
}
?>
---------------------------------------------------------------------------------------------------------------------------------------
Realizzare un programma che inserendo da modulo form un numero definisca la regola di Fibonacci
Pagina Html
<html>
<head>
</head>
<body>


Quanti numeri vuoi?


<form action="fibonacci.php">

<input type="text" name="num1">

<input type="submit" value="calcola">
<input type="reset" value="cancella">
</form>
</body>
</html>
Pagina Php
<?php
echo"<BODY bgcolor='lightgreen'>";
 $pre=1;
 $suc=1;
 $num1=$_POST['num1'];
 if($num1<=0)
 echo "ERRORE!!! Il numero è non positivo. Ridigitare";
 else {
  if($num1!=floor($num1))
  echo "ERRORE!!! Il numero non è intero. Ridigitare";
  else {
   echo "1, ";
   while($suc<=$num1) {
   echo "$suc, ";
   $suc=$suc+$pre;
   $pre=$suc-$pre;
   }
  }
 }
?>
-----------------------------------------------------------------------------------------------------------------------------------------
Dati in ingresso con il modulo form  due numeri, individuare quali di questi sono numeri primi
Pagina Html
<HTML>
 <HEAD>
  <TITLE>Numeri primi</TITLE>
 </HEAD>
 <BODY bgcolor="lightyellow">

    Inserire un numero intero positivo

 <FORM ACTION="n_primo.php" METHOD="post">

  <INPUT TYPE="TEXT" NAME="num1"> Digitare un numero

  <INPUT TYPE="TEXT" NAME="num2"> Digitare un numero

  <INPUT TYPE="SUBMIT" VALUE="invia">
  <INPUT TYPE="RESET" VALUE="cancella tutto">

 </FORM>
 <BODY>
</HTML>
Pagina Php
<?php
 echo"<body bgcolor='lightblue'>";
 $num1 = $_POST['num1'];
 $num2 = $_POST['num2'];
  
 if (($num1 <= 0) || ($num2 <= 0))
  echo "ERRORE!! Uno o entrambi i numeri digitati non sono positivi!";
  else {
 if ($num1!=floor($num1) || $num2!=floor($num2))
  echo "ERRORE!! Uno o entrambi i numeri digitati non sono interi!";
  else {  
 if ($num1 > $num2)
    {
    $tr=$num1;
    $num1=$num2;
    $num2=$tr;
    }
    while ($num1 <= $num2)
    {
     $di = 2;
     $flg = 1;
     while ($di < $num1)
     {
      if (($num1 % $di) == 0)
      {
       $flg = 0;
       $di = $num1;
      }
      $di = $di+1;
     }
     if ($flg == 1)
      echo "Il numero $num1 è primo ";
     $num1 = $num1+1;
    }
   }
  }
?>
-------------------------------------------------------------------------------------------------------------------------------------------
Dato un numero acquisito dall'esterno con il modulo form, individuare il fattoriale di un numero
(In matematica, se n è un intero positivo, si definisce n fattoriale e si indica con n! il prodotto dei primi n numeri interi positivi.)
formula il prodotto del risultato precedente per in numero successivo
 valori per i primi fattoriali sono riassunti nella tabella seguente.
0! 1! 2! 3! 4! 5! 6! 7! 8! 9! 10!          11!                       12!                      13!                     14!
1 1 2 6 24 120 720 5 040 40 320 362 880 3 628 800         39 916 800 479 001 600 6 227 020 800 87 178 291 200

Pagina Html
<html>
 <body background="sfondo.jpg">

  <font size="5" color="navy">Fattoriale di un numero inserito</font>

  <form action="fattoriale.php" METHOD="post">

   <input type="text" name="num1"> Inserisci il numero

   <input type="submit" value="invia">
   <input type="reset" value="cancella">
  </form>
 </body>
</html>
Pagina Php
  
<?php

//variabile acquisita in ingresso
  $num1=$_POST['num1'];
echo"<body background='sfondo.jpg'>";
    if($num1<0)echo"ERRORE!!! Il numero deve essere positivo.";
    else
    if($num1!=floor($num1))echo"ERRORE!!! Il numero deve essere intero.";
    else if(($num1==0)||($num1==1)) echo"Il fattoriale di $num1 è 1";
    else { $fatt=1;
    for($i=1;$i<=$num1;$i++){
        $fatt=$fatt*$i;
        }
          echo"<font size='5'><span>Il fattoriale di $num1 è $fatt</span></font>";
    }
?>     
---------------------------------------------------------------------------------------------------------------------------------------------- 
Creare un programma in Php che determini due numeri perfetti compresi tra due numeri inseriti tramite modulo form
Pagina Html
<HTML>
 <HEAD>
  <TITLE>Determinazione dei numeri perfetti compresi tra due numeri inseriti</TITLE>
 </HEAD>
 <BODY bgcolor="pink">

  

Numeri perfetti compresi tra due numeri inseriti.


  <FORM ACTION="perfetti.php"  METHOD="POST">
   <TABLE>
   <TR>
    <TD><INPUT TYPE="Text" NAME="num1"></TD> <TD>Digitare un primo valore</TD>
   </TR>
   <TR>
    <TD><INPUT TYPE="Text" NAME="num2"></TD> <TD> Digitare un secondo valore</TD>
   </TR>
   </TABLE>
  
   <INPUT TYPE="Submit" VALUE="Invia">
   <INPUT TYPE="Reset" VALUE="Cancella">
  </FORM>
 </BODY>
</HTML>

pagina Php
<?php
echo"<BODY bgcolor='pink'>";
$num1 = $_POST['num1'];
 $num2 = $_POST['num2'];
  
 if (($num1 <= 0) || ($num2 <= 0))
  echo "ERRORE!! Uno o entrambi i numeri digitati non sono positivi!";
  else {
 if ($num1!=floor($num1) || $num2!=floor($num2))
  echo "ERRORE!! Uno o entrambi i numeri digitati non sono interi!";
  else {  
 if ($num1 > $num2)
    {
    $tr=$num1;
    $num1=$num2;
    $num2=$tr;
    }
    while ($num1 <= $num2)
    {
     $somma=0;
     for($i=1;$i<=floor($num1/2);$i++)
     {
     if(($num1%$i)==0)
     $somma=$somma+$i;
     }
     if($somma==$num1)

      echo"Il numero $num1 è perfetto
";
      $num1=$num1+1;
     }
    }
   }
?>
------------------------------------------------------------------------------------------------------------------------------------------------

Esercizi con i vettori
------------------------------------------------------------------------------------------------------------------------------------------------

Primo esercizio
<?php
 $tp=array(17.5, 19.2, 21.8, 21.6, 17.5);
 $tp[5]=20.2;
 $tp[6]=16.6;
 for($i=0;$i<=6;$i++)
 {
  echo"$tp[$i]";
 }
?>
------------------------------------------------------------------------------------------------------------------------------------------------

Secondo esercizio
<?php
 $nome=array("Paolo","Marco","Giovanna","Maurizio","Francesca","Maria");
 $eta=array(47,21,42,54,51,17);
 for($i=0;$i<=5;$i++)
 {
  echo"$nome[$i], $eta[$i] anni";
 }
?>
------------------------------------------------------------------------------------------------------------------------------------------------

<?php
 $tp=array(Eleonora, Alessandra, Francesca, Andrea, Marco, Gabriele, Andrea, Michele, Zorro);
  $nl=8;

 for($i=0;$i<=$nl;$i++) {
  echo"$tp[$i] ";
 }

 echo"
";
 rsort($tp);
 //Ordinamento crescente degli elementi del vettore
 /*for($i=1;$i<=$nl;$i++) {
  for($j=$nl;$j>=$i;$j--) {
   if($tp[$j-1]<$tp[$j]) {
    $tr=$tp[$j-1];
    $tp[$j-1]=$tp[$j];
    $tp[$j]=$tr;
   }
  }
 }
 */
 for($i=0;$i<=$nl;$i++) {
  echo"$tp[$i] ";
 }

?>
------------------------------------------------------------------------------------------------------------------------------------------------

Array Associativi (esempio diverso dell'esercizio)
Si tratta di un array i cui elementi sono accessibili mediante nomi, quindi stringhe anziché indici puramente numerici. Questo non comporta però l'obbligo di utilizzare solo un tipo di indice: alcuni elementi dell'array possono avere un indice numerico, altri un indice di tipo stringa.
Segue un esempio in linguaggio PHP:
$auto["marca"] = 'FIAT';
$auto["modello"] = '500L';
$auto["colore"] = 'Blu';
$auto["anno"] = 1956;
$auto["revisionata"] = true;
L'indice, racchiuso tra le parentesi quadre è l'elemento attraverso il quale è possibile accedere al valore corrispondente dell'array. In PHP poi, come con altri linguaggi interpretati, gli array possono avere valori di tipo diverso. Nell'esempio abbiamo valori di tipo stringa, intero, booleano.
Scrivere un programma  con un array associativo contenente Provincia - sigla della regione
Esercizio in Php senza modulo form
<HTML>
<HEAD> </HEAD>
<BODY>
Prova Array associativi !

<?php
// array con indice numerico
echo("");
echo(" array con indice numerico");
echo("");
$regioni[0]="Roma";
$regioni[1]="Milano";
$regioni[2]="Napoli";
$regioni[4]="Torino";
for($xx=0;$xx<=3;$xx++)
{
echo($regioni[$xx]);
echo("");
}
$N=count($regioni);
for ($i = 0; $i < $N; $i++) {;
$Riga = each($regioni);
$N2 = $Riga[key] + 1;
echo "<tr><td>regione $N2 :</td><td>$Riga[value] </td></tr>";
}
(list($aa,$bb)=each($regioni));
{echo"$aa-$bb";}
echo("");
echo(" array associativo");
echo("");
echo(" ciclo for non visualizza niente");
$regioAS["la"]="Roma";
$regioAS["lo"]="Milano";
$regioAS["ca"]="Napoli";
$regioAS["pi"]="Torino";
$N=count($regioAS);
$N=count($regioAS);
for ($i = 0; $i < $N; $i++) {
$Elemento = (each($regioAS));
echo"chiave: $Elemento[key]";
echo"&nbspvalore: $Elemento[value]";
}
echo("");
echo(" array in tabella");
echo("");
for ($i = 0; $i < $N; $i++) {;
$Riga = each($regioAS);
$N2 = $Riga[key] + 1;
echo "<tr><td>regione $N2 :</td><td>$Riga[value] </td></tr>";
}

for($xx=1;$xx<=3;$xx++)
{
echo($regioAS[$xx]);
echo("");
}
echo(" ciclo con list e each ");
while(list($aa,$bb)=each($regioAS))
{echo"$aa-$bb";}
echo("");
echo(" elemento singolo");
echo("");
echo($regioAS["pi"]);
echo($regioAS[pi]);
echo("");
echo("");
echo("ordinamento asort : in base al contenuto array associativo ");
echo("");
asort($regioAS);
while(list($aa,$bb)=each($regioAS))
{echo"$aa-$bb";}
echo("");
echo("");
echo("ordinamento ksort : in base al contenuto key  associativo ");
echo("");
ksort($regioAS);
while(list($aa,$bb)=each($regioAS))
{echo"$aa-$bb";}
echo("");
echo("");
echo("ordinamento sort: in base al contenuto array indeicizzato");
echo("");
sort($regioni);
for($xx=0;$xx<=3;$xx++)
{
echo"$regioni[$xx]";
}


?>
</BODY>
</BODY>
</HTML>


------------------------------------------------------------------------------------------------------------------------------------------------

Esercizio con il file .txt
Creare una simulazione in Php per l'inserimento dei dati anagrafici e memorizzarli in file txt
Pagina Html di inserimento
<html>
 <head>
  <title>Anagrafe</title>
 </head>
 <body bgcolor="lightskyblue">
 <font color="darkred">

ANAGRAFE

</font>

 <font color="darkred">

Inserire i dati richiesti

</font>

  <form action="anagrafe.php" method="post">
   <table border="0">
    <tr>

     <td>Cognome e nome</td>

     <td>   </td>
     <td>CAP</td>

    </tr>
    <tr>

     <td><input type="text" name="nome" size="30" maxlength="30"></td>
     <td>   </td>
     <td><input type="text" name="cap" size="5" maxlength="5"></td>
    </tr>
    <tr>

     <td>Località</td>

     <td>   </td>

     <td>Provincia</td>

     <td></td>
    </tr>
    <tr>
     <td><input type="text" name="local" size="30" maxlength="30"></td>
     <td>   </td>
     <td><input type="text" name="prov" size="20" maxlength="20"></td>
    </tr>
    <tr>

     <td>Sesso</td>
 
     <td>   </td>
     <td>Interessi</td>
    </tr>
    <tr>
     <td><input type="radio" name="sesso" value="maschio" "checked">Maschile<input type="radio" name="sesso" value="femmina">Femminile</td>
     <td>   </td>
     <td><input type="checkbox" name="sport" value="sport">Sport<input type="checkbox" name="lett" value="letteratura">Letteratura<input type="checkbox" name="scienze" value="scienze">Scienze</td>
    </tr>
   </table>

   <input type="submit" value="invia"><input type="reset" value="cancella tutto">
  </form>
 </body>

</html>

  
Pagina in PHP
<?php

echo"<body bgcolor='lightgreen'>";
$nome=$_POST['nome'];
$cap=$_POST['cap'];
$local=$_POST['local'];
$prov=$_POST['prov'];
$sesso=$_POST['sesso'];
$sport=$_POST['sport'];
$lett=$_POST['lett'];
$scienze=$_POST['scienze'];
$x=strlen($cap);
if ($x!=5)
 echo"

Errore!

Il CAP deve avere 5 caratteri. Ridigitare!";

  else {
   echo"Ecco il riepilogo dei dati che ha inserito:
    Cognome e nome: $nome
    Località: $local
    Provincia: $prov
    CAP: $cap
    Sesso: $sesso

    Interessi: $sport $lett $scienze
";  

    $fp=fopen("anagrafe.txt","a");

    if($fp) {
     flock($fp,2);
    
      $nl=chr(13).chr(10);
    
       fputs ($fp, "$nome,$cap,$local,$prov,$sesso,$sport,$lett,$scienze$nl");
     
        echo"I dati sono stati salvati correttamente!";
       
         flock($fp,3);
    }
     else echo"Non è stato possibile memorizzare i dati. Il file non esiste";
  }

?>
     <td>   </td>
     <td>Interessi</td>
    </tr>
    <tr>
     <td><input type="radio" name="sesso" value="maschio" "checked">Maschile<input type="radio" name="sesso" value="femmina">Femminile</td>
     <td>   </td>
     <td><input type="checkbox" name="sport" value="sport">Sport<input type="checkbox" name="lett" value="letteratura">Letteratura<input type="checkbox" name="scienze" value="scienze">Scienze</td>
    </tr>
   </table>

   <input type="submit" value="invia"><input type="reset" value="cancella tutto">
  </form>
 </body>


</html>


  
Pagina in PHP
<?php

echo"<body bgcolor='lightgreen'>";
$nome=$_POST['nome'];
$cap=$_POST['cap'];
$local=$_POST['local'];
$prov=$_POST['prov'];
$sesso=$_POST['sesso'];
$sport=$_POST['sport'];
$lett=$_POST['lett'];
$scienze=$_POST['scienze'];
$x=strlen($cap);
if ($x!=5)
 echo"

Errore!

Il CAP deve avere 5 caratteri. Ridigitare!";

  else {
   echo"Ecco il riepilogo dei dati che ha inserito:
    Cognome e nome: $nome
    Località: $local
    Provincia: $prov
    CAP: $cap
    Sesso: $sesso

    Interessi: $sport $lett $scienze
";  
 
 
   $fp=fopen("anagrafe.txt","a");
    if($fp) {
     flock($fp,2);
    
      $nl=chr(13).chr(10);
    
       fputs ($fp, "$nome,$cap,$local,$prov,$sesso,$sport,$lett,$scienze$nl");
     
        echo"I dati sono stati salvati correttamente!";
       
         flock($fp,3);
    }
     else echo"Non è stato possibile memorizzare i dati. Il file non esiste";
  }

?>-------------------------------------------------------------------------------------------------------------------


per approfondimenti sul PHP andata alla mia pagina:
http://www.studiosip.it/studiosip/html/dispense_esercizi.html


Paolo Latella

Commenti

  1. Realizzare una pagina PHP che permatte di introdurre la temperatura minima e la temperatura massima giornaliera per sette giorni e che visualizzi alla fine l'escursione termica verificatesi durante la settimana.
    Mi può aiutare?

    RispondiElimina

Posta un commento