Corso di Programmazione 1

Corso di Programmazione 1
Dott.ssa Chiara Petrioli/Dott. Ivano Salvo/ Dott. Michele Mastrogiovanni
Homework 2
consegna: 6/11/2005
Anno Accademico 2006-07
Esercizio 1 Due array A e B di uguale lunghezza n sono identici se hanno gli stessi
elementi nelle stesse posizioni. Quindi l’array {1, 1, 3} è identico all’array {1, 1, 3},
ma non all’array {1, 3, 1}
Scrivere un programma che verifica se due array di interi sono identici.
INPUT: numero n degli elementi dei due array e successivamente i 2n interi elementi
dei due array
OUTPUT: 1 sei due array sono identici, 0 altrimenti.
Esercizio 2 Due array A e B, di lunghezza rispettivamente n e m sono simili se
contengono gli stessi elementi. Attenzione che l’array {1, 1, 3} è simile all’array {1,
3, 1}, ma anche all’array {3, 3, 3, 1}, ma non all’array {1, 2, 3}
Scrivere un programma che verifica se due array di interi sono simili.
INPUT: numero n degli elementi del primo array, successivamente i suoi n, poi la
lunghezza m del secondo array e successivamente i suoi m elementi.
OUTPUT: 1 sei due array sono simili, 0 altrimenti.
Esercizio 3 Dati due array A e B di uguale lunghezza, A è permutazione di B, se
contiene esattamente gli stessi elementi B, non necessariamente nelle stesse posizioni
(eventuali elementi ripetuti devono avere lo stesso numero di occorrenze in entrambi
gli array).
Attenzione quindi che l’array {1, 1, 3} è permutazione dell’array {1, 3, 1}, ma non
dell’array {3, 3, 1}.
Scrivere un programma che verifica se due array di interi sono tra loro permutazioni.
INPUT: numero n degli elementi dei due array e successivamente i 2n elementi gli
elementi dei due array
OUTPUT: 1 sei due array sono uno la permutazione dell’altro e 0 altrimenti.
1
Esercizio 4 (Crivello di Eratostene) I numeri primi si definiscono in matematica come quei numeri naturali che sono divisibili solo per 1 e per se stessi. Esiste
un antichissimo metodo (forse uno dei primi algoritmi di cui si abbia conoscenza) per
generare tutti i numeri primi da 1 ad n, noto come Crivello di Eratostene, che risale
al III secolo avanti Cristo: si scrivono tutti i numeri naturali da 1 a n. Si comincia
da 2 e si cancellano tutti i suoi multipli (4,6,8,10, ...). Si prende il prossimo numero
non cancellato, il 3, e si cancellano tutti i suoi multipli (6,9,12,15, ...). A questo
punto il primo numero non cancellato è il 5 e si cancellano i suoi multipli, e cosı̀ via.
Alla fine, seguendo questo procedimento, i numeri non cancellati sono tutti i numeri
primi tra 1 e n. (quando ci si pu fermare?).
Voi dovrete semplicemente scrivere un programma che legge un intero n e produce
la tabella dei numeri primi da 1 a n. [Suggerimento usare un array (dimensione
massima 1000), inizializzare tutti i suoi elementi a 1; poi applicare l’algortimo di Eratostene, dove cancellare il numero i, significa porre a 0 l’i-esimo elemento dell’array.
Stampare l’indice degli elementi dell’array rimasti uguali a 1].
Esercizio 5 (Triangolo di Tartaglia) Ricordiamo al lettore il triangolo di
Tartaglia1 :
1
1
1
1
1
1
...
1
2 1
3 3 1
4 6 4 1
5 10 10 5 1
Osservate che l’elemento k-esimo di una riga si ottiene sommando gli elementi k − 1
e k della riga precedente (supporre che i numeri sopra scritti siano circondati da
zeri!). Scrivere un programma che ricevuto in input un numero naturale n, stampa
in output l’n-esima riga del triangolo di Tartaglia. Considerare la riga che contiene
solo 1 come la 0-esima, quella con 11 la prima e cosı̀ via.
1
chiamato di Pascal in Francia e di Newton in Inghilterra.
2