Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 12
  1. #1
    Utente di HTML.it
    Registrato dal
    Dec 2007
    Messaggi
    10

    Restituire stringa con i numeri compresi tra n e 2*n

    Ciao!
    Scusate se vi disturbo ma ho un grattacapo e non so come fare...
    il problema in questione è questo:
    Definire una funzione che ha come parametri un numero intero n e restituisce una stringa composta da tutti i numeri compresi tra n e 2*n, separati da una virgola. Si suppone che n sia sempre maggiore di zero.

    Allora siamo un gruppetto di tre a fare questo esercizio ma anche se capiamo il concetto e sappiamo cosa dobbiamo ottenere, non riusciamo lo stesso a finirlo... quindi vi chiediamo un po' d'aiuto e "d'illuminazione"....

    grazie
    joy & Co

  2. #2
    Frontend samurai L'avatar di fcaldera
    Registrato dal
    Feb 2003
    Messaggi
    12,924
    codice:
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
        "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
    <html>
    <head>
    
    <script type="text/javascript">
    function foobar(n) {
       var cnt = n;
       var numbers = [];
       while (cnt <= (n*2)) {
          numbers.push(cnt++);
       }
       return numbers.join(',');
    }
    </script>
    
    
    </head>
    
    
    <body>
    <script type="text/javascript">
    document.write(foobar(6));
    </script>
    </body>
    </html>
    Vuoi aiutare la riforestazione responsabile?

    Iscriviti a Ecologi e inizia a rimuovere la tua impronta ecologica (30 alberi extra usando il referral)

  3. #3
    Utente di HTML.it
    Registrato dal
    Dec 2007
    Messaggi
    10
    Grazie!! sei stato veramente veloce!! qui sono tutti esultanti!!
    Ma io ti volevo chiedere un'ultima cortesia.... potresti farmi vedere come si fa ad aggiungere tutto quello che hai messo dopo il while ad una var s= "" ad esempio... spero di essermi spiegata bene...è che javascript è una cosa che mi giunge nuova e magari mi spiego male...

  4. #4
    Frontend samurai L'avatar di fcaldera
    Registrato dal
    Feb 2003
    Messaggi
    12,924
    Originariamente inviato da johannaz
    ...qui sono tutti esultanti!!
    eh, mi immagino.

    Originariamente inviato da johannaz
    Ma io ti volevo chiedere un'ultima cortesia.... potresti farmi vedere come si fa ad aggiungere tutto quello che hai messo dopo il while ad una var s= "" ad esempio... spero di essermi spiegata bene
    No, non ho capito cosa vuoi (volete) fare.
    Accumulare una stringa _dentro_ il while o _dopo_ il while? (c'è differenza)
    Vuoi aiutare la riforestazione responsabile?

    Iscriviti a Ecologi e inizia a rimuovere la tua impronta ecologica (30 alberi extra usando il referral)

  5. #5
    Utente di HTML.it
    Registrato dal
    Dec 2007
    Messaggi
    10
    guarda, il discorso è questo...dobbiamo creare una nuova stringa con i numeri che vanno da n a 2*n.... e il nostro caro prof (si fa per dire!) vuole che usiamo una var x= ""... alla quale dobbiamo aggiungere dopo il while i numeri (tra n e 2*n) e la virgola... facciamo che io ho un intero = 5 quindi 2*5=10 ....allora la stringa nuova dovrebbe essere 6,7,8,9 .....

    oh mamma, scusami se non riesco a spiegarmi meglio....

  6. #6
    Frontend samurai L'avatar di fcaldera
    Registrato dal
    Feb 2003
    Messaggi
    12,924
    ok però potreste far osservare al prof che in questo modo sareste costrette a fare lavoro aggiuntivo per togliere l'ultima virgola, cosa che non succede utilizzando gli elementi di un array da concatenare con la virgola.


    codice:
    <script>
    function foobar(n) {
       var cnt = n;
       var numbers = '';
       while (cnt <= (n*2)) {
          numbers += cnt++ ;
          numbers += "," ;
       }
       
       return numbers.replace(/\,$/, ''); 
       // serve per eliminare l'utlima virgola. Se la cosa non vi interessa scrivete semplicemente 
       // return numbers;
    }
    </script>
    Vuoi aiutare la riforestazione responsabile?

    Iscriviti a Ecologi e inizia a rimuovere la tua impronta ecologica (30 alberi extra usando il referral)

  7. #7
    Utente di HTML.it
    Registrato dal
    Dec 2007
    Messaggi
    10
    veramente non so come ringraziarti!!!!
    Questa soluzione è quella che fa per me perchè è così che ha fatto vedere il prof.
    Grazie di nuovo...lo testo e ti faccio sapere!!

    Joy

  8. #8
    Utente di HTML.it
    Registrato dal
    Dec 2007
    Messaggi
    10
    fcaldera... ho provato le due funzioni che mi hai dato... la prima funziona anche se nella stringa nuova mi aggiunge i numeri da n a 2*n e non solo quelli tra i due valori. La seconda invece mi da come risultato undefined e ho cercato di modificarla un po' ma con scarsi risultati....

    cosa mi suggerisci di fare??

  9. #9
    codice:
    <script type="text/javascript">
    function foobar(n) {
       var cnt = n;
       var numbers = '';
       while (cnt <= (n*2)) {
          numbers += cnt++ ;
          numbers += "," ;
       }
       
       return numbers.replace(/\,$/, ''); 
       // serve per eliminare l'utlima virgola. Se la cosa non vi interessa scrivete semplicemente 
       // return numbers;
    }
    alert(foobar(10));
    </script>
    Come potete vedere la funzione... funziona.
    Se i valori agli estremi devono essere esclusi basta modificare leggermente la funzione.
    Mettiamo il caso dell'esempio n=10.
    Se volete che vengano inseriti nella stringa solo i valori da 11 a 19 e quindi escludere n (10) e n*2 (20) la funzione va così modificata:

    codice:
    <script type="text/javascript">
    function foobar(n) {
       var cnt = n+1;
       var numbers = '';
       while (cnt < (n*2)) {
          numbers += cnt++ ;
          numbers += "," ;
       }
       
       return numbers.replace(/\,$/, ''); 
    }
    alert(foobar(10));
    </script>

  10. #10
    Frontend samurai L'avatar di fcaldera
    Registrato dal
    Feb 2003
    Messaggi
    12,924
    Originariamente inviato da johannaz
    la prima funziona, anche se nella stringa nuova mi aggiunge i numeri da n a 2*n e non solo quelli tra i due valori.
    :master: questa affermazione si contraddice da sola. Tu hai chiesto una funzione che dato un numero n, forma una stringa di numeri tra n e 2*n. Se ad es. n uguale a 5, la stringa sarà '5,6,7,8,9,10'. Ed è ciò che fanno entrambe le funzioni

    Originariamente inviato da johannaz
    La seconda invece mi da come risultato undefined e ho cercato di modificarla un po' ma con scarsi risultati....

    cosa mi suggerisci di fare??

    Sinceramente? credo sia necessario inziare a leggere un manuale. perchè probabilmente non state eseguendo correttamente la seconda funzione. (le ho provate entrambe prima di postarle)

    Però copiando e incollando non si apprende nulla. E' necessario capire il codice

    Siete in tre: credo che sforzandovi sia facile per voi scrivere una funzione che richiede non più di due righe ciascuno o, almeno, consultare un guida javascript online per capire almeno il ciclo while, le assegnazioni e il ritorno delle funzioni.

    Considerate anche l'ipotesi che - se vi venisse chiesto il significato delle varie istruzioni nel codice - il vostro docente capirebbe subito che non è opera vostra...

    Vuoi aiutare la riforestazione responsabile?

    Iscriviti a Ecologi e inizia a rimuovere la tua impronta ecologica (30 alberi extra usando il referral)

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.