Es. scolastico per contare pari, dispari, negati e positivi di un array

Ciao,

sono un pò confuso circa un esercizio scolastico:

Scrivere un programma che riempia in modo casuale un array sequenziale di 20 numeri interi e conti quanti sono i pari, quanti sono i dispari, quanti sono i negativi e quanti sono i positivi.

Potreste farmi capire come approcciarmi alla soluzione? Magari mostrarla e spiegarla.

Grazie

inviato 5 anni fa
gabar-el
X 0 X
Magari mostrarla e spiegarla.

Come fornire la soluzione al problema e poi copiarlo? ;)

Hai già provato a buttare giù qualcosa? Ce lo fai vedere così possiamo darti dei suggerimenti utili senza darti la soluzione al problema, che è un esercizio che devi fare tu.

risposto 5 anni fa
Mario Santagiuliana
X 0 X
Come fornire la soluzione al problema e poi copiarlo? ;)

Capisco lo scetticismo, ma direi di no. Cercavo proprio una spiegazione riga per riga per comprendere bene ciò che fa il codice. Ad ogni modo lo comprendo una volta che lo osservo o che lo faccio (impiegando ore), ma mi innervosisco perché fatico un sacco a capire come implementare le mie conoscenze alla risoluzione del problema.

Detto questo... ho svolto l'esercizio e mi riesce. Cercando però di utilizzare alcune funzioni per richiamare parti di codice vado in confusione. Non ottengo più un ciclo di 20 elementi ma solo di uno. Mi daresti una mano a capire dove sbaglio?

Grazie

<?php
require('lib_array.inc.php');
$a = loadArrayR(20,-100,100);
viewArray($a);
$pari = 0;
$disp = 0;
$nega = 0;
$posi = 0;


   for ($i=0; $i<20; $i++) {
      
      if ($a[$i]<0) {
         $nega = $nega+1;
      }
      if ($a[$i]>0) {
         $posi = $posi+1;
      }
      if ($a[$i]%2==0) {
         $pari = $pari+1;
      }
      if ($a[$i]%2!=0) {
         $disp = $disp+1;
      }
   }?>
   <?php

   
   echo '<p>I numeri negativi sono ' . $nega . '<br />
         I numeri positivi sono ' . $posi . '<br />
         I numeri pari sono ' . $pari . '<br />
         I numeri dispari sono ' . $disp . '</p>';

?>

// Di seguito le funzioni:

<?php
//============================================
//================ view array ================
//============================================
function viewArray($a) {
   echo '<table border="1"><tr>';
      for ($i=0; $i<count($a); $i++) {
         echo '<td>' . $a[$i] . '</td>
               </tr></table>';
         return;
      }
}

//============================================
//=============== load array r ===============
//============================================
function loadArrayR($el, $l1, $l2) {
   for ($i=0; $i<$el; $i++) {
      $a[$i] = rand($l1,$l2);
      return $a;
   }
}
?>

Ritengo ci sia qualcosa che non va con il count di una funzione. L'ho messo li ma sinceramente non capisco cosa vada a contare... :(

risposto 5 anni fa
gabar-el
modificato 5 anni fa
X 0 X

Inserivo i return all'interno del ciclo e non all'interno della funzione.

risposto 5 anni fa
gabar-el
X 0 X

Molto bene!

Fa tutto quello che ti serve mi pare no? Che problemi hai ora?

risposto 5 anni fa
Mario Santagiuliana
X 0 X

Si fa tutto quello che mi serve. Nessun problema.

Ora vedo di impazzire su altro :)

risposto 5 anni fa
gabar-el
X 0 X

Buon lavoro!

risposto 5 anni fa
Mario Santagiuliana
X 0 X
Effettua l'accesso o registrati per rispondere a questa domanda