Non-corso Python Esercizi un po' piu' complessi

Da raspibo.
Versione del 13 ott 2014 alle 18:22 di Renzo (discussione | contributi) (Creata pagina con '==1== 1. Scrivere un programma che verifichi se la stringa data in input e' palindroma (i.e. se letta da sinistra a destra o da destra a sinistra risulta la stessa stringa es....')
(diff) ← Versione meno recente | Versione attuale (diff) | Versione più recente → (diff)
Jump to navigation Jump to search

1

1. Scrivere un programma che verifichi se la stringa data in input e' palindroma (i.e. se letta da sinistra a destra o da destra a sinistra risulta la stessa stringa es. 'anna')

2

2. Scrivere un programma che presa in input una stringa metta in output il codice morse del testo inserito. Es. "renzo" diventa "._. .. _. __.. ___" Estensione (un po' piu' difficile!), scrivere un programma che faccia l'operazione inversa: preso in input il morse mostri la stringa corrispondente.

3

3. Scrivere un programma che dato n e m fornisca in output il valore del coefficiente binomiale n su m (quello del triangolo di Tartaglia).

4

4. Scrivere un programma che prese in input un numero imprecisato di stringhe ponga in output la statistica della frequenza delle lettere che compaiono (cioe' quale e' la frequenza della 'a', della 'b' etc.) Il conteggio deve aver luogo senza tenere in considerazione se le lettere sono maiuscole o minuscole.

5

5. Scrivere un programma che risolva equazioni di secondo grado, controllando i casi che si vengono a creare a seconda del valore del Delta. (estensione: fornire anche le soluzioni complesse coniugate in caso di Delta negativo)

6

6. Scrivere un programma che calcoli la differenza in giorni fra due date del presente anno (estensione: generalizzare alla differenza fra date arbitrarie... del calendario Gregoriano)

7

7. Scrivere una funzione che calcoli il prodotto scalare fra vettori e un programma che ne provi il funzionamento.

8

8. Scrivere un programma che prenda in input n stringhe della stessa lunghezza e ponga in output l'output trasposto: la prima riga deve essere composta dai primi caratteri di tutte le stringhe, la seconda riga contiene tutti i secondi caratteri delle stringhe e cosi' via. (estensione: se le stringhe in input hanno lunghezza diversa, portarle tutte ad avere la lunghezza di quella massima aggiungendo spazi in coda alle stringhe piu' corte).

9

9. Facendo uso della sola funzione _nand(x,y) cosi' definita: def _nand(x,y): return 0 if x and y else 1 implementare le funzioni _not, _and, _or, _xor

10

10. Scrivere le funzioni capaci di calcolare il minimo comune multiplo e il massimo comun divisore fra due numeri.

11

11. Scrivere una funzione che dato un numero restituisce vero/falso a seconda che il numero introdotto sia o meno un numero triangolare.

12

12. Scrivere una funzione che conti quante cifre occorrono per rappresentare il numero intero in base 10 (e.g. numdigit(12345) sia 5, numdigit(24) sia 2).

13

13. Scrivere una funzione che preso in input un numero e una base converta il numero in quella base (es. 10 in base 3 e' 31, 3 volte 3**1 + 1. 93 in base 3 e' 312)

14

14. Scrivere una funzione che data una stringa, elimini da essa tutte le vocali. es novowels("Bologna e' turrita") -> "Blgn ' trrt"

15

15. Scrivere una funzione che faccia la somma fra vettori (i vettori siano memorizzati come liste). (Estensione: fare una seconda funzione che sommi matrici) (Altra estensione, se le matrici o i vettori non hanno la stessa dimensione interpretare tutti i valori mancanti come zeri).

16

16. Scrivere una funzione che dato un valore ed una lista di valori ordinati in modo non decrescente inserisca il nuovo elemento nella lista mantenendola ordinata. es: ninsert(10,[1,3,4,5,15,22])->[1,3,4,5,10,15,22])

17

17. Scrivere una funzione che data una tupla, fornisca in output una lista di tuple che comprenda tutte le possibili rotazioni della tupla stessa, es. rott((1,2,3,4))->[(1,2,3,4),(2,3,4,1),(3,4,1,2),(4,1,2,3)]

18

18. Scrivere un programma che prese in input una sequenza imprecisata di coppie di valori che rappresentano ascissa e ordinata di punti in un piano, stampi la coppia che ha distanza minima.

19

19. Scrivere una funzione che (senza usare la eval!) faccia semplici calcoli numerici. In input riceve un solo parametro: una stringa contenente 2 numeri e, fra loro, un simbolo di operazione che puo' essere '+' '-' '*' o '/'. Il risultato (intero) della operazione deve essere il valore di ritorno. (es di input "23 + 44" oppure "55 / 3" o ancora "400 - 123" Estensione: scrivere il programma in modo che gli spazi fra i numeri e i simboli di operazione possano essere omessi).

20

20. Scrivere una funzione che fonda (merge) due liste ordinate. La lista in output deve contenere tutti gli elementi di entrambe le liste, essere ordinata (scrivere l'algoritmo di fusione, non usare sort o altre funzioni gia' presenti) merge([1,3,5],[0,2,4,42])->[0,1,2,3,4,5,42]

21

21. Scrivere un programma che prenda in input stringhe contenenti ognuna un numero imprecisato di numeri. L'input termina quando viene inserita una stringa vuota. A quel punto i numeri devono essere posti in output correttamente incolonnati in modo da utilizzare il numero minimo di caratteri necessari (ogni colonna deve essere esattamente in grado di ospitare il numeri piu' grande, i.e. quello composto da piu' cifre) Input

1 12 333 1 3 44 1
555 22 3 3 3
24 1234 23 3 33 555

Output:

  1   12 333 1  3  44 1
555   22   3 3  3
 24 1234  23 3 33 555