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 13-05-2008, 15:25   #1
maghico
Junior Member
 
Iscritto dal: Sep 2007
Messaggi: 19
[Java]Problema metodo

Ciao a tutti, volevo chiedere un aiuto su un metodo in java, purtroppo il codice che ho scritto io mi funziona solo in parte...vi posto prima le classi che servono per il metodo:

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 gli array(lettura e stampa)

Codice:
/** Gli oggetti di questa classe sono coppie, composte di un intero e una stringa.
 */

public class Coppia {

  private int i;
  private String s;



  // NON INTRODURRE NESSUN COSTRUTTORE!
  // Si usa il costuttore di default.


 public int getI() {

  return i;
 }

 public String getS() {

  return s;
 }


 public void setI(int i) {

  this.i = i;
 }

 public void setS(String s) {

  this.s = s;
 }


 /**Da completare il metodo toString che metta sotto forma di stringa i valori dell'oggetto.*/
 public String toString(){
 	
 	return "Colore : " + s + " Numero volte : " + i;
 	
 	
 	}


}
questa classe serve per le coppie.

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 Coppia.
 */

import java.util.*;
import static java.lang.System.*;

public class EseDic1{

 public static void main(String [] args) {

  Scanner tastiera = new Scanner(in);


 // (1) Dichiarare un array di stringhe,chiamato arraystringhe, e riempirlo
 // con parole a piacere
 // usando il metodo readStringArray() di ArrayUtil.
 String[] arraystringhe = ArrayUtil.readStringArray();


 // (2) Richiamare opportunamente il metodo che avrete completato qui sotto
 // e stamparne il risultato, stampando ANCHE  l'array con l' opportuna
 // println.
 Coppia a = parolaPiuFrequente(arraystringhe);
 System.out.println(a);
 ArrayUtil.println(arraystringhe);



 } // fine main


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


/** Il metodo parolaPiuFrequente() prende come argomento un array di stringhe,
    conta le occorrenze delle stringhe contenute nell'array (cioe` conta il
    numero di volte in cui una stringa compare nell'array) e restituisce una coppia
    formata dalla stringa che ha il maggior numero di occorrenze *contigue* e dal
    numero di occorrenze della stringa stessa.
    Se tutte le stringhe hanno lo stesso numero di occorrenze il metodo restituisce
    la coppia <"", 0>.
    Ad esempio, dato l'array <"bianco", "blu", "blu", "rosso", "rosso", "rosso", "verde">,
    il metodo restituira' la coppia <"rosso", 3>.
    -Suggerimento-
     Dovete utilizzare quattro variabili, la prime due servono rispettivamente per memorizzare
     la stringa correntemente esaminata e per contare via via le sue occorrenze, le seconde due
     servono rispettivamente per memorizzare la stringa che occorre di piu` fino a quel momento e
     il numero di volte in cui occorre. Alla fine, nelle seconde due avremo il risultato che va
     messo dentro la Coppia risultato.
   */
 public static Coppia parolaPiuFrequente(String [] r) {
 	String a = "";
 	String b = "";
 	int c = 0;
 	int d = 0;
 	
 	for(int i = 0; i < r.length - 1; i++){
 		a = r[i];
 		if(a.equals(r[i]) && a.equals(r[i+1])){
 			c++;
 			b = a;
 			d = c;
		}
	}
		
		Coppia miaCoppia = new Coppia();
		miaCoppia.setS(b);
		miaCoppia.setI(d);
		return miaCoppia;
	}
}
infine questa è l'ultima classe dove vi è il metodo parolaPiuFrequente(String[] r), di cui riesco a fare solo in parte ciò che mi chiede, es. inserisco(rosso, rosso, rosso, blu, giallo, rosso) mi dice che la parola più frequente è il rosso però come numero di occorrenze mi stampa solo 2 invece di 4!
e poi quando inserisco(rosso, rosso, rosso) mi stampa sempre il colore rosso e numero di volte 2, al posto di "" e 0;cosa posso fare, è giusto il codice da me inserito?grazie mille a tutti
maghico è offline   Rispondi citando il messaggio o parte di esso
Old 14-05-2008, 14:02   #2
Don[ITA]
Senior Member
 
L'Avatar di Don[ITA]
 
Iscritto dal: Jul 2006
Città: Bergamo
Messaggi: 401
Da quanto ho capito ti serve un metodo che preso in input un array di stringhe ti ritorna la stringa ripetuta più volte in quell'array.
Dai un occhiata a questi metodi che fanno quello che ti serve in modi differenti.
Codice:
public static String maxOccurrency(String[] s) {
		String parola = "";
		int maxOccurrency = 0;
		int count = 0;
		List<String> list = Arrays.asList(s);
		for(String item : list) {
			count = Collections.frequency(list, item);
			parola = count > maxOccurrency ? item : parola;
			maxOccurrency = count > maxOccurrency ? count : maxOccurrency;
		}
		return parola;
	}
	
	public static String maxOccurrencyRegEx(String[] s) {
		String parola = "";
		String trasformedArray = "";
		for(String item : s)
			trasformedArray += item;
		Pattern pattern;
		Matcher matcher;
		int count = 0;
		int maxOccurrency = 0;
		for(String item : s) {
			pattern = Pattern.compile(item);
			matcher = pattern.matcher(trasformedArray);
			while(matcher.find())
				count++;
			parola = count > maxOccurrency ? item : parola;
			maxOccurrency = count > maxOccurrency ? count : maxOccurrency;			
			count = 0;
		}
		return parola;
	}
Ciauz
__________________
iMac 27" 5K
Don[ITA] è 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...
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...
Sirui porta l’autofocus luminoso sotto i...
BluePhishing, il nuovo metodo di attacco...
Elon Musk parla dei propulsori Raptor 4 ...
NVIDIA, la vicenda Jensen Huang finisce ...
Spiare un monitor dal cavo HDMI: un'IA a...
Infomaniak lancia lo storage a oggetti S...
Rocket Factory Augsburg ha posticipato i...
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: 22:40.


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