esercizi diagrammi di flusso e java

Ciao a tutti, ho problemi nel risolvere questo esercizio. Il testo è il seguente:

Cosa stampa in uscita il seguente programma se in ingresso vengono inseriti i numeri 2 e 3?

import java.util.*;
public class Prova {
public static void main ( String[] args ) {
int[] vet=new int[10];
int a,b,1;
System.out.println("Inserire due numeri interi");
Scanner sc= new Scanner ( System.in);
a=sc.nextInt();
b=sc.nextInt();

for (i=0;i<10;i=i+2) {
System.out.print("S");
vet[i]=a;
vet[i+1]=b+i;
}

for (i=10; i<10; i++) {
System.out.println(vet[i]);

}
}

}

La soluzione è :
SSSSS2
3
2
5
2
7
2
9
2
11



Ho disegnato il diagramma di flusso senza problemi. Non riesco a fare i calcoli e ottenere il risultato.
Sono riuscita a risolvere il ciclo for inserendo i vari valori mentre il secondo ciclo for non so come farlo. Non ho capito come si ragiona quando si tratta di vettori.

Spero di non disturbarvi.
Grazie in anticipo
quando vedo del codice non indentato, il mio cervello va in stand-by
For great juice:

package provazza;

import java.util.*;

public class Prova {

public static void main(String[] args) {
int[] vet = new int[10];
int a, b, i;
System.out.println("Inserire due numeri interi");
Scanner sc = new Scanner(System.in);
a = sc.nextInt();
b = sc.nextInt();

for (i = 0; i < 10; i = i + 2) {
System.out.print("S");
vet[i] = a;
vet[i + 1] = b + i;
}

for (i = 10; i < 10; i++) {
System.out.println(vet[i]);
}
}
}


Comunque il codice all'interno del secondo ciclo for non sarà mai eseguito. Il ciclo for è una sorta di "macro" opportunamente ottimizzata dal compilatore di un ciclo while. Puoi vederlo in questo modo:

i = 10;
while(i < 10){
System.out.println(vet[i]);
i = i + 1;
}

Si vede subito che la condizione del while non è mai vera, pertanto il codice non sarà mai eseguito. Forse tu volevi inizializzare i a 0 invece che a 10...
In tal caso, quel ciclo non farà altro che scorrere il vettore dalla prima posizione (vet[0]) fino all'ultima (vet[9]) e stampare il suo contenuto.

Per il resto, se tu dici di esser riuscita a capire quello che fa il primo ciclo, e a ricavarti il contenuto del vettore, non capisco come tu faccia a non capire il secondo. Il secondo ciclo non fa altro che presentare il contenuto del vettore, che tu a mente ti sei già ricavata prima.

Comunque è facile: nelle posizioni pari viene sempre messo 2 (zero è pari), mentre nelle posizioni dispari 3+pos dove pos è la posizione corrente. Ricordati che gli array partono dalla posizione 0 e arrivano alla posizione n-1 dove n è il valore indicato in fase di dichiarazione.

ib4 "in haskell sono due righe "
anche in C
grazie mille per avermi risposto. Dopo vari ragionamenti ci sono arrivata.

Per curiosità ho provato a compilare il seguente programma tramite java e come soluzione ottengo solo SSSSS.
Com'è possibile che con il compilatore ho un risultato diverso?


|
|
|
v




Ma solo io ho visto questa cosa???
sarà la dichiarazione della variabile 'i' del for, avrà scritto male infatti manca in tutti e due i for
infatti il buon followthemedia ha già fixato