Torna indietro   Hardware Upgrade Forum > Software > Programmazione

AMD EPYC Venice: dentro Zen 6, i SoC a 256 core e la sfida al costo della memoria
AMD EPYC Venice: dentro Zen 6, i SoC a 256 core e la sfida al costo della memoria
A Las Vegas AMD ha svelato i dettagli architetturali delle CPU EPYC di sesta generazione, note con il nome in codice Venice. Nuovi core Zen 6 e Zen 6c costruiti a 2 nanometri, fino a 256 core per socket, 16 canali di memoria, interfaccia PCI Express 6.0 e un'intera famiglia di proposte che va da Venice SP7 a Verano. Senza dimenticare la memoria, oggi la voce di costo più pesante in un server: AMD risponde con CXL 3.1 e con la tecnologia software MEXT, che porta la memoria flash dentro la gerarchia della DRAM.
HONOR Pad X9 Max recensione, schermo ultra large a meno di 400 euro
HONOR Pad X9 Max recensione, schermo ultra large a meno di 400 euro
HONOR Pad X9 Max mette un pannello IPS da 13 pollici con risoluzione 2,5K e refresh a 120 Hz davanti a una batteria da 10.100 mAh e a quattro altoparlanti. Il listino parte da 399,90 euro, per un progetto molto chiaro e ambizioso: schermo ampio, buon audio e giornate lontano dalla presa, a un prezzo che non pesa sul portafoglio
Lenovo ThinkPad X1 Carbon Gen 14: il business ultraleggero si rinnova dall’interno
Lenovo ThinkPad X1 Carbon Gen 14: il business ultraleggero si rinnova dall’interno
Con la quattordicesima generazione Lenovo ridisegna il suo ThinkPad più iconico attorno al nuovo Space Frame e ai processori Intel Core Ultra Series 3. Resta sotto 1Kg, è molto più semplice da riparare e si rivolge al professionista che lavora in mobilità, con un prezzo da prodotto di vertice.
Tutti gli articoli Tutte le news

Vai al Forum
Rispondi
 
Strumenti
Old 06-05-2008, 15:17   #1
maghico
Junior Member
 
Iscritto dal: Sep 2007
Messaggi: 19
[Risolto][Java]Problema risoluzione metodo

Ciao a tutti sto svolgendo un esercizio e non riesco a fare un metodo, vi posto le due classi che servono per l'esercizio!

Codice:
import java.util.Scanner;

public class ArrayUtil{

/* completare il corpo del metodo statico read per la lettura di array di interi che:

	1- chieda all'utente la lunghezza dell'array da creare e forzi l'utente a inserire un intero;
	2- crei un array della lunghezza giusta;
	3- chieda all'utente i singoli elementi dell'array e li inserisca nell'array;
	4- restituisca l'indirizzo dell'array creato.

QUESTO METODO E' STATO VISTO A LEZIONE. POTRA' ESSERE USATO IN FUTURO OGNI VOLTA CHE SI
VOGLIANO LEGGERE ARRAY DI INTERI*/
static Scanner input = new Scanner(System.in);
public static int [] read(){

	int [] nuovoarray;
	System.out.println("Di che lunghezza vuoi l'array? ");
	while(!input.hasNextInt()){
		input.next();
		System.out.println("Immetti un intero.");
		}
	int n = input.nextInt();
	nuovoarray = new int[n];
	for(int i = 0; i < n; i++){
		System.out.print("Immetti l'elemento n "+i+":");
		nuovoarray[i] = input.nextInt();
		}

	return nuovoarray;
}


/* Scrivere il corpo del metodo statico println per stampare i valori di un array
di interi a.

IL METODO E' STATO VISTO A LEZIONE. POTRA' ESSERE USATO IN FUTURO OGNI VOLTA CHE SI
VOGLIANO STAMPARE ARRAY DI INTERI. */

public static void println(int [] a){

	System.out.println("l' array e' : ");
	int n = a.length;
	for(int i = 0; i < n; i++){
		System.out.print(a[i] + "");
		}
		System.out.println();
}


/* Analogamente a quanto appena fatto, si definiscano i metodi:

	public static double[] readDoubleArray()
	public static void println(double[] a)

per leggere e scrivere array di doubles;

Inoltre si definiscano:

	public static String[] readStringArray()
	public static void println(String[] a)

per leggere e scrivere array di stringhe;

ANCHE QUESTI METODI POTRANNO ESSERE USATI NEGLI ESERCIZI FUTURI */

public static double[] readDoubleArray(){

	double [] nuovoarray1;
	System.out.println("Di che lunghezza vuoi l'array? ");
	while(!input.hasNextInt()){
		input.next();
		System.out.println("Immetti un intero.");
		}
		int a = input.nextInt();
		nuovoarray1 = new double[a];
		for(int i = 0; i < a; i++){
			System.out.print("Immetti l'elemento n "+i+":");
			nuovoarray1[i] = input.nextInt();
			}
			return nuovoarray1;
}


public static void println(double[] a){

	System.out.println("l'array e' : ");
	double n = a.length;
	for(int i = 0; i < n; i++){
		System.out.println(a[i] + "");
		}
		System.out.println();
		}



public static String[] readStringArray(){

	String [] nuovoarray2;
	System.out.println("Di che lunghezza vuoi l'array? ");
	while(!input.hasNextInt()){
		input.next();
		System.out.println("Immetti un intero.");
		}
		int a = input.nextInt();
		nuovoarray2 = new String[a];
		for(int i = 0; i < a; i++){
			System.out.println("Immetti l'elemento n" + i + " : ");
			nuovoarray2[i] = input.next();
			}
			return nuovoarray2;
		}


public static void println(String[] a){

	System.out.println("l'array e' : ");
	int n = a.length;
	for(int i = 0; i < n; i++){
		System.out.println(a[i] + "");
		}
		System.out.println();
		}


}
questa classe serve per l'array...

Codice:
/** Gli oggetti di questa classe sono triple, composte da tre interi.

 */



public class Tripla {



  private int i;

  private int j;

  private int k;







  // NON INTRODURRE NESSUN COSTRUTTORE!

  // Si usa il costuttore di default.





  public int getI() {



   return i;

  }



  public int getJ() {



   return j;

  }



  public int getK() {



   return k;

  }



  public void setI(int i) {



   this.i = i;

  }



  public void setJ(int j) {



   this.j = j;

  }



  public void setK(int k) {



   this.k = k;

  }





  /**Da completare il metodo toString che metta sotto forma di stringa i valori dell'oggetto.*/

   public String toString(){



	   return (" " + i + " " + j + " " + k);



	   }





}
questa classe stampa la tripla...

Codice:
/** Questa classe usa i metodi readStringArray() e

    println(String [] a) di ArrayUtil.

    Controllare la corrispondenza dei nomi di questi metodi coi nomi

    dei metodi della VOSTRA classe ArrayUtil.



    Usa inoltre la classe Tripla.

 */



import java.util.*;

import static java.lang.System.*;



public class Esame{



 static Scanner tastiera = new Scanner(in);



 public static void main(String [] args) {





 // (1) Dichiarare un array di stringhe,chiamato mioarray, e riempirlo

 // con stringhe a piacere

 // usando il metodo readStringArray() di ArrayUtil.

 String[] mioarray = ArrayUtil.readStringArray();





 // (2) Richiamare opportunamente il metodo che avrete completato qui sotto

 // e stamparne il risultato, stampando ANCHE  l'array con l' opportuna

 // println.

 Tripla a = treMin(mioarray);

 System.out.println("La lunghezza delle stringhe e' : " + a);

 ArrayUtil.println(mioarray);







 } // fine main





/** (3) Definire il  metodo statico indicato qui sotto.

 */





/** Il metodo treMin prende come argomento un array di stringhe,

    e restituisce un oggetto Tripla che contiene le tre lunghezze delle stringhe più corte.

    Ad es. con: {a,abcd,bc,ss,sssss,irtsd,uuuu}

    si ottiene: <1,2,2>.

    Se ci sono meno di tre elementi nell'array si mettano degli 0

    nei posti opportuni,

    ad es. con: {aa,s}

    si ottiene: <2,1,0>.



	Per svolgere l'esercizio,si usino tre variabili min1, min2, min3 per memorizzare rispettivamente

	la lunghezza della stringa più corta, quella della seconda stringa più corta ecc. tra le stringhe esaminate fino a quel momento.

 */

 public static Tripla treMin(String [] a) {



	 

    

      int min1 = 0;

      int min2 = 0;

      int min3 = 0;

      int l;

      for(int i = 0; i < a.length; i++){

      	l = a[i].length();

      	

      	if(l < min1){

      		min3 = min2;

            min2 = min1;

            min1 = l;

		}

		else if(l < min2){

			min3 = min2;

			min2 = l;

		}

		else if(l < min3){

			min3 = l;

		}

	

			

	}



	 Tripla miaTripla = new Tripla();

	 miaTripla.setI(min1);

	 miaTripla.setJ(min2);

	 miaTripla.setK(min3);

	 String tmp = miaTripla.toString();

	 System.out.println(tmp);



	 return miaTripla;









	 }



 }
infine questa è la classe dove c'è il metodo treMin(String [] a) che non riesco a fare, ovvero mi stampa a video soltanto i tre valori 0 e non la lunghezza delle stringhe!chiedo il vostro aiuto!grazie mille

Ultima modifica di maghico : 06-05-2008 alle 17:48.
maghico è offline   Rispondi citando il messaggio o parte di esso
Old 06-05-2008, 15:28   #2
wingman87
Senior Member
 
Iscritto dal: Nov 2005
Messaggi: 2795
Modifica il titolo come da regolamento.
Il problema è dovuto al fatto che hai inizializzato i 3 min a zero, quindi nel ciclo non capiterà mai che la lunghezza di una stringa sia minore di uno di questi 3 valori.
wingman87 è offline   Rispondi citando il messaggio o parte di esso
Old 06-05-2008, 15:33   #3
maghico
Junior Member
 
Iscritto dal: Sep 2007
Messaggi: 19
per il titolo devo mettere [Java]?

l'errore l'ho capito però l'esercizio mi chiede che se vengono messe due stringhe mi darà solo la lunghezza di quelle due e al posto della terza io avrò il valore 0!
maghico è offline   Rispondi citando il messaggio o parte di esso
Old 06-05-2008, 15:56   #4
wingman87
Senior Member
 
Iscritto dal: Nov 2005
Messaggi: 2795
Il titolo adesso va bene.
Provo a proporti una soluzione:
Inizializza le variabili min a Integer.MAX_VALUE
Alla fine del metodo, quando copi i valori dei min nella Tripla fai una cosa del genere:
Codice:
miaTripla.setI(a.length>=1?min1:0);

miaTripla.setJ(a.length>=2?min2:0);

miaTripla.setK(a.length>=3?min3:0);
wingman87 è offline   Rispondi citando il messaggio o parte di esso
Old 06-05-2008, 16:03   #5
maghico
Junior Member
 
Iscritto dal: Sep 2007
Messaggi: 19
ok,il problema è risolto...mi puoi spiegare gentilmente cosa significa questo passaggio:

Codice:
miaTripla.setI(a.length>=1?min1:0);

miaTripla.setJ(a.length>=2?min2:0);

miaTripla.setK(a.length>=3?min3:0);
maghico è offline   Rispondi citando il messaggio o parte di esso
Old 06-05-2008, 16:07   #6
wingman87
Senior Member
 
Iscritto dal: Nov 2005
Messaggi: 2795
Sì, quello che ho usato è l'operatore ternario e si utilizza in questo modo:
variabile=(espr-booleana)?espr1:espr2;
Se espr-booleana è true viene assegnato a variabile il valore espr1, altrimenti il valore espr2.
wingman87 è offline   Rispondi citando il messaggio o parte di esso
Old 06-05-2008, 17:47   #7
maghico
Junior Member
 
Iscritto dal: Sep 2007
Messaggi: 19
scusa se rispondo adesso, mi hai chiarito tutti i dubbi!grazie mille...
maghico è offline   Rispondi citando il messaggio o parte di esso
 Rispondi


AMD EPYC Venice: dentro Zen 6, i SoC a 256 core e la sfida al costo della memoria AMD EPYC Venice: dentro Zen 6, i SoC a 256 core ...
HONOR Pad X9 Max recensione, schermo ultra large a meno di 400 euro HONOR Pad X9 Max recensione, schermo ultra large...
Lenovo ThinkPad X1 Carbon Gen 14: il business ultraleggero si rinnova dall’interno Lenovo ThinkPad X1 Carbon Gen 14: il business ul...
Jabra Evolve3 85: le cuffie sia per l'intrattenimento che per il lavoro Jabra Evolve3 85: le cuffie sia per l'intratteni...
MSI PRO MAX EDGE AI+, Ryzen AI Max+ 395 e 128 GB per far girare in locale anche i modelli più grandi MSI PRO MAX EDGE AI+, Ryzen AI Max+ 395 e 128 GB...
Starlink Mini 2 è ufficiale: batt...
Tutte le migliori offerte AliExpress con...
Singles' Day AliExpress, prezzi speciali...
Singles' Day AliExpress, console a prezz...
Singles' Day AliExpress, e-bike in offer...
Singles' Day AliExpress, hard disk e SSD...
Singles' Day AliExpress, da mezzanotte n...
iPhone 18e svelato in anticipo: ecco cos...
Rockstar ha un piano preciso per il mult...
Un iPhone Duo da oltre 65 mila dollari: ...
Anthropic: IPO tra 70 e 78 dollari, Goog...
SSHole in OpenSSH è già sfruttata: la CI...
Secure Future Group: il rischio cyber si...
Recensione Anker MagGo Power Bank 2 Pro,...
Salesforce Agentforce Coworker: il colle...
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: 04:36.


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