Newsgroup: it.comp.java
Titolo: Esempio di utilizzo di un array

Uno dei miei esercizi mi chiede di scrivere un programma che memorizza 
in una costante di tipo int[] i numeri primi minori di 50, poi legge in 
input un indice intero (suggerendo che sia minore della lunghezza 
delll'array) e stampa il numero primo memorizzato in quella posizione.
Ma poi dice anche che il programma deve continuare a funzionare anche se 
si decide di inzializzare la costante con una sequenza di primi piu' 
lunga o piu' corta.
 
Io l'ho fatto cosě:
 
import jbook.util.Input;
public class Esercizio46 {	//programma che memorizza in una costante di 
tipo int i numeri primi inf. a 50 e ne stampa la posizione dopo 
richiesta di indice
	public static void main (String[] args) {
		int[] numeriPrimi = {2, 3, 5, 7, 11, 13, 17, 19, 23, 29, 31, 37, 41, 
43, 47};
		int posizione= Input.readInt("Inserisci la posizione, che dev'essere 
inferiore a " + numeriPrimi.length + ": ");
		System.out.println("Il numero primo in quella posizione e': " + 
numeriPrimi[posizione-1]);
	}
}
 
Secondo voi va bene? L'ultima frase non mi č molto chiara.
Grazie.

 Grazie.
 
Per curiosita', dicevi che devi dare un esame... di quale facolta' si 
tratta?

 tratta?
 
Secondo me e' "Bracco Baldo", quel tipo che ogni tanto se ne esce con
domande tipo "dove si accende il PC?"
Non ho neppure voglia di vedere gli header
 
 
-- 
 
questo articolo e` stato inviato via web dal servizio gratuito 
http://www.newsland.it/news
 segnala gli abusi ad 
ab...@newsland.it
 
 
 

 Non ho neppure voglia di vedere gli header
 
 
Mi dispiace se le mie domande vi sembrano troppo banali, ma sono agli 
inizi con java e davvero sto facendo molta fatica ad apprendere questo 
linguaggio.
La facoltà è informatica per il management.

 La facoltà è informatica per il management.
 
Ok, allora un consiglio. Visto che l'informatica non e' proprio 
marginale nel tuo corso di studi, e immagino che l'avrai scelta perche' 
ti interessa, io ti consiglierei di sporcarti le mani un po' di piu' con 
sto' Java.
 
Scrivi programmini, fai dei test, compila, ricompila, ecc. Distaccati 
dagli esercizi, fai degli esperimenti. Nel giro di qualche settimana, se 
ti ci dedichi, avrai fugato i tuoi dubbi. Fare una domanda per ogni 
mimino problema che hai non credo di aiutera' a ricordare le soluzioni.
 
Oltretutto Java e' uno dei piu' importanti linguaggi esistenti e' meglio 
che lo impari bene e con sicurezza, quindi testando sul campo ogni cosa.

 sto' Java.
 
Ci sto provando, credimi. Il problema è che il testo su cui sto 
studiando è davvero fatto male secondo me, o almeno per me le cose sono 
spiegate malissimo. Però ho trovato del materiale su internet che mi sta 
schiarendo un po' le idee.
Purtroppo non ho nessuno che può aiutarmi quindi mi scuso se vi ho rotto 
un po' le scatole con domande che per voi saranno ridicole...ammetto che 
di fronte a un problema la tentazione di trovare una soluzione facile è 
stata forte.
Piu' che altro perché l'esame è vicinissimo e io -ahimé- ho decisamente 
sottovalutato l'impegno che richiedeva, iniziando a studiare seriamente 
troppo tardi.

 secondo me, o almeno per me le cose sono spiegate malissimo.
 
Non stento a crederci. Piu' che internet, visto che sei all'inizio, 
potresti andare in libreria e comprare un librone da 800 pagine 
mcgraw-hill o o'reilly (costeranno sui 40 euro). Il supporto cartaceo 
all'inizio magari ti da' piu' sicurezza. Ciao.

 all'inizio magari ti da' piu' sicurezza. Ciao.
 
Titolo? Quello su cui sto studiando ora è "programmazione in java" di 
apogeo.
Ti posso chiedere un aiutino su un problema che ho -quasi- parzialmente 
risolto da sola?
Devo creare un array bidimensionale 3x3 di interi con valori inseriti 
dall'utente e che ne stampi la somma per righe e per colonne. Dopo lungo 
girare ho capito che conviene usare un ciclo for per "riempire" l'array 
e ho prodotto questo risultato (parziale):
 
int[][] arrInteri = new int [3][3];
	for (int i = 0; i < arrInteri.length; i++)
		for (int j=0; j<arrInteri.length; j++) {
		arrInteri[i][j] = Input.readInt ("Elemento num. " + ((i+1) * (j+1)) + 
": ");
 
l'esecuzione mi chiede in input gli elementi però li numera così:
1
2
3
2
4
6
3
6
9
 
Mentre in realtà dovrebbero essere numerati da 1 a 9.
Dove sbaglio?
Preciso che sto cercando di usare un (due) ciclo for senza che però n el 
capitolo sia stato ancora spiegato, ma non vedo altre soluzioni per 
scrivere questo programmino, salvo fare tutto con uno scanner riga per 
riga, che non mi sembra certo una soluzione elegante!
 
Grazie per la pazienza.

 Dove sbaglio?
 
Beh dai calcolare quell'indice era abbastanza facile (i * 3 + j + 1).
Comunque ti do' la mia "soluzione" se ti puo' servire. Ciao.
 
==========================================
import jbook.util.Input;
 
class Esercizio {
	public static void main(String args[]) {
		int i, j, totRiga, totColonna[], arrInteri[][];
 
		totColonna = new int[3];
		arrInteri = new int[3][3];
 
		// richiedo i dati
		for (i = 0; i < arrInteri.length; i++)
			for (j = 0; j < arrInteri[0].length; j++)
				arrInteri[i][j] = Input.readInt ("Elemento num. " + (i * 3 + j + 1) 
+ ": ");
 
		// stampo per riga e per colonna
		for (i = 0, totColonna[i] = 0; i < arrInteri.length; i++) {
			for (j = 0, totRiga = 0; j < arrInteri[0].length; j++) {
				System.out.print(arrInteri[i][j] + " ");
				totRiga += arrInteri[i][j];
				totColonna[j] += arrInteri[i][j];
			}
			System.out.println("= " + totRiga);
		}
		System.out.println("--------");
		for (i = 0; i < totColonna.length; i++)
			System.out.print(totColonna[i] + " ");
		System.out.println();
	}
}
==========================================