Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 16
  1. #1
    Utente di HTML.it L'avatar di Buzzz
    Registrato dal
    Jan 2009
    Messaggi
    775

    semplice programma conta parole

    ciao a tutti..

    devo fare un programmino che conti le parole di una frase, divisa in altre frasi.. in pratica:

    "ciao come stai. io sto bene. tu."

    - ad ogni punto conta una frase (e questo l'ho fatto)
    - conta quante parole ci sono in una frase (questo no)

    questo è il codice, spero che qualcuno di voi possa aiutarmi e dirmi cosa c'è di sbagliato nel codice.. grazie mille!!

    codice:
    /**
     * numero frasi, lunghezza di ogni frase e numero parole ogni frase.
     * 
     * NOMECOGNOME
     * DATA
     */
    import javax.swing.*;
    public class FraseLunghezzaParole
    {
       public static void main()
       {
           int numfrase=0,numparole=5,cont=0;
           char vettore[]=JOptionPane.showInputDialog("Inserisci la frase").toCharArray();
           
           for(int i=0;i<vettore.length;i++)
           {
               if(vettore[i]=='.')
               {
                   numfrase++;
               }
           }
           System.out.println("Le frasi sono "+numfrase);
    
    //fin quì tutto bene
    //quì inizia la parte di conteggio parole di ogni frase
           
           cont=0;
           for(int i=0;i<numparole;i++)
           {
               while(vettore[cont]!='.')
               {
                   if(vettore[cont]==' ')
                   {
                       numparole++;
                   }
                   cont++;
               }
               System.out.println("Il numero delle parole sono "+numparole);
               numparole=0;
           }
       }
    }

  2. #2
    Utente di HTML.it L'avatar di Alex'87
    Registrato dal
    Aug 2001
    residenza
    Verona
    Messaggi
    5,802

    Re: semplice programma conta parole

    Originariamente inviato da Buzzz
    codice:
           int ... numparole=5...;
           for(int i=0;i<numparole;i++)
           {
                ....
                numparole++;
    Perché numparole lo inizializzi a 5? Non è la tua incognita? E perché allora lo usi come guardia booleana per il ciclo? :master:
    SpringSource Certified Spring Professional | Pivotal Certified Enterprise Integration Specialist
    Di questo libro e degli altri (blog personale di recensioni libri) | ​NO M.P. TECNICI

  3. #3
    Utente di HTML.it L'avatar di Buzzz
    Registrato dal
    Jan 2009
    Messaggi
    775
    no no ho sbagliato, avevo fatto una prova ma nn ho cambiato il 5..
    in realtà è inizializzata a 0..

  4. #4
    Utente di HTML.it L'avatar di Buzzz
    Registrato dal
    Jan 2009
    Messaggi
    775
    ora ho provato a modificarlo così, ma addirittura non mi stampa il secondo system.out

    codice:
    import javax.swing.*;
    public class FraseLunghezzaParole
    {
       public static void main()
       {
           int numfrase=0,numparole=0,cont=0;
           char vettore[]=JOptionPane.showInputDialog("Inserisci la frase").toCharArray();
           
           for(int i=0;i<vettore.length;i++)
           {
               if(vettore[i]=='.')
               {
                   numfrase++;
               }
           }
           System.out.println("Le frasi sono "+numfrase);
           
           cont=0;
           for(int i=0;i<numparole;i++)
           {
               for(int j=0;j!='.';j++)
               {
                   if(vettore[j]==' ')
                   {
                       numparole++;
                   }
               }
               System.out.println("Il numero delle parole sono "+numparole);
               numparole=0;
           }
           
       }
    }

  5. #5
    Utente di HTML.it
    Registrato dal
    Jul 2009
    Messaggi
    213
    guarda bene vettore[cont] rimane sempre a 0 perchè lo inizializzi prima del for e non viene mai midficato

  6. #6
    Utente di HTML.it
    Registrato dal
    Jul 2009
    Messaggi
    213
    poi numparole viene modificato ogni volta prima della fine del for. non vorrei sparare una c*****a perchè non ho eseguito passo passo ma andresti incontro a un ciclo infinito. in pratic ails econdo for è completamente sbagliato

  7. #7
    Utente di HTML.it L'avatar di Buzzz
    Registrato dal
    Jan 2009
    Messaggi
    775
    cont è uguale a 0 solo al primo "giro", perchè è fuori da tutti i for, se non sbaglio..

    ho fatto una modifica, mettendo ovviamente numfrase al posto di numparola.. viene così, però il numparole è smepre 0, non so perchè.. anche perchè numparole=0; è sotto alla System.out

    codice:
    cont=0;
           for(int i=0;i<numfrase;i++)
           {
               while(vettore[cont]!='.')
               {
                   if(vettore[cont]==' ')
                   {
                       numparole++;
                   }
                   cont++;
               }
               System.out.println("Il numero delle parole sono "+numparole);
               numparole=0;
           }

  8. #8
    Utente di HTML.it
    Registrato dal
    Jul 2009
    Messaggi
    213
    ah sì scusa su cont hai ragione. ho letto male io.

  9. #9
    Utente di HTML.it
    Registrato dal
    Jul 2009
    Messaggi
    213
    aspetta che provo a debuggarlo a mano

  10. #10
    Utente di HTML.it
    Registrato dal
    Jul 2009
    Messaggi
    213
    purtroppo non ho la jvm installata e non posso provarlo. togli il for e prova solo col while secondo me dovrebbe funzionare

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.