Estratto del documento

Fondamenti di informatica

Capitolo 1

Definizione di informatica

L'informatica si occupa della rappresentazione, dell'organizzazione e del trattamento automatico dell'informazione.

Rappresentazione dell'informazione

  • Numeri interi
  • Come avviene la memorizzazione di un numero in un calcolatore fisicamente?
  • Calcolatore e circuiti elettrici
  • Rappresentazione numerica in base due e perché questa scelta di base (distinguere solo tra due valori di una grandezza elettrica è più semplice)
  • Bit o cifra binaria
  • Codifica posizionale

Capitolo 2

Rappresentazione di un problema e del suo relativo algoritmo

Modello di un fenomeno reale, dati e algoritmi

Algoritmo

  • Dati iniziali, algoritmo, dati finali = soluzione
  • Atomicità: i passi devono essere elementari, ossia non scomponibili in ulteriori sottopassi
  • Non ambiguità: i passi costituenti devono essere interpretabili in modo diretto ed univoco dall'esecutore
  • Finitezza: l'algoritmo deve essere composto da un numero finito di passi e richiedere una quantità finita di dati di ingresso
  • Terminazione: l'esecuzione deve avere termine dopo un tempo finito
  • Effettività: l'esecuzione deve portare ad un risultato univoco

Automatizzazione della soluzione

Diagramma di flusso

Definizione: è un linguaggio di modellazione grafico per rappresentare il flusso di controllo ed esecuzione degli algoritmi.

  • Primitive: assegnazione, inizio, fine, ingresso/uscita, passo dell'algoritmo, selezione su condizione, algoritmo collaterale e vai al passo
  • Il diagramma di flusso è trasversale a qualsiasi linguaggio di programmazione, ossia è una specie di "linguaggio universale" comprensibile da tutti i programmatori di ogni "estrazione linguistica"
  • Funzioni fondamentali: descrive le operazioni da svolgere e la sequenza nella quale devono essere compiute

Capitolo 3

Composizione dell'informatica

  • Tecnologico: comprende lo studio dei calcolatori e dei sistemi che li utilizzano
  • Metodologico: studia i metodi per la soluzione di problemi e la gestione delle informazioni

Aspetto tecnologico

Elaboratore o Computer: strumento programmabile per rappresentare, memorizzare ed elaborare le informazioni. Ci consente di automatizzare un algoritmo.

  • Composizione dell'elaboratore: Hardware, Software applicativo e Sistema operativo (Il sistema operativo costituisce uno strato che si frappone tra l'hardware ed il software applicativo)
  • Interfaccia utente

Software

Il software consente di specializzare una macchina fisica di tipo generale per eseguire un compito specifico.

Teorema del campionamento: Dato un segnale analogico tempo continuo ed a banda limitata, è possibile rappresentarlo esaustivamente per tramite di un numero finito di valori prelevati ad intervalli regolari.

I segnali esterni vengono trasformati in segnali utilizzabili dai computer tramite un dispositivo detto convertitore "analogico-digitale" e per l'operazione inversa per mezzo di un convertitore "digitale-analogico".

La codifica

  • Il computer è unimediale
  • Interpretazione dei numeri binari
  • Livelli di tensione
  • Hard-disk e Scheda grafica
  • Codifica ASCII ("American Standard Code Information Interchange")
  • Concetto di "strato e "livello di astrazione"

Le strutture dati

  • Record
  • Vettore

Capitolo 4

Architettura di Von Neumann

  • Memoria centrale RAM ("Random Access Memory")
  • Unità di ingresso Input
  • Unità di uscita Output
  • Unità centrale di elaborazione CPU ("Central processing unit")
  • Divisione della CPU in due sottounità: unità di controllo e unità aritmetico-logica

Bus: è un percorso fisico su cui vengono fatti transitare i segnali elettrici che rappresentano istruzioni e dati.

Memoria di massa

Nella CPU l'istruzione è suddivisa in fasi: Fetch (prelievo) di un'istruzione dalla memoria, Decode (decodifica) istruzione, Execute (esecuzione) istruzione.

Architettura Harvard (Microprocessori detti DSP "Digital Signal Processor")

Architettura generale di un sistema informatico

Modello a strati (o modello detto "a buccia di cipolla")

Capitolo 5

Generalità sui linguaggi di programmazione

Cos'è un linguaggio di programmazione?

Compilatore o Interprete (e assemblatore)

  • Prima generazione: è il linguaggio naturale della macchina, sono le istruzioni scritte direttamente in binario
  • Seconda generazione: associazione ad ogni istruzione "primitiva" un codice più facile da ricordare
  • Terza e quarta generazione: linguaggi ad "alto livello", processo di traduzione, caratteristica importante: è indipendente dalla particolare piattaforma hardware

Linguaggi di programmazione: tassonomie

Un linguaggio di programmazione è costituito da: Alfabeto, Grammatica, Sintassi e Semantica.

Sequenza di realizzazione di un programma eseguibile

  • Come si ottiene il Software?
  • Differenza tra compilatore e interprete: il compilatore è un programma che traduce tutto il codice sorgente in una sequenza di istruzioni comprensibili alla macchina fisica ottenendo un programma eseguibile mentre l'interprete svolge una funzione simile con l'importante differenza che la traduzione del programma non avviene tutta in una volta ma riga per riga
  • Processo di compilazione, codice sorgente, codice oggetto, fase di caricamento, esecuzione e output
  • Schema semplificato: Caricamento del segmento, Traduzione in codice macchina del segmento e Esecuzione diretta senza creazione di file eseguibile

Perché esistono Interpreti e non solo Compilatori?

Esecuzione di un programma

  • Prima fase: caricamento del codice oggetto e dei dati di ingresso da dispositivi esterni
  • Seconda fase: immissione del programma e dei dati nella memoria del computer (RAM)
  • Fase di Fetch: fase in cui il programma è stato trasferito dalla memoria di massa in memoria RAM sotto forma di sequenza di istruzioni in linguaggio macchina. L'istruzione successivamente viene prelevata e copiata tramite il BUS nei circuiti costituenti il Datapath
  • Fase di Decode: l'istruzione viene decodificata, ossia si cerca di associare a quel determinato codice le "azioni" fisiche da compiere per eseguire il comando ("ciclo di datapath")
  • Fase di Execute: fase in cui la CPU esegue l'istruzione (con il ciclo di datapath) interagendo con la memoria se l'istruzione richiede il caricamento di operandi ed eventuale successiva memorizzazione dei risultati ottenuti. Quando il programma termina, i risultati vengono inviati al dispositivo di Output

Capitolo 6

Interfaccia a riga di comando

Concetti generali su Matlab e finestra dei comandi

  • Matlab è fondamentalmente 3 cose: Linguaggio di programmazione, Calcolatrice scientifica e Ambiente grafico
  • Matlab non opera con numeri (scalari) ma con matrici: i vettori e gli scalari vengono considerati come casi particolari di matrici

Concetti generali sulla scrittura dei programmi

Variabili e assegnazioni di valori

Concetto di variabile: la variabile è rappresentata da una stringa la cui composizione deve seguire delle regole (Lo spazio non è permesso, deve iniziare con una lettera dell'alfabeto, le lettere maiuscole e minuscole sono considerate diverse ("case sensitive"), le keyword non possono essere usate come nomi di variabili).

Segno "="

Tipi di dati

  • Si definisce tipo di dato un nome che indica l'insieme di valori che una variabile, o il risultato di un'espressione, possono assumere e le operazioni che su tali valori si possono effettuare
  • Variabili "tipizzate" e "non tipizzate"
  • Tipizzazione debole o dinamica
  • Tipizzazione forte
  • Conversione di tipo o "typecast"
  • Script
  • Commenti (simbolo %): sono delle informazioni aggiuntive che non vengono considerate dal compilatore/interprete
  • Comandi multipli nella stessa riga

Caratteri e codifica

  • Caratteri
  • Codifica ASCII

Tipi numerici in Matlab

  • Runtime, intmin e intmax

Capitolo 7

La rappresentazione dei numeri reali: Floating e Fixed Point

Fixed Point

  • Passo: corrisponde alla risoluzione del numero in questione
  • Una parte delle cifre è dedicata alla rappresentazione della parte intera (n cifre) e la rimanente alla parte frazionaria (m cifre), ricordando che bisogna destinare un posto per il segno. La posizione della virgola è fissa

Floating Point

  • Alcune cifre vengono dedicate a rappresentare un esponente della base che indica l'ordine di grandezza del numero rappresentato: "notazione scientifica". La posizione della virgola è mobile.
  • Svantaggi della virgola fissa: non rappresenta bene numeri frazionari molto grandi/molto piccoli
  • I numeri reali "n" vengono, in tal modo, rappresentati con una coppia di numeri <m,e> dove m corrisponde alla mantissa, o significante, ed e corrisponde all'esponente intero
  • Limitazioni della virgola mobile: intervalli limitati e errori di arrotondamento
  • Overflow (Sconfinamento in intervalli numerici non consentiti) e Underflow (viceversa)
  • IEEE 754 o "IEEE standard for binary floating arithmetic"

Standard IEEE 754

  • È un format non proprietario, ossia non dipendente dal calcolatore
  • Precisione semplice a 32 bit
  • Precisione doppia a 64 bit
Anteprima
Vedrai una selezione di 4 pagine su 11
Riassunto Fondamenti di informatica Pag. 1 Riassunto Fondamenti di informatica Pag. 2
Anteprima di 4 pagg. su 11.
Scarica il documento per vederlo tutto.
Riassunto Fondamenti di informatica Pag. 6
Anteprima di 4 pagg. su 11.
Scarica il documento per vederlo tutto.
Riassunto Fondamenti di informatica Pag. 11
1 su 11
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 MarcoJ99 di informazioni apprese con la frequenza delle lezioni di Fondamenti di informatica 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 Roma Tor Vergata o del prof Accattatis Alfredo.
Appunti correlati Invia appunti e guadagna

Domande e risposte

Hai bisogno di aiuto?
Chiedi alla community