Sei sulla pagina 1di 6
Unita 1 « Introduzione all'informatica RAPPRESENTAZIONE DIGITALE DEI DAT! Il termine digitale (dallinglese digit, eifra) sta a indicare tutto cid che pub essere rappresentato da numeri. Nella vita di ogni giorno alcune situazioni sono direttamente rappresentate da numeri; si pensi, per esempio, al numero di penne presenti nell’astuccio: tale numero, considerato in modo digitale, é una grandezza “che varia fra un sistema finito di possibili stati in maniera discreta”, dove stati indica nel nostro esempio il numero di penne e discreta significa che ogni stato (numero) é ben distinto dagli altri, vale a dire 4 penne, oppure 5 ecc., cio? valori ben definiti. Altre situazioni, invece, come per esempio il segnale generato da un microfono, tano in modo analogico in quanto, in un intervallo, il segnale pud assumere infini presen- valori Abbiamo detto che I’elaboratore é in gra- i do di operare solo su dati digitali rappre- sentati da valori binari; un fenomeno ana- => logico, dunque, per poter essere interpre- tato deve essere digitalizzato: il suo origi- nario stato analogico viene “tradotto” e Segnale analogco ‘Segnale digitale rappresentato mediante un insieme nu- ——*" merabile di elementi, Una foto in formato digitale pud essere di- 4 visa in un numero discreto di “punti’, in —=— genere piccoli quadrati o rettangoli, detti pixel (dall'inglese picture element), ognu- no dei quali @ costituito da un colore tra i 16.777.216 possibili (se codificati nel mo- dello di colori RGB). Ogni pixel 2 formato da un deter ee minato numero di byte, in relazione al colore che deve Con il termine RGB si indica un modelo | rappresentare: tali byte indicano J'intensita di rosso, cromatice (di tipo additive) che si base su quella di verde e quella di blu (RGB) che deve essere tre color: rosso (Red), verde (Green), blu : - ; a (Glue) dh cull nome RGB. Nedlante fli | a8Sociata al relativo punto dell’immagine al fine di po- © alte tecniche, unimmagine pub essere | _teY essere rappresentato correttamente. scomposta in questi colori base che, mi-| Ne consegue che un'immagine, in relazione al numero Sedat te loro, foriscno lo spetto ge! | di pixel di cui si compone e al numero di byte di cui ogni pixel & costituito, pud essere a risoluzione piti o 7 Moduto 1 + Cencetti base meno elevata. Maggiore sara la risoluzione (owero il numero di pixel che forma limmagi- ne), migliore sara la sua rappresentazione in termini di nitidezza e precisione. Tuttavia, poiché immagini con risoluzione elevata hanno bisogno di una maggiore quantita di me- moria, spesso a esse vengono applicate tecniche di compressione oppure differenti formati di memorizzazione che corrispondono alle diverse estensioni associate ai file di immagini, quali if, jpeg, bmp, .tif ecc. La conversione, necessaria affinché immagine possa essere rappresentata e gestita dal- Yelaboratore, produce una perdita di informazioni, in genere non percepibile, perché la rappresentazione digitale ¢ approssimata al valore analogico. La grande diffusione di dispositivi di elaborazione, nati per lavorare su informazioni in for. mato digitale, ha fortemente favorito la traduzione in termini digitali di grandezze e feno- meni analogici. IL LINGUAGGIO NATURALE E | LINGUAGGI Di PROGRAMMAZIONE Quando si parla di linguaggio si intende, in generale, insieme delle parole (lessico), cia- scuna dotata di un proprio significato, e la loro sintassi, costituita dalle regole da seguire per costruire una frase in modo corretto, affinché possa essere compresa. Il tinguaggio naturale é quello comunemente utilizzato per comunicare con gli altri: consente ricchezza espressiva, ma, in alcuni casi, pud dare adito ad ambiguit’ e talvolta anche a ridondanza. Consideriamo, per esempio, la seguente frase: “la bella pesca” Essa pud essere cosi interpretata: “una bella ragazza sta pescando”, ma anche “un bel frut- to Ne consegue che il linguaggio naturale non puo essere utilizzato per “istruire” 'elaborato- re su cid che deve eseguire, in quanto le caratteristiche che presenta non sono adatte alla sua logica: un elaboratore non pud gestire informazioni ambigue. Esso riesce a interpre- tare un linguaggio costituito da istruzioni precise appartenenti a un linguaggio spccifico, a lui comprensibile, costituito da un alfabeto, con il quale viene costruito un insieme di parole chiave (vocabolario), e da un insieme di regole sintattiche per I'uso corretto delle parole del linguaggio. Llelaboratore, quindi, per svolgere un determinato compito deve di- sporre di un algoritmo che definisca nei particolari come tale compito debba essere ese- guito. Lelaboratore perd non é in grado di eseguire direttamente I'algoritmo, che deve e: sere percid trasformato in un programma espresso mediante un linguaggio di program- mazione. (ainda ») TLtinguaggio di programmazione é un linguaggio intermedio fra il inguaggio | I inguaggio machina &) maechina e il linguaggio naturale, in grado di descrivee ali algortmi con una | unico direttamente com ricchezza espressiva comparabile a quella dei linguaggi naturali, risultando cosi | presi callelaboretore. ) somplice da apprendere e da usare da parte dei programmator, Unita 1 = introduzione alinformatica 1 linguaggio di programmazione viene de- finito anche linguaggio di alto livello in quanto @ costituito da una sintassi che non eee ea ® dipendente dal funzionamento specifico di una certa CPU (vedi pag. 18) ¢ di conse- v guenza consente di scrivere un program- tna indipendentementedalfelaboratere su cui sara eseguito. CONNETTIVI LOGICI (AND, OR, NOT) ale Come si pud notare dalla rappresentazione dell'algoritmo mostrato a pag. 4, lelaboratore @ programmato per eseguire determinate fun- ioni che si basano sulla verita o sulla falsita di certe proposizioni semplici, come per esempio “II Po é un fiume” (proposizione sem- plice vera), oppure “2 + 2 = 3” (proposizione semplice falsa). La veri 14 o la falsita di una proposizione semplice viene indicata con lespressione “valore di veri- 1a, nel senso che una proposizione pud essere vera o falsa, ma non entrambe le cos: Le proposizioni semplici possono essere combinate tra loro mediante i connettivi logici AND, OR, NOT in modo da dare origine a una nuova proposizione, detta “composta’, il cui valore di verita ¢ determinato dal valore di verita delle sue proposizioni semplici e dai con- nettivi logici che le collegano. (OCS cual valori vero o falso sono cefiniti valor logicio valo- ‘i booleani, Un connettivo o operatore logico istituisce fra due proposizioni a e b una relazione che da origine a una ter- za proposizione ¢, che sara vera o falsa in base ai valori delle due proposizioni a e b e al tipo di connettivo: utilizeato. Di seguito prendiamo in considerazione le proposizioni semplici a e b collegate ai diversi connettivi logici - AND, OR, NOT — mostrando le relative tavole di verita, ettivo AND (congiunzione) Date le proposizioni semplici ae b collegate dal connettivo AND, il risultato della congiunzione | dara origine a una proposizione composta che sara: * vera, solo se a e b sono entrambe vere; © falsa, quando almeno una delle due é falsa. Eee ee a[b[@AaNDb ] ESEMPIO viv a Connattve b Proposizione TLL (prima proposizione) | “AND _| (Seconda proposizone) | _composta tt 110 un furne 2a2ed Vero r+ ‘1Po un fue 24253 Faso ITPo @un ago @ 2424 Faso 106 un ago e 24253 Faso Modulo 1 + Concetti base ® Connettivo OR (disgiunzione) Date le proposizioni semplici a e b collegate dal connettivo OR, il risultato della disgiunzione EMCI dara ‘ongine a una propasizione composta che sara: # falsa, solo se a e b sono entrambe false; * vera, quando almeno una delle due @ vera. Ese) EEN b [aOR] ESEMFIO “ (rime proposizione r TP dun fume t TPoeunfume T1Po @uniago TTPo@ unlago ® Connettivo NOT (negazione) Data la proposizione semplice a, inserendo o anteponendo ad a il connettivo NOT & possibile formare unvaltra proposizione, detta negazione di alf{TOMieM (rappresentata anche nei sequenti modi: a’, 1a oppure a”). AEE I connettivi logici permettono di costruire proposizioni anche molto comples- a | NOTa T_T] se nelle quali, per stabilire il valore di verita, @ necessario calcolare prima i va~ F{-¥—] lori di verita di ogni sottoproposizione. Per esempio, considerando la pro- 7 posizione complessa KEZAMEXINEMISE | (rrima proposizione) (seconda proposizione) & necessario stabilire prima il valore v di verita di e poi quello del- la proposizione complessa, come mostrato nella tavola di verita. t f IL LINGUAGGIO MACCHINA E | LINGUAGGI PROCEDURALI Abbiamo detto che i linguaggi di programmazione (0 procedurali) tendono ad assomigliare ai linguaggi naturali (quelli usati dall'uomo) proprio per rendere STI. pit facile 1a programmazione del computer. 1! computer, invece, Le opeazion! elenenar ese-| “caisce” un suo linguaggio, definito linguaggio macchina, quite dalla CPU sono rappre- seat cane seuenze ce | 11 inguaggio macchina, drettamente comprenstite dala CPU, € costiuito nari, Di consequenza, a que- aa eae a bina i conequezs 2 au | da una sintasiLmitatissima e molto rigda, conposta da sequence i fre risponde una serie di istru-| Binarie 1 0. zion’ espresse in code bina tor direttamente eseguibl) primi computer si basavano esclusivamente sul linguaggio mac- = china: il programmatore utilizzava una tabella che serviva per 10 Unita 1 + introduzione all’informatica tradurre i comandi nella serie corrispondente di cifre binarie da inserire; era sufficiente sbagliare una cifra per mettere in crisi tutto il sistema. Inoltre il linguaggio macchina, di- rettamente compreso ed eseguito dal processore, ancora oggi é strettamente collegato alla sua struttira fisica, con la conseguenza che il medesimo programma pud non funzionare in microprocessori divers ) Per owiare a questi inconvenienti sono stati sviluppati i lin- IL inguaggio Assembler 8 un| gUaggi di programmazione di alto livello, in cui le istruzioni non linguaggio 4 programmazione | sono pitt indicate da sequenze di cifre binarie, ma da nomi sim- i basso livelo che ha lastessa)—bolici, pid facili da riconoscere, memorizzare e utilizzare da cua edges parte del programmatore. Inoltre essi non sono vincolati alla alle catterstiche del compu. | Struttura di uno specifico processore; ne consegue che tn pro- ter peril quae @ stato defini-| gramma scritto in un linguaggio di alto livello pud funzionare to. E complicato da memoriz-| su qualsiasi claboratore. zate in quanto vi @ una precisa corigndems tale stwzin! | Tustavia, poiché l'elaboratore riesce a interpretare solo istruzio- semblere le istruzioni definite| ni formulate in linguaggio macchina nelle sequenze di 1 ¢ 0 in Linguaggio macchina, (basso livello), sara necessario tradurre i programmi scritti in = — linguaggio di alto livello in linguaggio macchina. Questa operazione di waduzione pud essere eseguita dai pro- grammi di seguito descritti * Programmi compilatori: traducono l'intero programma scrit- to in linguaggio di alto livello (per esempio, in Pascal 0 in C++) nella corrispondente copia in linguaggio macchina: tutte le istruzioni vengono controllate nel lessico e nella sintassi, tradotte e trasformate in un file eseguihile che, memorizzato per esempio in un CD o su disco fisso, potra essere utilizzato tutte le volte che si ritiene opportuno. Il file eseguibile, quin- di, diventa indipendente dal programma scritto in linguaggio di alto livello che lo ha prodotto e, una volta tradotto, pud es- sere eseguito senza il programma compilatore. + Programmi interpreti: “leggono” riga per riga le istruzioni scritte in linguaggio di alto li- vello, ne controllano il lessico ¢ la sintassi e le traducono in linguaggio macchina per far- le eseguire dircttamente dall'unita centrale di claborazione. In questo caso non viene prodotta una copia del programma in linguaggio macchina, ma ogni istruzione viene di volta in volta tradotta e poi fatta eseguire Per rispondere alle diverse esigenze sono stati sviluppati diversi linguaggi di programma. zione di alto livello (0 procedurali), adatti ad ambiti applicativi differenti, alcuni dei quali sono indicati di seguito: + il FORTRAN (FORmula TRANslator), uno dei primi a essere usato in particolare per Yesecuzione di calcoli di tipo scientifico; + il COBOL (Common Business Oriented Language), impiegato per applicazioni di tipo ge- stionale; il C, utilizzato per applicazioni di tipo ingegneristico; il JAVA, progettato per applicazioni su Internet; il PASCAL, particolarmente adatto per la didattica della programmazione; il BASIC, inizialmente progettato per applicazioni scientifiche e didattiche e attualmen- te utilizzato per ogni tipo di problema. Grazie alla facilita con cui viene assimilato e alla grande diffusione dei PC, oggi viene utilizzato nella versione VISUAL BASIC. " Modulo 1 + Concetti base Di seguito rappresentiamo in linguaggio PASCAL e in linguaggio VISUAL BASIC il dia- gramma proposto a pag. 4. om Slo RR RI RRR aie Sicis (eet a eee sc gTaRbdIROTS subesat ammo anranpey begin eee ieee sian rarerseE STP ae} eee 1 eater Tiana eS eer ees Hae al Ee aE icitats qarninteertcoreatacpinratoyaVa | Waiaeas Pe 87 UTILIZZO DI PSEUDO LINGUAGG! ane Un altro modo per rappresentare gli algoritmi consiste nell'utilizzare un || linguaggio speciale, definito pseudo linguaggio, che descrve le istruzio- Doma oa se on frasi rigorose anziché con i simboli grafici: si utilizzano parole | fenerimente i sempicia;| hiave, operatori e nomi di variabili Guelli di un linguaggio d| Tuttavia, questo tipo di linguaggio non é direttamente comprensibile programmazione e pil faci| dai programmi compilatori e interpreti e dovra quindi essere tradotto in da comprendere. _) linguaggio di atto livello; inoltre ne esistono diversi e, per esempio, ana- ‘e programmatori di un‘azienda utilizzano uno pseudo linguaggio diverso da quello usato dai colleghi di un‘altra. {i tnguagiae ta sintasi Proponiamo un esempio di un semplice diagramma, e della corrispon- iy dente rappresentazione in pseudo linguaggio, per calcolare |’area di un quadrato considerando come input il lato. ARGA=LATO™ LATO. vrata F PROGRAMA area INTZIO LEG6r (1ato) area € lazo * lato SCRIVI (area) ‘Ne FINE. 12

Potrebbero piacerti anche