Page 512 - Informatica dalla A a Z
P. 512

#define N 5



                 int main(int argc, char *argv[])
                 {
                     int a[N]={3, 4, 1, 5, 2};
                     int i, j, temp;
                     for(i=1; i<N; i++)
                     {
                            for(j=0; j<N-i; j++)
                             {
                                  if(a[j]>a[j+1])
                                  {
                                         temp = a[j];
                                         a[j] = a[j+1];
                                         a[j+1] = temp;
                                  } /* fine if */
                             } /* fine for j */
                     } /* fine for i */
                     for(i=0; i<N; i++)

                     {
                             printf(“%d”,a[i]);
                     }
                     printf(“\n”);
                 }
           Abbiamo ovviamente due cicli nidificati: il primo, quello con la i varia da 1 fino a  N-1; men-
           tre j confronta, sempre a coppie, tutti gli elementi, dal primo (indice j = 0) al penultimo, in

           quanto l’ultimo è già in posizione definitiva. La procedura continua così fino all’ordina-
           mento totale dell’array.

           Nota: L’invocazione della procedura equivale a un salto incondizionato, ma la procedura
           chiamata non conosce a priori dove riprendere l’esecuzione una volta terminata.
           L’istruzione RET, al termine della procedura, recupera il valore del PC per riprendere l’ese-
           cuzione del chiamante da dove è stato interrotto




                                                        Le Funzioni




           Per evitare la replicazione del codice, si utilizzano le “funzioni”.

                                                                                  !
           Esempio: programma per il calcolo delle combinazioni. Cn,k=
                                                                               !(−)!

              #include <iostream>
              using namespace std;

                                                            508
   507   508   509   510   511   512   513   514   515   516   517