il codice è quotato :S non so a te ma io lo vedo quotato
comunque...ho 3 frames:
- uno contente il comboBox da cui è possibile impostare la frequenza tra 1800 MHz e 900 MHz e altri campi di testo che al momento non servono
- il sencodo sarebbe il frame in cui mi vengono forniti i due dati di output
- il terzo invece, che è visibile solo se l'utente clicca sul menu "imposta manualmente i valori" ed è il caso che appunto è l'utente che imposta i dati in input sui cui effettuare i calcoli
a seconda della frequenza naturalmente il programma fa dei calcoli diversi
aprendo il programma siamo di fronte ai due frame, quello dei dati da impostare manualmente non è ancora attivo:
impostiamo la frequenza a 1800, e clicco sul pulsante simula che esegue i calcoli CON I VALORI DI DEFAULT...bene, nel secondo frame ho i due risultati, ad esempio 10,60 e 45.89.
adesso ripeto il procedimento con la frequenza a 900 sempre con i valori di default, e tutto è ok i calcoli sono giusti...ho i miei due risultati nel secondo frame ad esempio 5,70 e 9,13.
il problema sorge quando è l'utente che inserisce i valori.
l'untete inserisce la frequenza: 1800 poi clica sul menu che imposta
e comincia a inserire i due valori che saranno utilizzati invece di quelli di default per il calcolo, i valori vengono convertiti e assegnati, uno alla variabile "att" e l'altro alla variabile "amp".Frame2.Visibility = True
l'utente clicca sul pulsante applica che imposta la variabile flag a 1.
dopo clicca su simula e il parse entra nell'IF giusto nel nostro caso:
dove assegnamo dei valori alle variabili e poi diciamo di convertire in double e prendere le variabili att e amp da Text8 e Text9.If Combo1.Text = Combo1.List(0) And flag = 1 Then
'---INIZIO Assegnazione Variabili---
emediocst = 87.52
sarcst = 0.638
k = 1.2
pcst = 0.5
a = emediocst / Sqr(pcst)
emediomis = 1
pgenmisdbm = -20.5
att = CDbl(Text8.Text)
amp = CDbl(Text9.Text)
'---FINE Assegnazione Variabili---
End If
una volta dunque cliccato su simula che entra nell'if e poi esegue i calcoli:
il risultato è uguale a quello della prima prova ossia 10,60 e 45.89. cosa impossibile in quanto i dati in input sono diversi, addirittura ho provato a impostare 1000 e 3000 e il risultato è uguale ai calcoli con i dati di default.pmisdbm = pgenmisdbm - att + amp
pmisw = 10 ^ (pmisdbm / 10) / 1000
b = emediomis / Sqr(pmisw)
sar = CDbl(Text1.Text)
pvera = sar * (a ^ 2 / b ^ 2) / k
pveramw = pvera * 1000
pindbm = 10 * Log(pveramw) / Log(10)
pgeneratoredbm = pindbm + att - amp
campo = b * Sqr(pvera)
spero che la spiegazione sia chiara!


Rispondi quotando