UNITÀ FORMATIVA: Programmazione Python
DOCENTE: Massimo PAPA
Primi esercizi sulle funzioni
Indicazioni sulla consegna
Implementare gli algoritmi risolutivi dei seguenti esercizi codificandoli in linguaggio Python. Partire analizzando il problema seguendo la seguente traccia:
- Quali sono gli input del problema?
- Quali sono gli output?
- Suddividi il problema in problemi più semplici e se lo ritieni opportuno descrivi la soluzione di ogni sottoproblema con un flow-chart
- Andrai a rappresentare ogni algoritmo che risolve un sottoproblema come una funzione
- La funzione restituisce un valore? Se si di che tipo?
- Ogni funzione accetta una lista di parametri formali? Se si di che tipo?
- Esegui la codifica partendo dal programma principale, al suo interno vai a richiamare le funzioni che poi andrai successivamente a definire.
- Continua la codifica dichiarando e definendo tutte le funzioni prima del programma principale che richiama tutte le altre. In testa alle funzioni scrivi un commento che descrive la funzione stessa , cosa restituisce e quali sono i parametri formali.
- Scrivi la sezione dell’inizializzazione variabili scrivendo in un commento il significa della variabile stessa
- Verifica la codifica utilizzando input di test, cercando di provare anche i casi limite.
Attenzione: non utilizzare strutture complesse in nessuno dei seguenti esercizi.
Struttura del codice sorgente
Relativamente alle indicazioni di scrittura del codice, utilizza il seguente schema generale:
'''
Autore: Nome Cognome
Data: gg/mm/aaaa
Titolo: Testo esercizio
'''
##
## Funzioni:
##
def fun(param1: int, param2: float) -> int:
'''
Funzione: fun
Template per costruire le funzioni
Parametri formali:
int param1 -> descrizione param1
float param2 -> descrizione param2
Valore di ritorno:
int -> descrizione valore di ritorno
'''
ret_value = 5 # Valore di ritorno della funzione
return ret_value
'''
Programma principale
Descrizione sintetica funzionalità
del programma principale.
'''
# Sezione di input Dati
# Inizializzazioni variabili
# Elaborazione
# Eventuali sotto processi di Elaborazione
# Sezione di output
Testo Esercizi
Primo Esercizio
Creare una funzione che riceva una quantità di tempo in formato ore, minuti e secondi e la restituisca espressa solamente in secondi. Successivamente creare un programma principale che chieda in input due quantità di tempo e stampi in output quale quantità di tempo è maggiore. La funzione deve avere i parametri formali con valori predefiniti.
Secondo Esercizio
Creare una funzione che abbia come parametri formali un numero arbitrario di valori numerici. Si vuole che restituisca la somma dei soli numeri pari e il prodotto dei soli numeri dispari. Successivamente creare un programma che richiami tale funzione e che stampi in output i risultati. No standard input.
Terzo Esercizio
Conversione temperatura: implementare una funzione convertiCF che converta una temperatura espressa in gradi Fahrenheit in una temperatura espressa in gradi Celsius. Usare la seguente formula:
C = (F - 32) * 5 / 9
Creare un programma principale che richiami la funzione e ne stampi il risultato visualizzando solo 3 cifre decimali.
Quarto Esercizio
La seguente è la formula per valutare numericamente il numero di Nepero e:
(1)
4.a Scrivere una funzione che restituisca un valore approssimato di e all'ennesimo termine, dove N è inserito come parametro formale alla funzione.
Esempio: calcola_e(3) restituirà il valore di e calcolato con tre termini della (1), cioè:
e = 1/0! + 1/1! + 1/2! = 1 + 1 + 0.5 = 2.5
La funzione calcola_e deve richiamare la funzione di calcolo del fattoriale.
Scrivere il codice della funzione e il programma principale che la chiama chiedendo in input il numero N.
4.b Supponendo di porre il numero di Nepero = 2.718281828459045 dico che:
errore = calcola_e(N) - Nepero
sia l'errore che commetto nella valutazione di e.
Modificare la funzione che restituisce la valutazione di e con N termini andando a far restituire anche l'errore commesso nella valutazione.
Suggerimento: la funzione calcola_e(N) dovrà restituire due valori, 2.718281828459045 potrebbe essere memorizzato in una variabile globale.
Esempio: valuta_e(3) restituisce il valore calcolato nel punto 4.a (2.5) e 0.218281828459045 che rappresenta la differenza tra 2.718281828459045 e 2.5.
