Fondamenti di Programmazione a.a. 2009-2010 (canale E-O)

Docente: Riccardo Silvestri
Esercitatore: Paul Wollan

Laboratorio di mercoledì 28 ottobre 2009

  1. Scrivere una funzione, long long mcd(long long x, long long y), che calcola il massimo comun divisore di x e y tramite l'algoritmo di Euclide. Confrontare tale funzione con una implementazione più diretta (ma anche molto meno efficiente):
      long long mcd2(long long x, long long y) {
          long long d = x;
          if (d > y) d = y;
          while (d > 1 && ((x % d) != 0 || (y % d) != 0))
              d--;
          return d;
      }
    
    Usare la funzione rand() per generare input pseudo-casuali per le due funzioni. Si potrebbe usare la funzione clock() in time.h per misurare i tempi di calcolo.

  2. Scrivere un programma che legge n interi e li stampa ordinati in senso crescente. Usare una funzione per ordinare il vettore di interi in cui sono memorizzati gli interi letti dall'input. Si può usare una delle funzioni viste a lezione: selectionsort() o bubblesort().

  3. Scrivere un programma che legge n interi e stampa tutti quelli che si ripetono almeno due volte e per ognuno di essi il numero di volte che si ripete. Ad esempio, se gli interi in input sono 2, 4, 2, 5, 3, 2, 4, il programma stampa:
     2: 3
     4: 2
    
    Ordinare gli interi in input tramite un funzione che ordina un vettore di interi.
Topic revision: r1 - 2009-10-29 - RiccardoSilvestri






 
Questo sito usa cookies, usandolo ne accettate la presenza. (CookiePolicy)
Torna al Dipartimento di Informatica
This site is powered by the TWiki collaboration platform Powered by PerlCopyright © 2008-2024 by the contributing authors. All material on this collaboration platform is the property of the contributing authors.
Ideas, requests, problems regarding TWiki? Send feedback