Questo sito utilizza cookies solo per scopi di autenticazione sul sito e nient'altro. Nessuna informazione personale viene tracciata. Leggi l'informativa sui cookies.
Username: Password: oppure
PHP - problemi con ciclo for...
Forum - PHP - problemi con ciclo for...

Avatar
giocala88 (Normal User)
Expert


Messaggi: 248
Iscritto: 23/04/2008

Segnala al moderatore
Postato alle 18:18
Giovedì, 17/12/2009
Salve ragazzi ho un problema:

1. devo prendere il numero 3 e devo creare dei multipli di 30 fino a 30; OK
2. successivamente devo prelevare ad uno ad uno i multipli e generare un conteggio per arrivare al multiplo selezionato partendo dal multiplo più basso

(es: 3, 6, 9 ..., 30) -> multipli di 30
prendo il 3 per arrivare al 3 cicla 1,2,3 -> visualizza 1,2,3 e fermati a 3;
prendo il 6 per arrivare a 6 cicla (partire da 3 e non da 1) 4, 5, 6 -> visualizza 4,5,6 e fermati;
....e così via...

Come posso fare????

Ho implementato il primo punto...ma il secondo 8-|8-|8-|
[Codice PHP]

<body>

<?php

echo "<br/><br/>";
//Calcolare i divisori
echo "Divisori:<br/>";
for($h = 1; $h <= 10; $h++){
  $multiplo = 3 * $h;
    echo "$multiplo - ";
  $array[] = "$multiplo";
}
//Conta gli elelemnti dell'array
$lungh_array= count($array);
echo "I contenuti sono $lungh_array";
//Leggi il contenuto dell'array

for($i = 0; $i < $lungh_array; $i++){
  echo "<br/>$array[$i] - ";
  //leggi il primo elemento
}  

?>

</body>

Grazie anticipatamente a tutti...ciao

PM Quote
Avatar
ferruccio94 (Member)
Pro


Messaggi: 135
Iscritto: 07/12/2009

Segnala al moderatore
Postato alle 15:34
Venerdì, 18/12/2009
Testo quotato

Postato originariamente da giocala88:

Salve ragazzi ho un problema:

1. devo prendere il numero 3 e devo creare dei multipli di 30 fino a 30; OK
2. successivamente devo prelevare ad uno ad uno i multipli e generare un conteggio per arrivare al multiplo selezionato partendo dal multiplo più basso

(es: 3, 6, 9 ..., 30) -> multipli di 30
prendo il 3 per arrivare al 3 cicla 1,2,3 -> visualizza 1,2,3 e fermati a 3;
prendo il 6 per arrivare a 6 cicla (partire da 3 e non da 1) 4, 5, 6 -> visualizza 4,5,6 e fermati;
....e così via...

Come posso fare????

Ho implementato il primo punto...ma il secondo 8-|8-|8-|
[Codice PHP]

<body>

<?php

echo "<br/><br/>";
//Calcolare i divisori
echo "Divisori:<br/>";
for($h = 1; $h <= 10; $h++){
  $multiplo = 3 * $h;
    echo "$multiplo - ";
  $array[] = "$multiplo";
}
//Conta gli elelemnti dell'array
$lungh_array= count($array);
echo "I contenuti sono $lungh_array";
//Leggi il contenuto dell'array

for($i = 0; $i < $lungh_array; $i++){
  echo "<br/>$array[$i] - ";
  //leggi il primo elemento
}  

?>

</body>

Grazie anticipatamente a tutti...ciao



Se ho capito bene, dovrebbe stampare:
Testo quotato


Divisori:
3 - 6 - 9 - 12 - 15 - 18 - 21 - 24 - 27 - 30 - I contenuti sono 10
3 - 6 - 9 - 12 - 15 - 18 - 21 - 24 - 27 - 30
6 - 9 - 12 - 15 - 18 - 21 - 24 - 27 - 30
9 - 12 - 15 - 18 - 21 - 24 - 27 - 30


ecc... fino a 30?

PM Quote
Avatar
giocala88 (Normal User)
Expert


Messaggi: 248
Iscritto: 23/04/2008

Segnala al moderatore
Postato alle 16:41
Venerdì, 18/12/2009
Innanzitutto ringrazio per l'interessamento.
Per spiegarmi meglio ti faccio un altro esempio:
Ho 30 numeri:
1, 2, 3, 4, 5, 6, 7, 8, 9, 10,  11, 12, 13, 14, 15, 16, 17, 18, 19, 20,  21, 22, 23, 24, 25, 26, 27, 28, 29, 30.

L'algoritmo dovrà fare questo:

- leggi da 1 a 3 (1,2,3) -> visualizza un mex1;
- leggi da 4 a 6 (4,5,6) -> visualizza un mex2;
- leggi da 7 a 9 (7,8,9) -> visualizza un mex3;
- .........
- leggi da n a m -> visualizza un mex_m;

dove m, sarebbe 3, 6, 9, 12, 15, 18, 21, 24, 27, 30, è un multiplo di 30.

Spero di essere stato chiaro...;)


  

PM Quote
Avatar
ferruccio94 (Member)
Pro


Messaggi: 135
Iscritto: 07/12/2009

Segnala al moderatore
Postato alle 10:55
Sabato, 19/12/2009
Testo quotato

Postato originariamente da giocala88:

Innanzitutto ringrazio per l'interessamento.
Per spiegarmi meglio ti faccio un altro esempio:
Ho 30 numeri:
1, 2, 3, 4, 5, 6, 7, 8, 9, 10,  11, 12, 13, 14, 15, 16, 17, 18, 19, 20,  21, 22, 23, 24, 25, 26, 27, 28, 29, 30.

L'algoritmo dovrà fare questo:

- leggi da 1 a 3 (1,2,3) -> visualizza un mex1;
- leggi da 4 a 6 (4,5,6) -> visualizza un mex2;
- leggi da 7 a 9 (7,8,9) -> visualizza un mex3;
- .........
- leggi da n a m -> visualizza un mex_m;

dove m, sarebbe 3, 6, 9, 12, 15, 18, 21, 24, 27, 30, è un multiplo di 30.

Spero di essere stato chiaro...;)


    



Allora, tu hai 10 messaggi (uno per il 3, un altro per il 6, ecc...).
Se ti servono solo quei numeri, potresti metterli un un array, poi fai un ciclo for  da 1 a 30, e dovrebbe essere una cosa così.
PS:
Anche i messaggi dovresti metterli un un array:
Codice sorgente - presumibilmente Php

  1. <?php
  2. $array_num = array(3, 6, 9, 12, 15, 18, 21, 24, 27, 30);
  3. $array_mex = array("mex1", "mex2", "mex3", "mex4", "mex5", "mex6", "mex7", "mex8", "mex9", "mex10");
  4.  
  5. for ($i=1; $i<=30; ++$i) {
  6. if (in_array($i, $array_num)) {
  7. echo $array_mex[$i] . "<br>";
  8. }
  9. }
  10. ?>



Ho provato questo codice, però stampa solo 3 messaggio :( , non capisco come devo fare, mi dispiace.

PM Quote