sam15 Inserito: 28 febbraio 2005 Segnala Inserito: 28 febbraio 2005 Si vorrebbe poter ordinare un array in ordine descrescente.Esiste una qualche funzione già integrata in Step 7 ?Grazie.Sam
STEU Inserita: 28 febbraio 2005 Segnala Inserita: 28 febbraio 2005 temo che non esistano sfb standard che ti ordinano un array, il sistema piu' elegante è utilizzare un algoritmo di ordinamento in SCL , e se non hai l' SCL non è difficile farlo in AWL , ma ti consiglio di non fare loop troppo lunghi per motivi di scansione.Ad ogni scan ordini solo i membri dell'aray contigui , quando sono tutti in ordine e quindi non effettui nessun scambio di membri setti un bit che significa array ordinato.
Matteo Montanari Inserita: 28 febbraio 2005 Segnala Inserita: 28 febbraio 2005 Si vorrebbe poter ordinare un array in ordine descrescentevorrai dire i dati presenti in un Array? o qualcosa di ancora diverso?Esiste una qualche funzione già integrata in Step 7 ?nelle librerie di sistema esistono varie funzioni per cercare dati, in base a specifiche richieste, dentro un area ben definita (tipo una tabella) (ho messo personalmente anche un esempio nella sezione up/download file).potresti partire dall'utilizzo di queste funzioni e crearti quella che fà al caso tuo.unica premessa necessaria, una buona conoscenza dei puntatori
jumpier Inserita: 28 febbraio 2005 Segnala Inserita: 28 febbraio 2005 Se cerchi sul forum "bubble sort" troverai questo Prova questo in S7Si scorre la lista dal primo DBW0 al penultimo e si confronta con la word sotto, se quella sotto e' minore si scambiano. Si devono fare tante passate quante sono le word meno 1 ad ogni passata la "bolla" leggera scavalca di un posto.Dati in DB19 a word, prepara tre INT: cont_1, cont_2, mem. AUF DB 19 // DB L 100 // 100 word in db 19 dalla DBW0 alla DBW198jum1: T #cont_1 // contatore esterno LAR1 P#DBX 0.0 L 99 // le 99 word sottojum2: T #cont_2 // contatore interno L DBW [AR1,P#0.0] // word sopra L DBW [AR1,P#2.0] // word sotto <=I // sopra <= sotto ? SPB jum3 T #mem // scambia, word sotto in mem L DBW [AR1,P#0.0] // word sopra... T DBW [AR1,P#2.0] //...sotto L #mem T DBW [AR1,P#0.0] // ..e viceversajum3: L P#2.0 +AR1 // incrementa di una word L #cont_2 LOOP jum2 // se non e' finita una passata.. L #cont_1 LOOP jum1 // finita una passataFacci sapere se fa al caso tuo
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