Ordinamento vettore di interi

di il
22 risposte

22 Risposte - Pagina 2

  • Re: Ordinamento vettore di interi

    Enrichetto ha scritto:


    Ovviamente conosco la rappresentazione in complemento a 2
    Beh, mi sembrava strano che non pensassi a controllare dato che si trattava di valori negativi.
    non avevo pensato di osservare quel valore in hex.
    In hex per comodità, ma la questione è uguale in decimale ...

    Prego ...
  • Re: Ordinamento vettore di interi

    Ultimo dubbio sull'argomento: come faccio a capire se ho raggiunto la fine del vettore di interi?
    So che la fine di un vettore di char è data dallo 0 (o 32 in ascii), ma nel caso di un vettore di interi se faccio un confronto con lo zero e il vettore contiene uno zero lo prenderà come fine vettore.
    cmp dword ptr[eax+esi*4],0
    Cosa va messo al posto dello 0?

    Grazie ancora per la disponibilità e pazienza
  • Re: Ordinamento vettore di interi

    La fine dei dati validi è data da un valore usato convenzionalmente. Per i char non è detto che sia 0 (che fra l'altro non è 32 ma proprio 0 binario).

    Per un vettore di interi puoi deciderlo tu altrimenti indichi la lunghezza come mi pare tu abbia fatto.
  • Re: Ordinamento vettore di interi

    oregon ha scritto:


    Per un vettore di interi puoi deciderlo tu altrimenti indichi la lunghezza come mi pare tu abbia fatto.
    Ok quindi in un modo o nell'altro devo saperlo già prima.

    Quindi analogamente, in assembly, non potrò mai sapere se un vettore di interi è vuoto, giusto? (Intendo passando come argomento solo il vettore e quindi senza conoscerne la lunghezza o il valore del terminatore)
  • Re: Ordinamento vettore di interi

    No non puoi saperlo dal vettore. Devi conoscere la lunghezza o il valore del cosiddetto "tappo"
  • Re: Ordinamento vettore di interi

    Se vuoi, puoi fare un passetto in piu' oltre a quanto descritto da @oregon:

    DEVI SEMPRE SAPERE quale e' la lunghezza del vettore. SEMPRE!

    Il valore tappo EVENTUALMENTE, serve per FERMARSI PRIMA DI ARRIVARE ALLA FINE.

    Quando scandisci il vettore, DEVI SEMPRE CONTROLLARE di non andare oltre la fine del vettore.

    IN AGGIUNTA, puoi controllare se, durante la scansione, non incontri il valore tappo, nel qual caso ti fermi prima.

    Ovviamente quel "SEMPRE" non e' assoluto, ma, almeno fino a che non si diventa sufficientemente smaliziati, conviene prenderlo come come regola aurea
  • Re: Ordinamento vettore di interi

    Ma allora alcuni linguaggi di alto livello come fanno a conoscere la lunghezza di un vettore (tramite funzioni del tipo vettore.lenght(); ) ?
    Mettono automaticamente un tappo oppure guardano la definizione del vettore (es. vettore[5]={...} -> leggono valore 5 o in alternativa vettore[]={4,2,0,1} contano i valori immessi) ?
  • Re: Ordinamento vettore di interi

    Se parli di una classe, la lunghezza è una sua proprietà conservata al suo interno.

    Non puoi sapere quanti elementi ha il vettore, te lo ripeto.
Devi accedere o registrarti per scrivere nel forum
22 risposte