FONDAMENTI DI
INFORMATIC A 1
ELENCO COMANDI
MATL AB
COMANDO SIGNIFICATO
AND, verifica entrambe le variabili.
& AND, verifica prima la prima variabile; se è falsa, termina
&& l’operazione, se è vera controlla la seconda variabile.
OR, vedi descrizione &.
|
|| OR, vedi descrizione &&.
For Dà inizio ad un ciclo (a = 1:5, ciclo ripetuto 5 volte).
End Fine ciclo
Round (x) Restituisce il numero intero più vicino (arrotonda).
Restituisce l’intero più vicino verso lo zero; per valori
Fix (x) positivi di x si comporta come la funzione floor, per valori
negativi di x come la funzione ceil.
Arrotonda al numero intero più vicino andando in direzione
di -∞, ossia al numero intero immediatamente inferiore con
Floor (x) segno.
Ceil (x) Stesso meccanismo di floor, ma in direzione di +∞.
Generare un vettore
] vettore riga.
- A = [1 2 3 4
Manualmente - A = [1; 2; 3; 4] vettore colonna. 2
COMANDO SIGNIFICATO
- B = Vmin : K : Vmax. Il vettore avrà un valore minimo di
partenza al quale verrà ogni volta sommato un intero K
fino al raggiungimento del valore massimo, il quale non
deve essere necessariamente compreso.
Automaticamente - B = linspace (Xmin, Xmax, N). I valori Xmin e Xmax saranno
presenti come componenti vettoriali; il vettore avrà un
massimo di N componenti.
Dimensione di un vettore/matrice
Risultato: vettore con due componenti, la prima indica il
Size (x) numero di righe e la seconda il numero di colonne.
Risultato: ans: numero maggiore tra righe e colonne di una
Length (x) matrice, mentre nel caso di un vettore si ha il numero di
componenti.
Risultato: ans: numero componenti di vettori o matrici. Nel
Numel (x) caso di vettori si comporta come length (nome-vettore), mentre
nel caso di matrici restituisce il prodotto riga per colonna.
Indicizzazione di un vettore
Questo comando restituisce il valore della componente
A(2) richiesta all’interno del vettore A [es. A = (1 4 3 2), A(2) =
4].
Dato un secondo vettore (es. B = [2, 4]), tale comando
restituisce più componenti del vettore A (es. A(B) = 4, 2). B è
A(B) definito vettore indice.
True 1
False 0
Dato un vettore mask [t/f], applicato ad un vettore già
Vettore indici logici esistente, porta ad ottenere i valori definiti veri dal vettore
mask. È utilizzabile anche per la sostituzione.
Dato un vettore vec = 3 4 5, utilizzando la funzione vec(2)=[ ]
Operatore vuoto si rimuove il secondo elemento e si avrà vec = 3 5. Se si
impone vec = [ ], si cancelleranno tutti i valori del vettore vec.
3
COMANDO SIGNIFICATO
Creare un vettore Per trasporre un vettore riga in vettore colonna, si deve
creare un vettore riga e si traspone tramite apposito
colonna a partire da operatore (apice): r = 1:3, c = r .
un vettore riga I
Operazioni algebriche sui vettori
Dato un vettore A = [2 5 7 1 3], la somma A + 5 restituisce
A + B ans = 7 10 12 6 8.
Dato lo stesso vettore A, il prodotto 2.*A restituisce ans = 4
10 14 2 6. Si possono moltiplicare tra di loro due vettori A e
B; vengono moltiplicate le singole componenti dei due
A .* B vettori, una ad una (i due vettori devono avere lo stesso
numero di componenti, n(A) = n(B)). Se si usa solamente
“*”, si va a fare un’operazione di moltiplicazione fra matrici
(riga per colonna); sarebbe quindi corretto fare A * B .
I
Operazioni logiche sui vettori
Dati due vettori A e B, queste operazioni di confronto danno
A >= n, A <= n, A == come risultati i valori che soddisfano tale relazione in
n, A ~ n termini di true (1) e false (0).
Dato un vettore logico (true/false) ed un altro vettore uguale
al find del vettore logico, quest’ultimo restituirà le
Find (vettore logico) componenti true del primo vettore.
Dati due vettori A = [true true false false] e B = [true false true
A [t/f], B [t/f] false], l’operazione A & B darà ans = 1 0 0 0. L’operazione A |
B restituirà invece ans = 1 1 1 0.
Funzioni di libreria particolari
Operatore che restituisce come scalare la somma di tutte le
Sum (x) componenti di un vettore.
Operatore che effettua la media tra i valori delle componenti
Mean (x) del vettore al quale viene applicato.
Min (x) Valore della componente minima. 4
COMANDO SIGNIFICATO
Max (x) Valore della componente massima.
Tecniche specifiche per gli array
Dati due vettori B = 1 2 3 e C = 4 5 6 7, il vettore A = [B, C]
Concatenazione = 1 2 3 4 5 6 7.
Operazioni sulle matrici
Eye (x) Restituisce la matrice identità.
V(1, :) Estrae un’intera riga da una matrice.
V(:, 1) Estrae un’intera colonna da una matrice.
Concatena due matrici in orizzontale.
Horzcat (x, y) Altrimenti si può fare A = [x, y].
Concatena due matrici in verticale.
Vertcat (x, y) Altrimenti si può fare A = [x; y].
Riorganizza “columnwise” gli elementi di una matrice n x m
Reshape (A, p, q) in una nuova matrice p x q, dove n * m = p * q.
Crea la matrice contenente s * t copie di A.
Repmat (A, s, t) 5
SCIENZA DEI
C ALCOL ATORI
1. L’ I N F O R M AT I C A
È la scienza che studia l’elaborazione delle informazioni e le sue applicazioni; più
precisamente l’informatica si occupa della rappresentazione, dell’organizzazione e
del trattamento automatico della informazione. (Trattamento automatico
dell’informazione tramite calcolatore). Ha per oggetto lo studio dei fondamenti
teorici dell’informazione, della sua computazione a livello logico e delle tecniche
pratiche per la sua implementazione e applicazione in sistemi elettronici
automatizzati detti sistemi informatici.
L’informatica ha a che fare con le “informazioni”. Per fare in modo che il
calcolatore recepisca e memorizzi le informazioni, dobbiamo rappresentarla
tramite simboli tradotti in una grandezza fisica disponibile nel mondo
(elettronico) del calcolatore, ossia effettuare quella che viene definita “codifica
dell’informazione”.
Qualsiasi informazione nel calcolatore, almeno nei suoi circuiti interni, è
rappresentata da numeri codificati in base 2 (sequenze di uno e zero, detti
singolarmente bit) e tramite (generalmente, ma non solo) livelli elettrici. Anche i
caratteri, le immagini ed i suoni (e persino gli stessi programmi) sono quindi
rappresentati, dunque “codificati” in sequenze di bit che “simboleggiano”, ossia
rappresentano, l’entità astratta “numero”.
E’ stata scelta la base due per una questione di praticità; è infatti più semplice
scegliere tra due grandezze fisiche rispetto ad un numero maggiore. La formula
che consente la conversione dalla base 2 alla base 10 è: 6
2. IL COMPUTER (O C ALCOL ATORE)
Il termine “computer” deriva dall’inglese “to compute” (calcolare), da cui il francese
“computer”. L'etimo latino è composto da com = cum (insieme) e putare (“tagliare”,
“rendere netto” - da cui l'odierno “potare”) e significa propriamente: “confrontare
per trarre la somma netta”. Solo verso gli anni ‘50 è stato utilizzato nel senso
moderno, ossia ad indicare una macchina (programmabile) capace di eseguire
calcoli ed algoritmi.
L’Informatica è dunque la scienza che si occupa del trattamento dell’informazione
mediante procedure automatizzabili, e quindi (per esempio) tramite computer.
Il computer è una macchina che, stando a questa prima e rozza definizione che
abbiamo implicitamente iniziato a delineare, esegue dei calcoli (in sequenza),
dunque trasforma delle informazioni (in ingresso) in altre informazioni (in
uscita), seguendo un algoritmo, ossia un procedimento di calcolo, descritto da un
software, o programma, scritto a sua volta in un determinato linguaggio.
Attraverso il Teorema del Campionamento è possibile tradurre qualsiasi grandezza
“del mondo esterno” in un formato comprensibile al mondo degli elaboratori
(numeri codificati in binario). È proprio questo ad aver reso l’informatica
universalmente applicabile. Esso semplicemente asserisce che, dato un segnale
analogico, tempo continuo e banda limitata, è possibile rappresentarlo
esaustivamente tramite un numero finito di valori prelevati (misurati) ad
intervalli regolari. In tal guisa, i segnali “esterni” vengono “tradotti” in segnali
comprensibili ai computer tramite dei dispositivi detti “convertitori analogico-
digitali” e, per l’operazione contraria, in convertitori “digitale-analogico”,
applicando, con un certo grado di approssimazione, il teorema del
campionamento.
Da notare che il calcolatore è tradizionalmente una macchina costruita con circuiti
elettronici (o elettromeccanici): le grandezze disponibili sono dunque segnali
elettrici.
Di competenza dell’informatica è la risoluzione sistematica e automatica dei
problemi, (problem solving: “Un problema può essere definito come la situazione in
7
cui si trova un essere vivente, il solutore, il quale desidera passare da uno stato
dato ad uno desiderato, ma non può farlo né tramite un'azione istintiva né
mediante un comportamento appreso. Il termine inglese problem solving indica il
processo cognitivo messo in atto per analizzare la situazione “problemica” ed
escogitare una soluzione. Una tale prima e generale definizione si può estendere
anche a meccanismi d'intelligenza artificiale”).
Per poter fare ciò in primo luogo occorre rappresentare le informazioni rilevanti
alla risoluzione del problema per poi adottare una procedura, tramite un processo
a step, che consenta di ottenere la soluzione, ovvero un algoritmo. La procedura di
rappresentazione, assieme al processo, è l’essenza della scienza della
rappresentazione dell’informazione ed elaborazione automatica (rappresentazione
dell’informazione ed esecuzione automatica di un algoritmo).
3. GLI ALGORITMI
Il termine “automatico” indica una macchina, meccanismo o dispositivo che,
regolato opportunamente, è capace di compiere determinate operazioni o
lavorazioni, per lo più ripetute in serie, chiamate “algoritmi”. Ciascun algoritmo
deve seguire delle opportune istruzioni per poter essere efficiente:
• I passi costituenti devono essere elementari, ovvero non ulteriormente
scomponibili (principio di atomicità).
• I passi costituenti devono essere interpretabili in modo diretto e univoco
dall'esecutore, sia esso umano o artificiale (principio di non ambiguità).
• L'algoritmo deve essere composto da un numero finito di passi e richiedere una
quantità finita di dati in ingresso (finitezza).
• L'esecuzione deve avere termine dopo un tempo finito (terminazione).
• L'esecuzione deve portare a un risultato univoco (effettività).
Il modello di un fenomeno reale è un’approssimazione di esso che riusciamo a
gestire con i nostri mezzi intrinsecamente limitati. Tramite un computer possiamo
8
simulare (modellizzare) numerosi aspetti del mondo reale tramite algoritmi. Per
capire al meglio il concetto di algoritmo viene effettuata una funzione di
trasformazione, mediante una sequenza di passi, da informazioni di ingresso a
informazioni di uscita, secondo lo schema seguente:
Il computer, o elaboratore, è appunto la soluzione tecnologica per “delegare”
l’esecuzione dei passi dell’algoritmo ad un dispositivo che lo faccia per nostro
conto, operando sui dati di ingresso e producendo dei dati di uscita che
rappresentano la soluzione del nostro problema. L’algoritmo verrà tradotto in un
linguaggio di programmazione ed eseguito su un elaboratore elettronico
generalmente a “programma memorizzato”.
Un formalismo molto importante per rappresentare in maniera efficace un
algoritmo è quello noto come “diagramma di flusso”; esso a sua volta fa parte
della grande famiglia del cd. Modelli Grafici, diffusi un po’ in tutte le branche
dell’Ingegneria (e non solo). Esso è un linguaggio di modellazione grafico per
rappresentare il flusso di controllo ed esecuzione degli algoritmi.
Sostanzialmente si tratta di associare ad uno o più passi dell’algoritmo (passi che
saranno poi tradotti con una o più istruzioni di un linguaggio di programmazione)
dei simboli grafici. In questo modo vengono messe meglio in evidenza alcune
caratteristiche dell’algoritmo, e rese più semplici le eventuali successive
operazioni di codifica e/o messa a punto.
Il programma inizia quindi l’esecuzione, rispettando i seguenti passaggi:
Assegna. Assegna ad una variabile (ad una locazione di memoria) il valore di
• una espressione.
Leggi. Legge in input dall’esterno un valore e lo memorizza in una variabile
• (locazione di memoria). 9
Scrivi. Scrive in output il valore di una espressione o di una variabile (locazione
• di memoria).
“Se...allora...altrimenti...” modifica il “flusso” del programma sulla base del
• valore di una espressione logica.
“Vai al passo...” modifica il “flusso” del programma incondizionatamente.
• Fermati termina l’esecuzione del programma.
• In ultimo il blocco “algoritmo collaterale”, meno frequente nell’uso pratico,
• implica che in quel punto verrà eseguito un altro algoritmo, a sua volta
potenzialmente rappresentato tramite un altro diagramma di flusso. Ad
esempio, un algoritmo già sviluppato e testato in tempi differenti e che viene
riutilizzato. 10
Il Teorema fondamentale della programmazione strutturata dimostra che qualsiasi
programma può essere codificato attenendosi esclusivamente a tre strutture
fondamentali:
Le tre strutture di cui sopra possono essere concatenate oppure annidate una
dentro l’altra, ma non intrecciate o accavallate. 11
GENERALITÀ
L’informatica è divisa in due parti:
Tecnologica, che comprende lo studio dei calcolatori e dei sistemi che li
• utilizzano.
Metodologica, la quale studia i metodi per la soluzione di problemi e la gestione
• delle informazioni.
L’informatica intesa come studio dell’elaborazione delle informazioni, ossia quella
scienza che si occupa di trovare soluzioni per mezzo di algoritmi, potrebbe di per
sé esistere senza gli elaboratori (computer), che costituiscono solo un mezzo per
utilizzare in maniera conveniente ed automatica i risultati ottenuti. L’elaboratore è
a sua volta composto da tre componenti:
Hardware, ossia l’insieme dei circuiti fisici comprendenti la memoria, la logica
• di calcolo (microprocessori, unità grafiche, co-processori ecc...), le periferiche di
ingresso/uscita (tastiere, monitor, stampanti, mouse, penne ottiche ecc...).
Software applicativo, l’insieme dei “programmi”, o “app”, che mettono in grado
• l’hardware di svolgere dei compiti “utili”, ossia di risolvere una determinata
classe di problemi od un problema specifico. I software consentono di
specializzare una macchina fisica di tipo generale per eseguire un compito
particolare. ll software è scritto in un linguaggio di programmazione, che può
essere il linguaggio nativo della macchina fisica (detto, appunto, linguaggio
macchina, direttamente comprensibile ai circuiti e costituito da sequenze di bit),
oppure con un linguaggio di alto livello, dove per “livello” si intende il grado di
vicinanza al linguaggio più semplice. Le istruzioni di un linguaggio ad alto
livello vengono tradotte in più istruzioni di linguaggio a basso livello da appositi
programmi detti compilatori; il programma finale sarà comunque costituito da
una serie di bit, l’unico linguaggio comprensibile alla macchina.
Software di base (o Sistema Operativo). È un insieme di programmi in
• dotazione “fissa” alla macchina che interagiscono direttamente con l’hardware e
servono a semplificare l’uso della macchina fisica, trasformandola di fatto in
un’altra macchina “virtuale” con caratteristiche migliori dal punto di vista di
12
fruibilità e facilità di utilizzo. Il sistema operativo definisce anche quella che
viene detta “Interfaccia Utente”, lo strumento finale che serve all’utente per
interagire con l’elaboratore, a lanciare le applicazioni ed in generale ad impartire
comandi al sistema. 13
1. C ODIFIC A
La codifica permette di scambiare informazioni con il computer (attraverso un
“vocabolario”). Attraverso la codifica dei bit l’elaboratore associa ad una data
sequenza un numero, che poi può andare a rappresentare qualsiasi cosa sia
necessaria. Le lettere stesse non sono altro che il frutto di una codifica di numeri
(A = 65, B = 66…). I singoli bit all’interno dei circuiti dell’elaboratore sono
rappresentati da tensioni elettriche. Un potenziale elettrico di 0 V viene
interpretato dall’elaboratore come un numero binario 0, mentre un potenziale più
elevato, come può essere quello di 5 V, viene interpretato come 1. Il computer non
è quindi una macchina multimediale, ma è appunto unimediale, proprio perché
nella sua memoria archivia dati in forma binaria.
2. ARC HITETTURA DEI C ALCOL ATORI
I moderni calcolatori sono costruiti secondo un modello architetturale noto come
Architettura di von Neumann, nota anche come “macchina a programma
memorizzato”.
Un calcolatore è composto da una memoria centrale, la RAM (Random Access
Memory), nella quale vengono immagazzinati le istruzioni ed i dati, un’unità di
ingresso (input), tramite la quale i dati vengono immessi nella memoria centrale e
Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
-
Fondamenti cpp
-
Fondamenti di informatica
-
Appunti Fondamenti di informatica
-
Fondamenti di informatica