Algebra di Boole: tabelle di verità
AND: ⋀b. OR: ⋁c. NOT: d. NAND: e. NOR: Implicazione: A⇒B [NOT A OR B] Equivalenza: A⇔B (NOT A OR B) AND (NOT B OR A)
Rappresentazioni: base 2
K=bn... b2b1b0 = 2hbn + ... 22b2 + 21b1 + 20b0
NX = numeri naturali rappresentabili con x cifre in base N (num da 0 a NX)
- Da decimale a binario (↑ N): divido per 2; il resto sarà la cifra meno significativa.
- Ripetere fino a quoziente nullo.
- Da decimale a binario (per numeri da 0 a 1.0, x=Y. Z): moltip. x 2 e scrivo la 1 a cifra della parte intera. Sarà la cifra + significativa.
- Ripetere con la parte frazionaria (può esserci periodicità).
I numeri interi
1. Complemento a 2
Puoi rappresentare 2k numeri con k bit. Rappresentazione unica dello 0. Non servono altri circuiti per la sottrazione. Numeri da -2k-1 a -2k-1-1 (con k bit).
- Da 0 a 2k-1-1 si rappresentano normalmente con 1° bit =0.
- Da -2k a -0 come complemento del positivo corrispondente.
Regole di conversione:
- 1. C= 2k N.
- 2. Invertire tutte le cifre dopo il primo 1 da dx.
Operazioni:
- A. Somma: A⊕B.
- B. Sottrazione: A⊖B.
I numeri razionali
IEEE 754:
- X= ±M * B±E.
- M=mantissa, B base, E esponente.
32 bit= 1xsegno, 8xE, 23xM.
- A. Se E≠0: (-1)s · M · 2E-127 [num. normalizzati].
- B. Se E=0: (-1)s · 0.M · 2-126 [numeri denormalizzati].
Algebra di Boole e rappresentazioni
Algebra di Boole: tabelle di verità. AND: b. OR: c. NOT: d. NAND: e. NOR: Implicazione: A⇒B [NOT A OR B] Equivalenza: A⇔B [ (NOT A OR B) AND (NOT B OR A) ]
Rappresentazioni: base 2.
K=bn....b2b1b0 = 2hbn + ... 22b2+ 21b1+20b0.
Nx: numeri naturali rappresentabili con x cifre in base N (num da 0 a Nx-1)
- Da decimale a binario (↑N): a. divido per 2; il resto sarà la cifra meno significativa.
- B. Ripetere fino a quoziente nullo.
- Da decimale a binario (per numeri da 0 a 1.0, x,y,Z): a. moltiplico x 2 e scrivo la 1° cifra della parte intera. Sarà la cifra più significativa.
- B. Ripetere con la parte frazionaria (può esserci periodicità).
I numeri interi e complemento a 2
I numeri interi 1. complemento a 2.
- 1. Puoi rappresentare 2k numeri con K bit.
- 2. Rappresentazione unica dello 0.
- 3. Non servono altri circuiti per la sottrazione.
- 4. Numeri da - 2k-1 a 2k-1 -1 (con k bit).
- 5. Da 0 a 2k-1-1 si rappresentano normalmente con 1° bit=0.
- 5. Da -2k-1 a - 0 come complemento del positivo corrispondente.
Regole di conversione:
- 1. C = 2k- N.
- 2. Invertire tutte le cifre dopo il primo 1 da dx.
Operazioni:
- A. Somma: A+B.
- B. Sottrazione: A+B̅.
I numeri razionali e IEEE 754
I numeri razionali: 1. IEEE 754.
x=±M · B±E [ M=mantissa, B base, E esponente 32 bit = 1xsegno, 8xE, 23xM.
- A. Se E≠0: (-1)s· M · 2E-127 [num. normalizzati].
- B. Se E=0: (-1)s · 0.M · 2-126 [numeri denormalizzati].
Programmare: mettere in esecuzione programmi in C e Python
Interazione con l'interprete Python.
Shell
- Aprire terminal (Ogni comando è: nome_comando [opzioni] [param1 ... paramN] ↵).
- Comando pwd: stampa in output la directory di lavoro.
- Ogni file ha un numero di identificazione, 'Inode number' e #Inode.
- Directory: contiene altro file e directory.
- Cammino del file... Es.: 'root/bin/cat' (viene chiamato "path").
- Si può sottintendere.
- Comando ls: visualizza caratteristiche del file. Es.: '/ls abc'.
- Elenca i file e le directory.
- Directory '.' = la stessa dir. che la contiene.
- Directory '..' = la dir. padre di quella che la contiene.
- Ls -a (anche nascosti).
- Ls l (liste estese).
- Ls R (sotto directory).
- Cd (change directory).
- Mkdir [opzioni] nuovo directory.
- Touch nomefile: crea nuovo file di nome 'nomefile'.
- Rm rimuove file (rm -r: anche directory) (rmdir: directory se vuota).
- More nomefile: mostra il contenuto di un file.
Dove si salvano i programmi
- Firefox: impostazioni, preferenze, general, spuntare 'start-up' e 'Always ask you where to save files'.
Connessione ssh
ssh: connessione via ssh da un'altra macchina. Comando di connessione remota da user1@computerA: ~ $ ssh user@ssh.studenti.math.unpd.it
Linguaggio C: esecuzione programmi in C
È un linguaggio compilatore. #include "mini-assembler.h"
Comandi per programma:
- A. Ottenere un nuovo programma: Prompt $: gcc -o nomeprogramma nomeprogramma.c.
- B. Avviare il programma: prompt $: ./nuovoprogramma o "nuovo programma" sulla shell.
Strumenti:
- 1. Gedit: editor per scrivere programmi.
- 2. Gcc: Compilatore C.
Comando per esecuzione: programma "load".
C: (cd~/nome directory) - (cp .. /directoriodopadre ) - (gcc -o load load.c) - (./) - (5)
#include "mini-assembler.h"
- BEGIN; inserire librerie.
- INT x=ni; (definiamo le variabili).
- LOAD (R0); xi (carico dati).
- INTADD; (es. operazione somma).
- STORE; (memorizza risultato).
- INTVIEW (a); (visualizza risultato).
- END.
- LOAD: carica.
- STORE: carica.
- INTADD: +.
- INTSUB: -.
- MULTU: *.
- FLOATADD: +.
- FLOATSUB: -.
- FLOATMUL: *.
- INTMULT: *.
- INTDIV: :.
- INTCOMPARE: compara.
- FLOATCOMPARE: compara.
- STOP: fine programma.
- BEGIN: inizio.
- END: fine testo.
Linguaggio Python: esecuzione programmi in Python
È un linguaggio interprete. #! /usr/bin/python versione di Python
Comandi per esecuzione: Python: (cd ~/nome directory) - (python load.py) - (5)
#!/usr/bin/python import, librerie (s: trovax= n1, (.nome dove day= n2 errore,) z= x+y print z 2> nome.error: salva error
Uso Google colab per sviluppare programmi in linguaggio Python.
- Int: a=3.
- Long: z=3L.
- Float: a=3.0.
- Bool: a=True.
- ==: uguale.
- !: diverso.
- Not: negazione.
- Str: stringhe.
- Dictionary: dizionari.
- Somma: +.
- Sottraz: -.
- Prodotto: *.
- Divisione: /.
- Potenza: **.
- Div. intera (quoz.): //.
- Div. intera (resto): %.
- >: maggiore.
-
Appunti Introduzione alla programmazione
-
Appunti di Programmazione
-
Appunti di Programmazione scientifica
-
Appunti di Introduzione alla programmazione sulla teoria della programmazione in c++