Fondamenti di Programmazione a.a. 2009-2010 (canale E-O)
Docente: Riccardo Silvestri
Esercitatore: Paul Wollan
Laboratorio di mercoledì 28 ottobre 2009
- 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.
- 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()
.
- 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.
This topic: Programmazione1
> WebHome >
FP_EO >
FPdiario0910 > FPlab281009
Topic revision: r1 - 2009-10-29 - RiccardoSilvestri