














Studia grazie alle numerose risorse presenti su Docsity
Guadagna punti aiutando altri studenti oppure acquistali con un piano Premium
Prepara i tuoi esami
Studia grazie alle numerose risorse presenti su Docsity
Prepara i tuoi esami con i documenti condivisi da studenti come te su Docsity
Trova i documenti specifici per gli esami della tua università
Preparati con lezioni e prove svolte basate sui programmi universitari!
Rispondi a reali domande d’esame e scopri la tua preparazione
Riassumi i tuoi documenti, fagli domande, convertili in quiz e mappe concettuali
Studia con prove svolte, tesine e consigli utili
Togliti ogni dubbio leggendo le risposte alle domande fatte da altri studenti come te
Esplora i documenti più scaricati per gli argomenti di studio più popolari
Ottieni i punti per scaricare
Guadagna punti aiutando altri studenti oppure acquistali con un piano Premium
Una panoramica dettagliata dell'architettura di base di un computer, descrivendo i componenti fisici (hardware) e logici (software) di un calcolatore. Verranno esplorate le funzionalità e le interconnessioni tra memoria centrale, memoria di massa, interfacce di input/output, unità di controllo e bus. Saranno inoltre presentate le differenze tra memoria volatile e non volatile.
Tipologia: Appunti
1 / 22
Questa pagina non è visibile nell’anteprima
Non perderti parti importanti!















Tecnologie che permettono lo svolgimento di compiti di calcolo in tempi brevi, che necessitano dell’utilizzo di un calcolatore e un processore con il quale facciamo computazioni.
Le CPU, cioè i moduli del calcolatore che permettono di fare tali calcoli non sono confinati all’interno dei calcolatori ma possiamo trovarli all’interno di tutti i dispositivi.
La tecnologia informatica ci ha portato ad una civiltà informatica. Questa nasce con l’utilizzo del computer in quanto associato in aspetto fisico; dal punto di vista logico è una macchina che ci permette di portare a termine una serie di operazioni in breve tempo al nostro posto, azioni da noi individuate e richieste; il computer esegue tali operazioni e fornisce la risposta. Fisicamente è in dispositivo formato da circuiti elettronici con i quali è possibile misurare il passaggio di corrente e la sua assenza; questi due passaggi che il computer è capace di comprendere sono espressi in BIT (unità minima di informazione), cioè passa o non passa corrente (i due stati) 0 o 1. Tuti i processi che avvengono avvengano tramite stringhe binarie 0/1. Ogni info viene passata, elaborata e restituita sotto forma di codice binario; un BIT è un singolo digit (elemento delle stringhe binarie).
In che modo possiamo digitalizzare informazioni da fare elaborare al computer?
SISTEMA DECIMALE 1,2,3,4,5,6,7 cifre in base 10
SISTEMA BIINARIO 000, 001, 010, 100, 101, 110, 111 cifre n base 2
Dobbiamo codificare caratteri alfabetici e di interfunzione in codice binario, che inizialmente sono stati codificati 128 simboli (2^7), usando 7 bit e passando poi a 8. Il metodo di codifica più usato tra i produttori di hardware e software è il codice ASCII (American Standard Cod for International Interchange). Questo metodo permette di associare ad ogni simbolo della tastiera un codice di 7 o 8 cifre di conversione.
(TABELLA DI CONVERSIONE DA NON IMPARARE A MENTE)
Nella parola cane codifico ogni lettera con una codifica a 8, il primo bit è 0 e trasformo la prima codifica di 7 bit a 8 bit.
Per digitalizzare le immagini bisogna inserirle in una griglia fine a piacere e la pongo sopra il mio triangolo, il processo di digitalizzazione può avvenire:
-Considerando ogni quadratino (pixel) avente valore 0 o 1 a seconda se più della metà del suo spazio è occupato dal mio triangolo; se più vuoto sarà indicato con 0 e viceversa. Ottengo una matrice di elementi 0 e 1 ottenendo una stringa che mi ha codificato il mio triangolo, e se volessi tornare indietro otterrei una brutta versione del mio triangolo, per via della perdita di informazione. Più fine è la griglia che io scelgo e più la mia immagine sarà precisa. Se volessi codificare un’immagine a colori o a livelli di grigio avrei bisogno di più bit per ciascun quadratino; se volessi 16 livelli di grigio avrei bisogno per ogni quadratino 4 bit, avrò 16 diverse stringhe di lunghezza di 4 bit.
Le immagine così codificate sono “immagini bitmap”, cioè mappa dei bit dell’immagine. Per sapere quanto è grande l’immagine devo sapere la risoluzione dell’immagine cioè la grandezza innumerodi pixel e per ogni pixel quanti bit vengono usati per la codifica del colore corrispondente. La dimensione dell’immagine è il prodotto del numero di pixel x numero di bit su / ogni pixel.
I monitor che noi usiamo utilizzano, utilizzano risoluzioni di vario tipo. Ciascun monitor ha lo schermo con una risoluzione di 1280 righe 1024 colonne.
CODIFICA DELL’IMFORMAZIONE
Abbiamo visto la codifica dei numeri da 0 a 7.
E’ possibile passare da decimale a binario senza perdita di informazione. Dato un numero decimale è possibile passare al corrispondente numero binario tramite una serie di divisioni successive per due, nelle quali si considerano tutti i resti e il quoziente finale. (decimale -> binario)
Data una stringa binaria è possibile ottenere il corrispondente numero decimale moltiplicando ogni bit della stringa per la potenza di 2 corrispondente all’indice ella cifra considerata e sommando tutti i risultati. (binario -> decimale)
COMPONENTI DEL COMPUTER:
La Memoria centrale contiene i dati e i programmi da elaborare nella CPU, ha capacità limitate alcuni GB, è volatile come sopracitato, l’accesso all’informazione è molto rapido, spesso è indicata come RAM (Random Access memory).
MEMORIA DI MASSA
Usata per memorizzare grandi quantità di dati e programmi, on è volatile e l’accesso all’informazione fa da collo di bottiglia ad un compito, non è così rapido e infatti il computer limiterà gli accessi a tale tipo di memoria a vantaggio degli accessi alla memoria Ram. Alcuni computer usano ancora nastri magnetici in quanto hanno una memoria molto grande.
I/O
Un dispositivo di ingresso e uscita che cos’è? Si risponderà: “Saranno quei dispositivi che permettono l’ingresso e l’uscita di dati da un programma”. Ci sono poi i terminali (mouse, tastiera, stampante, ecc.). L’unità centrale (case) ha degli ingressi detti porti in cui inserire i cavi che collegano i dispositivi di I/O.
PORTE DELL’UNITA’ CENTRALE
La porta parallela che consente il transito in una sola direzione: dal computer alla periferica. Viene quindi usata esclusivamente per il collegamento con le stampanti. Vecchia porta non utilizzata nei pc attuale.
La porta seriale con periferiche attive, quindi ho uno scambio di dati bidirezionale come mouse e tastiera.
Porta seriale USB che consente il collegamento quando il computer è acceso, cioè è a caldo, sono usualmente molto veloci.
Porta serial ATA: è generalmente usata per connettere hard disk o drive ottici a grandi velocita, questa porta si trova solitamente sulla scheda madre, altre volte anche esternamente; si affianca alle porte USB.
La CPUo microprocessore è un chip integrato costituito da una piccola piastra di silicio sulla cui superfice sono stati creati milioni di transitor miniaturizzati. Ci sono una serie di pin (piedini miniaturizzati) che si inseriscono in uno specifico alloggio nella scheda madre; uno di questi piedini è quadrato ed indica in che verso inserire il processore nella scheda madre; il carattere quadrato sta a indicare ciò, potrebbe esserci anche uno spazio vuoto.
Nella maggior parte dei computer le informazioni e dati da elaborare devono essere caricati, cioè copiati in memoria principale. La memoria contiene due tipi di informazioni: la sequenza delle istruzioni che devono essere eseguite dal processore e l’insieme dei dati su cui operano tali istruzioni. Il processore è composto da diverse componenti che svolgono compiti diversi.
Le principali componenti sono: controllo, ALU (unità logico aritmetica), registri.
Queste componenti dialogano con la Ram. Le piste di rame che collegano queste tre componenti con la Ram sono bus di dati, busi di indirizzi e bus di controllo. Le operazioni della CPU sono scandite dal tempo di clock, che da la frequenza con la quale la CPU fa la singola operazione che in generale
può fare somme e confronti bit a bit, ognuna di queste e ogni confronto, prelevamento e scrittura di dati è scandita dal battito del clock; questo metronomo va a milioni di operazioni al secono (megaerz, gigaerz…).
UNITA’ DI CONTROLLO: esegue operazioni finalizzate al trasferimento di dati o al controllo dell’esecuzione dei programmi.
UNNITA’ LOGICO ARITMETICA: esegue operazioni (somme con riporto) matematiche e logiche sui dati che sono contenuti nei registri.
REGISTRI: celle interne alla CPU che deve contenere l’istruzione da eseguire, i dati da elaborare, e informazioni accessorie (eventuali anomalie generate dall’esecuzione) sullo stato della CPU.
Lo stato della CPU è la sequenza binaria determinata dalla lettura di uno o più registri all’interno della CPU.
L’unità di controllo (UC) si occupa di coordinare le diverse attività che vengono svolte all’interno del processore. Il processore svolge la sua attività in modo ciclico: ad ogni ciclo corrisponde l’esecuzione di una istruzione macchina. Ad ogni ciclo vengono svolte diverse attività controllate a coordinate della UC chiamate fetch-decode-execute:
L’unità di controllo esegue un ciclo di istruzioni macchina ad ogni clock, e la sua velocità di elaborazione dipende dal clock; i processori attuali hanno valori di frequenza di clock che variano tra i 500 MHz e 5GHz. HZ: Unità di misura della frequenza. L’Hz mi dice quante istruzioni, azioni di una determinata azione vengono eseguite in un secondo. Uno stesso processore può eseguire calcoli a diverse velocità fino ad un massimo oltre le quali il processore surriscalda o non garantisce le prestazioni. Il processore contiene al suo interno un insieme di registri (unità di memoria estremamente veloci). Le dimensioni di un registro sono di pochi byte (4, 8). I registri contengono delle informazioni di necessità immediata per il processore. Esistono due tipi di registri: registri speciali, cioè utilizzati dalla UC per scopi particolari. Registri di uso generale (registri aritmetici). STATO DELL’ARTE CPU: Processori INTEL, Processori AMD, Processori MOTOROLA. I BUS
Il microprocessore e gli altri componenti elettronici comunicano per mezzo di impulsi elettronici. Questi impulsi viaggiano attraverso piste di rame tracciate sulla scheda madre, dette BUS. Il numero di linee determina l’ampiezza del BUS. Oggi i bus possono essere a 32 o 64 bit. Il bus che collega la CPU agli altri dispositivi del computer, fra cui la memoria centrale, si chiama system bus in ogni
sono nella Ram; programmi stile word all’avvio viene preso dalla memoria di massa e portato nella Ram (avviato col doppio clic) e il tutto avviene nella Ram; quando ho finito i documenti sono salvati nell’hard disk (disco rigido). I dati sono letti dai bracci che hanno una testina di scrittura e lettura, posizionandosi sulla traccia interessata, da lì potrò leggere i dati. Ciò avviene meccanicamente, ho un motorino che mi fa accedere ai dichi e spostare il braccio.
La parte della rom che avvia il sistema si chiama BIOS. In fase di avvio il programma di boostrap effettua i test diagnostici, carica nella memoria principale Ram la parte principale del sistema operativo (kernel).
IL DISCO RIGIDO
La formattazione consiste nella suddivisione del rivestimento magnetico del disco in settori e tracce concentriche. I primi hard disk avevano capacità di 10MB, ora possiamo trovarli in commercio anche da alcuni Terabyte. Li informazioni vengono memorizzate per mezzo di una testina che modifica la polarità magnetica delle singole particelle per rappresentare i numeri binari. La velocità di rotazione può variare da 60 giri al secondo fino a 1000 rpm (revolution per minute). In media un HD ha velocità dai 4500 ai 7200 rpm.
Il tempo di accesso è il tempo necessario per estrarre un dato ed è dato dalla somma del:
Immagine slide
Abbiamo 4 spinotti che sono l’alimentazione del braccio e dei motorini che girano. L’altra parte accanto è il collegamento dell’hard disk con la scheda madre con la quale riceve e invia dati. C’è poi uno spinotto bianco (jumper, oggetto di plastica con una barretta in metallo) che serve per circuitare pin e settare delle caratteristiche dell’hard disk ( se è quello principale, se può contenerr o meno il sistema operativo, ecc.).
DISCHI OTTICI
Fanno parte della memoria di massa e ho un raggio laser che scrive sul cd o dvd e legge, scrive facendo piccoli buchini o lasciando aree di superficie piatta.
CD-ROM sono supporti ottici per la memorizzazione di dati, che dopo essere stati masterizzati una volta tramite masterizzazione possono essere usati solo per la lettura di informazioni, ma con speciali apparecchi cioè i masterizzatori possiamo rifondere la superficie del cd possiamo incidere buchi o comunque modificarne la superficie. La capacità è 650 MB.
I DVD-ROM (4,7 GB) sono l’evoluzione dei CD. Sono stati introdotti principalmente per riprodurre film. I nuovi modelli dovrebbero avere una capacità di 17 GB.
I DRIVE sono dispositivi in cui vengono inseriti floppy, cd, dvd; contengono testine di scrittura e lettura; i nuovi modelli si differenziano per la velocità di lettura. 32x vuol dire che i dati vengono letti con una velocità 32 volte superiore allo strumento precedente.
DISPOSITIVII DI IMPUT / OUTPUT (anche dette periferiche)
Dispositivi che permettono all’elaboratore di ricevere input dall’esterno ed emettere output all’esterno. Solitamente hanno limitata autonomia dal processore centrale, dal quale sono coordinati. Così come le memorie di massa, anche i dispositivi di IO sono collegati a dei circuiti (CONTROLLER) che gestiscono il coordinamento tra processore, memoria e dispositivi in modo da garantire il corretto trasferimento dei dati.
E’ un dispositivo di INPUT che permette di trasferire un movimento su una base solida su un un indicatore dello schermo (puntatore). Lo spostamento fisico del mouse viene comunicato al processore che produce lo spostamento corrispondente della freccia sul video. Un avolta raggiunta la meta con la freccetta si preme uno dei due pulsanti del mouse che generano un imput, ognuno con funzioni diverse.
Mouse meccanici : rotella di materiale plastico interna e il suo moto su una superficie piana determina lo spostamento del puntatore.
Mouse ottici: usavano il led per rilevare lo spostamento sulla superficie di appoggio. Oggi hanno un cip per essere efficienti anche su superfici diverse.
Mouse laser : utilizza un laser per l’illuminazione del piano di appoggio, in base al movimento sul piano viene trasmesso il movimento del puntatore.
Tastiera: non ha la capacità di elaborazione, l’unica cosa che è in grado di fare è di avvertire il processore ogni volta che un carattere è disponibile in ingresso.
Si tratta quindi di un dispositivo di INGRESSO A CARATTERE. E’ compito del sistema quello di prelevare il carattere, depositarlo in una memoria temporanea, ed infine al termine dell’immissione, passare i dati di input raccolti nella memoria temporanea del programma a cui erano destinati.
La tastiera è inoltre un dispositivo di input cieco, nel senso che l’utente non può vedere i dati messi nel calcolatore che rende dispnibili tali dati una volta immessi. Quando uso la tastiera ho quindi la necessità di vedere cosa digito; tastiera e video sono collegati dal processore.
Dal punto di vista fisico, un video può essere visto come una matrice di punti illuminati con diversa intensità. Ogni punto sullo schermo prende il nome di pixel e ogni immagine quindi viene composta accendendo o spengendo i pixel sullo schermo. Oggi sono comuni video con un numero di colori che
Chipset: insieme di chip che smistano e dirigono il traffico di informazioni con i Bus di sistema, fra CPU, Ram e controller delle periferiche con Input/output.
Rom : piccola memoria su ogni personal computer, in alcuni casi riprogrammabile. Contiene il BIOS della scheda madre, cioè un piccolo software non modificabile, scritto e stampato per la scheda madre detto FIRMWARE. Serve per la diagnostica del pc all’avvio e settaggi del pc, della ventola.
CMOS: piccola memoria Ram in cui sono memorizzate le impostazioni del BIOS. E’ un semiconduttore che richiede poca energia per funzionare. Quando viene spento il computer per memorizzare le impostazioni del BIOS, viene usata una piccola batteria in litio, la quale è interna alla scheda madre.
Il bus di espansione: si tratta di un collegamento dati generico punto-multipunto, progettato per permettere di collegare alla scheda madre altre schede di espansione alloggiate sui connettori (slot) che ne estendono la capacità. In linea di principio ad un Bus può essere collegato un hardware di ogni tipo: schede video aggiuntive, schede audio professionali, ecc.
Immagine scheda madre…
Schede di espansione: schede che espandono le funzioni della scheda madre per pilotare dispositivi interni ed esterni.
MODEM (MODulatore-DEModulatore): è il dispositivo per la trasmissione o la ricezione in forma analogica o digitale. Un modem prende le informazioni digitali contenute in un computer e le converte sotto forma di suoni analogici che possono essere inviati attraverso una linea telefonica analogica convenzionale. I modem possono anche riconvertire in informazioni digitali i suoni analogici in arrivo. Il primo procedimento è noto come modulazione e il secondo è noto come demodulazione.
STAMPANTI:
Laser: ho un raggio laser che riscalda sul foglio polvere di inchiostro, dove passa il laser viene impresso l’inchiostro.
A getti di inchiostro: si stampa spruzzando un sottile getto di inchiostro liquido sul foglio.
Ad aghi: ormai quasi scomparse che stampavano servendosi di piccoli aghi con la punta piena di inchiostro.
La memoria principale è organizzata in parole, ogni cella della memoria principale è una parola da 8 byte o suoi multipli. Ognuna identificata da un indirizzo, può considerarsi come un deposito di dati velocemente accessibili da CPU e dispositivi I/O. tale memoria è volatile e perde dati in caso di system failure. Il SO è responsabile delle seguenti attività:
Visto che la memoria principale è volatile e troppo piccola per contenere tutti i dati ed i programmi permanentemente, il calcolatore deve prevedere anche una memoria secondaria, di supporto a quella principale. La maggior parte dei calcolatori utilizza dischi, come supporti di memoria secondaria, per memorizzare sia dati che programmi. Il SO è responsabile delle seguenti attività per gestire i dischi: gestione dello spazio libero, allocazione dello spazio e schedulazione dei dischi.
Il SO gestisce le operazioni sulle periferiche di I/O tramite:
GESTORE EI FILES
Il FILE è inteso come una collezione di informazioni correlate (appartengono tutte ad una stessa entità logica), cioè un sistema di byte che codificano una certa entità logica (testo, immagine, suono, ecc.) organizzati secondo un certo formato, memorizzati su supporti di memoria secondaria. I file hanno una parte in testa e una in coda con informazioni sul file e ciò che contiene. Il SO è responsabile di:
Il FILE SYSTEM è quella parte del SO che si occupa di gestire e strutturare le informazioni memorizzate in supporti permanenti. Deve fornire una visione astratta dei files su disco e l’utente deve avere la possibilità di:
Pathname relativo è invece il percorso che si deve compiere per raggiungere il file a partire dalla directory nella quale siamo (directory corrente).
Per organizzare gerarchicamente un file, il sistema operativo deve fornire all’utente anche un insieme di operazioni sulla directory, per esempio: creare una nuova directory, rimuovere una directory, ridenominarne una, elencarne il contenuto, spostare o copiare i file da una directory all’altra.
Per protezione si intende un meccanismo per la gestione degli accessi al sistema ed alle risorse degli utenti da parte dei programmi, processi o altri utenti. Il SO distingue tra uso autorizzato e non, fornisce un modo per specificare i controlli da imporre, forzare utenti e processi a sottostare ai controlli richiesti.
Un sistema distribuito è una collezione di processori che non condividono una memoria e clock. Tali processori sono connessi tramite una rete di comunicazione. Il SO deve gestire un sistema distribuito per garantire agli utenti l’accesso alle risorse del sistema tale gestione deve porsi fine come: l‘aumento delle prestazioni computazionali, l’incremento della quantità di dati accessibili e l’aumento dell’affidabilità del sistema.
Interprete dei comandi è per esempio la finestrella era dell’DOS, dove si possono scrivere dei comandi che vengono accolti ed eseguiti dal sistema operativo; tali comandi devono essere un soprainsieme dei comandi che troviamo usualmente quando, ad esempio dobbiamo rinominare o clicchiamo col tasto destro un file. Se andiamo sul file system: questa è una parte del sistema operativo windows messe a disposizione. Per fare cose più specifiche come cercare file che hanno determinate caratteristiche è necessario andare a cercare dei comandi ulteriori più sofisticati e difficili da usare.
SERVIZI ADDIZIONALI:
Il sistema operativo risiede sull’hard disk come tutti gli altri programmi e viene caricato nella memoria RAM all’accensione della macchina. Esistono molti sistemi operativi: MS-DOS, Windows, MacOS, Linux e Unix. Questi ultimi tre non prevedano la comparsa di nessuna grafica e tutti i comandi devono essere digitati da tastiera. MacOS eWindows usano un’interfaccia grafica.
DRIVE. Sono dei file usati dal sistema operativo per effettuare la comunicazione fra il computer e le varie periferiche. Per poter funzionare correttamente, ogni dispositivo deve avere il suo particolare driver registrato dal sistema operativo. I driver vengono installati in un computer attraverso un software di installazione automatica che viene fornito insieme ai dispositivi stessi. Windows possiede una funzione detta PLUG AND PLAY, che all’accensione del computer verifica la prensenza di nuove componenti hardware ricercando automaticamente il driver adatto.
SOFTWARE APPLICATIVO: Insieme di programmi installati dall’utenti per fare compiti specifici. Si divide in utilità di sistema e strumenti di sviluppo.
I problemi che ricorrono nella vita quotidiana prevedono l’elaborazione delle informazioni e la produzione di un output per risolvere il sistema. L’uomo in tal caso è il risolutore che compie una serie di azioni fisiche o mentali che producono poi la soluzione.
Dati di partenza, soluzione (insieme di azioni fisiche o mentali) che ci consentono di raggiungere il risultato. Questi sono i tre elementi che costituiscono un problema.
La conoscenza che io ho per risolvere un problema e la capacità di risolverlo effettivamente sono due capacità diverse.
LA SOLUZIONE deve essere realizzata in fasi distinte:
L’ESECUTORE la procedura di soluzione deve essere descritta i una forma che l’esecutore sia in grado di interpretare in modo corretto. La soluzione deve specificare delle soluzioni che l’esecutore è in grado di attuare. Ogni esecutore è caratterizzato dalle sue capacità di interpretazione e di azione.
I calcolatori sono degli esecutori di soluzioni che esseri umani hanno precedentemente identificato e descritto. I calcolatori hanno una notevole capacità di esecuzione e possono ripetere la stessa operazione producendo sempre lo stesso risultato un numero elevato di volte. Il calcolatore in quanto esecutore è caratterizzato da un linguaggio che è in grado di interpretare, con il quale devono essere descritte le soluzioni che vuole che esso attui. L’insieme delle azioni che è in grado di compiere, infine l’insieme delle regole (istruzioni) che a ogni costrutto linguistico sintatticamente corretto associano le rispettive azioni da compiere.
Se un problema è estremamente semplice è possibile che l’esecutore lo risolva direttamente. In generale per giungere alla soluzione di un problema, si scompone il problema in sotto-problemi, e questi in sotto-sottoproblemi. Ci si ferma quando si giunge ad un problema elementare o primitivo la cui soluzione corrisponda ad una azione elementare che può essere direttamente compiuta dall’esecutore. Risolvere un problema equivale a risolvere una opportuna successione di problemi più semplici.
L’insieme dei sotto problemi viene risolto da una procedura effettiva quando tutti i problemi sono elementari, è fissato l’ordine di soluzione dei problemi ed è specificato il modo in cui un problema utilizza i risultati dei problemi che lo precedono.
Ad ogni scomposizione di un problema in sotto problemi può essere associata una procedura effettiva quando vengano considerati come elementari tutti i sotto problemi. I concetti di problema
Le proposizioni usate da un linguaggio formale descrivono due classi principali di entità: le OOPERAZIONI che devono essere eseguite e i DATI cioè gli oggetti sui quali si devono eseguire le operazioni. I dati costanti rimangono inalterati durante l’esecuzione dell’algoritmo da quando ha iniziato a quando termina. I dati variabili invece sono coppie che possono essere immaginati come scatole che hanno l’etichetta “nome” e contenuto “valore”. Alle variabili deve essere assegnato esplicitamente un valore, all’inizio dell’algoritmo le variabili hanno valore indeterminato, le variabili hanno lo stesso uso dei pronomi nel linguaggio naturale e servono per riferirsi ad un oggetto (solitamente un valore numerico) indipendentemente dal valore specifico di questo.
ASSEGNAZIONE: l’istruzione di assegnazione è quella particolare istruzione che permette di definire il valore attuale di una variabile. Il valore rimane inalterato fino ad una nuova assegnazione alla variabile. Forma generale: nome espressione
L’assegnazione viene eseguita valutando l’espressione di destra e si attribuisce il valore determinato alla variabile.
Ogni volta che una variabile appare a destra dell’istruzione di assegnazione è necessario che un valore sia già stato assegnato a quella variabile.
Le variabili analizzate fino ad ora sono dette variabili scalari, ma omogenei. Una variabile vettore è una coppia <nome, valore>.
Le istruzioni condizionali controllano che siano state eseguite le condizioni specificate e che in base a risultato determinano quali istruzioni seguire. Si altera il flusso del programma in funzione della condizione (vera, falsa).
Ogni valore è individuato dal nome della variabile seguito dal numero del comparto detto indice. Per il nostro tempo la notazione usata sarà VOCALE (i), con i un numero compreso tra 0 e 4. La dimensione di un vettore è il numero dei suoi elementi. Dato da un vettore di dimensione N, gli indici vanno per convenzione da o a N – 1 oppure da 1 a N a seconda della sintassi del linguaggio scelto. In fase di dichiarazione di una variabile vettore si specifica la sua dimensione che non è più modificabile successivamente.
L’istruzione di assegnazione ad un vettore è analoga a quella per una variabile ordinaria, con la differenza che si deve specificare anche a quale posizione ci stiamo riferendo.
MATRICE: una matrice l’estensione del concetto di vettore. Una matrice è un insieme di valori che sono indicizzati facendo ricorso a due o più indici. La nozione usata per una matrice a 2 dimensioni l’indice i è detto anche riga e l’indice j è detto colonna. Per una matrice l’assegnazione avviene come per il vettore con la differenza di dover specificare i due indici.
…
Istruzioni operative producono un risultato o modificano una variabile. Ne fanno parte le operazioni aritmetiche e le assegnazioni.
Istruzioni di salto: istruzioni che alternano il normale ordine di esecuzione delle istruzioni di un algoritmo, specificando esplicitamente quale sia la successiva istruzione da eseguire. Si distinguono in istruzioni di salto condizionato e incondizionato a seconda che debba essere verificata una
condizione per poter attuare un salto oppure no. Nei linguaggi di programmazione non strutturati non sono usate.
Istruzioni di inizio e di fine: indicano quale istruzione dell’algoritmo debba essere eseguita inizialmente e quale alla fine.
Istruzioni di ingresso e di uscita: istruzioni che indicano la trasmissione di dati o messaggi tra l’algoritmo e tutto ciò che è esterno all’algoritmo. Tali istruzioni si dicono ingresso di ingresso o lettura quando si ricevono i dati dall’esterno. Si dicono di uscita o scrittura quando i dati sono comunicati all’algoritmo dall’esterno.
Istruzioni condizionali: verificano il verificarsi delle condizioni specificate e che in base al risultato determinano quale istruzioni seguire. Si altera il flusso del programma in funzione della condizione se è vera o falsa.
Istruzioni di ciclo sono delle istruzioni che permettono di ripetere un determinato blocchi di una o più istruzioni per un certo numero di volte. Tale condizione può essere testata si a prima che dopo l’esecuzione. Smetto l’esecuzione del loop quando una condizione si verifica.
I predicati delle istruzioni di controllo: devono determinare la verità o la falsità di un enunciato. Tale enunciato viene chiamato proposizione e si parla di valore di verità di tale proposizione.
Predicati: è un predicato una proposizione che contiene delle variabili e in cui il valore delle variabili determina il valore di verità del predicato e la composizione di un predicato avviene tramite operatori relazionali (uguale, maggiore, minore, diverso, minore o uguale, maggiore o uguale).
PREDICATI DELLE ISTRUZIONI DI CONTROLLO
Devono calcolare o determinare la falsità o veridicità di un enunciato. Tale enunciato viene chiamato proposizione e si parla di valore di verità di tale proposizione (si deve poter dire se un predicatore è vera o falsa a seconda dei valori delle variabili al suo interno). E’ un predicato una proposizione che contiene delle variabili in cui il valore elle variabili determina il valore di verità del predicato. La mia espressione avviene mediante i seguenti operatori relazionali (uguale, maggiore, minore, diverso, minore o uguale, maggiore o uguale).
Predicato che contiene un solo operatore relazionale è detto predicato semplice. Gli operatori relazionali possono essere combinati con i seguenti operatori logici: not, or, and. Un predicato che contiene più operatori relazionali combinati tramite uno o più operatori logici è detto composto.
OPERATORI LOGICI:
NOT (! o il simbolo tilde): dato un predicato p, NOT è vero quando p è falso.
AND (&): dati due predicati pe q, p AND q è vero solo quando entrambi p e q sono veri, sennò è falso. Abbiamo due operatori binari. AND mi veicola il vero solo se entrambi i predicati che mi veicola sono veri.
OR (| o ||): dati due predicati p e q, p OR q è falso solo quando entrambi p e q sono falsi o vero altrimenti. E’ il contrario dell’AND.
modo di agire in passi elementari sopra riportati. (RAPPRESENTAZIONE DEL DIAGRAMMA SUL FOGLIO).
Start A (blocco di azione) mi avvicino alla strada + (blocco di azione) arriva una macchina?
ANALISI STRUTTURATA: Analisi volta alla stesura di descrizione di algoritmi tramite diagrammi a blocchi di tipo strutturato. Un diagramma a blocchi strutturato è più comprensibile e modificabile. In un diagramma strutturato non apparirà mai una istruzione di salto incondizionato.
Teorema di Bohm-Jacopini: ogni diagramma a blocchi non strutturato è sempre trasformabile in un diagramma a blocchi strutturato ad esso equivalente.
Sono equivalenti quand lo sono anche gli algoritmi relativi, cioè quando otteniamo dagli stessi imput gli stessi output, fanno la stessa cosa.
Una descrizione è di tipo strutturato se i blocchi sono collegati tramite i seguenti schemi di flusso strutturato:
Begin S1 S2 end
Ciclo definito: noto a priori in n. di volte che va eseguito; viceversa è indefinito. La condizione di fine ciclo dipende dal valore di una o più variabili che o dipendono dall’interazione con l’esterno o vengono modificate all’interno dell’iterazione in modo complesso.
Esercizi: 1) Ricerca di un elemento in un vettore.
Passo 1: per procedere alla risoluzione dell’esercizio bisogna isolare:
Per essere sicuri di aver compreso correttamente il problema facciamo una serie di esempi calcolando alcuni output a partire da input diversi.
Passo 2: analizziamo il modo di risolvere il problema utilizzato durante gli esempi chiarendo a noi stessi quali passi ci hanno portato ad una soluzione a partire dai dati in ingresso.
SE I PASSI PER LA RISOLUZIONE DEL PROBLEMA NON CI SONO ANCORA SUFFICIENTEMENTE CHIARI, TORNIAMO INDIETRO FACENDO ALTRI ESEMPI.
Passo 3: ciascun passo da noi trovato va introdotto in uno o più passi elementari, cioè passi che possono essere descritti tramite i blocchi a disposizione e degli schemi descritti in precedenza.
Svolgimento dell’esercizio 1 sul foglio.
Passo 1: dati richiesti dall’utente: VETTORE (di numeri) all’interno del quale cercare il nostro elemento. ELEMENTO (numero) che deve essere cercato.
Dati costanti di un problema: eventualmente la dimensione del vettore in ingresso, altrimenti nessuno.
Esempio_
Input: vettore (2, 5, 43, 72, 0, 26, 2, 4) elemento=
Output: “elemento trovato”
Procedura: esamino il primo elemento del vettore, se è 26 dico “Elemento trovato”, altrimenti proseguo con il secondo elemento. Se il secondo elemento è il 26 dico “Elemento trovato”. Altrimenti passo al terzo elemento e così fino alla fine degli elementi del vettore. Se l’elemento non è stato trovato dico “Elemento NON trovato”.
Passo 2: analisi e caratteristiche dell’algoritmo da noi descritto nella procedura di soluzione:
Passo 3: avendo in mente le considerazioni fatte, si procede infine alla formulazione del diagramma di flusso come segue.
Schemi sui fogli
14/04/
SAMPLE RATIO/CAMPIONAMENTO: Il campionamento dell’onda indica ogni quanto tempo o quante volte al secondo vado a leggere il valore dell’onda.
TONE VALUE: i valori che io passo.
SAMPLE RATIO: nell’esempio 30, cioè il campionamento.
Campionamento per tutte e 30, frequenze diverse per ciascuna onda. Più alta è la semple ratio (più istanti campiono) più sarà affidabile il mio suono.