PDA

View Full Version : !!!!!AIUTATEMI!!!! (per chi sa programmare un po' di java)


neliam
10-10-2004, 15:18
Posto volontariamente questo thread in questa sezione perchè è la piu' vista (vi prego non me lo spostate mod almeno finchè un anima santa non mi risponde)

Domani ho un esame di java(per io che faccio chimica non pretendono chissaccè pero' devo passarlo)

Premetto che so appena le basi

Chiedo a voi!!

PERCHE' NON MI FA PARTIRE STO PROGRAMMA?? (somma di N numeri a partire da 1,2 ecc)!!

class Somma {
public static void main ( String[] args ) {
int somma = 0;
int i = 1;
int N = Integer.parseInt( args[0] );
while (i<=N ) {
somma +=1;
}
System.out.println(+somma);
}
}

Me lo compila ma mi appare sto messaggio:
Exception in thread "main" java.lang.ArrayIndexOutOfBoundsExceptio at Somma.main(Somma.java:5);

Aiutatemi se non so fa un programma del genere mi boccia e devo minacciare il prof!

<<NeliaM>>

*ReSta*
10-10-2004, 15:56
a parte che nn si capisce cosa deve fare e sembra che quel ciclo nn finisca mai l'errore che riporta è a questa riga:

int N = Integer.parseInt( args[0] );

deve ricevere un input da tastiera?? io ne so pochissimo, forse meno di te ma una mano te la posso dare con prog così semplici.

dupa
10-10-2004, 15:58
Originariamente inviato da neliam
Posto volontariamente questo thread in questa sezione perchè è la piu' vista (vi prego non me lo spostate mod almeno finchè un anima santa non mi risponde)

Domani ho un esame di java(per io che faccio chimica non pretendono chissaccè pero' devo passarlo)

Premetto che so appena le basi

Chiedo a voi!!

PERCHE' NON MI FA PARTIRE STO PROGRAMMA?? (somma di N numeri a partire da 1,2 ecc)!!

class Somma {
public static void main ( String[] args ) {
int somma = 0;
int i = 1;
int N = Integer.parseInt( args[0] );
while (i<=N ) {
somma +=1;
}
System.out.println(+somma);
}
}

Me lo compila ma mi appare sto messaggio:
Exception in thread "main" java.lang.ArrayIndexOutOfBoundsExceptio at Somma.main(Somma.java:5);

Aiutatemi se non so fa un programma del genere mi boccia e devo minacciare il prof!

<<NeliaM>>


da quel che vedo

1) devi passare da riga di comando il numero fino al quale deve fare la somma

2) all'interno del while devi aggiornare il contatore i++;

checo
10-10-2004, 16:05
Originariamente inviato da neliam
Posto volontariamente questo thread in questa sezione perchè è la piu' vista (vi prego non me lo spostate mod almeno finchè un anima santa non mi risponde)




facciamo tutti così e imputtaniamo il forum allora. se delle sezioni ci sono non vedo perchè per te si dovrebbe fare un eccezzione.

*ReSta*
10-10-2004, 16:06
Originariamente inviato da checo
facciamo tutti così e imputtaniamo il forum allora. se delle sezioni ci sono non vedo perchè per te si dovrebbe fare un eccezzione.

ma perchè nn ti fai un giro da un'altra parte acido rompipalle che nn sei altro?? Manco fossi un mod... :rolleyes:

Vin81
10-10-2004, 16:11
Originariamente inviato da *ReSta*
ma perchè nn ti fai un giro da un'altra parte acido rompipalle che nn sei altro?? Manco fossi un mod... :rolleyes:


nn vedo perche devi rispondere così; in fondo ha ragione

*ReSta*
10-10-2004, 16:14
Originariamente inviato da Vin81
nn vedo perche devi rispondere così; in fondo ha ragione

che sia 1 rompipalle è vero, che nn è un mod è vero.
Tra l'altro è anche il primo a lanciare flame e a far notare le puntigliezze solo per scatenare putiferi. Se chiedi una cosa interviene solo per dirti di usare il tasto cerca...

tutto ciò nn lo sopporto :mad:

neliam
10-10-2004, 16:22
Va be facciamo cosi' chiedo a un mod di spostare la discussione

MOD perfavore mi spostate la discussione in "Programmazione"
Grazie

Mi scuso se "ho sputtanato il forum" ma la forza della disperazione è in me!

<<NeliaM>>

recoil
10-10-2004, 16:23
beh si devi passare un argomento alla linea di comando altrimenti non trova nulla e ti da quell'errore. java non ti permette di fare schifezze con le letture/scritture in memoria quindi se non c'è niente non te lo fa leggere (meglio!!) :)

inoltre c'è la mancanza di un contatore per far terminare il while. potresti pure usare un ciclo for cmq.

ah, ma sei sicuro che sia giusta la somma? tu continui ad aggiungere 1, non è che devi fare 1 + 2 + 3 ecc.?


edit:cmq nella sezione programmazione ti avrebbero risposto con altrettanta solerzia. stai tranquillo, è ben frequentata :)

jumpermax
10-10-2004, 16:23
Originariamente inviato da neliam
Posto volontariamente questo thread in questa sezione perchè è la piu' vista (vi prego non me lo spostate mod almeno finchè un anima santa non mi risponde)

Domani ho un esame di java(per io che faccio chimica non pretendono chissaccè pero' devo passarlo)

Premetto che so appena le basi

Chiedo a voi!!

PERCHE' NON MI FA PARTIRE STO PROGRAMMA?? (somma di N numeri a partire da 1,2 ecc)!!

class Somma {
public static void main ( String[] args ) {
int somma = 0;
int i = 1;
int N = Integer.parseInt( args[0] );
while (i<=N ) {
somma +=1;
}
System.out.println(+somma);
}
}

Me lo compila ma mi appare sto messaggio:
Exception in thread "main" java.lang.ArrayIndexOutOfBoundsExceptio at Somma.main(Somma.java:5);

Aiutatemi se non so fa un programma del genere mi boccia e devo minacciare il prof!

<<NeliaM>>

ti da quell'errore perchè args è vuoto quindi quando gli dici di andare a vedere in arg[0] da un errore.
Il programma in se comunque contiene diversi errorini...

neliam
10-10-2004, 16:25
Il compito mio è quello di creare un programma dove all'inizio io gli do un numero "esempio 5" e lui mi somma i primi 5 numeri a partire da 1 (esempio = 1+2+3+4+5=20)

Voi come fareste??

Devo mettere un vettore ma mi sa che sbaglio a dichiararlo

<<NeliaM>>

jumpermax
10-10-2004, 16:26
PERCHE' NON MI FA PARTIRE STO PROGRAMMA?? (somma di N numeri a partire da 1,2 ecc)!!

class Somma {
public static void main ( String[] args ) {
int somma = 0;
int i = 1;
if (args.length>0){
int N = Integer.parseInt( args[0] );
while (i<=N ) {
somma =somma+i;
i++;
}
System.out.println("risultato "+somma);
}
else System.out.println("missing parameter")
}
}

BeBrA
10-10-2004, 16:29
Originariamente inviato da neliam
Il compito mio è quello di creare un programma dove all'inizio io gli do un numero "esempio 5" e lui mi somma i primi 5 numeri a partire da 1 (esempio = 1+2+3+4+5=20)

Voi come fareste??

Devo mettere un vettore ma mi sa che sbaglio a dichiararlo

<<NeliaM>>
A parte che 1+2+3+4+5 non fa 20, ma 15 :D,
comunque sostituisci somma +=1; con somma +=i++; e possibilmente gestisci le eccezioni

jumpermax
10-10-2004, 16:29
comunque ragazzi se qua passa un mod visti anche certi commenti volano giù sanzioni... consiglio diplomazia e distensione.

neliam
10-10-2004, 16:31
Originariamente inviato da jumpermax
PERCHE' NON MI FA PARTIRE STO PROGRAMMA?? (somma di N numeri a partire da 1,2 ecc)!!

class Somma {
public static void main ( String[] args ) {
int somma = 0;
int i = 1;
if (args.length>0){
int N = Integer.parseInt( args[0] );
while (i<=N ) {
somma =somma+i;
i++;
}
System.out.println("risultato "+somma);
}
else System.out.println("missing parameter")
}
}


Se lo faccio partire mi da missing parameter....perchè non mi chiede di inserire il numero N??

<<NeliaM>>

BeBrA
10-10-2004, 16:32
Originariamente inviato da neliam
Se lo faccio partire mi da missing parameter....perchè non mi chiede di inserire il numero N??

<<NeliaM>>

devi passare da riga di comando il numero, perchè usi args[0]

jumpermax
10-10-2004, 16:34
appunto... arg[] è il vettore degli argomenti che gli passi al momento della chiamata... ossia tutte le parole che scrivi dopo il nome del programma... ;)

neliam
10-10-2004, 16:34
Originariamente inviato da BeBrA
devi passare da riga di comando il numero, perchè usi args[0]

E come si fa??? (sto proprio messo male)

Quello che vorrei è inserire il numero dopo l'esecuzione e fino a 2 minuti fa pensavo si potesse fare con

int N = integer.parseInt ( args[0] )


<<NeliaM>>

BeBrA
10-10-2004, 16:36
Originariamente inviato da neliam
E come si fa??? (sto proprio messo male)

Quello che vorrei è inserire il numero dopo l'esecuzione e fino a 2 minuti fa pensavo si potesse fare con

int N = integer.parseInt ( args[0] )


<<NeliaM>>

come ha detto jumper tutto quello che scrivi dopo il nome del programma finisce su args[]
quindi
ad esempio: java Somma 5
ti somma i primi 5 numeri

neliam
10-10-2004, 16:38
Originariamente inviato da BeBrA
come ha detto jumper tutto quello che scrivi dopo il nome del programma finisce su args[]
quindi
ad esempio: java Somma 5
ti somma i primi 5 numeri


:mc: :mc: :mc: :mc:
Porca madoschia non capisco!! Compilo e tutto ok
Eseguo ok ma appare solo"missing parameter" ..non dovrei inserire un numero e quello mi fa poi tante somme quanto quel numero??

<<NeliaM>>

BeBrA
10-10-2004, 16:47
Originariamente inviato da neliam
:mc: :mc: :mc: :mc:
Porca madoschia non capisco!! Compilo e tutto ok
Eseguo ok ma non dovrei inserire un numero e quello mi fa poi tante somme quanto quel numero??

<<NeliaM>>

Per come lo hai scritto il numero lo passi da riga di comando quando lo esegui.

import java.io.*;
class Somma {
public static void main (String[] args ) throws IOException{
BufferedReader console = new BufferedReader(new InputStreamReader(System.in));
int N = Integer.parseInt(console.readLine());
int somma = 0;
int i = 1;
while (i<=N ) {
somma +=i++;
}
System.out.println(+somma);
}
}

Cosi' invece devi inserirlo tu il numero senza passarlo da riga di comando. Occhio pero' che non sono gestite le eccezioni

neliam
10-10-2004, 16:50
Originariamente inviato da BeBrA
Per come lo hai scritto il numero lo passi da riga di comando quando lo esegui.

import java.io.*;
class Somma {
public static void main (String[] args ) throws IOException{
BufferedReader console = new BufferedReader(new InputStreamReader(System.in));
int N = Integer.parseInt(console.readLine());
int somma = 0;
int i = 1;
while (i<=N ) {
somma +=i++;
}
System.out.println(+somma);
}
}

Cosi' invece devi inserirlo tu il numero senza passarlo da riga di comando. Occhio pero' che non sono gestite le eccezioni

Ecco cosi' fuziona!!!!
Pero' il linguaggio non mi è accessibile non sto cosi' avanti!

coem faccio invece a passare il numero N a questo tipo di programma??

class Somma {
public static void main ( String[] args ) {
int somma = 0;
int i = 1;
if (args.length>0){
int N = Integer.parseInt( args[0] );
while (i<=N ) {
somma =somma+i;
i++;
}
System.out.println(+somma);
}
else System.out.println("missing parameter") ;
}
}

lo so sono di coccio cmq vi ringrazio molto per l'aiuto!!

<<NeliaM>>

BeBrA
10-10-2004, 16:52
Originariamente inviato da neliam
Ecco cosi' fuziona!!!!
Pero' il linguaggio non mi è accessibile non sto cosi' avanti!

coem faccio invece a passare il numero N a questo tipo di programma??

class Somma {
public static void main ( String[] args ) {
int somma = 0;
int i = 1;
if (args.length>0){
int N = Integer.parseInt( args[0] );
while (i<=N ) {
somma =somma+i;
i++;
}
System.out.println(+somma);
}
else System.out.println("missing parameter") ;
}
}

lo so sono di coccio cmq vi ringrazio molto per l'aiuto!!

<<NeliaM>>

java Somma N
dove al posto di N metti il numero che vuoi

neliam
10-10-2004, 16:57
Originariamente inviato da BeBrA
java Somma N
dove al posto di N metti il numero che vuoi

fatto partire dal prompt dei comandi ho scritto java Somma 5 ma mi ridà errore!

<<NeliaM>>

BeBrA
10-10-2004, 16:59
Originariamente inviato da neliam
fatto partire dal prompt dei comandi ho scritto java Somma 5 ma mi ridà errore!

<<NeliaM>>

[bebra@bebra ~]$ java Somma 5
15

Che errore ti da?

neliam
10-10-2004, 17:03
Exception in thread "main" java.lang.NoClassDefFoundError: Somma

<<NeliaM>>

BeBrA
10-10-2004, 17:06
Originariamente inviato da neliam
Exception in thread "main" java.lang.NoClassDefFoundError: Somma

<<NeliaM>>

non ti trova la classe Somma: o non l'hai compilato o sei su una directory sbagliata

neliam
10-10-2004, 17:07
L'ho compilato tramite jCreator LE!

Da prompt come si compila provo da la

<<NeliaM>>

BeBrA
10-10-2004, 17:08
Originariamente inviato da neliam
L'ho compilato tramite jCreator LE!

Da prompt come si compila provo da la

<<NeliaM>>

javac Somma.java

neliam
10-10-2004, 17:12
Originariamente inviato da BeBrA
javac Somma.java

Ecco ora funge!!

Grazie a tutti per l'aiuto ora studio tutto quanto!!

<<NeliaM>>

BeBrA
10-10-2004, 17:15
Buono studio.
Ciao

checo
10-10-2004, 18:09
Originariamente inviato da *ReSta*
ma perchè nn ti fai un giro da un'altra parte acido rompipalle che nn sei altro?? Manco fossi un mod... :rolleyes:


meno male che sono io quello acido, pure te non scherzi. :D

neliam
11-10-2004, 14:47
:yeah: HO PRESO 25 :yeah:

STRAGODO!!


<<NeliaM>>