Python:

  • Installazione ambiente su Windows:
    • Scaricare WinPython, una distribuzione 3.4. o 3.5 (non cambia molto), versione a 32/64 a seconda della vostra versione di Windows. Attenzione: seguite l’asterisco se installate la 3.5, e scaricate il pacchetto indicato in fondo alla pagina del sito, per windows 7 o 8, se ci sono problemi scaricatelo anche se avete windows 10. (Redistributable C++ Runtime).
      Eseguire l’installazione e specificare come posizione C:\WinPython (non installate sulla cartella Downloads. Subito dopo l’installazione, seguite le indicazioni del sito sopra, andate nella cartella C:\WinPython e eseguite il “WinPython Control Panel” ed eseguite la registrazione, a quel punto avete nel menu di Windows i link alle applicazioni.
      Quando eseguite Jupyter, la cartella di lavoro sarà: C:\WinPython\notebooks. Esplorate i vari elementi del menu. In particolare: Jupyter, Spyder.
    • Installate Notepad++ da qui.
    • Create una cartella C:\programmazione o come volete chiamarla voi. Scaricate “Console2“. Potete cambiare la configurazione tramite i menu, per fare in modo che la console parta direttamente dentro la cartella di lavoro creata sopra. Nota: non potete eseguire python da console direttamente perche essa non troverà il comando, per farlo dovete prima eseguire c:\WinPython\script\env.bat, subito dopo potete eseguire ipython da console.
    • Se volete vedere cosa sia possibile fare con un linguaggio come Python, sopratutto in ambito scientifico, vi segnalo:
  • Installazione su Mac OS X (qualunque versione):
    1. Leggete prima questo. (Per fare la tilde ~ dovete premere Alt+5)
    2. Un editor che io uso regolarmente è TextMate.
    3. Installare HomeBrew. Potete comunque usare python da console, perche è già disponibile, ma attenzione è la versione 2.xx del linguaggio ed è in parte diversa dalla 3.xx (la print ad esempio non è una funzione e quindi non ha le parentesi attorno agli argomenti), vi consiglio di installare la 3, con “brew install python3”, poi potete installare tramite “pip3 install ipython” e “pip3 install jupyter[all]” il resto, attenti a scrivere correttamente pip3 e non pip.
    4. Il compilatore C è già disponibile come vedremo. Guardatevi quando avete fatto, gli esempi dai link sopra.
  • Installazione su Linux: usate il gestore di pacchetti della vostra distribuzione.

Radice Quadrata:
[python light=”false” title=”radice.py” highlight=”22″]
# Questo è un commento
# Tutto quello che segue il cancelletto è un commento
# Radice Quadrata, Algoritmo dei Babilonesi (wikipedia)
# costanti
C = 3 # devo trovare radice quadrata di C
EPS = 0.000001 # precisione
# variabili
x = 1.5 # stima iniziale
e = x*x – C # errore
if (e < 0): e = -e # modulo di |x^2 – c| i = 0 # contatore passi # iterazione: se l’errore è grande e non ho # eseguito almeno 10 passi allora continuo: while (e > EPS) and (i < 10):
# metodo babilonese, media tra x e C/x
x = (x + C/x) / 2.0
# x è cambiato, aggiorno l’errore:
e = x*x – C
if (e < 0): e = -e # aumentiamo il numero di iterazioni i = i + 1 # se arrivo qui allora: # 1) il ciclo sopra è corretto, nel senso che non diverge # 2) la guardia del while è False, quindi vale # not (e > eps) and (i < 10) cioè
# e <= eps or (i >= 10)
# quindi: l’errore è minore di EPS, oppure ho fatto
# già 10 iterazioni (da 0 a 9) e mi fermo
print("la radice quadrata di ", C, "è ", x)
print("Numero di iterazioni: ", i)
[/python]
Esercizi:

  1. Modificate il codice sopra (in un altro file) e inserite la funzione input(), questa funzione del linguaggio ha come argomento una stringa che viene mostrata all’utente, tipicamente una domanda per spiegare cosa inserire, esempio: input(“inserisci un intero: “), il risultato è una stringa. Per convertire la stringa in un intero, usare int(input(..)), mettete il risultato al posto della variabile C, e rieseguite il codice.
  2. Modificate il codice sopra, (in un altro file) e definite una funzione che calcola la radice, esempio di definizione di funzione:
    [python]
    def f(x):
    return 2*x+1
    def cubo(c):
    return c*c*c
    # uso:
    print(f(4),cubo(3))
    [/python]
  3. Scrivere un programma Python che legge da input tre interi (a,b,c) e stampa il valore minimo e massimo.
  4. Scrivere un programma Python per l’algoritmo di Euclide, scrivete tre versioni: 1) definite prima due variabili m = 124422, n=23234 su cui volete calcolare mcd(m,n), e scrivete il codice che calcola il risultato nella variabile mcd. Alla fine stampate la variabile. 2) modificate il codice, e definite una funzione che prendere due parametri (m,n) e restituisce il massimo comune divisore, chiamate la funzione sui due valori precedenti e stampate il valore che ritorna. 3) modificate il programma precedente, prendendo, m,n in input usando input().
  5. Scrivete un programma che legge tre valori a,b,c (non interi) usate (float(input())) e calcola le soluzioni dell’equazione di secondo grado: $$ax^2+bx+c=0$$. Usate la funzione del modulo math: math.sqrt() per il calcolo della radice.
  6. Advanced:  Leggete Collatz, scrivete la funzione che calcola Collatz, $$f(n) = n/2$$ se $$n$$ è pari, $$3n+1$$ se $$n$$ è dispari. Dato in intero $$n$$,   scrivere un ciclo che calcola i valori della funzione fino a quando essa non arriva a $$1$$, stampando i valori per ogni iterazione. Mostrare la sequenza associata a $$123456789$$, in quanti passi si arriva ad $$1$$?. Suggerimento: tra gli operatori del linguaggio c’è il ‘a % b’ che calcola il resto della divisione intera tra a e b.
  7. Advanced 2: Sempre con Collatz, usate il codice fatto sopra, per scrivere un ciclo che calcola la successione di Collatz per tutti gli interi $$3 \leq n \leq 1000$$. Non dovete stampare come fatto sopra l’intera successione, ma per ogni valore di $$n$$ dovete stampare il valore massimo presente nella sua successione di Collatz. Alla fine si avrà una tabella con i valori da $$3,..,1000$$ con accanto il corrispondente massimo.

Hardware:

  • studiate le seguenti pagine di wikipedia,se fate fatica con l’inglese usate la versione italiana (fatta peggio):
    Algoritmi, Turing, Von Neumann, Radice Quadrata, Architettura di Von Neumann, Timeline, Memoria, RAM, CPU, Ciclo CPUALU, CPU CLock, Gigabyte, Data Size, Byte.Programmi.
  • Installate e Eseguite (su Windowz) il programma CPU-Z, cercate di capire il senso di ciò che mostra.
  • Importante: Guardare questo Video, (trascurate gli sproloqui finali sui fogli di calcolo). Leggete qui.
  • Ricapitolate con il fatto essenziale: la CPU è un interprete, quindi il suo programma è un ciclo in cui si legge un istruzione, si decodifica (si capisce cosa fare), se necessario si caricano i dati su cui l’istruzione deve agire (che devono essere in qualche modo specificati dall’istruzione stessa), si passa il tutto all’ALU e si esegue, infine si passa all’istruzione successiva. Semplice Pulito Efficiente.
  • Scaricate e iniziate a studiare le note sulla rappresentazione dell’informazione, disponibili sulla pagina del programma del corso.

Lascia un commento

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