Forum Informatica Unict

LAUREA TRIENNALE (D.M. 270/04) => Programmazione 1, 9 CFU => Topic started by: dani89 on 03-04-2009, 10:37:33



Title: Metodo alfabeto
Post by: dani89 on 03-04-2009, 10:37:33
serve aiuto x risolvere questo metodo:
Scrivere un metodo che prenda come parametro formale un array di caratteri minuscoli A

e restituisca in output il vettore delle frequenze di tutti i caratteri dell'alfabeto.
sbaglio ad assegnare le occorenze dell'array di output xkè mi escono i valori in ASCII invece l'esercizio richiede tutt'altro, can you help me??
Code:
public static int[]metodo (char[]A)

{

int[]B=new int [26];

for (int i=0;i<A.length;i++)

{

B[i]=(int)A[i];

}

return B;

}

public static void main (String[]args)

{

char[]A={'e','t','h','a','e','g','c','c','d','e'};

int[]B=metodo(A);

for (int i=0;i<B.length;i++)

System.out.println(B[i]);

System.exit(0);

}


Title: Re:Metodo alfabeto
Post by: atrix0ne on 03-04-2009, 11:06:01
Code:
/*Scrivere un metodo che prenda come parametro formale un array di caratteri minuscoli A
e restituisca in output il vettore delle frequenze di tutti i caratteri dell'alfabeto.
*/
public class alfabeto
  {
  public static int [] metodo(char []A)
    {
    int i,j=0;
    int [] vett=new int [26];
    char [] Alfabeto={'a','b','c','d','e','f','g','h','i','j','k','l','m','n','o','p','q','r','s','t','u','v','w','x','y','z'};
    for(i=0;i<Alfabeto.length;i++)
      {
      for(j=0;j<A.length;j++)
        {
        if(Alfabeto[i]==A[j])
          {
          vett[i]++;
          }
        }
      }
          for(i=0;i<vett.length;i++) //per stampare l'array
        {
            System.out.println(Alfabeto[i]+"="+vett[i]);
        }
      return vett;
      }
         public static void main (String[]args)
  {
 
    char m[]= {'x','x','r','r','a','a','b','b','b','z','z'};
metodo(m);
         
  }
}
RikiChardo&AndreaVetrano approved! 8-| :[Emoticon] PC Asd:


Title: Re:Metodo alfabeto
Post by: dani89 on 03-04-2009, 11:11:43
grazie mille


Title: Re:Metodo alfabeto
Post by: ɹǝǝuıƃuǝsɹǝʌǝɹ on 03-04-2009, 11:15:21
Code:
public class testFrequenzeLettere
{
    public static int[] metodo (char [] A)
    {
        int [] B = new int ['z' - 'a' + 1];

        for (int i = 0; i < A.length; i++)
            if (A [i] >= 'a' && A [i] <= 'z')
                B [A [i] - 'a']++;

        return B;
    }

    public static void main (String[]args)
    {
        char [] A = {'e','t','h','a','e','g','c','c','d','e'};
        int [] B = metodo (A);

        for (int i = 0; i < B.length; i++)
            if (B [i] > 0)
                System.out.println (((char) (i + 'a')) + " compare " + B [i] + " volte.");
    }
}


Title: Re:Metodo alfabeto
Post by: atrix0ne on 03-04-2009, 11:27:06
Code:
public class testFrequenzeLettere
{
    public static int[] metodo (char [] A)
    {
        int [] B = new int ['z' - 'a' + 1];

        for (int i = 0; i < A.length; i++)
            if (A [i] >= 'a' && A [i] <= 'z')
                B [A [i] - 'a']++;

        return B;
    }

    public static void main (String[]args)
    {
        char [] A = {'e','t','h','a','e','g','c','c','d','e'};
        int [] B = metodo (A);

        for (int i = 0; i < B.length; i++)
            if (B [i] > 0)
                System.out.println (((char) (i + 'a')) + " compare " + B [i] + " volte.");
    }
}
questo è corretto:Riki Chardo approved  :[Emoticon] PC Asd:
Code:
public class coglions
{
    public static int[] metodo (char [] A)
    {
        int [] B = new int ['z' - 'a' + 1];

        for (int i = 0; i < A.length; i++)
            if (A [i] >= 'a' && A [i] <= 'z')
                B [A [i] - 'a']++;

        return B;
    }

    public static void main (String[]args)
    {
        char [] A = {'e','t','h','a','e','g','c','c','d','e'};
        int [] B = metodo (A);

        for (int i = 0; i < B.length; i++)
            if (B [i] > 0)
                if (B[i]==1)
                  System.out.println (((char) (i + 'a')) + " compare " + B [i] + " volta.");

                  else System.out.println (((char) (i + 'a')) + " compare " + B [i] + " volte.");

    }
}


Title: Re:Metodo alfabeto
Post by: ɹǝǝuıƃuǝsɹǝʌǝɹ on 03-04-2009, 12:38:51
Se dobbiamo dire stupidaggini cambiando poche righe di codice e usando nomi di classi della cui esistenza non comprendo veramente il motivo .bah, questo main è ancora meglio:
Code:
    public static void main (String[]args)
    {
        char [] A = {'e','t','h','a','e','g','c','c','d','e'};
        int [] B = metodo (A);

        for (int i = 0; i < B.length; i++)
            if (B [i] > 0)
              System.out.println (((char) (i + 'a')) + " compare " + B [i] + " volt" + ((B [i] == 1) ? "a" : "e") + ".");
    }
A parte questo, non vorrei che postando il mio codice avessi offeso il tuo senso di solidarietà nei confronti di dani89, ma prima tu hai postato mentre io scrivevo il codice e non mi sono accorto del post .ciaociao.


Title: Re:Metodo alfabeto
Post by: atrix0ne on 03-04-2009, 12:45:43
stavo skerzando reverse .bah


Title: Re:Metodo alfabeto
Post by: Daréios89 on 03-04-2009, 16:17:23
Scusa Dani, non ho capito cosa deve fare sto metodo, puoi spiegarmelo?


Title: Re:Metodo alfabeto
Post by: dani89 on 03-04-2009, 17:15:13
il testo è scritto nel primo post, praticamente devi restituire un array di 26 interi che corrispondo alle 26 lettere dell'alfabeto, ogni lettera compare n volte e l'array scrive il numero n di ogni lettera