Voce Inserito: 8 novembre 2002 Segnala Share Inserito: 8 novembre 2002 Aiuto Sono venuti alla luce tutti i miei limiti di programmatore.Devo ricercare tra 14 DW le due o tre che hanno il valore maggiore per poi poterle ulteriormente elaborare, qualcuno mi può consigliare un algoritmo adatto a questa situazione?Vi ringrazio anticipatamente.Voce Link al commento Condividi su altri siti More sharing options...
Dario Valeri Inserita: 8 novembre 2002 Segnala Share Inserita: 8 novembre 2002 ciaoin passato ho gia' fatto questo per i plc siemens (s7) per ordinaledelle quote che poi un posizionatore doveva seguire.dovevo mettere i valori scritti in un certo numero di word in ordine crescente. questa funzione , tra l'altro e' gia' presente nei plc omron!!io ho immaginato di confrontare fra di loro 2 word e di tenere la piu' alta , una volta giunto alla fine delle 14 word mettevo la rimanente in un altra area e la eliminavo da buffer originale. oripetevo cio' mettendo le word in successione nella nuova area di memoria.per rendere piu' semplice la realizzazione di cio' io ho fatto il programmino in visual basic , poi l'ho tradotto in algebra di boolciao da dario Link al commento Condividi su altri siti More sharing options...
rguaresc Inserita: 9 novembre 2002 Segnala Share Inserita: 9 novembre 2002 Quello sotto è un ordinamento per selezione. Si prende una posizione nel DB e si confronta il numero con tutti quelli sotto. Se il numero in posizione è maggiore o uguale lo si lascia, se è minore lo si scambia. Alla fine della prima passata nella posizione DW0 ci sarà il valore più grande, poi si incrementa la posizione.(Corretto sabato 9, ore 22:00).MW0 Puntatore della posizioneMW2 Puntatore per l’esame della lista sottostanteMW 6 temporaneo :A DB 10 ; apri il blocco dati :LKF +0 :T MW0 ; carica 0 nel puntatore della posizione ZERO :L MW 0 :I 1 :T MW2 ; confronterà con il successivo INIZ :B MW0 :L DW0 ; posizione in ACCU1 :B MW 2 :L DW0 ; posizione in ACCU2 e l’altro in ACCU1 :>F :SPB=UNO ; vanno bene così :B MW0 :L DW0 ; prepara lo scambio usando anche MW6 :T MW6 ;posizione in MW6 :B MW2 :L DW0 ;B MW0 :T DW0 ; maggiore in posizione :L MW6 :B MW2 :T DW0 ;e valore di posizione al suo postoUNO :L MW2 :I 1 :T MW2 ;incrementa il puntatore dell’altro :L KF+13 ; 0…13, 14 DW :<=F :SPB =INIZ ;e rifai fino alla fine della lista :L MW0 :I 1 :T MW0 ; incrementa posizione :L KF +11 :<=F :SPB =ZERO :BEAlla fine nel blocco DB10 i valori dovrebbero essere ordinati dal maggiore al minoreSalutiR.G. Link al commento Condividi su altri siti More sharing options...
Voce Inserita: 12 novembre 2002 Autore Segnala Share Inserita: 12 novembre 2002 Vi ringrazio per l'aiuto e per la disponibilità, grazie soprattutto per le righe di codice mi sono state utilissime.saluti Voce Link al commento Condividi su altri siti More sharing options...
Messaggi consigliati
Crea un account o accedi per commentare
Devi essere un utente per poter lasciare un commento
Crea un account
Registrati per un nuovo account nella nostra comunità. è facile!
Registra un nuovo accountAccedi
Hai già un account? Accedi qui.
Accedi ora