Torna indietro   Hardware Upgrade Forum > Software > Programmazione

Recensione Samsung Galaxy Z Fold7: un grande salto generazionale
Recensione Samsung Galaxy Z Fold7: un grande salto generazionale
Abbiamo provato per molti giorni il nuovo Z Fold7 di Samsung, un prodotto davvero interessante e costruito nei minimi dettagli. Rispetto al predecessore, cambiano parecchie cose, facendo un salto generazionale importante. Sarà lui il pieghevole di riferimento? Ecco la nostra recensione completa.
The Edge of Fate è Destiny 2.5. E questo è un problema
The Edge of Fate è Destiny 2.5. E questo è un problema
Bungie riesce a costruire una delle campagne più coinvolgenti della serie e introduce cambiamenti profondi al sistema di gioco, tra nuove stat e tier dell’equipaggiamento. Ma con risorse limitate e scelte discutibili, il vero salto evolutivo resta solo un’occasione mancata
Ryzen Threadripper 9980X e 9970X alla prova: AMD Zen 5 al massimo livello
Ryzen Threadripper 9980X e 9970X alla prova: AMD Zen 5 al massimo livello
AMD ha aggiornato l'offerta di CPU HEDT con i Ryzen Threadripper 9000 basati su architettura Zen 5. In questo articolo vediamo come si comportano i modelli con 64 e 32 core 9980X e 9970X. Venduti allo stesso prezzo dei predecessori e compatibili con il medesimo socket, le nuove proposte si candidano a essere ottimi compagni per chi è in cerca di potenza dei calcolo e tante linee PCI Express per workstation grafiche e destinate all'AI.
Tutti gli articoli Tutte le news

Vai al Forum
Rispondi
 
Strumenti
Old 20-04-2007, 09:01   #41
spillo491
Member
 
Iscritto dal: Dec 2006
Messaggi: 201
Ho cercato di capire quali sono le caratteristiche che legano la Griglia e il Pannello Inserimento Dati senza pensare al linguaggio di programmazione; le scrivo qui sotto così le ho scritte e se hai voglia mi dici che ne pensi

Classe Griglia

caratteristiche:
  • frequenza (250,500,750,1000,1500,2000,3000,4000,6000,8000)
  • perdita in decibel (10,20, 25 ,30,40,50, 55 ,60,70,80,90,100)
  • simboli (cerchi/croci) su colonne corrispondenti alle varie frequenze; simboli si devono poter sovrappporre
  • per unire simboli dello stesso tipo con segmenti devo avere le loro coordinate

Classe PannelloInserimentoDati

caratteristiche:
  • frequenze (250,500,1000,2000,3000,4000,6000,8000)
  • serie di coppie (frequenza, misura orecchio dx)
  • serie di coppie (frequenza, misura orecchio sx)
  • queste coppie mi danno le coordinate dei punti che devo disegnare sulla griglia

Classe DisegnaSimboliSuGriglia

ha bisogno delle coppie di coordinate accennate sopra e deve tener conto che i simboli devono finire sulle linne verticali corrispondenti alle varie frequenze

Classe CalcolaDiagnosi

In base alla disposizione dei simboli dello stesso tipo sulla griglia, quindi in base alle loro coordinate (che però posso avere anche dal Pannello Inserimento Dati) e alla definizione delle aree A,B,C.... calcolo la diagnosi
Ad esempio la zona A rapppresenta un rettangolo che va dalla freq 500 alla freq 2000 e dalla perdita 0 alla perdita 25.

Ho fatto bene o devo andare di piu nel dettaglio? Adesso ho le idee un po piu chiare ma realizzare questo non mi sembra ancora facile, forse perchè non conosco bene le varie classi grafiche/eventi e i loro metodi ?
spillo491 è offline   Rispondi citando il messaggio o parte di esso
Old 20-04-2007, 11:19   #42
PGI-Bis
Senior Member
 
L'Avatar di PGI-Bis
 
Iscritto dal: Nov 2004
Città: Tra Verona e Mantova
Messaggi: 4553
Va bene se riesci a vedere le relazioni che quelle descrizioni creano. Ad esempio io vedo che DisegnaSimboliSuGriglia usa (ha bisogno di) PannelloInserimentoDati e Griglia. CalcolaDiagnosi usa Griglia e/o PannelloInserimentoDati. Usa nel senso più comune del termine.

Tieni conto che questa faccenda di qualcuno che usa qualcun'altro è traducibile (in tanti modi ma anche) attraverso una coppia di metodi set/get. Cioè la classe DisegnaSimboliSuGriglia avrà dei metodi tipo:

Codice:
setGriglia: unaGriglia
    griglia := unaGriglia.

getGriglia
    ↑griglia.

setPannelloInserimentoDati: unPannelloInserimentoDati
    pannelloInserimentDati := unPannelloInserimentoDati.

getPannelloInserimentoDati
    ↑pannelloInserimentoDati.
Non è l'unica forma possibile (potresti anche passare pannello e griglia al costruttore di DisegnaSimboliSuGriglia) ma è forse la più evidente. Una conseguenza di questa testimonianza d'uso è anche la soluzione al problema da cui eravamo partiti: come faccio a trasformare i dati contenuti nel PannelloInserimentoDati in simboli sulla Griglia. Bene, secondo il tuo schema, quando l'utente premerà il pulsante o digiterà le cifre o interagirà nel modo che riterrai più opportuno userai un oggetto DisegnaSimboliSuGriglia il quale preleverà i dati dal pannelloInserimetoDati e li trasformerà in comandi di disegno per la griglia. Mi segui?
__________________
Uilliam Scecspir ti fa un baffo? Gioffri Cioser era uno straccione? E allora blogga anche tu, in inglese come me!
PGI-Bis è offline   Rispondi citando il messaggio o parte di esso
Old 23-04-2007, 09:01   #43
spillo491
Member
 
Iscritto dal: Dec 2006
Messaggi: 201
Rieccomi qui a stressare un po

Relazioni tra le classi :
  • Classe Griglia usa Classi Simbolo e PannelloInserimentoDati
  • Classe Simbolo è a se stante
  • Classe PannelloInserimentoDati è a se stante
  • Classe DisegnaSimboliSuGriglia usa classi PannelloInserimentoDati, Griglia e Simbolo
  • Classe CalcolaDiagnosi usa classi Simbolo e Griglia o PannelloInserimentoDati

Non sono sicuro che la classe CalcolaDiagnosi sia necesssaria; sui libri dicono che le classi rappresentano oggetti e sono indicate da sostantivi mentre sono i metodi che compiono azioni e che sono indicati da verbi
spillo491 è offline   Rispondi citando il messaggio o parte di esso
Old 23-04-2007, 09:16   #44
spillo491
Member
 
Iscritto dal: Dec 2006
Messaggi: 201
Quote:
Originariamente inviato da PGI-Bis Guarda i messaggi
.....secondo il tuo schema, quando l'utente premerà il pulsante o digiterà le cifre o interagirà nel modo che riterrai più opportuno userai un oggetto DisegnaSimboliSuGriglia il quale preleverà i dati dal pannelloInserimetoDati e li trasformerà in comandi di disegno per la griglia.
Qual è il più semplice da implementare ?
spillo491 è offline   Rispondi citando il messaggio o parte di esso
Old 23-04-2007, 09:22   #45
spillo491
Member
 
Iscritto dal: Dec 2006
Messaggi: 201
Inizio a buttare giù qualcosa :

Codice PHP:
public class Griglia {

  public 
Griglia(Simbolo simbolPannelloInserimentoDati pid){
  
  }

Codice PHP:
public enum Simbolo 
    
VUOTO
    
PALLINO
    
CROCE 

Codice PHP:
public class DisegnaSimboliGriglia {

  public 
DisegnaSimboliGriglia(Simbolo simbolGriglia grid
                                          
PannelloInserimentoDati pid){

  }

Codice PHP:
public class CalcolaDiagnosi {

  public 
CalcolaDiagnosi (Simbolo simbolPannelloInserimentoDati pid){

  }

La classe PannelloInserimentoDati ha il costruttore vuoto cioè senza parametri
spillo491 è offline   Rispondi citando il messaggio o parte di esso
Old 23-04-2007, 10:34   #46
PGI-Bis
Senior Member
 
L'Avatar di PGI-Bis
 
Iscritto dal: Nov 2004
Città: Tra Verona e Mantova
Messaggi: 4553
Il più semplice da realizzare è quello che meglio corrisponde a ciò che osservi dal tuo punto di vista. In fondo l'orientamento agli oggetti è tutto qui. Ora sono un po' alle strette, se puoi aspettare fino a stasera butto giù due righe ed un esempio di come vedo io questo programma, in modo che tu abbia una linea guida e qualcosa a cui fare riferimento per scriverlo.
__________________
Uilliam Scecspir ti fa un baffo? Gioffri Cioser era uno straccione? E allora blogga anche tu, in inglese come me!
PGI-Bis è offline   Rispondi citando il messaggio o parte di esso
Old 23-04-2007, 10:51   #47
spillo491
Member
 
Iscritto dal: Dec 2006
Messaggi: 201
Quote:
Originariamente inviato da PGI-Bis Guarda i messaggi
Il più semplice da realizzare è quello che meglio corrisponde a ciò che osservi dal tuo punto di vista. In fondo l'orientamento agli oggetti è tutto qui.
Giusto, me lo avevi già detto !
Grazie dell'aiuto che mi stai dando, di passione per la programmazione ne devi avere tanta per seguirmi come stai facendo.
spillo491 è offline   Rispondi citando il messaggio o parte di esso
Old 23-04-2007, 14:36   #48
PGI-Bis
Senior Member
 
L'Avatar di PGI-Bis
 
Iscritto dal: Nov 2004
Città: Tra Verona e Mantova
Messaggi: 4553
Stavo pensacchiando un po' alla faccenda. E m'è venuto un dubbio. I valori rappresentati nella griglia sono continui o discreti? Cioè cosa succede se lo strumento rileva che l'utente a 250hz perde 13 decibel? La griglia deve riportare 13 decibel oppure deve approssimare a 10?
__________________
Uilliam Scecspir ti fa un baffo? Gioffri Cioser era uno straccione? E allora blogga anche tu, in inglese come me!
PGI-Bis è offline   Rispondi citando il messaggio o parte di esso
Old 23-04-2007, 15:23   #49
spillo491
Member
 
Iscritto dal: Dec 2006
Messaggi: 201
Devo chiedere al babbo appena arriva
spillo491 è offline   Rispondi citando il messaggio o parte di esso
Old 23-04-2007, 16:41   #50
spillo491
Member
 
Iscritto dal: Dec 2006
Messaggi: 201
Si possono avere solo multipli di 5 (5,10,15,20,25.....)
spillo491 è offline   Rispondi citando il messaggio o parte di esso
Old 23-04-2007, 22:27   #51
PGI-Bis
Senior Member
 
L'Avatar di PGI-Bis
 
Iscritto dal: Nov 2004
Città: Tra Verona e Mantova
Messaggi: 4553
Abbi pazienza che 'sto componendo l'iliade. Sto scrivendo il programma tenendo una specie di "diario" di quello che penso, di come lo traduco in codice, dei ripensamenti, degli errori eccetera. Insomma, una specie di auto-psicanalisi . L'azzardata idea che sta dietro questa apparente follia è che leggendo come concretamente uno (io) crea un programma, non rifacendosi ad astratti volumi ma raccontando i passaggi "veri", uno per uno, stupidaggini comprese, sia possibile rendersi conto del processo pratico e, magari, formarne uno proprio.

Magari alla fine non ci si capisce una fava (veramente sto scrivendo quello che mi salta in mente mentre scrivo l'applicazione) ma è un esperimento piuttosto divertente . Penso che lo finirò domani sera.
__________________
Uilliam Scecspir ti fa un baffo? Gioffri Cioser era uno straccione? E allora blogga anche tu, in inglese come me!
PGI-Bis è offline   Rispondi citando il messaggio o parte di esso
Old 23-04-2007, 22:29   #52
spillo491
Member
 
Iscritto dal: Dec 2006
Messaggi: 201
Grazie ancora
spillo491 è offline   Rispondi citando il messaggio o parte di esso
Old 24-04-2007, 22:09   #53
PGI-Bis
Senior Member
 
L'Avatar di PGI-Bis
 
Iscritto dal: Nov 2004
Città: Tra Verona e Mantova
Messaggi: 4553
Praticamente c'è voluto un volume di ingegneria navale per creare la griglia:



Però è venuta fichissima

Ancora un po' di pazienza e ti fornisco il malloppo. Occhio però che sono 68 pagine di farfugliamenti, errori, ripensamenti... tutto documentato .
__________________
Uilliam Scecspir ti fa un baffo? Gioffri Cioser era uno straccione? E allora blogga anche tu, in inglese come me!
PGI-Bis è offline   Rispondi citando il messaggio o parte di esso
Old 25-04-2007, 00:11   #54
PGI-Bis
Senior Member
 
L'Avatar di PGI-Bis
 
Iscritto dal: Nov 2004
Città: Tra Verona e Mantova
Messaggi: 4553
Sono arrivato al collegamento tra la griglia e il pannello di inserimento dati. Mi fermo perchè mi sono detto "e se poi non ci si capisce una fava?" Gli appunti che ho preso durante la creazione sono proprio "appunti di cosa penso quando programmo". E' un esperimento che volevo fare da tempo. Sono curioso di sapere se si colga un senso del procedimento oppure risultino essere solo farfugliamenti. Qui c'è lo zip:

tutorial.zip

dentro c'è un PDF con le 72 pagine del "diario". Nella cartella src ci sono i sorgenti. Non li ho commentati di proposito. A parte il fatto che sono scritti in "italianJava" (Audiogramma, aggiungiAscoltatoreEventi, calcolaLarghezzaEtichetteFrequenze e via dicendo ), pià del codice conterebbe, nel mio malsano proposito, rendere l'idea di come quel codice sia saltato fuori.

Prova a dargli un'occhiata. Se ti pare di capire come funziona il giochino, continuo. Altrimenti proviamo un'altra strada. Comunque è un programma molto divertente da fare.
__________________
Uilliam Scecspir ti fa un baffo? Gioffri Cioser era uno straccione? E allora blogga anche tu, in inglese come me!
PGI-Bis è offline   Rispondi citando il messaggio o parte di esso
Old 25-04-2007, 07:33   #55
spillo491
Member
 
Iscritto dal: Dec 2006
Messaggi: 201
Grazie PGI oggi mr lo guardo con calma
spillo491 è offline   Rispondi citando il messaggio o parte di esso
Old 26-04-2007, 09:39   #56
spillo491
Member
 
Iscritto dal: Dec 2006
Messaggi: 201
Ciao PGI ho inziato a leggere il tuo diario e devo dire che anche se ci sono alcune cose che non mi sono molto chiare è molto utile vedere come hai ragionato per scrivere il codice e seguire il tutto passo-passo. Sicuramente questo diario mi è moolto utile!

Ad esempio che significa questa sintassi ?

ArrayList<Decibel> righe = new ArrayList<Decibel>();
ArrayList<Frequenza> colonne = new ArrayList<Frequenza>();
spillo491 è offline   Rispondi citando il messaggio o parte di esso
Old 26-04-2007, 09:42   #57
lovaz
Senior Member
 
L'Avatar di lovaz
 
Iscritto dal: Jul 2002
Messaggi: 4334
Ha dichiarato e allocato due liste (vuote), una di oggetti di tipo Decibel,
e una di oggetti di tipo Frequenza.
lovaz è offline   Rispondi citando il messaggio o parte di esso
Old 26-04-2007, 10:02   #58
PGI-Bis
Senior Member
 
L'Avatar di PGI-Bis
 
Iscritto dal: Nov 2004
Città: Tra Verona e Mantova
Messaggi: 4553
Se guardi nella documentazione Java vedrai che alcune classi e interfacce hanno dei nomi come:

Pippo<T>

oppure

Pippo<K, E>

Sono classi generiche. Quando usi quelle classi o quelli interfacce devi mettere qualcosa al posto delle lettere maiuscolo: quel qualcosa è il nome di un tipo (classe, interfaccia o enumerativo). La specificazione di un tipo è detta dichiarazione di parametro e la dichiarazione di parametro per un tipo generico crea un tipo parametrico.

Dunque dato il tipo generico ArrayList<T> la dichiarazione di parametro "Decibel" crea il tipo parametrico ArrayList<Decibel>.

ArrayList<Decibel> è quindi la dichiarazione di un tipo parametrico.

Sottolineo che per tipo intendo classe, interfaccia o enumerativo (non int, boolean, char ad esempio).

Un tipo parametrico è un tipo di operatore su un tipo. E' una categoria di oggetti che fa qualcosa avendo a disposizione dei dati appartenenti al tipo dichiarato come parametro.

Un operatore...opera. Fa delle operazioni. L'operazione che un tipo parametrico ArrayList<Decibel> fa sugli oggetti Decibel è il contenimento. Come giustamente dice Lovaz, ArrayList<Decibel> è una lista, nel senso della struttura dati, di Decibel, cioè che contiene valori di tipo Decibel.

Direi che è tutto qui.
__________________
Uilliam Scecspir ti fa un baffo? Gioffri Cioser era uno straccione? E allora blogga anche tu, in inglese come me!
PGI-Bis è offline   Rispondi citando il messaggio o parte di esso
Old 26-04-2007, 10:39   #59
spillo491
Member
 
Iscritto dal: Dec 2006
Messaggi: 201
Qui dichiari un Arraylist di ArrayList di oggetti Decibel e lo chiami dati giusto ?

private ArrayList<ArrayList<Decibel>> dati =

%%%%%%%%%%%%%%%%%%%%%%%%%

E invece questo ?

public class Griglia {

Map<GridKey, Simbolo> dati...
}
spillo491 è offline   Rispondi citando il messaggio o parte di esso
Old 26-04-2007, 12:15   #60
spillo491
Member
 
Iscritto dal: Dec 2006
Messaggi: 201
No nulla, ho capito
spillo491 è offline   Rispondi citando il messaggio o parte di esso
 Rispondi


Recensione Samsung Galaxy Z Fold7: un grande salto generazionale Recensione Samsung Galaxy Z Fold7: un grande sal...
The Edge of Fate è Destiny 2.5. E questo è un problema The Edge of Fate è Destiny 2.5. E questo ...
Ryzen Threadripper 9980X e 9970X alla prova: AMD Zen 5 al massimo livello Ryzen Threadripper 9980X e 9970X alla prova: AMD...
Acer TravelMate P4 14: tanta sostanza per l'utente aziendale Acer TravelMate P4 14: tanta sostanza per l'uten...
Hisense M2 Pro: dove lo metti, sta. Mini proiettore laser 4K per il cinema ovunque Hisense M2 Pro: dove lo metti, sta. Mini proiett...
SpaceX Starship: Ship 37 ha eseguito due...
Sharkoon punta sui case a basso costo, m...
La tua rete Wi-Fi fa pena? Questi FRITZ!...
Amazon, un weekend di fuoco per gli scon...
Ancora 3 smartwatch Amazfit in forte sco...
Sharkoon A60 RGB: dissipatore ad aria du...
HONOR 400 Pro a prezzo bomba su Amazon: ...
Offerte da non perdere: robot aspirapolv...
Apple Watch e Galaxy Watch ai minimi sto...
Il rover NASA Perseverance ha ''raccolto...
NASA e ISRO hanno lanciato il satellite ...
Switch 2 ha venduto 5,82 milioni di cons...
Assassin's Creed Black Flag Remake: le m...
Cosa ci fa una Xiaomi SU7 Ultra alle por...
Promo AliExpress Choice Day: prezzi stra...
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: 19:25.


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