|
|||||||||
|
|||||||||
| Justoverclock.com - Link Sponsorizzati |
|
|
| Not A Member Yet? Register today and become part of the community. |
|
|||||||
![]() |
|
|
Strumenti Discussione | Modalità Visualizzazione |
|
|
#1 |
|
30Kvolt moderator
|
Sto imparando a programmare grazie a Dani88, che ringrazio per avermi dedicato del tempo per spiegarmi le basi della programmazione in vb.
Sto cercando di fare un primo programma "serio", in pratica un calcolatore per la resy per i led. Tipo quello gia fatto da dani. Fin'ora ho implementato senza problemi la parte relativa al calcolo, per il colore del led ho messo un menù a tendina (dicesi combobox) che imposta automaticamente la vdrop relativa al colore. Vorrei aggiungere un altra funzionalità, ed è qui che m'intoppo ![]() In pratica il prog com'è ora restituisce il valore ESATTO della resistenza calcolata. esempio 12 alim led blu HE 20mA 1 led mi restituisce 446. Matematicamente è corretto... peccato che questo valore non esista in commercio. Vorrei implementare quindi una funzione che mi restituisca il valore in commercio di valore superiore più vicino a quello calcolato Riprendendo l'esempio di prima 446 val esatto valore in commercio 470 Un'idea per implementarlo è stata: nell'esempio qui sotto x è il valore calcolato, n ed N sono due valori consecutivi di resistenza standard Codice:
if n<x<N then x=N else ![]() secondo voi, come si potrebbe fare?
__________________
Bob Pease, progettista natl semiconductor: "I really do like SOLDERING as my programming language." |
|
Status: Offline
|
|
| Justoverclock.com - Link Sponsorizzati |
|
|
|
|
#2 |
|
_Amo_la_Gnocca_
|
io te la dò una buona risp, ma poi nn ti lamentare..
![]() fai un bel database con dentro tutti i valori possibili delle resistenze, (saranno + di 100 immagino) , e poi fai una funzione che chiama il db e confronta.. se no un bell'algoritmo di ricerca sul db tipo bubblesort (se nn erro il nome) .. altrimenti un'approssimazione sul numero della resistenza.. dal tuo calcolo che il prog restituisci lo fai diventare un numero senza cifre sull'unità.. tipo : il prog calcola 463 --diventa--> 470 e così nn hai + i numeri all'unità della cifra.. ma penso sia una cazzata paura .. nn so se è fattibile, se in commercio ci sono resistenze da 100 a 1000 con passo 10 funziona..
__________________
Case Alternativo - X2 4200+ Toledo @ 2.8 GHz - Asus A8n SLI - Premium - G-Skill F1-4000 HZ DDR500 - SI-128 con Noctua 12-12 NF-S12-1200 ------ RAZER COPPERHEAD Tempest Blu
|
|
Status: Offline
|
|
|
|
#3 | |
|
Amministratore
|
si devi usare un arrotondamento più vicino al numero ottenuto.
in pratica se ti restituisce 463 lo fai arrotondare al più vicino numero in commercio. non so se vada bene la funzione Quote:
__________________
Thermaltake Armor Jr Black| Alimentatore Lc Power Arkangel 850W Modulare | Intel Core 2 Duo "Wolfdale" e8400@ 4005mhz 1.19v| Watercooling by Ybris A.C.S | Asus P5E x38 | 2x1GB OCZ Reaper DDR2 1066 | POW Geforce 8800GTX 768 MB GDDR3 | Maxtor 320GB SATA2 16mb cache + 500Gb Maxtor (esterno) 16mb cache usb 2.0 | Creative Audigy 2 ZS | Samsung 226bw 22" Widescreen Lcd | Windows Vista Ultimate 64bit + Xp per bench |
|
|
Status: Offline
|
|
|
|
#4 |
|
_Amo_la_Gnocca_
|
se nn trovi una funzione x arrotondare, falla tu.. dichiarandola nell'area class..
![]()
__________________
Case Alternativo - X2 4200+ Toledo @ 2.8 GHz - Asus A8n SLI - Premium - G-Skill F1-4000 HZ DDR500 - SI-128 con Noctua 12-12 NF-S12-1200 ------ RAZER COPPERHEAD Tempest Blu
|
|
Status: Offline
|
|
|
|
#5 | |
|
Amministratore
|
Quote:
ma alla fine mi sa dovrà fare per forza così, creala tu e il numero risultante sarà arrotondato al più vicino in commercio.
__________________
Thermaltake Armor Jr Black| Alimentatore Lc Power Arkangel 850W Modulare | Intel Core 2 Duo "Wolfdale" e8400@ 4005mhz 1.19v| Watercooling by Ybris A.C.S | Asus P5E x38 | 2x1GB OCZ Reaper DDR2 1066 | POW Geforce 8800GTX 768 MB GDDR3 | Maxtor 320GB SATA2 16mb cache + 500Gb Maxtor (esterno) 16mb cache usb 2.0 | Creative Audigy 2 ZS | Samsung 226bw 22" Widescreen Lcd | Windows Vista Ultimate 64bit + Xp per bench |
|
|
Status: Offline
|
|
|
|
#6 |
|
30Kvolt moderator
|
L'80% delle risposte che mi avete dato per me è ancora arabo.
come si crea una funzione che arrotondi al val. maggiore (è importante questo punto)? un esempio di codice non cce l'avete? thx
__________________
Bob Pease, progettista natl semiconductor: "I really do like SOLDERING as my programming language." |
|
Status: Offline
|
|
|
|
#7 | |
|
Amministratore
|
un esempio per farti capire (non c'entra molto magari con il tuo caso)
Il secondo parametro (Arrotondamento appunto) prevede il valore assoluto che si vuole come base di arrotondamento, quindi un eventuale valore di 10 NON indica che si vogliono dieci decimali ma semplicemente che si vuole arrotondare per 10. Quote:
__________________
Thermaltake Armor Jr Black| Alimentatore Lc Power Arkangel 850W Modulare | Intel Core 2 Duo "Wolfdale" e8400@ 4005mhz 1.19v| Watercooling by Ybris A.C.S | Asus P5E x38 | 2x1GB OCZ Reaper DDR2 1066 | POW Geforce 8800GTX 768 MB GDDR3 | Maxtor 320GB SATA2 16mb cache + 500Gb Maxtor (esterno) 16mb cache usb 2.0 | Creative Audigy 2 ZS | Samsung 226bw 22" Widescreen Lcd | Windows Vista Ultimate 64bit + Xp per bench |
|
|
Status: Offline
|
|
|
|
#8 |
|
_Amo_la_Gnocca_
|
azzo ma tu usi i double come noccioline ?
![]() lol.. cmq x matteo conviene sostituirli con un integer.. anche xè resistenze con valori così alti x i led nn penso che esistano.. ![]() x il resto ottima function !
__________________
Case Alternativo - X2 4200+ Toledo @ 2.8 GHz - Asus A8n SLI - Premium - G-Skill F1-4000 HZ DDR500 - SI-128 con Noctua 12-12 NF-S12-1200 ------ RAZER COPPERHEAD Tempest Blu
|
|
Status: Offline
|
|
![]() |
| Utenti attualmente attivi che stanno leggendo questa discussione: 1 (0 utenti e 1 visitatori) | |
| Strumenti Discussione | |
| Modalità Visualizzazione | |
|
|
| Sezioni del Sito | Justoverclock.com sponsored | |
|
|