Esercizi alternativi 15 maggio (per soddisfare la richiesta di esercizi in ambito economico)

Da aptiva.

1

Scrivere una funzione con due parametri:

 montante(capitale,listatassi)

dove "capitale" e' un intero rappresentante una somma di denaro, in euro, "listatassi" e' una lista di float che rappresentano tassi di interesse, si calcoli il montante che si ottiene applicando al capitale il primo tasso di interesse della lista per il primo anno, il secondo tasso per il secondo anno e cosi' via fino a completamento della lista es: montante(100,[10,12,14]) deve restituire 184.8(si puo' realizzare anche con una funzione ricorsiva) Svolto da Carmela (io però con i tassi dell'esempio ottengo un montante di 140.448) (rd 2.06: sono corretti sia lo svolgimento dell'esercizio, sia il montante 140.448, devo aver trascritto qualche dato errato nell'esempio del testo.)

def montante (somma,tassi,indice):
    interessi=somma*tassi[indice]/100
    somma+=interessi
    indice+=1
    if indice<len(tassi):
        somma=montante(somma,tassi,indice)
    return somma

listatassi=[]
tasso=1
while tasso>0:
    tasso=int(input("Inserisci un tasso o scrivi 0 per terminare: "))
    if tasso!=0:
        listatassi.append(tasso)

capitale=100
capitale=montante(capitale,listatassi,0)
print ("Il montante è ",capitale)

2

Scrivere una funzione che presa in input una lista di tuple che possono essere del tipo:

 descrizione,quantita',prezzo

oppure

 descrizione,quantita',prezzo,sconto

calcoli e stampi (il corpo della) la fattura calcolando l'IVA al 22%. Il valore di ritorno della funzione deve essere il totale della fattura. Tutti i valori monetari devono essere arrotondati alla seconda cifra decimale. Es.

fattura([('mele',10,1.2),('pere',5,1.4,10),('patate',2.2,0.5))
output:
descrizione       quantita'   prezzo     sconto    totale
mele                10.000     1.20        0%       12.00
pere                 5.000     1.40       10%        6.30
patate               2.200     0.50        0%        1.10
                                                 --------
Imponibile                                          19.40
IVA 22%                                              4.27
                                                 --------
Totale Fattura                                      23.67
Il valore di ritorno e' 23.67

Arianna M. Fiumefreddo (con l'aiuto di Runa)

def fattura(descr, prezzo, sconto, quantita):
   sc = float(sconto)/100
   if sc:
      totale = float(prezzo)* float(quantita)*sc
   else:
      totale = float(prezzo)* float(quantita)    
   print descr, "\t\t", quantita, "\t", sconto, "\t", prezzo,  "\t", totale
   return totale

elementi = []
print "Inserite i valori descrizione, prz, sconto, q.ta separati da spazi\nL'invio conclude l'inserimento"
stringa = raw_input()

while stringa:
   elemento=stringa.split()
   elementi.append(elemento)
   stringa = raw_input()
   
print "Descrizione\tQuantita\tSconto\tPrezzo\tTotale"

imponibile = 0
for ognielemento in range(len(elementi)):
   imponibile += fattura (elementi[ognielemento][0], elementi[ognielemento][1], elementi[ognielemento][2], elementi[ognielemento][3] )
print "\t\t---------------------------------------------------"
iva = imponibile*0.22
tot_fatt = iva + imponibile

print "Imponibile\t\t", imponibile, "\nIva 22%\t\t\t", iva, "\n\t\t---------------------------------------------------", "\nTotale fattura\t\t", tot_fatt

3

Utilizzare un dizionario Python come inventario di magazzino. Ogni elemento associa al codice dell'articolo, usato come chiave, una coppia (tupla di due elementi) contenente la descrizione dell'articolo e la giacenza. es.

 
magazzino={
  '010203':('viti autofilettanti 3x5mm',100),
  '010204':('bulloni 5x7mm',50),
  '020201':('dadi 5mm',0)
}

Scrivere due funzioni:

 carico(articoli)
 scarico(articoli)

la funzione carico prende come parametro una lista di coppie codice-quantita'. Le quantita' devono essere sommate alla giacenza di magazzino. Durante l'elaborazione la funzione deve stampare un report dell'operazione. La funzione non ha valore di ritorno. Es:

 carico([('020201',40),('010204',10)])

deve stampare qualcosa come:

Carico di Magazzino:
Codice Descrizione             Quantita' Nuova Giacenza
020201 dadi 5mm                   40          40
010204 bulloni 5x7mm              10          60

La funzione scarico prende come parametro una lista di coppie codice-quantita' Ovviamente non e' possibile scaricare dal magazzino una quantita' superiore alla giacenza. La funzione deve stampare un report dell'operazione e restituire come valore di ritorno una lista codice-quantita' che riporta le quantita' effettivamente scaricate dal magazzino. Le giacenze devono essere aggiornate di conseguenza. Es (data la situzione dopo il carico dell'esempio precedente):

 scarico([('010203',40),('020201',50)])

ha come valore di ritorno

 [('010203',40),('020201',40)]

e deve stampare qualcosa di simile a:

Scarico di Magazzino:
Codice Descrizione             Quantita' Quantita'
                               Richiesta Consegnata
010203 viti autofilettanti 3x5mm  40          40
020201 dadi 5mm                   50          40
Strumenti personali
Namespace

Varianti
Azioni
Navigazione
Strumenti