Laboratorio di Programmazione e Calcolo

Laboratorio di Programmazione e Calcolo
Corso M. Falcone - A.A. 2006/07
Foglio di Esercizi n.1: Calcolo combinatorio, cicli e alternative .
1. Fattoriale
Scrivere un programma che dato n intero non negativo calcoli il fattoriale
n!.
2. Scrivere un programma che, dati in input due interi positivi n e k con
k ≤ n, calcoli il coefficiente binomiale
n
k
=
n!
k!(n − k)!
3. Utilizzando l’Esercizio 1 scrivere un programma che calcoli una approssimazione del numero di Nepero troncando la somma nella formula
e=
∞
X
1
k!
k=0
.
4. Unione e intersezione
Scrivere un programma per il calcolo dell’unione e l’intersezione:
(a) di due insiemi con un numero finito di elementi;
(b) di n insiemi (con n = 3, 4, 5).
5. Classi resto modulo k.
Scrivere un programma che :
a) determini se un numero n ∈ IN è divisibile per m ∈ IN;
b) calcoli il resto (eventuale) della divisione del punto (a);
c) raggruppi i primi 100 interi secondo le classi resto modulo k (intero positivo).
6. L’agenda di Eta Beta.
Eta Beta è molto distratto e dimentica sempre i suoi appuntamenti, ma
ora ha deciso di cambiare. Vuole scrivere un programma per la sua agenda
elettronica che gli permetta di sapere cosa deve fare all’ora x del giorno g
1
e che gli faccia vedere il piano delle sue attivita’ del giorno g. Aiutatelo a
scrivere il programma cominciando dal mese di Dicembre. I suoi impegni a
Dicembre sono i seguenti:
Analisi Matematica: lun, mer, ven 9-11;
Geometria: lun, mar, gio 11-13;
Laboratorio: mar, gio 9-11 e ven 11-13 e 15-17;
Pallavolo: mar e gio 19-20;
Lezione di xilofono: merc 17-19;
Inoltre, il 6 alle 20 andrà a cena con gli amici ”da Naftalina” ed è stato
invitato a cena da Archimede il 17 alle 21 per la sua festa di compleanno.
Le vacanze di Natale iniziano il 23.
7. Permutazioni.
Scrivere un programma che data una parola di n lettere:
(a) scambi la lettera di posto i con la lettera di posto k;
(b) operi tutte le permutazioni possibili, le conti e le scriva sul video.
Testare il programma per n ≤ 5.
8. Cambiamenti di base.
Scrivere un programma che:
a) dato n ∈ IN calcoli la sua rappresentazione in base B con B = 2, 3, 5, 8;
b) data una base B e un numero scritto in quella base lo converta in base
10;
c) estendere il programma per convertire un numero in base B1 in un numero
in base B2.
9. Colpo alla banca centrale.
Una banda di ladri vuole svaligiare la cassaforte principale di una banca.
Per aprirla ci vuole la giusta combinazione composta da quattro cifre, a due
a due distinte. Ma attenzione hanno solo un numero limitato n di tentativi
dopo il quale scatta l’allarme nella centrale di polizia. Sarebbe tutto più
facile avendo un programma che li aiuti a trovare la giusta combinazione!
Suggerimenti:
1. generare in modo casuale (random) 4 interi a due a due distinti (la
combinazione);
2. inserire 4 interi, confrontare con la combinazione e mandare in output:
O=numero giusto al posto sbagliato
X=numero giusto al posto giusto
3. se non si è aperta mandare a video ”RIPROVA” e se hai raggiunto il
numero massimo di prove consentite ” !! ALLARME !! : IL COLPO E’
FALLITO ”
2