Estratto del documento

Fondamenti di informatica

Comandi MATLAB

Elenco comandi

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).
Fix(x) Restituisce l’intero più vicino verso lo zero; per valori positivi di x si comporta come la funzione floor, per valori negativi di x come la funzione ceil.
Floor(x) Arrotonda al numero intero più vicino andando in direzione di -∞, ossia al numero intero immediatamente inferiore con segno.
Ceil(x) Stesso meccanismo di floor, ma in direzione di +∞.
Generare un vettore Vettore riga: A = [1 2 3 4]. Vettore colonna: A = [1; 2; 3; 4].
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.
B = linspace(Xmin, Xmax, N) I valori Xmin e Xmax saranno presenti come componenti vettoriali; il vettore avrà un massimo di N componenti.
Size(x) Risultato: vettore con due componenti, la prima indica il numero di righe e la seconda il numero di colonne.
Length(x) Risultato: ans: numero maggiore tra righe e colonne di una matrice, mentre nel caso di un vettore si ha il numero di componenti.
Numel(x) Risultato: ans: numero componenti di vettori o matrici. Nel caso di vettori si comporta come length (nome-vettore), mentre nel caso di matrici restituisce il prodotto riga per colonna.
A(2) Questo comando restituisce il valore della componente richiesta all’interno del vettore A [es. A = (1 4 3 2), A(2) = 4].
A(B) Dato un secondo vettore (es. B = [2, 4]), tale comando restituisce più componenti del vettore A (es. A(B) = 4, 2). B è definito vettore indice.
True 1
False 0
Vettore indici logici Dato un vettore mask [t/f], applicato ad un vettore già esistente, porta ad ottenere i valori definiti veri dal vettore mask. È utilizzabile anche per la sostituzione.
Operatore vuoto Dato un vettore vec = 3 4 5, utilizzando la funzione vec(2) = [ ] si rimuove il secondo elemento e si avrà vec = 3 5. Se si impone vec = [ ], si cancelleranno tutti i valori del vettore vec.
Creare un vettore colonna a partire da un vettore riga Per trasporre un vettore riga in vettore colonna, si deve creare un vettore riga e si traspone tramite apposito operatore (apice): r = 1:3, c = r'.
A + B Dato un vettore A = [2 5 7 1 3], la somma A + 5 restituisce ans = 7 10 12 6 8.
A .* B 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 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.
Operazioni logiche sui vettori Dati due vettori A e B, queste operazioni di confronto danno come risultati i valori che soddisfano tale relazione in termini di true (1) e false (0).
Find (vettore logico) Dato un vettore logico (true/false) ed un altro vettore uguale al find del vettore logico, quest’ultimo restituirà le componenti true del primo vettore.
A [t/f], B [t/f] Dati due vettori A = [true true false false] e B = [true false true false], l’operazione A & B darà ans = 1 0 0 0. L’operazione A | B restituirà invece ans = 1 1 1 0.
Sum(x) Operatore che restituisce come scalare la somma di tutte le componenti di un vettore.
Mean(x) Operatore che effettua la media tra i valori delle componenti del vettore al quale viene applicato.
Min(x) Valore della componente minima.
Max(x) Valore della componente massima.
Concatenazione Dati due vettori B = 1 2 3 e C = 4 5 6 7, il vettore A = [B, C] = 1 2 3 4 5 6 7.
Eye(x) Restituisce la matrice identità.
V(1, :) Estrae un’intera riga da una matrice.
V(:, 1) Estrae un’intera colonna da una matrice.
Horzcat (x, y) Concatena due matrici in orizzontale. Altrimenti si può fare A = [x, y].
Vertcat (x, y) Concatena due matrici in verticale. Altrimenti si può fare A = [x; y].
Reshape (A, p, q) Riorganizza “columnwise” gli elementi di una matrice n x m in una nuova matrice p x q, dove n * m = p * q.
Repmat (A, s, t) Crea la matrice contenente s * t copie di A.

Scienza dei calcolatori

1. L'informatica

L'informatica è 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”.

È 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 è: 62.

2. Il computer (o calcolatore)

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 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 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 dei 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).
  • 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.

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.

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. Il 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 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.

1. Codifica

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. Architettura dei calcolatori

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...

Anteprima
Vedrai una selezione di 7 pagine su 79
Fondamenti di Informatica Pag. 1 Fondamenti di Informatica Pag. 2
Anteprima di 7 pagg. su 79.
Scarica il documento per vederlo tutto.
Fondamenti di Informatica Pag. 6
Anteprima di 7 pagg. su 79.
Scarica il documento per vederlo tutto.
Fondamenti di Informatica Pag. 11
Anteprima di 7 pagg. su 79.
Scarica il documento per vederlo tutto.
Fondamenti di Informatica Pag. 16
Anteprima di 7 pagg. su 79.
Scarica il documento per vederlo tutto.
Fondamenti di Informatica Pag. 21
Anteprima di 7 pagg. su 79.
Scarica il documento per vederlo tutto.
Fondamenti di Informatica Pag. 26
1 su 79
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 Alessandro_Polimeni_04 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