Torna indietro   Hardware Upgrade Forum > Software > Programmazione

NZXT H9 Flow RGB+, Kraken Elite 420 e F140X: abbiamo provato il tris d'assi di NZXT
NZXT H9 Flow RGB+, Kraken Elite 420 e F140X: abbiamo provato il tris d'assi di NZXT
Nelle ultime settimane abbiamo provato tre delle proposte top di gamma di NZXT nelle categorie case, dissipatori e ventole. Rispettivamente, parliamo dell'H9 Flow RGB+, Kraken Elite 420 e F140X. Si tratta, chiaramente, di prodotti di fascia alta che si rivolgono agli utenti DIY che desiderano il massimo per la propria build. Tuttavia, mentre i primi due dispositivi mantengono questa direzione, le ventole purtroppo hanno mostrato qualche tallone d'Achille di troppo
ASUS ROG Swift OLED PG34WCDN recensione: il primo QD-OLED RGB da 360 Hz
ASUS ROG Swift OLED PG34WCDN recensione: il primo QD-OLED RGB da 360 Hz
ASUS ROG Swift OLED PG34WCDN è il primo monitor gaming con pannello QD-OLED Gen 5 a layout RGB Stripe Pixel e 360 Hz su 34 pollici: lo abbiamo misurato con sonde colorimetriche e NVIDIA LDAT. Ecco tutti i dati
Recensione Nothing Phone (4a) Pro: finalmente in alluminio, ma dal design sempre unico
Recensione Nothing Phone (4a) Pro: finalmente in alluminio, ma dal design sempre unico
Nothing Phone (4a) Pro cambia pelle: l'alluminio unibody sostituisce la trasparenza integrale, portando una solidità inedita. Sotto il cofano troviamo uno Snapdragon 7 Gen 4 che spinge forte, mentre il display è quasi da top dig amma. Con un teleobiettivo 3.5x e la Glyph Matrix evoluta, è la prova di maturità di Carl Pei. C'è qualche compromesso, ma a 499EUR la sostanza hardware e la sua unicità lo rendono un buon "flagship killer" in salsa 2026
Tutti gli articoli Tutte le news

Vai al Forum
Rispondi
 
Strumenti
Old 24-11-2011, 17:17   #1
h3unter3h
Senior Member
 
Iscritto dal: Aug 2007
Messaggi: 364
[Java] Aiuto con programma "banale"

Salve ragazzi. Ho iniziato da pochissimo a programmare in java e ho per le mani questo esercizietto che dovrebbe essere banalissimo ma che non riesco a risolvere. Qualcuno mi può dare una mano? Grazie.
Ecco il testo:

Scrivere un programma java che scriva per 100 volte una frase. Ogni frase deve essere numerata e il programma deve commettere otto differenti errori di stampa apparentemente casuali.


Ovviamente mi blocco agli errori di stampa. Non riesco proprio a capire come inserirli
h3unter3h è offline   Rispondi citando il messaggio o parte di esso
Old 24-11-2011, 19:39   #2
Darecon
Senior Member
 
Iscritto dal: Sep 2003
Città: Tradate
Messaggi: 396
Quote:
Originariamente inviato da h3unter3h Guarda i messaggi
Salve ragazzi. Ho iniziato da pochissimo a programmare in java e ho per le mani questo esercizietto che dovrebbe essere banalissimo ma che non riesco a risolvere. Qualcuno mi può dare una mano? Grazie.
Ecco il testo:

Scrivere un programma java che scriva per 100 volte una frase. Ogni frase deve essere numerata e il programma deve commettere otto differenti errori di stampa apparentemente casuali.


Ovviamente mi blocco agli errori di stampa. Non riesco proprio a capire come inserirli
Io inizierei ad estrarre 8 numeri casuali da 0 a 99, non ripetuti, per determinare quale delle 100 righe abbia l'errore. Successivamente (ipotizzo che la frase da scrivere sia in una variabile String) usi il metodo toCharArray in modo da ottenere un array di char rappresentante la stringa stessa.
a questo punto prendi un indice a caso tra 0 e la lunghezza dell'array, estrai l'elemento e modifichi il valore con un char a caso e, se ti serve ancora una stringa per altre elaborazioni, usi il metodo valuesOf().
Detta così è uno schifo, ma a farla ci impieghi 30 secondi..
Se hai bisogno di chiarimenti scrivi pure!
Darecon è offline   Rispondi citando il messaggio o parte di esso
Old 24-11-2011, 19:46   #3
h3unter3h
Senior Member
 
Iscritto dal: Aug 2007
Messaggi: 364
credo di aver capito il tuo suggerimento. appena mi rimetto sul codice ci provo. intanto grazie per l'aiuto
h3unter3h è offline   Rispondi citando il messaggio o parte di esso
Old 24-11-2011, 20:01   #4
Darecon
Senior Member
 
Iscritto dal: Sep 2003
Città: Tradate
Messaggi: 396
Quote:
Originariamente inviato da h3unter3h Guarda i messaggi
credo di aver capito il tuo suggerimento. appena mi rimetto sul codice ci provo. intanto grazie per l'aiuto
Questa è una prova (bruttissima) però va..

Codice:
import java.util.ArrayList;
import java.util.List;


public class Main {

	/**
	 * @param args
	 */
	public static void main(String[] args) {
		// TODO Auto-generated method stub
		String x="Ciao mamma come mi diverto!";
		List<Integer> righe= new ArrayList<Integer>();
		for (int i = 0; i < 8; i++) {
			int rigAGenerataACaso=0;
			if(!righe.contains((rigAGenerataACaso=randomNumber(0,99))))
				righe.add(rigAGenerataACaso);
		}
		char[] charArray = x.toCharArray();
		for(int i=0;i<100;i++){
			char[] copia=charArray.clone();
			if(righe.contains(i)){
				int rand=randomNumber(0,charArray.length);
				copia[rand]=(char)(charArray[rand]+1);
			}
			System.out.println(copia);
		}
	}
	public static int randomNumber(int min, int max) {
        return min + (int)(Math.random() * (max - min));
	}

}
al posto del +1 vedi te come "generare l'errore"!!

Quote:
deve commettere otto differenti errori
Questo non lo fa però, li genera, ma potenzialmente sono uguali, a te migliorare il mio codice e risolvere questo problemino!

Ciao!
Darecon è offline   Rispondi citando il messaggio o parte di esso
Old 24-11-2011, 23:15   #5
sic2
Junior Member
 
Iscritto dal: Nov 2011
Messaggi: 13
ciao!

spero di riuscire a rispondere alla tua domanda.
bene quello che farei io è creare un array di dimensione 8 e tipo Error contenente le sottoclassi che trovi qui: http://docs.oracle.com/javase/1.4.2/...ang/Error.html
inoltre crei una variabile chiamata top di valore 0 che indica il primo elemento nell'array.

dunque ogni volta che vuoi stampare una errore prendi l'elemento all'indice TOP e incrementi top.

quando stampi una errore puoi usare: printstacktrace
sic2 è offline   Rispondi citando il messaggio o parte di esso
Old 25-11-2011, 18:46   #6
h3unter3h
Senior Member
 
Iscritto dal: Aug 2007
Messaggi: 364
Allora dopo ore e ore di elaborazione credo di essere riuscito a concludere qualcosa, prendendo spunto dai vostri suggerimenti. Questo è quello che ho fatto, dalle prove sembra funzionare

Codice:
/* Questo programma visualizza 100 volte la frase "Non devo spammare i miei amici" 
* e inserisce in 8 frasi un errore casuale
*/
import java.io.*;
public class Punizione
{
	public static void main (String[] args)
	{
		// Inizializzo la frase da visualizzare
		String frase = "Non devo spammare i miei amici";
		// Inizializzo il contatore
		int contatore = 0;
		// Creo un array che contenga tutte le 100 frasi
		String[] Lista = new String[100];
		for (;contatore<Lista.length;contatore++)
		{
			Lista[contatore] = frase;
		}

		int j=0;
		int caso=0;
		String[] FrasiErrate = new String[8]; //In questo array andranno 8 frasi già errate
		while (j<8)
		{
			char fraseErrata[] = frase.toCharArray();
			int errore = (int)(Math.random() * fraseErrata.length);
			fraseErrata[errore] = (char)(Math.random());
			FrasiErrate[j] = new String (fraseErrata);
			j++;
		}
		
		// Sostituisco in 8 posizioni a caso le frasi errate create
		j=0;
		int[] estratti = new int[8];
		while (j<8)
		{
			caso = 1 + (int)(Math.random() * 100);
			Lista[caso] = FrasiErrate[j];
			estratti[j] = caso;
			j++;
		}
		
		for (int i=0;i<Lista.length;i++)
		{
			System.out.println (i+1 + "." + Lista[i]);
		}
	}
}
che ve ne pare?
h3unter3h è offline   Rispondi citando il messaggio o parte di esso
Old 26-11-2011, 10:53   #7
Darecon
Senior Member
 
Iscritto dal: Sep 2003
Città: Tradate
Messaggi: 396
Secondo me (per una pura questione di stile) conviene che nel primo for l'inizializzazione della variabile vada nel ciclo, quindi: for (int contatore=0;contatore<Lista.length;contatore++), e nei 2 cicli seguenti secondo me è meglio utilizzare il for, in linea di massima la vedo così: se so quante volte deve essere eseguito il ciclo, metto il for, in modo che il numero di volte sia ben visibile, altrimenti se ci sono condizioni di uscita complesse utilizzo il while!

Per il resto, se funziona, va bene!

Non hai scongiurato però il pericolo che escano 2 errori uguali, e quindi 2 frasi con lo stesso errore: il testo richiedeva che tutte le frasi con errore fossero diverse!
Darecon è offline   Rispondi citando il messaggio o parte di esso
Old 26-11-2011, 12:25   #8
h3unter3h
Senior Member
 
Iscritto dal: Aug 2007
Messaggi: 364
hai ragione.potrei inserire un controllo su ognuno degli 8 errori estratti, ma forse il programma diventerebbe illeggibile...
h3unter3h è offline   Rispondi citando il messaggio o parte di esso
 Rispondi


NZXT H9 Flow RGB+, Kraken Elite 420 e F140X: abbiamo provato il tris d'assi di NZXT NZXT H9 Flow RGB+, Kraken Elite 420 e F140X: abb...
ASUS ROG Swift OLED PG34WCDN recensione: il primo QD-OLED RGB da 360 Hz ASUS ROG Swift OLED PG34WCDN recensione: il prim...
Recensione Nothing Phone (4a) Pro: finalmente in alluminio, ma dal design sempre unico Recensione Nothing Phone (4a) Pro: finalmente in...
WoW: Midnight, Blizzard mette il primo, storico mattone per l'housing e molto altro WoW: Midnight, Blizzard mette il primo, storico ...
Ecovacs Goat O1200 LiDAR Pro: la prova del robot tagliaerba con tagliabordi integrato Ecovacs Goat O1200 LiDAR Pro: la prova del robot...
Anthropic ha un'AI che trova falle in Wi...
I 10 migliori sconti Amazon del weekend:...
Con un coupon scendono ancora: le super ...
Minimo storico per Samsung Galaxy S26 Ul...
Si è conclusa la missione lunare ...
EK Waterblock si arrende agli aumenti, i...
Geekbench si aggiorna: tutti i test con ...
Per la prima volta un computer quantisti...
Telecamere Reolink 4K su Amazon: Wi-Fi 6...
Anthropic vuole farsi i chip da sola? Co...
Il fondatore di Framework: il personal c...
JBL Live Flex 3 a 129€ su Amazon: ANC ad...
Come un uomo ha costruito un'azienda da ...
Multe fino a 400 euro anche se hai pagat...
Tapo lancia una valanga di offerte su Am...
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: 05:30.


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