Pages: [1]   Go Down
Print
Author Topic: esercizi sugli array proposti in aula  (Read 3310 times)
0 Members e 1 Utente non registrato stanno visualizzando questa discussione.
commodore64
Guest
« on: 23-11-2009, 22:51:01 »

si chiedeva di creare un array di n elementi; io ne ho inseriti 30, di riempirli con numeri random, e di tirar fuori le coppie di valori la cui somma era 5.

import java.math.*;
public class RicSomma5 {
public static void main(String args[]){
   
   int[]vettoreintero=new int[29];
   int x;
   for (int i=0;i<29;i++){
      x=(int)(10*Math.random())+1;
      vettoreintero=x;   
   }
   //stampo il vettore riempito...per controllo!!
   for (int k=0;k<29;k++){
      System.out.println(k+"--> "+vettoreintero[k]);
   }
   
   //eseguo la ricerca, la filtro e la stampo
   for (int c=0;c<29;c++){
      for (int d=0;d<29;d++){
         
         if (vettoreintero[c]+ vettoreintero[d]==5 && vettoreintero[c]>vettoreintero[d])//la seconda condizione serve ad escludere l'eventuale ripetizione della coppia simmetrica es: 5-1 1-5
         {
            
            System.out.println("trovato --> "+"c= "+c+" d ="+d);
            
                                          }
         
                        }
   
   
      
                     }
   
}
}
Logged
gaernik
Apprendista Forumista
**
Offline Offline

Gender: Male
Posts: 114


« Reply #1 on: 24-11-2009, 01:05:51 »

a prima vista sembra andare, ma ti consiglio in futuro di utilizzare il tag [ code] [/ code] (senza spazi fra le quadre) quando posti del codice  ciao
Logged
ɹǝǝuıƃuǝsɹǝʌǝɹ
Administrator
God of the Forum
*****
Offline Offline

Gender: Male
Posts: 4.474


Più grande è la lotta, e più è glorioso il trionfo


WWW
« Reply #2 on: 24-11-2009, 09:55:19 »

a prima vista sembra andare, ma ti consiglio in futuro di utilizzare il tag [ code] [/ code] (senza spazi fra le quadre) quando posti del codice  ciao
Per come è scritto, o meglio per come noi lo vediamo stampato sul forum a causa della mancanza dei tag [CODE] e [/CODE], si è persa l'indicizzazione fatta su vettoreintero.

Sistema il codice e sarò lieto di dare una mano.
 ciao
Logged

La grande marcia della distruzione mentale proseguirà. Tutto verrà negato. Tutto diventerà un credo. È un atteggiamento ragionevole negare l'esistenza delle pietre sulla strada; sarà un dogma religioso affermarla. È una tesi razionale pensare di vivere tutti in un sogno; sarà un esempio di saggezza mistica affermare che siamo tutti svegli. Accenderemo fuochi per testimoniare che due più due fa quattro. Sguaineremo spade per dimostrare che le foglie sono verdi in estate. Non ci resterà quindi che difendere non solo le incredibili virtù e saggezze della vita umana, ma qualcosa di ancora più incredibile: questo immenso, impossibile universo che ci guarda dritto negli occhi. Combatteremo per i prodigi visibili come se fossero invisibili. Guarderemo l'erba e i cieli impossibili con uno strano coraggio. Saremo tra coloro che hanno visto eppure hanno creduto.

In tutto, amare e servire.

  
                            ن                           
I can deal with ads,
I can deal with buffer,
but when ads buffer
I suffer...

...nutrimi, o Signore, "con il pane delle lacrime; dammi, nelle lacrime, copiosa bevanda...

   YouTube 9GAG    anobii  S  Steam T.B.o.I. Wiki [univ] Lezioni private  ʼ  Albo d'Ateneo Unicode 3.0.1
Usa "Search" prima di aprire un post - Scrivi sempre nella sezione giusta - Non spammare - Rispetta gli altri utenti - E ricorda di seguire il Regolamento
XDnl
Apprendista Forumista
**
Offline Offline

Gender: Male
Posts: 376



« Reply #3 on: 25-11-2009, 14:53:05 »

Non so se è dovuto alla mancanza del tag code, ma mi sembra di vedere alcuni errori:
Innanzitutto nel testo dici di aver inserito 30 numeri, ma invece nel codice
hai dichiarato un array di 29 elementi
Code:
int[] vettoreintero = new int[29]; // dovrebbe essere new int[30]!
Inoltre all'interno del primo ciclo for l'istruzione
Code:
vettoreintero = x;
è errata, dovrebbe essere
Code:
vettoreintero[i] = x;
il resto mi sembra corretto.
Ulteriori idee:
- Sarebbe meglio evitare di scrivere la dimensione dell'array come numero (29), perchè se devi cambiarlo poi ti tocca
  andare a rivedere tutto il programma. Potresti utilizzare una costante
 
Code:
final int MAX = 29;
 
  o ancora meglio l'istruzione
 
Code:
  vettoreintero.length
 
  che ovviamente restituisce la dimensione dell'array.

- Nel mio programma, per non ripetere le coppie ho modificato i due cicli annidati in questo modo:
Code:
for (int c = 0; c < vettoreintero.length - 1; c++) // Nota che ciclo fino al penultimo elemento
for (int d = c + 1; d < vettoreintero.length; d++) // Nota che il valore da cui parte d dipende da c!
{
if (vettoreintero[c] + vettoreintero[d] == 5)
{
... // Stampa coppia
}
}
Logged
ɹǝǝuıƃuǝsɹǝʌǝɹ
Administrator
God of the Forum
*****
Offline Offline

Gender: Male
Posts: 4.474


Più grande è la lotta, e più è glorioso il trionfo


WWW
« Reply #4 on: 25-11-2009, 17:45:32 »

[...] all'interno del primo ciclo for l'istruzione
Code:
vettoreintero = x;
è errata, dovrebbe essere
Code:
vettoreintero[i] = x;
Infatti ha scritto proprio con l'indice, solo che se si mette una "i" tra parentesi FUORI dal tag CODE, come accennai prima, il forum la interpreta come tag CORSIVO ed essa scompare dal messaggio in sè.
Per sincerarsene, basta cliccare su "Quote" del suo messaggio e vedere l'originale  .

Per il resto, mi trovo d'accordo con te, compresa la tua elegante soluzione al problema.
 
Logged

La grande marcia della distruzione mentale proseguirà. Tutto verrà negato. Tutto diventerà un credo. È un atteggiamento ragionevole negare l'esistenza delle pietre sulla strada; sarà un dogma religioso affermarla. È una tesi razionale pensare di vivere tutti in un sogno; sarà un esempio di saggezza mistica affermare che siamo tutti svegli. Accenderemo fuochi per testimoniare che due più due fa quattro. Sguaineremo spade per dimostrare che le foglie sono verdi in estate. Non ci resterà quindi che difendere non solo le incredibili virtù e saggezze della vita umana, ma qualcosa di ancora più incredibile: questo immenso, impossibile universo che ci guarda dritto negli occhi. Combatteremo per i prodigi visibili come se fossero invisibili. Guarderemo l'erba e i cieli impossibili con uno strano coraggio. Saremo tra coloro che hanno visto eppure hanno creduto.

In tutto, amare e servire.

  
                            ن                           
I can deal with ads,
I can deal with buffer,
but when ads buffer
I suffer...

...nutrimi, o Signore, "con il pane delle lacrime; dammi, nelle lacrime, copiosa bevanda...

   YouTube 9GAG    anobii  S  Steam T.B.o.I. Wiki [univ] Lezioni private  ʼ  Albo d'Ateneo Unicode 3.0.1
Usa "Search" prima di aprire un post - Scrivi sempre nella sezione giusta - Non spammare - Rispetta gli altri utenti - E ricorda di seguire il Regolamento
commodore64
Guest
« Reply #5 on: 25-11-2009, 22:51:27 »

grazie a tutti per i consigli.. però ci sono diversi errori  dovuti al fatto di non avere inserito tutto il codice all'interno dei tag code;
Logged
Pages: [1]   Go Up
Print
Jump to: