Torna indietro   Hardware Upgrade Forum > Software > Programmazione

Recensione REDMI Note 17 Pro: il midrange con batteria da 8.340 mAh e ricarica veloce
Recensione REDMI Note 17 Pro: il midrange con batteria da 8.340 mAh e ricarica veloce
REDMI Note 17 Pro porta in fascia media una batteria da 8.340 mAh con ricarica HyperCharge a 67W, un display AMOLED da 6,83 pollici capace di picchi di luminosità molto elevati e una struttura certificata TÜV SÜD contro cadute e infiltrazioni d'acqua, il tutto racchiuso in una scocca da 223 grammi. Lo abbiamo provato per diversi giorni tra fotocamera, prestazioni, autonomia e prezzo sul mercato italiano
Insta360 Luna Ultra: la potenza del sensore da 1 pollice incontra la portabilità estrema
Insta360 Luna Ultra: la potenza del sensore da 1 pollice incontra la portabilità estrema
Insta360 Luna Ultra integra un sensore da 1 pollice 8K, ottiche Leica e triplo chip IA. Tra schermo OLED rimovibile, workflow I-Log a 10 bit e stabilizzazione a tre assi, analizziamo le doti tecniche di una gimbal camera pensata per i professionisti
Marvel's Wolverine, la recensione: Logan torna protagonista in un'avventura brutale e intensa
Marvel's Wolverine, la recensione: Logan torna protagonista in un'avventura brutale e intensa
Marvel's Wolverine porta Logan in un'avventura inedita, violenta e fortemente narrativa, costruita attorno alla sua natura di combattente e al difficile rapporto con il proprio passato. Insomniac Games punta su combattimenti spettacolari, progressione e personalizzazione, inserendo l'azione in un mondo segnato dalla persecuzione dei mutanti. Un viaggio intenso, che alterna mattanza, esplorazione e momenti sorprendentemente emotivi.
Tutti gli articoli Tutte le news

Vai al Forum
Rispondi
 
Strumenti
Old 03-01-2015, 13:54   #1
fedez_
Junior Member
 
Iscritto dal: Jan 2015
Messaggi: 12
[JAVA] Esercizio Array! AIUTOO!

Salve...sto facendo un esercizio sugli array ma non riesco a capire dove sto sbagliando..
Consegna dell'esercizio!

//8. Scrivere un programma C che, dati 2 vettori, ognuno contenente 10 numeri interi positivi inseriti da tastiera, confronti il valore di ciascun elemento del primo con i valori di tutti gli elementi del secondo. Alla fine dovrà stampare a video il numero di elementi uguali e in quale posizione dei vettori questi si trovano.
Esempio:
Inserisco da tastiera i seguenti valori, rispettivamente per i vettori v e w
2 23 43 45 6 76 7 78 76 5
44 4 3 32 2 20 4 5 6 7
Valore Posiz. Vett. v Posiz. Vett. w
2 0 4
6 4 8

Numero di elementi uguali: 4

Codice:
import java.util.Scanner;

public class Tabella {

	public static void main (String[] args) {
	
	Scanner tastiera = new Scanner(System.in);
	
	int k1, w1;
	int w[] = new int [4];
	int k[] = new int [4];
	int tabella[][]= new int [4][3];
	int riga, colonna;
	

	for (w1=0; w1<w.length; w1++)
		w[w1] = tastiera.nextInt();
	System.out.println("Hai completato il primo array!");
	
		
	
	for (k1=0; k1<k.length; k1++)
		k[k1] = tastiera.nextInt();
	System.out.println("Hai completato il secondo array!");
	
	
	for (k1=0; k1<k.length; k1++) {
		for (w1=0; w1<w.length; w1++)
		confronto(k1, w1, k[k1], w[w1], tabella); 
		}	
		
	for (riga=0; riga<4; riga++){
		for (colonna=0; colonna<3; colonna++) {
			System.out.print(tabella[riga][colonna]+"  ");
		}
		System.out.println();
	}
	
	}

	public static void confronto(int n1, int n2, int pos1, int pos2, int [][] tabella) {
		if (n1==n2) {
			int riga = 0;
			valore(n1, riga, tabella, pos1, pos2);
			riga++;
			}
		}
		
	public static void valore (int n1, int riga, int [][] tabella, int pos1, int pos2) {
		tabella[riga][0] = n1;
		posK(pos1, riga, tabella, pos2);
		}
		
	public static void posK (int pos1, int riga, int [][] tabella, int pos2) {
		tabella[riga][1] = pos1;
		posW(pos2, riga, tabella);
		}
		
	public static int [][] posW (int pos2, int riga, int [][] tabella) {
		tabella[riga][2] = pos2;
		return tabella;
		}
		
}
compila ma non funziona correttamente!!!
potete darmi una mano????

Ultima modifica di fedez_ : 03-01-2015 alle 14:22.
fedez_ è offline   Rispondi citando il messaggio o parte di esso
Old 03-01-2015, 16:08   #2
fedez_
Junior Member
 
Iscritto dal: Jan 2015
Messaggi: 12
Ora funziona

Codice:
import java.util.Scanner;

public class Tabella {


    public static void main (String[] args) {
    
    Scanner tastiera = new Scanner(System.in);
    
    int k1, w1;
    int w[] = new int [4];
    int k[] = new int [4];
    int tabella[][]= new int [10][3];
    int riga, colonna;
    riga = 0;


    for (w1=0; w1<w.length; w1++)
        w[w1] = tastiera.nextInt();
    System.out.println("Hai completato il primo array!");
    
        
    
    for (k1=0; k1<k.length; k1++)
        k[k1] = tastiera.nextInt();
    System.out.println("Hai completato il secondo array!");
    
    
    for (w1=0; w1<w.length; w1++) {
        for (k1=0; k1<k.length; k1++)
        confronto(w[w1], k[k1], w1, k1, tabella, riga); 
        riga++;
        }    
        
    String [] intestazione = new String [3];
    intestazione [0] = "Valore";
    intestazione [1] = "Indice (1)";
    intestazione [2] = "Indice (2)";
    for(int i=0; i<3; i++)
        System.out.print(intestazione[i] + "  ");
        System.out.println();
    
    for (riga=0; riga<10; riga++){
        for (colonna=0; colonna<3; colonna++) {
            System.out.print(tabella[riga][colonna]+"           ");
        }
        System.out.println();
    }
    
    }


    public static void confronto(int n1, int n2, int pos1, int pos2, int [][] tabella, int riga) {
        if (n1==n2) {
            valore(n1, riga, tabella, pos1, pos2);
            
            }
        }
        
    public static void valore (int n1, int riga, int [][] tabella, int pos1, int pos2) {
        tabella[riga][0] = n1;
        posK(pos1, riga, tabella, pos2);
        }
        
    public static void posK (int pos1, int riga, int [][] tabella, int pos2) {
        tabella[riga][1] = pos1;
        posW(pos2, riga, tabella);
        }
        
    public static int [][] posW (int pos2, int riga, int [][] tabella) {
        tabella[riga][2] = pos2;
        return tabella;
        }
        
}
l'unica cosa è che non riesco a fare... è creare ogni volta che trova una corrispondenza (n1==n2) una nuova riga per la matrice....
fedez_ è offline   Rispondi citando il messaggio o parte di esso
Old 04-01-2015, 13:37   #3
monte.cristo
Senior Member
 
Iscritto dal: May 2014
Messaggi: 1381
Ho due domande:
1) Se l'assegnamento chiede un programma in C perchè la soluzione è in Java?
2) Non capisco perchè inserire una nuova riga. Nel testo ti viene chiesto solo di inserire da tastiera i valori degli array e poi stampare a video gli indici degli elementi uguali, quindi dovrebbero bastare due cicli for nidificati per confrontare ogni elemento del primo array con tutti quelli del secondo e stampare il valore e gli indici di posizione appena trovi un valore uguale

Ultima modifica di monte.cristo : 04-01-2015 alle 14:02.
monte.cristo è offline   Rispondi citando il messaggio o parte di esso
Old 04-01-2015, 17:02   #4
fedez_
Junior Member
 
Iscritto dal: Jan 2015
Messaggi: 12
Quote:
Originariamente inviato da monte.cristo Guarda i messaggi
Ho due domande:
1) Se l'assegnamento chiede un programma in C perchè la soluzione è in Java?
2) Non capisco perchè inserire una nuova riga. Nel testo ti viene chiesto solo di inserire da tastiera i valori degli array e poi stampare a video gli indici degli elementi uguali, quindi dovrebbero bastare due cicli for nidificati per confrontare ogni elemento del primo array con tutti quelli del secondo e stampare il valore e gli indici di posizione appena trovi un valore uguale
1) ho preso degli esercizi in rete... colpa mia devo farlo in java
2) mmm quindi cosa dovrei fare? io praticamente ho creato un array contenete la richiesta dell'esercizio, ovvero l'ho riempito in base o meno alla coincidenza degli elementi uguali. in questo modo, sarebbe stato molto più utile che non appena venga trovata una coincidenza (n1==n2) mi si crei una riga dell'array, in modo tale da costruirmi l'array man mano. così invece devo, una volta creato, dargli subito delle specifiche dimensioni.
dici che basta ogni qualvolta venga trovato un elemento uguale, stamparlo senza incasellarlo in una matrice?

Ultima modifica di fedez_ : 04-01-2015 alle 17:09.
fedez_ è offline   Rispondi citando il messaggio o parte di esso
Old 04-01-2015, 19:51   #5
monte.cristo
Senior Member
 
Iscritto dal: May 2014
Messaggi: 1381
Visto che è un esercizio, se vuoi metterli in un array per imparare, va bene.
Nel testo dell'esercizio, però, non c'è scritto da nessuna parte che i numeri devono essere salvati in un array. Ti viene chiesto solo di stamparli, quindi per risolvere l'esercizio rispondendo alle richieste scritte, secondo me basta qualcosa del tipo

Codice:
inserisci il primo array
inserisci il secondo array
for (i da 1 fino 10)
  for (j da 1 fino a 10)
    se primovettore[i]=secondovettore[j]
       stampa valore, i, j
Mi sembra che la tua soluzione sia "sovradimensionata" per un problema così semplice. Ad esempio
Codice:
String [] intestazione = new String [3];
    intestazione [0] = "Valore";
    intestazione [1] = "Indice (1)";
    intestazione [2] = "Indice (2)";
    for(int i=0; i<3; i++)
        System.out.print(intestazione[i] + "  ");
        System.out.println();
Per stampare un'intestazione, perchè dichiarare un array di tre elementi? Le tre stringhe non verranno modificate nè usate in altri punti quindi per stampare l'intestazione bastava una semplice istruzione del tipo
System.out.println(" Valore Indice(1) Indice (2)")
Per non parlare, poi, dei metodi dichiarati come confronto e valore, di cui non capisco l'utilità.

Ultima modifica di monte.cristo : 04-01-2015 alle 19:57.
monte.cristo è offline   Rispondi citando il messaggio o parte di esso
Old 05-01-2015, 08:41   #6
fedez_
Junior Member
 
Iscritto dal: Jan 2015
Messaggi: 12
sì sono più che altro esercizi per far pratica e imparare, ecco il perché dei 3 metodi e tutto il resto...
fedez_ è offline   Rispondi citando il messaggio o parte di esso
 Rispondi


Recensione REDMI Note 17 Pro: il midrange con batteria da 8.340 mAh e ricarica veloce Recensione REDMI Note 17 Pro: il midrange con ba...
Insta360 Luna Ultra: la potenza del sensore da 1 pollice incontra la portabilità estrema Insta360 Luna Ultra: la potenza del sensore da 1...
Marvel's Wolverine, la recensione: Logan torna protagonista in un'avventura brutale e intensa Marvel's Wolverine, la recensione: Logan torna p...
DJI Romo 2: tante novità lo rendono un robot completo DJI Romo 2: tante novità lo rendono un ro...
Sony Bravia 9 II: il True RGB alla prova, dove l'LCD sfida l'OLED Sony Bravia 9 II: il True RGB alla prova, dove l...
PC rincondizionato Lenovo ThinkStation a...
Il Neural Rendering di DLSS 5 gira (male...
AMD Radeon RX 9050 4GB, ecco quanto perd...
Factorio è certificato Steam Frame: la b...
TECLAST ArtPad è attualmente il m...
Bose aggiorna la sua gamma con due nuovi...
ID. Buzz, 100.000 km intorno al mondo se...
OpenAI: due computer isolati si parlano ...
Il caso del bambino che ha speso 118.000...
EPYC Venice contro Xeon e Vera: AMD pubb...
Apple potrebbe aumentare ancora i prezzi...
Il cervello di moscerino virtuale ha imp...
Torna al prezzo super di 629€ il portati...
Gemini ha hackerato tre aziende durante ...
Mini PC con Ryzen 7, 32GB di RAM e 1TB S...
Chromium
GPU-Z
OCCT
LibreOffice Portable
Opera One Portable
Opera One 106
CCleaner Portable
CCleaner Standard
Cpu-Z
Driver NVIDIA GeForce 546.65 WHQL
SmartFTP
Trillian
Google Chrome Portable
Google Chrome 120
VirtualBox
Tutti gli articoli Tutte le news Tutti i download

Strumenti

Regole
Non Puoi aprire nuove discussioni
Non Puoi rispondere ai messaggi
Non Puoi allegare file
Non Puoi modificare i tuoi messaggi

Il codice vB è On
Le Faccine sono On
Il codice [IMG] è On
Il codice HTML è Off
Vai al Forum


Tutti gli orari sono GMT +1. Ora sono le: 08:35.


Powered by vBulletin® Version 3.6.4
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.
Served by www3v