Torna indietro   Hardware Upgrade Forum > Software > Programmazione

Samsung Galaxy S25 Edge: il top di gamma ultrasottile e leggerissimo. La recensione
Samsung Galaxy S25 Edge: il top di gamma ultrasottile e leggerissimo. La recensione
Abbiamo provato il nuovo Galaxy S25 Edge, uno smartphone unico per il suo spessore di soli 5,8 mm e un peso super piuma. Parliamo di un device che ha pro e contro, ma sicuramente si differenzia dalla massa per la sua portabilità, ma non senza qualche compromesso. Ecco la nostra prova completa.
HP Elitebook Ultra G1i 14 è il notebook compatto, potente e robusto
HP Elitebook Ultra G1i 14 è il notebook compatto, potente e robusto
Pensato per il professionista sempre in movimento, HP Elitebook Ultra G1i 14 abbina una piattaforma Intel Core Ultra 7 ad una costruzione robusta, riuscendo a mantenere un peso contenuto e una facile trasportabilità. Ottime prestazioni per gli ambiti di produttività personale con un'autonomia lontano dalla presa di corrente che permette di lavorare per tutta la giornata
Microsoft Surface Pro 12 è il 2 in 1 più compatto e silenzioso
Microsoft Surface Pro 12 è il 2 in 1 più compatto e silenzioso
Basato su piattaforma Qualcomm Snapdragon X Plus a 8 core, il nuovo Microsoft Surface Pro 12 è un notebook 2 in 1 molto compatto che punta sulla facilità di trasporto, sulla flessibilità d'uso nelle differenti configurazioni, sul funzionamento senza ventola e sull'ampia autonomia lontano dalla presa di corrente
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


Samsung Galaxy S25 Edge: il top di gamma ultrasottile e leggerissimo. La recensione Samsung Galaxy S25 Edge: il top di gamma ultraso...
HP Elitebook Ultra G1i 14 è il notebook compatto, potente e robusto HP Elitebook Ultra G1i 14 è il notebook c...
Microsoft Surface Pro 12 è il 2 in 1 più compatto e silenzioso Microsoft Surface Pro 12 è il 2 in 1 pi&u...
Recensione REDMAGIC Astra Gaming Tablet: che spettacolo di tablet! Recensione REDMAGIC Astra Gaming Tablet: che spe...
Dopo un mese, e 50 foto, cosa abbiamo capito della nuova Nintendo Switch 2 Dopo un mese, e 50 foto, cosa abbiamo capito del...
DualSense PS5 senza più limiti, p...
Renault 5 è un successo: quasi 50...
3 tablet in offerta, 99€, 132€ o 209€: p...
SK hynix registra profitti record e punt...
Sonos nomina il nuovo CEO dopo il disast...
Dyson in forte sconto su Amazon: effetto...
Oggi è l'Overshoot Day 2025: perc...
Tesla conferma la produzione delle prime...
La ricarica wireless diventa più ...
AI Action Plan: Trump punta su meno rego...
Aeneas: ecco l'IA che riporta in vita le...
Più skibidiboppi per tutti? Pi&ug...
Tesla, utili in calo del 23%: il secondo...
Puoi adesso bloccare il tuo PC Windows u...
xAI punta a 50 ExaFLOPS: Musk prepara un...
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: 10:11.


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