A lezione abbiamo usato ipython tramite terminale e editor esterno (Notepad++), un altro modo di procedere è usare un ambiente integrato dove l’editor e la console dell’interprete girano nella stesso programma, uno molto bello e comodo è Spyder, installato sempre con WinPython. Provatelo. Un altro modo infine è tramite i notebook, in questo modo l’interprete gira per conto suo, e l’interfaccia è fornita dal browser che si connette all’interprete e permette cose come questa (uno degli esempi che fa vedere come tramite librerie aggiuntive Python è comparabile ad ambienti come Matlab o Mathematica):  SymPyNotebook, Matplotlib, etc.
Esercizi:

  1. Scrivere un programma Python che legge da input tre interi (a,b,c) e stampa il valore minimo e massimo.
  2. Scrivere un programma Python che valuta il polinomio:
    $$3x^5+2x^4-5x^3-x^2+7x-6$$
    in 100 punti distinti e equidistanti presi nell’intervallo $$[-1,1]$$
  3. Contare le operazioni di moltiplicazione che vengono eseguite nel programma sopra: considerate anche quelle svolte implicitamente dall’operatore di elevamento a potenza a**b, se usato.
  4. Adesso usando il metodo di Horner, sviluppare il polinomio sopra, come:
    $$((((3x + 2)x – 5)x – 1)x + 7)x – 6$$
    scrivere un programma che svolge la stessa operazione di sopra ma con questa espressione, calcolate il numero complessivo di moltiplicazioni, in questo caso, e confrontate.
  5. Dopo aver scritto un programma per il calcolo del massimo comune divisore, modificatelo, in modo che prenda come input due interi, il numeratore e denominatore di una frazione, e stampi la stessa frazione ridotta ai minimi termini.
  6. Scrivete un programma che svolge la seguente operazione, somma 0.1+0.1+0.1 e stampa “bene” se il risultato è 0.3 altrimenti stampa “molto strano”. Cosa accade? Preparatevi ad una sorpresa.
  7. Scrivete un programma che calcola l’espressione $$(1+1/k)^k$$ per k = 10,20,…1000. Cosa sta succedendo? (provate a sottrarre da quella quantità math.exp(1)). Quale risultato di analisi state sfruttando?

Codice visto a lezione:
[python]
import math
a = float(input("Inserisci a: "))
b = float(input("Inserisci b: "))
c = float(input("Inserisci c: "))
print("Equazione",a,"x^2 + ",b,"x + ",c)
delta = b**2-4*a*c
if (delta > 0):
print("Due Soluzioni distinte:",end=" ")
x1 = (-b + math.sqrt(delta)) / (2*a)
x2 = (-b – math.sqrt(delta)) / (2*a)
print(x1,x2)
elif (delta == 0):
x1 = (-b + math.sqrt(delta)) / (2*a)
print("Due soluzioni coincidenti: ",end="")
print(x1)
else:
print("Soluzioni Complesse")
print("Finito")
[/python]
Cicli while
[python]
# questo e’ un commento
# Iterazione (Ciclo) governato da un contatore.
i = 0
while i < 10:
print("ciclo %d" % i)
i = i + 1
[/python]
Verifica il funzionamento usando i pulsanti sotto:

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *