Salta al contenuto
Massimo Papa

È più facile spezzare un atomo che un pregiudizio.

— Albert Einistein

UNITÀ FORMATIVA: Programmazione Python

DOCENTE: Massimo PAPA

Primi esercizi sulle funzioni

Indicazioni sulla consegna

Struttura del codice sorgente

Testo Esercizi

Primo Esercizio

Secondo Esercizio

Terzo Esercizio

Quarto Esercizio

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.