Estratto del documento

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.
Anteprima
Vedrai una selezione di 1 pagina su 5
Appunti di Introduzione alla programmazione Pag. 1
1 su 5
D/illustrazione/soddisfatti o rimborsati
Acquista con carta o PayPal
Scarica i documenti tutte le volte che vuoi
Dettagli
SSD
Scienze matematiche e informatiche INF/01 Informatica

I contenuti di questa pagina costituiscono rielaborazioni personali del Publisher quattrah di informazioni apprese con la frequenza delle lezioni di Introduzione alla programmazione e studio autonomo di eventuali libri di riferimento in preparazione dell'esame finale o della tesi. Non devono intendersi come materiale ufficiale dell'università Università degli Studi di Padova o del prof Navarin Nicolò.
Appunti correlati Invia appunti e guadagna

Domande e risposte

Hai bisogno di aiuto?
Chiedi alla community