Visualizzazione dei risultati da 1 a 7 su 7
  1. #1
    Utente di HTML.it
    Registrato dal
    Nov 2005
    Messaggi
    47

    problema di array

    Ho un ciclo for next (ciclo 1) entro il quale assegno ad un array monodimensionale il risultato di un calcolo. I valori (li ho verificati inserendoli in una listbox nello stesso ciclo, sono corretti) sono una sequenza di numeri (5 – 5.5 – 6 – 6.5 – 7 – 7.5 ecc)

    Se, per ragione di un a successiva manipolazione riutilizzo subito dopo lo stesso ciclo i valori sono sballati (5.5 – 5.5 – 6 – 7.5 – 7.5 – 7.5 – 8 – 9.5 – 9.5 – 9.5 etc) Dei valori si ripetono ed altri mancano. Ciò malgrado l'indice riparta da zero ed il valore di azm_index sia rimasto immutato.

    Non mettetevi a ridere ma non riesco a trovare il bandolo della matassa. C’è qualcuno che mi può dare una mano? Grazie
    --------------
    Dim indice as double
    Dim azm_index as integer

    Ora_inizio=5
    Azm_index = 15

    Dim orex(azm_index)

    For indice = 0 To azm_index Step (0.5)
    orex(indice) = indice + ora_inizio
    'ListBox1.Items.Add(orex(indice))
    Next

    For indice = 0 To azm_index Step (0.5)
    ListBox1.Items.Add(orex(indice))
    …….
    Next

  2. #2
    Moderatore di Programmazione L'avatar di alka
    Registrato dal
    Oct 2001
    residenza
    Reggio Emilia
    Messaggi
    24,466

    Moderazione

    Qual è il linguaggio di riferimento? E' obbligatorio indicarlo nel titolo, come da Regolamento.
    MARCO BREVEGLIERI
    Software and Web Developer, Teacher and Consultant

    Home | Blog | Delphi Podcast | Twitch | Altro...

  3. #3
    Utente di HTML.it
    Registrato dal
    Nov 2005
    Messaggi
    47
    chiedo scusa, stò usando vb 2005 express edition

  4. #4
    Moderatore di Programmazione L'avatar di alka
    Registrato dal
    Oct 2001
    residenza
    Reggio Emilia
    Messaggi
    24,466

    Re: problema di array

    Originariamente inviato da harlekin
    Se, per ragione di un a successiva manipolazione riutilizzo subito dopo lo stesso ciclo i valori sono sballati (5.5 – 5.5 – 6 – 7.5 – 7.5 – 7.5 – 8 – 9.5 – 9.5 – 9.5 etc) Dei valori si ripetono ed altri mancano. Ciò malgrado l'indice riparta da zero ed il valore di azm_index sia rimasto immutato. [...]
    For indice = 0 To azm_index Step (0.5)
    orex(indice) = indice + ora_inizio
    'ListBox1.Items.Add(orex(indice))
    Next

    For indice = 0 To azm_index Step (0.5)
    ListBox1.Items.Add(orex(indice))
    …….
    Next
    Mi verrebbe da chiederti perché usi un passo di 0.5 per incrementare l'indice posizionale degli elementi...
    MARCO BREVEGLIERI
    Software and Web Developer, Teacher and Consultant

    Home | Blog | Delphi Podcast | Twitch | Altro...

  5. #5
    Utente di HTML.it
    Registrato dal
    Nov 2005
    Messaggi
    47
    Molto semplice quei valori rappresentano ore e mezze ore che devono essere date in pasto ad un algoritmo (che con un singolo valore di ora, data, e coordinate geografiche, già funziona) che mi produce gli azimuth si sole corrispondenti alle ore e alle mezze ore di un particolare giorno. L'array viene successivamente utilizzato per due scopi. Stampare una tabella con i relativi dati e successivamente stampare su un foglio di carta un disco con le righe, che si dipartono dal centro, e che rappresentano gli azimuth di sole. Gli azimuth sul disco di carta , che serve per l'uso di una bussola solare che si usa prevalentemente nel deserto, dovrebbero essere tracciati a mano. Questo programma renderebbe il lavoro molto più spedito e permetterebbe di creare dischi per più date diverse con poco dispendio di tempo.

  6. #6
    Moderatore di Programmazione L'avatar di alka
    Registrato dal
    Oct 2001
    residenza
    Reggio Emilia
    Messaggi
    24,466
    Originariamente inviato da harlekin
    Molto semplice quei valori rappresentano ore e mezze ore che devono essere date in pasto ad un algoritmo (che con un singolo valore di ora, data, e coordinate geografiche, già funziona) che mi produce gli azimuth si sole corrispondenti alle ore e alle mezze ore di un particolare giorno. L'array viene successivamente utilizzato per due scopi. Stampare una tabella con i relativi dati e successivamente stampare su un foglio di carta un disco con le righe, che si dipartono dal centro, e che rappresentano gli azimuth di sole. Gli azimuth sul disco di carta , che serve per l'uso di una bussola solare che si usa prevalentemente nel deserto, dovrebbero essere tracciati a mano. Questo programma renderebbe il lavoro molto più spedito e permetterebbe di creare dischi per più date diverse con poco dispendio di tempo.
    Dal mio punto di vista, è errato l'approccio che hai seguito.

    Gli elementi di un array sono indicizzati da un valore intero, quindi puoi indirizzarli con valori tipo 0, 1, 2, 3, ... ma non con valori intermedi, come 0.5, 1.5 e così via.

    Se devi legare più dati assieme, pur continuando ad usare un array, metti i dati correlati in una struttura e crea un vettore di queste strutture dove, per ciascun indice, esista un elemento che contenga il primo valore e il valore correlato.

    Non puoi indirizzare una quantità finita e basata su interi con un valore decimale.
    MARCO BREVEGLIERI
    Software and Web Developer, Teacher and Consultant

    Home | Blog | Delphi Podcast | Twitch | Altro...

  7. #7
    Utente di HTML.it
    Registrato dal
    Nov 2005
    Messaggi
    47
    ok grazie, mi studio un approccio diverso!! Mi sono reso conto che la natura del problema stà proprio in quello "step 0.5"

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.