I SETTE STEP DELL’ECDL MODULO 1 I CONCETTI DI BASE DELL’ICT Syllabus versione 5.0 sezione 1.0 rif 1.0.1 Dall’informazione al programma L’informatica è una scienza interdisciplinare largamente impiegata in tutte le altre scienze Informatica= informazione + automatica Si occupa della creazione, gestione e trasmissione delle informazioni con l’ausilio di un elaboratore (computer) Syllabus versione 5.0 sezione 1.0 rif 1.0.1 L’Informazione è costituita da un insieme di dati elementari, di diversa natura e provenienza, associati alle regole e alle istruzioni che permettono al microprocessore di elaborarli Il Programma è una sequenza logicamente ordinata di operazioni o di istruzioni, la cui esecuzione da parte di un computer produce la soluzione ad un problema dato e riconosciuto. Syllabus versione 5.0 sezione 1.0 rif 1.0.1 Gli algoritmi Un programma è la descrizione di un algoritmo che permette la risoluzione, in un numero finito di passi, di una determinata classe di problemi. Si definisce Algoritmo una serie di azioni, applicate ad un insieme di dati iniziali, che messe in atto da un esecutore (processore) li trasformi in risultati finali, attraverso un numero finito di passi elementari non ambigui. per cui l’Algoritmo è la sequenza di azioni che l’esecutore deve compiere per raggiungere il risultato richiesto. Syllabus versione 5.0 sezione 1.0 rif 1.0.1 Un Algoritmo deve possedere alcune proprietà : 1. Essere composto da un numero finito di passaggi 2. Le istruzioni devono essere non ambigue, cioè l’algoritmo deve essere riproducibile, a parità di condizioni 3. Le istruzioni devono essere realizzabili e note all’esecutore Syllabus versione 5.0 sezione 1.0 rif 1.0.1 La realizzabilità dipende da tre fattori: 1.Non deve essere eccessivamente complessa 2.L’insieme delle istruzioni deve essere limitato 3.L’esecutore deve comprendere la singola istruzione e procedere per passi discreti È importante ricordare che non sempre i problemi sono risolubili usando gli algoritmi. Syllabus versione 5.0 sezione 1.0 rif 1.0.1 Gli Algoritmi si possono rappresentare come diagrammi di flusso, che ci permettono di descrivere il processo in tutte le sue parti. Ogni fase e ogni condizione del rappresentate da simboli grafici, detti processo sono “ blocchi elementari” collegati tra loro da frecce che indicano la sequenza temporale nella quale avvengono. Syllabus versione 5.0 sezione 1.0 rif 1.0.1 Tipi di Blocchi Elementari Inizio Fine Lettura/Scrittura Azione Controllo Condizione Falso Syllabus versione 5.0 sezione 1.0 rif 1.0.1 Vero Rappresentazione dei dati I sistemi di numerazione servono a rappresentare i numeri grazie ad un insieme finito di simboli elementari, detti cifre. Un sistema numerico è definito da: •Un insieme finito di simboli, le cifre che rappresentano numeri interi •Un insieme di regole che consentono di associare alla sequenza di cifre il valore del numero. Syllabus versione 5.0 sezione 1.0 rif 1.0.2 I Sistemi Numerici sono: Non posizionali, quando il valore intero associato a una cifra non dipende dalla sua posizione all’interno della sequenza che rappresenta il numero Posizionali, se a ogni simbolo è associato un valore diverso, dipendente dalla posizione che la cifra ha nel numero. Si parla di un Sistema Numerico a base fissa quando il valore che assume una cifra, detto anche peso, è sempre pari a una potenza di un numero intero B, maggiore o uguale a 2, detto base del sistema numerico. Syllabus versione 5.0 sezione 1.0 rif 1.0.2 Gli elaboratori elettronici, per le loro caratteristiche, non possono usare il sistema numerico decimale, perché essi sono realizzati secondo tecniche dell’elettronica digitale, cioè oggetti che assumono solo uno tra due stati stabili. Gli elaboratori usano il sistema binario, basata su due sole cifre. Il sistema binario è il più semplice sistema posizionale a base fissa. La base è 2, i simboli sono 0 e 1. Nel sistema binario tutti i numeri sono espressi sulla base delle potenze del 2. Syllabus versione 5.0 sezione 1.0 rif 1.0.2 CONVERSIONE TRA UN SISTEMA E L’ALTRO Per convertire un numero decimale X in un numero binario dobbiamo eseguire una serie di divisioni ripetute: si divide il numero X per 2 e si ottiene un resto e un quoziente intero; a questo punto si divide il quoziente ottenuto nuovamente per 2, e si prosegue fino ad ottenere un quoziente pari a 1. Il numero binario risultante è dato dall’ultimo quoziente seguito dai resti ottenuti. Syllabus versione 5.0 sezione 1.0 rif 1.0.2 Le cifre del sistema binario sono dette anche bit, contrazione di binary digit, in italiano cifra binaria. Viceversa per convertire un numero binario in decimale, dobbiamo moltiplicare ogni cifra, a partire da destra , per la potenza di 2 che corrisponde alla sua posizione e quindi sommare i risultati ottenuti. Syllabus versione 5.0 sezione 1.0 rif 1.0.2 RAPPRESENTAZIONE DEI CARATTERI E NOZIONE DI BIT E BYTE. L’elaboratore, usando i bit, è in grado di esprimere qualunque cosa: parole, suoni, immagini, istruzioni di programmi e quant’altro. Per rappresentare grandezze cosi diverse non possiamo usare i singoli bit, ma li dobbiamo unire in “pacchetti”. Un pacchetto di otto bit ci mette a disposizione ben 256 possibilità. Il pacchetto di otto bit prende il nome di byte ed è, in pratica, l’unità minima di memorizzazione dell’elaboratore. È come avessimo a disposizione un alfabeto di 256 caratteri. Syllabus versione 5.0 sezione 1.0 rif 1.0.2 Nel 1961 un ingegnere dell’IBM. Bob Bemer, propose un sistema di codifica dei caratteri, assegnando ad ognuno di essi una sequenza di bit, cioè un byte. Questa codifica, che prese il nome di ASCII (American Standard Code for Information Interchange, ovvero Codice Standard Americano per lo scambio di Informazioni) ed è quella attualmente più utilizzata negli elaboratori. Syllabus versione 5.0 sezione 1.0 rif 1.0.2 RAPPRESENTAZIONE DI IMMAGINI Un elaboratore può gestire le immagini in due modi: possiamo avere immagini rasterizzate e immagini vettoriali. Un’immagine rasterizzata , è descritta pixel per pixel (il pixel è l’nità grafica elementare). Il file che si ottiene, generalmente, ha dimensioni considerevoli. Questo tipo di immagine ha la possibilità di gestire 16 milioni di colori, ed è adatto alla riproduzione di fotografie ricche di particolari. In un’immagine vettoriale gli elementi grafici sono descritti da formule matematiche . Essendo basata su equazioni matematiche e non sulla descrizione dello sfondo è scalabile, cioè è dimensionabile a piacere senza perdita della qualità. Essa è adatta realizzazione d’illustrazioni, di marchi. Syllabus versione 5.0 sezione 1.0 rif 1.0.2 Le immagini bitmap possono essere create da una videocamera e da una fotocamera digitale, ma anche da una fotografia o da una pagina di giornale, ma per essere comprese dall’elaboratore devono essere prima sottoposte ad un processo che si chiama digitalizzazione. La digitalizzazione è un processo con il quale un’immagine, un suono, un documento, un filmato sono trasformati un formato digitale, ossia in una sequenza di byte interpretabile dal’elaboratore. L’operazione deve essere compiuta con l’ausilio di particolari strumenti, quali schede di acquisizione, per i brani audio ed i filmati; scanner, per i testi e le immagini. Syllabus versione 5.0 sezione 1.0 rif 1.0.2 Particolari software l’operazione. poi completano e perfezionano Un esempio è dato dagli OCR, sigla che sta per Optical Character Recognition (riconoscimento ottico dei caratteri), che convertono un’immagine contenente testo in un testo modificabile con un normale programma di word processing. Syllabus versione 5.0 sezione 1.0 rif 1.0.2 Il linguaggio macchina e i linguaggi simbolici Un programmatore deve comunicare al computer le istruzioni che intende fargli svolgere, e per far ciò deve scrivere il codice sorgente nel linguaggio programmazione che la macchina è in grado di comprendere. Esistono diversi tipi di linguaggi di programmazione e possiamo suddividerli in: •Linguaggio macchina •Linguaggi assemblativi •Linguaggi ad alto livello o procedurali. Syllabus versione 5.0 sezione 1.0 rif 1.0.3 Il linguaggio macchina è costituito da un insieme limitato di semplici operazioni elementari scritte in codice binario per essere comprese ed eseguite dal microprocessore. Queste operazioni sono dette “istruzioni macchine”. Ogni istruzione macchina è composta da due parti: •Un codice operativo, che identifica ogni istruzione macchina •Un campo operandi, che contiene il dato da elaborare. Syllabus versione 5.0 sezione 1.0 rif 1.0.3 Nei primi computer, bisognava tradurre l’algoritmo direttamente nel codice binario, che quindi un programma appariva come una semplice sequenza di bit, incomprensibile. Per superare questo problema furono sviluppati dei linguaggi detti assemblativi, nei quali i comandi assumono nomi che ricordano la loro funzione (Read, Write, etc..) Il linguaggio macchina e i linguaggi assemblativi sono linguaggi orientati alla macchina e questa comporta degli svantaggi: 1.Scarsa portabilità 2.Scarsa o nulla leggibilità 3.Tempi di realizzazione lunghi Syllabus versione 5.0 sezione 1.0 rif 1.0.3 I linguaggi macchina ed assemblativi sono detti di basso livello e dipendono strettamente dalla tecnologia adottata. Per superare questi problemi sono stati creati dei linguaggi di alto livello o procedurali I loro vantaggi sono: •Poter realizzare programmi indipendenti dalla macchina che deve eseguirli •Avere una struttura molto vicina al linguaggio e alla logica umana. Quasi tutti i linguaggi usati per la programmazione sono di tipo procedurale, ricordiamo C, Fortran, Perl, Pyton. In essi il programmatore si concentra sulla risoluzione del problema e non sull’elaboratore, pertanto si parla di linguaggi orientati al problema. Syllabus versione 5.0 sezione 1.0 rif 1.0.3 I linguaggi assemblativi e quelli ad alto livello devono essere “tradotti” per essere comprensibili all’elaboratore. Usiamo, quindi, particolari tipi di software i compilatori che traducono il codice sorgente in un oggetto binario eseguibile. In alternativa si possono usare gli interpreti, che traducono un’istruzione alla volta del codice sorgente e la mandano in esecuzione. Syllabus versione 5.0 sezione 1.0 rif 1.0.3 Un linguaggio di programmazione è un linguaggio formale, cioè è costituito da un insieme di parole costruite usando un insieme finito di simboli, dotato di una sintassi. Syllabus versione 5.0 sezione 1.0 rif 1.0.1 I CONNETTIVI LOGICI Nei linguaggi di programmazione si fa uso dei connettivi logici, o operatori logici, AND, OR e NOT che sono utilizzati per legare due condizioni presenti nel programma. Questo legame crea una terza proposizione autonoma che può avere solo due valori: VERO o FALSO Syllabus versione 5.0 sezione 1.0 rif 1.0.1 DESCRIZIONE DI ALGORITMI MEDIANTE UN PSEUDO LINGUAGGIO La descrizione delle operazioni da compiere, effettuata con un pseudo linguaggio, costituisce un pseudocodice, che può essere utilizzato per descrivere le operazioni che ci conducono alla risoluzione del problema. Syllabus versione 5.0 sezione 1.0 rif 1.0.3 Calcolare Perimetro ed Area di un rettangolo Algoritmo Algoritmo Rettangolo (espresso in pseudo linguaggio) 1. 2. 3. 4. 5. 6. 7. 8. Inizio Attribuire un valore alla base Attribuire un valore all’altezza Perimetro=(2 x base)+(2 x altezza) Area=base x altezza Attribuire alla variabile perimetro il valore calcolato al punto 4 Attribuire alla variabile Area il valore calcolato al punto 5 fine BEGIN (passo 1) INPUT base (passo 2) INPUT altezza (passo 3) Perimetro=(2 x base)+(2 x altezza) (passo 4) Area=base x altezza (passo5) OUTPUT perimetro (passo 6) OUTPUT Area (passo 7) END Syllabus versione 5.0 sezione 1.0 rif 1.0.3