Un algoritmo è una sequenza di comandi (detti istruzioni) che istruiscono sull'esecuzione di un determinato compito.

Dimensione: px
Iniziare la visualizzazioe della pagina:

Download "Un algoritmo è una sequenza di comandi (detti istruzioni) che istruiscono sull'esecuzione di un determinato compito."

Transcript

1 Definizione di algoritmo Un algoritmo è una sequenza di comandi (detti istruzioni) che istruiscono sull'esecuzione di un determinato compito. Esempi di algoritmi possono essere: una ricetta di cucina, uno spartito musicale, le istruzioni per il montaggio di un mobile, un programma per il calcolatore. Esperto, esecutore, utente In generale l'algoritmo è scritto da un esperto ed eseguito da un esecutore. Esecutore ed esperto sono di solito (anche se non necessariamente) due soggetti distinti. Inoltre l'algoritmo viene eseguito per un utente, che a sua volta non coincide sempre con l'esperto e l'esecutore. La tabella seguente riporta alcuni esempi e dovrebbe servire per chiarire i concetti: Esempio Esperto Esecutore Utente Spartito musicale Compositore Musicista Ascoltatore Istruzioni montaggio mobile Progettista Operaio montatore Acquirente Ricetta di cucina Chef Cuoco Cliente del ristorante Programma Programmatore Computer Utente del computer Linguaggio Esperto ed esecutore devono condividere la conoscenza del linguaggio col quale è stato scritto l'algoritmo. Tale linguaggio può essere una lingua naturale (come per esempio l'italiano, in una ricetta), una notazione particolare (es. la notazione musicale negli spartiti), un linguaggio pittografico ad immagini (come nelle figure delle istruzioni di montaggio di certi mobili) o un linguaggio artificiale di programmazione (nel caso dei programmi per un computer). Si noti che invece l'utente può anche ignorare completamente il linguaggio col quale è stato scritto l'algoritmo (per esempio un ascoltatore di musica può benissimo non conoscere la notazione musicale). Ambiguità I linguaggi naturali (come per esempio l'italiano) sono spesso ambigui, cioè possono essere interpretati in modi diversi. Un esempio di frase ambigua è "La vecchia porta la sbarra", che può avere due significati completamente differenti. In molti casi le istruzioni fornite in un linguaggio naturale sono inoltre imprecise, come per esempio quando in una ricetta c'è scritto "salare" senza specificare esattamente la quantità di sale. Ambiguità e imprecisione non creano generalmente problemi nella comunicazione fra esseri umani dotati di intelligenza, ma non sono possibili dovendo comunicare con un computer (cioè una macchina). Per questa ragione i linguaggi di programmazione devono consentire di scrivere algoritmi in modo chiaro, senza imprecisioni e senza nessuna possibile ambiguità. Proprietà degli algoritmi eseguibili da un computer In generale, per poter essere eseguito automaticamente da un computer, un algoritmo deve essere: finito: la sequenza di istruzioni deve essere finita e portare ad un risultato avere un punto di inizio, dove si avvia l esecuzione delle azioni, e un punto di fine, dove si interrompe l esecuzione; eseguibile: le istruzioni devono poter essere eseguite materialmente dall esecutore; non ambiguo: le istruzioni devono essere espresse in modo tale da essere interpretate da tutti allo stesso modo; generale: deve essere valido non solo per un particolare problema, ma per una classe di problemi; deterministico: partendo dagli stessi dati iniziali deve portare sempre allo stesso risultato finale indipendentemente dall esecutore; completo: deve contemplare tutti i casi che si possono verificare durante l esecuzione.

2 Vediamo ora alcuni semplici esempi di algoritmi: a) Scambio di liquido fra due bicchieri Supponiamo di avere due bicchieri, denominati A e B, pieni rispettivamente uno di acqua e l'altro di vino, e di voler travasare A in B e viceversa. Il problema può essere risolto usando un terzo bicchiere C e l'algoritmo è il seguente: 1) versa A in C 2) versa B in A 3) versa C in B b) Problema del lupo, del cavolo e della capra Un pastore deve attraversare un fiume portando sull'altra riva un lupo e una capra affamati e una cassa di cavoli. Ha a disposizione una barca a remi con la quale può traghettare un solo oggetto o animale alla volta. Ma, attenzione! Non può lasciare da soli:- il lupo e la capra perchè il lupo si mangia la capra;- la capra ed i cavoli perché la capra si mangia i cavoli. Chiamiamo A la sponda iniziale e B la sponda su cui il barcaiolo deve trasportare lupo, capra e cavoli. 1) il barcaiolo porta la capra in B 2) il barcaiolo torna a prendere il lupo e lo porta in B 3) il barcaiolo riporta la capra in A 4) il barcaiolo porta i cavoli in B 5) il barcaiolo porta la capra in B c) Differenza fra due orari Si supponga di conoscere l'orario di inizio e l'orario di fine di un film e di volerne calcolare la durata in minuti. Per fissare le idee supponiamo che l'orario di inizio sia le e l'orario di fine sia le Chiamiamo ora1 l'ora di inizio (20) e min1 i minuti di inizio (30). Allo stesso modo ora2 sarà l'ora finale (22) e min2 i minuti finali (14). L'algoritmo potrebbe essere il seguente: 1) Calcolo tot1 = ora1 + min1 x 60 2) Calcolo tot2 = ora2 + min2 x 60 3) Faccio la differenza dif = tot2 - tot1 d) Ordinamento di 3 numeri Siano dati tre valori A, B e C e li si vuole ordinare in modo crescente, cioè in modo che A contenga il valore più piccolo di tutti, B quello intermedio e C il più grande. L'algoritmo deve naturalmente funzionare con qualsiasi scelta di valori di A, B e C. Ecco una soluzione possibile: 1) SE B < A, ALLORA scambia B con A 2) SE C < A, ALLORA scambia C con A 3) SE B < A, ALLORA scambia B con A Si noti che l'istruzione 1 e la 3 sono uguali. Tuttavia vengono eseguite con valori diversi e dunque, in generale, producono risultati diversi. L'istruzione "scambia" può essere ulteriormente dettagliata specificando tutti i passaggi intermedi necessari ad effettuare lo scambio fra il contenuto di due variabili. e) Anni bisestili Un anno è bisestile se il suo numero è divisibile per 4, con l'eccezione che gli anni secolari (quelli divisibili per 100) che sono bisestili solo se divisibili per 400. Sono cioè bisestili tutti gli anni la cui numerazione termina con le due cifre 04, 08, fino a 96; gli anni che terminano con 00 sono bisestili solo se l'anno è divisibile per 400, cioè il 1600, il 2000, il 2400 eccetera.

3 Il seguente algoritmo determina se Anno è bisestile oppure no: 1) SE Anno è divisibile per 4 ma non è divisibile per 100, ALLORA Anno è bisestile 2) SE Anno è divisibile per 400, ALLORA Anno è bisestile ALTRIMENTI Anno non è bisestile f) Moltiplicazione fra due numeri senza usare il prodotto Siano dati due numeri interi A e B. Si vuole calcolare il prodotto di A per B senza usare l'operatore di moltiplicazione, ovvero semplicemente eseguendo ripetutamente la somma. Ecco una possibile soluzione: 1) C = 0 2) RIPETI FINTANTOCHE' A è diverso da zero - C = C + B - A = A -1 3) Il risultato della moltiplicazione è in C Diagramma di flusso (Flow chart) Un diagramma di flusso (o flow chart) è una rappresentazione grafica di un algoritmo. Si potrebbe dire che i diagrammi di flusso forniscono un linguaggio universale per scrivere algoritmi. Le operazioni elementari che si possono rappresentare con un flow chart sono di cinque tipi diversi, a ciascuno dei quali corrisponde un diverso simbolo grafico (blocco): 1. Blocco iniziale Viene posto all'inizio dell'algoritmo ed è unico per ogni dato algoritmo (indica il punto in cui deve iniziare l'esecuzione e ogni algoritmo ha un solo blocco di inizio); Blocco finale E' analogo al precedente, ma segnala la fine dell'algoritmo. Viene messo dunque per indicare il termine dell'esecuzione. A differenza del blocco iniziale, ci possono essere più blocchi finali per un singolo algoritmo (cioè un algoritmo può terminare, a seconda dei casi, in punti diversi); Blocco di elaborazione o di operazione interna Indica l'esecuzione di una qualsiasi operazione all'interno dell'algoritmo (nell'esempio in figura qui sotto, l'operazione è l'incremento del valore della variabile x);

4 4. Blocco di controllo o di test Serve per selezionare due differenti percorsi all'interno di un dato algoritmo, a seconda che sia verificata oppure no la condizione scritta all'interno del blocco (nell'esempio in figura se x>0 viene presa la strada indicata con SI, altrimenti l'esecuzione prosegue per la strada indicata con NO); 5. Blocco di input/output Questo blocco serve per indicare una fra due operazioni diverse: a) l'acquisizione di un valore dalla tastiera di un computer; b) la visualizzazione di un valore sullo schermo di un computer (o su un'altra periferica di output, come per esempio una stampante). A seconda di quale delle due operazioni si vuole eseguire, sul blocco viene scritto LEGGI oppure SCRIVI (o ancora ACQUISISCI o STAMPA o altre scritte che ne chiariscono lo scopo). Il blocco di input/output è utile quando si vuole schematizzare con un diagramma di flusso un algoritmo che dovrà essere eseguito da un calcolatore (che dovrà quindi diventare un programma). 6. Blocco di connessione Serve semplicemente per connettere fra loro più percorsi all'interno dell'algoritmo. In un diagramma di flusso i blocchi precedenti sono collegati fra di loro per mezzo di frecce che indicano la direzione di esecuzione dell'algoritmo stesso. In generale le frecce indicano un percorso che, partendo da un unico blocco di inizio, termina alla fine in un blocco finale. Un esempio di algoritmo scritto usando un diagramma di flusso La rappresentazione per mezzo dei diagrammi di flusso è abbastanza semplice e naturale e viene usata non solo in informatica ma in molti altri ambiti applicativi. Per questa ragione non si ritiene opportuno dilungarsi troppo su questo aspetto. Piuttosto forniamo qui di seguito un esempio di scrittura di algoritmo, con riferimento al problema di moltiplicare fra loro due numeri interi usando solo le addizioni.

5 Definizione In un algoritmo si dice struttura di controllo (control structure) un gruppo di istruzioni con un unico punto di ingresso e un unico punto di uscita. Un altro modo per definire una struttura di controllo è quello di considerarla come un gruppo di istruzioni "collegate fra loro", nel senso che vengono eseguite insieme oppure la cui esecuzione dipende l'una dall'altra. Qualche esempio chiarirà meglio il concetto. Occorre intanto dire che in qualsiasi algoritmo si possono individuare solo tre tipi di strutture di controllo e precisamente: 1. la sequenza 2. la selezione 3. il ciclo Sequenza Come suggerisce il nome, una sequenza è un gruppo di istruzioni che devono essere eseguite una dopo l'altra, in successione.un esempio di sequenza è quella mostrata qui sotto e che serve per calcolare area e perimetro di un cerchio data la misura del raggio:

6 Gli algoritmi più semplici (come quello mostrato qui sopra) sono costituiti da un'unica sequenza di istruzioni. Notiamo di passaggio che la moltiplicazione è stata indicata con l'asterisco *, usando la convenzione usata nella maggior parte dei linguaggi di programmazione. Allo stesso modo è stato utilizzato il punto decimale, invece della virgola, nella scrittura di pi greco (3.14), perché questa è la convenzione che viene di solito usata nei linguaggi di programmazione. Selezione La struttura detta selezione permette di eseguire istruzioni diverse a seconda della condizione scritta all'interno di un blocco di test. Un esempio semplice di selezione è presente nel seguente algoritmo che acquisisce un numero e lo rende positivo se è negativo: Si osservi il metodo usato per rendere positivo il numero (se negativo): numero = - numero La selezione corrisponde in italiano all'istruzione SE... ALLORA. Negli algoritmi e ed f della lezione di esempio, si possono osservare esempi di selezioni. Una selezione si dice semplice o a una via quando prevede l'esecuzione di un solo blocco di istruzioni nel caso in cui la condizione sia vera. Nel caso di condizione falsa, la selezione semplice non esegue nessuna istruzione. Un esempio di selezione semplice è: SE piove ALLORA prendi l'ombrello Se la condizione è falsa (cioè se NON piove), non viene prevista nessuna istruzione. In una selezione a due vie, invece, viene eseguito qualcosa sia nel caso in cui la condizione sia vera sia nel caso in cui la condizione sia falsa. La selezione a due vie viene tradotta in italiano con SE... ALLORA... ALTRIMENTI..., come nell'esempio seguente:

7 SE il semaforo è rosso ALLORA passa ALTRIMENTI fermati In questo caso l'istruzione passa viene eseguita se la condizione è vera (cioè SE il semaforo è rosso), mentre l'istruzione fermati viene eseguita se la condizione è falsa. Ciclo Un ciclo è un gruppo di istruzioni in un algoritmo che devono essere ripetute più volte. Un esempio di ciclo lo troviamo nell'algoritmo per la moltiplicazione di due numeri usando solo somme: Osserviamo che anche il ciclo, come la selezione, contiene un blocco di test. In questo caso però il blocco di test controlla la ripetizione di un gruppo di istruzioni e non semplicemente la scelta fra due diversi percorsi nell'algortimo. La presenza di un ciclo all'interno di un algoritmo si distingue facilmente per via del percorso di ritorno, cioè di un ramo dell'algoritmo che torna indietro (a indicare il fatto che alcune istruzioni vengono ripetute). Negli algoritmi g ed h della lezione di esempio, si possono osservare altri esempi di cicli. Il ciclo viene tradotto in italiano con RIPETI FINTANTOCHE'... Si consideri il seguente esempio: RIPETI FINTANTOCHE' ci sono ancora patate - prendi una patata dal cesto - sbuccia la patata - getta la patata nella pentola Si noti che le tre istruzioni del ciclo vengono eseguite molte volte, finché ci sono ancora patate.

8 Variabili Osservando gli esempi di algoritmi presentati nelle lezioni precedenti è interessante notare come, nella scrittura, siano state usate delle variabili. Le variabili negli algoritmi sono simili alle variabili usate in matematica e in fisica: in pratica sono dei nomi usati per indicare dei valori numerici. Per esempio nell'algoritmo per il calcolo della differenza fra due orari, abbiamo usato le variabili ora1, ora2, min1, min2 e dif. L'uso delle variabili semplifica la scrittura degli algoritmi, ma, soprattutto, la rende di validità generale. In altre parole: un algoritmo scritto usando le variabili (al posto dei valori numerici) può essere usato per qualsiasi valore numerico; viceversa se i valori numerici fossero indicati esplicitamente dentro l'algoritmo (in questo caso si parla di costanti, per distinguerle dalle variabili), l'algoritmo sarebbe valido per un unico caso. Si può definire una variabile come un contenitore, dotato di un nome, al cui interno è possibile memorizzare un valore. Le variabili sono comunemente usate in matematica con questo significato. Per quanto riguarda i nomi, utilizzando le convenzioni usate normalmente dai linguaggi di programmazione, il nome di una variabile può essere composto da una sequenza di lettere (minuscole e/o maiuscole), dalle cifre da 0 a 9 e dal simbolo di sottolineatura ( _ ). Il primo carattere del nome deve essere sempre una lettera oppure il simbolo di sottolineatura e all'interno del nome non devono essere presenti spazi o punti. Esempi di nomi di variabili validi sono: num, ris, area_cerchio, val2 Esempi di nomi di variabili errati sono: %, 12a, primo val Assegnazione L'operazione fondamentale che si può eseguire su una variabile è l'assegnazione. L'assegnazione si indica col simbolo di uguaglianza (=), come nel seguente esempio: risultato = 255 L'assegnazione precedente "mette" il valore 255 nel contenitore di nome "risultato". Ogni variabile può contenere solo un numero alla volta, perciò assegnazioni successive, eseguite sulla stessa variabile, cancellano i valori precedenti. Per esempio: var = 4 var = 65 var = 7 alla fine var contiene il numero 7.

9 Assegnazione di una variabile a un'altra variabile Mediante un'assegnazione è anche possibile copiare il valore di una variabile in un'altra. Così per esempio a = b copia il valore contenuto nella variabile b nella variabile a. Nella figura seguente è mostrato il risultato dell'assegnazione "a = b" supponendo che a contenesse inizialmente il numero 12 e b il numero 45: Attenzione! Sarebbe stato diverso scrivere b = a In questo caso il valore di a sarebbe stato copiato in b e il risultato sarebbe stato il seguente: Dunque l'uguale usato nell'assegnazione ha un verso: il valore (sorgente ovvero il contenuto della variabile) che si trova a destra viene copiato nella variabile che si trova a sinistra (destinazione). Espressioni matematiche L'assegnazione permette anche di calcolare il valore di una variabile per mezzo di una espressione matematica. Un esempio semplice è il seguente: a = b + c Il significato è: il valore di b viene sommato al valore di c e il risultato viene memorizzato in a. I simboli usati per scrivere le espressioni matematiche nei linguaggi di programmazione simili a quelli usati in matematica. L'operazione di moltiplicazione, come già detto, viene però indicata con l'asterisco * invece che con il x. Bisogna inoltre prestare attenzione all'uso delle parentesi (sempre e solo le parentesi tonde!) per indicare la precedenza fra le operazioni. Esempio: ris = a + b * 10/(d +e)

10 Assegnazione di una variabile... a se stessa (variabili di accumulo) Un aspetto molto interessante delle variabili è che è possibile assegnare una variabile a se stessa o, più precisamente, usare la stessa variabile a sinistra e a destra di una assegnazione. Si consideri il seguente semplice esempio: num = num + 1 In questo caso la stessa variabile num compare sia a sinistra che a destra del simbolo di assegnazione e dunque è sia la sorgente che la destinazione di una assegnazione. Si presti particolare attenzione al significato di questa scrittura che, tradotta a parole, sarebbe: prendi il valore di num, aggiungi uno a tale valore e rimetti il risultato in num. In pratica se ad es. num valeva 4 prima dell'istruzione precedente, dopo l'istruzione il suo valore è diventato 5. Questa semplice istruzione (che aumenta di uno il valore di una variabile) viene detta incremento (l'istruzione opposta, quella che diminuisce di uno, è detta decremento). Un esempio un po' più complesso di variabile usata sia a destra che a sinistra dell'uguale di assegnazione è il seguente, che potrebbe servire per calcolare l'aumento della somma depositata su un conto corrente con un certo tasso di interesse: somma = somma + tasso * somma In questo caso la stessa variabile compare addirittura tre volte nella stessa espressione! Quando una variabile, come in questi esempi, è sia la sorgente che la destinazione di una assegnazione, si dice che si tratta di una variabile di accumulo. Una variabile di accumulo, come suggerisce il nome, è una variabile nella quale vengono accumulati dei valori. Le variabili di accumulo sono estremamente importanti nei cicli, in quanto consentono la modifica ripetuta di un valore in un ciclo in dipendenza dal valore che aveva in precedenza. A titolo di esempio si consideri di nuovo il programma per il calcolo della moltiplicazione con solo somme. Come è facile notare ci sono ben due variabili di accumulo nel ciclo: A e C.

11 Il simbolo di uguale... non sempre è un'uguaglianza! A scanso di possibili equivoci, prestiamo fin da ora attenzione al fatto che il simbolo di uguale (=) usato nelle assegnazioni, non rappresenta una uguaglianza nel senso matematico. Consideriamo per esempio la seguente assegnazione (incremento): a = a + 1 Matematicamente la precedente espressione non avrebbe senso, dal momento che in nessun caso "a" può essere uguale ad "a+1". Invece, se considerata come assegnazione (e non come uguaglianza), l'espressione precedente ha senso ed è effettivamente utilizzata in molti programmi. Per evitare possibili confusioni, praticamente tutti i linguaggi di programmazione (e di scrittura di algoritmi) distinguono fra due diversi simboli di uguaglianza e precisamente: l'uguale di assegnazione; l'uguale di confronto.

12 Si osservi ad esempio il seguente algoritmo che, se una data variabile vale 5, ne incrementa il valore di uno: Il significato dei due "uguali" è completamente diverso. Il primo infatti è un uguale di confronto, cioè confronta il valore di numero col valore 5 (numero = 5). Tale operazione non modifica il contenuto della variabile numero. Il secondo uguale (numero = numero + 1) è invece un uguale di assegnazione, il quale modifica il valore della variabile numero. E' abbastanza facile imparare a distinguere i due casi poiché l'uguale di confronto si può trovare solo in un blocco di test, mentre l'uguale di assegnazione si trova solo nei blocchi di elaborazione. Spesso nella scrittura dei flow chart si usa il simbolo di uguaglianza (=) solo per i confronti, mentre le assegnazioni vengono indicate con una freccia ( ). Esempio: numero numero + 1. Anche i linguaggi di programmazione distinguono i due simboli in modi differenti. Per esempio il C (e tutti i linguaggi da esso derivati, C++, javascript, java, php etc.) usa l'uguale (=) per le assegnazioni e il doppio uguale per i confronti (==). ESERCIZI Esercizio 1 Fare un algoritmo che dati 2 numeri in input dare in output il max Esercizio 2 Dati in input prezzo e quantità dare in output il totale Esercizio 3 Dato in input 2 numeri e l'operazione dare in output il risultato Esercizio 4 Dato in input 3 valori e dare in output il max Esercizio 5 Dati in input tre numeri riscriverli in ordine crescente. Esercizio 6 Dato in input 2 numeri dare in output la somma

13 Esercizio 7 Dati i numeratori e i denominatori di due frazioni calcolane somma, prodotto e divisione. Esercizio 9 Sul prezzo di un prodotto viene praticato lo sconto del 3% se costa meno di e del 5% se costa di più. Inserito da tastiera il prezzo P, calcolare il prezzo da pagare secondo la regola sopra descritta. Esercizio 10 Richiedere in input la quantità Q e l'importo unitario I di una merce venduta; lo sconto S1 da applicare (percentuale) se la quantità venduta supera le 100 unità; lo sconto S2 da applicare in caso contrario e l'aliquota IVA (percentuale) V. Calcolare e scrivere l'importo da pagare P. Esercizio 11 Sul prezzo di un biglietto di un treno viene applicato un supplemento del 7% se il treno è di tipo "a", del 12% se è di tipo "b" e del 18% se è di tipo "c". Per gli altri treni non c'è supplemento. Calcolare il prezzo totale del biglietto, a seconda del tipo di treno e comunicare il tipo di treno con il prezzo calcolato. Esercizio 12 Dato in input i min, ore e sec dare in output il totale dei secondi Esercizio 13 Dato in input secondi dare in output i min, ore e sec

Risolvere un problema significa individuare un procedimento che permetta di arrivare al risultato partendo dai dati

Risolvere un problema significa individuare un procedimento che permetta di arrivare al risultato partendo dai dati Algoritmi Algoritmi Risolvere un problema significa individuare un procedimento che permetta di arrivare al risultato partendo dai dati Il procedimento (chiamato algoritmo) è composto da passi elementari

Dettagli

4 3 4 = 4 x 10 2 + 3 x 10 1 + 4 x 10 0 aaa 10 2 10 1 10 0

4 3 4 = 4 x 10 2 + 3 x 10 1 + 4 x 10 0 aaa 10 2 10 1 10 0 Rappresentazione dei numeri I numeri che siamo abituati ad utilizzare sono espressi utilizzando il sistema di numerazione decimale, che si chiama così perché utilizza 0 cifre (0,,2,3,4,5,6,7,8,9). Si dice

Dettagli

Aritmetica: operazioni ed espressioni

Aritmetica: operazioni ed espressioni / A SCUOLA DI MATEMATICA Lezioni di matematica a cura di Eugenio Amitrano Argomento n. : operazioni ed espressioni Ricostruzione di un abaco dell epoca romana - Museo RGZ di Magonza (Germania) Libero da

Dettagli

GUIDA BASE DI PASCAL

GUIDA BASE DI PASCAL 1 GUIDA BASE DI PASCAL Un algoritmo, nel suo significato più ampio, è sequenza logica di istruzioni elementari (univocamente interpretabili) che, eseguite in un ordine stabilito, permettono la soluzione

Dettagli

Dispense di Informatica Anno Scolastico 2008/2009 Classe 3APS. Dal Problema all'algoritmo

Dispense di Informatica Anno Scolastico 2008/2009 Classe 3APS. Dal Problema all'algoritmo stituto Tecnico Statale Commerciale Dante Alighieri Cerignola (FG) Dispense di nformatica Anno Scolastico 2008/2009 Classe 3APS Dal Problema all'algoritmo Pr.: 001 Ver.:1.0 Autore: prof. Michele Salvemini

Dettagli

Algoritmi. Maurizio Palesi. Maurizio Palesi 1

Algoritmi. Maurizio Palesi. Maurizio Palesi 1 Algoritmi Maurizio Palesi Maurizio Palesi 1 Cos è Risolvere un problema significa individuare un procedimento che permetta di arrivare al risultato partendo dai dati Un algoritmo è un metodo per la soluzione

Dettagli

LA RAPPRESENTAZIONE DELLE INFORMAZIONI

LA RAPPRESENTAZIONE DELLE INFORMAZIONI ISTITUTO TECNICO E LICEO SCIENTIFICO TECNOLOGICO ANGIOY LA RAPPRESENTAZIONE DELLE INFORMAZIONI Prof. G. Ciaschetti DATI E INFORMAZIONI Sappiamo che il computer è una macchina stupida, capace di eseguire

Dettagli

Algoritmo. I dati su cui opera un'istruzione sono forniti all'algoritmo dall'esterno oppure sono il risultato di istruzioni eseguite precedentemente.

Algoritmo. I dati su cui opera un'istruzione sono forniti all'algoritmo dall'esterno oppure sono il risultato di istruzioni eseguite precedentemente. Algoritmo Formalmente, per algoritmo si intende una successione finita di passi o istruzioni che definiscono le operazioni da eseguire su dei dati (=istanza del problema): in generale un algoritmo è definito

Dettagli

Appunti di Sistemi Elettronici

Appunti di Sistemi Elettronici Prof.ssa Maria Rosa Malizia 1 LA PROGRAMMAZIONE La programmazione costituisce una parte fondamentale dell informatica. Infatti solo attraverso di essa si apprende la logica che ci permette di comunicare

Dettagli

I Sistemi di numerazione e la rappresentazione dei dati

I Sistemi di numerazione e la rappresentazione dei dati I Sistemi di numerazione e la rappresentazione dei dati LA RAPPRESENTAZIONE DELLE INFORMAZIONI (1) Per utilizzare un computer è necessario rappresentare in qualche modo le informazioni da elaborare e il

Dettagli

Fasi di creazione di un programma

Fasi di creazione di un programma Fasi di creazione di un programma 1. Studio Preliminare 2. Analisi del Sistema 6. Manutenzione e Test 3. Progettazione 5. Implementazione 4. Sviluppo 41 Sviluppo di programmi Per la costruzione di un programma

Dettagli

Richiesta pagina PHP (es: index.php)

Richiesta pagina PHP (es: index.php) PHP PHP = personal home page SERVER Richiesta pagina PHP (es: index.php) Server Web (Apache) in ascolto sulla porta 80, si accorge che la pagina richiesta è una pagina PHP in base all'estensione o con

Dettagli

Dispense di Informatica per l ITG Valadier

Dispense di Informatica per l ITG Valadier La notazione binaria Dispense di Informatica per l ITG Valadier Le informazioni dentro il computer All interno di un calcolatore tutte le informazioni sono memorizzate sottoforma di lunghe sequenze di

Dettagli

Uso di base delle funzioni in Microsoft Excel

Uso di base delle funzioni in Microsoft Excel Uso di base delle funzioni in Microsoft Excel Le funzioni Una funzione è un operatore che applicato a uno o più argomenti (valori, siano essi numeri con virgola, numeri interi, stringhe di caratteri) restituisce

Dettagli

I SISTEMI DI NUMERAZIONE E LA NUMERAZIONE BINARIA

I SISTEMI DI NUMERAZIONE E LA NUMERAZIONE BINARIA I SISTEMI DI NUMERAZIONE E LA NUMERAZIONE BINARIA Indice Introduzione Il sistema decimale Il sistema binario Conversione di un numero da base 10 a base 2 e viceversa Conversione in altri sistemi di numerazione

Dettagli

Descrizione di un algoritmo

Descrizione di un algoritmo Descrizione di un algoritmo Un algoritmo descrive due tipi fondamentali di oper: calcoli ottenibili tramite le oper primitive su tipi di dato (valutazione di espressioni) che consistono nella modifica

Dettagli

Cenni di logica & algebra booleana

Cenni di logica & algebra booleana Cenni di algebra booleana e dei sistemi di numerazione Dr. Carlo Sansotta - 25 2 Parte Cenni di logica & algebra booleana 3 introduzione L elaboratore elettronico funziona secondo una logica a 2 stati:

Dettagli

FONDAMENTI di INFORMATICA Prof. Lorenzo Mezzalira

FONDAMENTI di INFORMATICA Prof. Lorenzo Mezzalira FONDAMENTI di INFORMATICA Prof. Lorenzo Mezzalira Appunti del corso 1 Introduzione all informatica: algoritmi, linguaggi e programmi Indice 1. Introduzione 2. Risoluzione automatica di problemi - Algoritmi

Dettagli

INTRODUZIONE AGLI ALGORITMI INTRODUZIONE AGLI ALGORITMI INTRODUZIONE AGLI ALGORITMI INTRODUZIONE AGLI ALGORITMI

INTRODUZIONE AGLI ALGORITMI INTRODUZIONE AGLI ALGORITMI INTRODUZIONE AGLI ALGORITMI INTRODUZIONE AGLI ALGORITMI INTRODUZIONE AGLI ALGORITMI Prima di riuscire a scrivere un programma, abbiamo bisogno di conoscere un metodo risolutivo, cioè un metodo che a partire dai dati di ingresso fornisce i risultati attesi.

Dettagli

Introduzione. Informatica B. Daniele Loiacono

Introduzione. Informatica B. Daniele Loiacono Introduzione Informatica B Perchè studiare l informatica? Perchè ha a che fare con quasi tutto quello con cui abbiamo a che fare ogni giorno Perché è uno strumento fondamentale per progettare l innovazione

Dettagli

FUNZIONI AVANZATE DI EXCEL

FUNZIONI AVANZATE DI EXCEL FUNZIONI AVANZATE DI EXCEL Inserire una funzione dalla barra dei menu Clicca sulla scheda "Formule" e clicca su "Fx" (Inserisci Funzione). Dalla finestra di dialogo "Inserisci Funzione" clicca sulla categoria

Dettagli

SISTEMI DI NUMERAZIONE E CODICI

SISTEMI DI NUMERAZIONE E CODICI SISTEMI DI NUMERAZIONE E CODICI Il Sistema di Numerazione Decimale Il sistema decimale o sistema di numerazione a base dieci usa dieci cifre, dette cifre decimali, da O a 9. Il sistema decimale è un sistema

Dettagli

Corso di Laurea Ingegneria Informatica Fondamenti di Informatica

Corso di Laurea Ingegneria Informatica Fondamenti di Informatica Corso di Laurea Ingegneria Informatica Fondamenti di Informatica Dispensa 05 La rappresentazione dell informazione Carla Limongelli Ottobre 2011 http://www.dia.uniroma3.it/~java/fondinf/ La rappresentazione

Dettagli

www.wlascuola.4000.it

www.wlascuola.4000.it 1 Cenni di programmazione Risolvere un problema significa trovare un procedimento che consenta di produrre i risultati, a partire dai dati iniziali, attraverso un processo di elaborazione. La metodologia

Dettagli

Dispense del corso di Introduzione all Informatica della Facoltà Di Scienze Matematiche, Fisiche e Naturali dell Università della Calabria

Dispense del corso di Introduzione all Informatica della Facoltà Di Scienze Matematiche, Fisiche e Naturali dell Università della Calabria Introduzione all Informatica 1 Dispense del corso di Introduzione all Informatica della Facoltà Di Scienze Matematiche, Fisiche e Naturali dell Università della Calabria Programma del corso Programma di

Dettagli

I SISTEMI DI NUMERAZIONE

I SISTEMI DI NUMERAZIONE ISTITUTO DI ISTRUZIONE SUPERIORE G. M. ANGIOY CARBONIA I SISTEMI DI NUMERAZIONE Prof. G. Ciaschetti Fin dall antichità, l uomo ha avuto il bisogno di rappresentare le quantità in modo simbolico. Sono nati

Dettagli

Programmazione in Java (I modulo) Lezione 3: Prime nozioni

Programmazione in Java (I modulo) Lezione 3: Prime nozioni Programmazione in Java (I modulo) Lezione 3: Prime nozioni La volta scorsa Abbiamo avuto un primo assaggio! Abbiamo visto come usare l editor per scrivere un programma Java. Abbiamo analizzato riga per

Dettagli

La codifica dell informazione

La codifica dell informazione La codifica dell informazione Parte I Sui testi di approfondimento: leggere dal Cap. del testo C (Console, Ribaudo):.,. fino a pg.6 La codifica delle informazioni Un calcolatore memorizza ed elabora informazioni

Dettagli

Informatica. Rappresentazione dei numeri Numerazione binaria

Informatica. Rappresentazione dei numeri Numerazione binaria Informatica Rappresentazione dei numeri Numerazione binaria Sistemi di numerazione Non posizionali: numerazione romana Posizionali: viene associato un peso a ciascuna posizione all interno della rappresentazione

Dettagli

Processo di risoluzione di un problema ingegneristico. Processo di risoluzione di un problema ingegneristico

Processo di risoluzione di un problema ingegneristico. Processo di risoluzione di un problema ingegneristico Processo di risoluzione di un problema ingegneristico 1. Capire l essenza del problema. 2. Raccogliere le informazioni disponibili. Alcune potrebbero essere disponibili in un secondo momento. 3. Determinare

Dettagli

LA TASTIERA DEL PERSONAL COMPUTER

LA TASTIERA DEL PERSONAL COMPUTER LA TASTIERA DEL PERSONAL COMPUTER La tastiera del Personal computer è composta da 102 o 105 tasti. Nelle nuove tastiere, ce ne sono anche di ergonomiche, si possono trovare anche tasti aggiuntivi, sulla

Dettagli

Nozione di algoritmo. Gabriella Trucco

Nozione di algoritmo. Gabriella Trucco Nozione di algoritmo Gabriella Trucco Programmazione Attività con cui si predispone l'elaboratore ad eseguire un particolare insieme di azioni su particolari informazioni (dati), allo scopo di risolvere

Dettagli

Corso di Informatica Generale (C. L. Economia e Commercio) Ing. Valerio Lacagnina Rappresentazione in virgola mobile

Corso di Informatica Generale (C. L. Economia e Commercio) Ing. Valerio Lacagnina Rappresentazione in virgola mobile Problemi connessi all utilizzo di un numero di bit limitato Abbiamo visto quali sono i vantaggi dell utilizzo della rappresentazione in complemento alla base: corrispondenza biunivoca fra rappresentazione

Dettagli

LUdeS Informatica 2 EXCEL. Prima parte AA 2013/2014

LUdeS Informatica 2 EXCEL. Prima parte AA 2013/2014 LUdeS Informatica 2 EXCEL Prima parte AA 2013/2014 COS E EXCEL? Microsoft Excel è uno dei fogli elettronici più potenti e completi operanti nell'ambiente Windows. Un foglio elettronico è un programma che

Dettagli

I SISTEMI DI NUMERAZIONE

I SISTEMI DI NUMERAZIONE Istituto di Istruzione Superiore G. Curcio Ispica I SISTEMI DI NUMERAZIONE Prof. Angelo Carpenzano Dispensa di Informatica per il Liceo Scientifico opzione Scienze Applicate Sommario Sommario... I numeri...

Dettagli

Appunti del corso di Informatica 1. 6 Introduzione al linguaggio C

Appunti del corso di Informatica 1. 6 Introduzione al linguaggio C Università di Roma Tre Dipartimento di Matematica e Fisica Corso di Laurea in Matematica Appunti del corso di Informatica 1 (IN110 Fondamenti) 6 Introduzione al linguaggio C Marco Liverani (liverani@mat.uniroma3.it)

Dettagli

Appunti del corso di Informatica 1 (IN110 Fondamenti) 6 Introduzione al linguaggio C

Appunti del corso di Informatica 1 (IN110 Fondamenti) 6 Introduzione al linguaggio C Università di Roma Tre Facoltà di Scienze M.F.N. Corso di Laurea in Matematica Appunti del corso di Informatica 1 (IN110 Fondamenti) 6 Introduzione al linguaggio C Marco Liverani (liverani@mat.uniroma3.it)

Dettagli

INFORMATICA DI BASE. Data Processing, elaborazione elettronica dei dati). In

INFORMATICA DI BASE. Data Processing, elaborazione elettronica dei dati). In INFORMATICA DI BASE L Informatica rappresenta l insieme delle discipline e delle tecnologie relative allo studio, progettazione, realizzazione ed impiego di macchine che si occupano della raccolta e del

Dettagli

Corso di Esercitazioni di Programmazione

Corso di Esercitazioni di Programmazione Corso di Esercitazioni di Programmazione Introduzione Dott.ssa Sabina Rossi Informazioni Pagina web del corso: News Orari Mailing list Lezioni Esercitazioni Date esami Risultati esami.. http://www.dsi.unive.it/~prog1

Dettagli

Cenni su algoritmi, diagrammi di flusso, strutture di controllo

Cenni su algoritmi, diagrammi di flusso, strutture di controllo Cenni su algoritmi, diagrammi di flusso, strutture di controllo Algoritmo Spesso, nel nostro vivere quotidiano, ci troviamo nella necessità di risolvere problemi. La descrizione della successione di operazioni

Dettagli

Obiettivi dell Analisi Numerica. Avviso. Risoluzione numerica di un modello. Analisi Numerica e Calcolo Scientifico

Obiettivi dell Analisi Numerica. Avviso. Risoluzione numerica di un modello. Analisi Numerica e Calcolo Scientifico M. Annunziato, DIPMAT Università di Salerno - Queste note non sono esaustive ai fini del corso p. 3/43 M. Annunziato, DIPMAT Università di Salerno - Queste note non sono esaustive ai fini del corso p.

Dettagli

Informatica. Esistono varie definizioni: Scienza dei calcolatori elettronici (Computer Science) Scienza dell informazione

Informatica. Esistono varie definizioni: Scienza dei calcolatori elettronici (Computer Science) Scienza dell informazione Informatica Esistono varie definizioni: Scienza dei calcolatori elettronici (Computer Science) Scienza dell informazione Scienza della rappresentazione, memorizzazione, ed elaborazione dell informazione.

Dettagli

IMSV 0.8. (In Media Stat Virtus) Manuale Utente

IMSV 0.8. (In Media Stat Virtus) Manuale Utente Introduzione IMSV 0.8 (In Media Stat Virtus) Manuale Utente IMSV è una applicazione che calcola che voti può'prendere uno studente negli esami che gli mancano per ottenere la media che desidera. Importante:

Dettagli

la "macchina" universale di Turing

la macchina universale di Turing la "macchina" universale di Turing Nel 1854, il matematico britannico George Boole (1815-1864), elaborò una matematica algebrica che da lui prese il nome. Nell'algebra booleana le procedure di calcolo

Dettagli

L INNOVAZIONE SCIENTIFICO-TECNOLOGICA NEI PROCESSI PRODUTTIVI

L INNOVAZIONE SCIENTIFICO-TECNOLOGICA NEI PROCESSI PRODUTTIVI L INNOVAZIONE SCIENTIFICO-TECNOLOGICA NEI PROCESSI PRODUTTIVI Scienza ed industria hanno oggi costituito legami molto forti di collaborazione che hanno portato innovazione tecnologica sia a livello organizzativo-amministrativo

Dettagli

Algoritmi, dati e programmi

Algoritmi, dati e programmi 1 Algoritmi, dati e programmi 2 Informatica Informatica: Scienza che studia l informazione e la sua elaborazione. informazione rappresentazione dell informazione (dati) dati elaborazione dei dati tramite

Dettagli

Funzionalità di un calcolatore

Funzionalità di un calcolatore Funzionalità di un calcolatore Il calcolatore: modello concettuale 1. Elaborazione 2. Memorizzazione Interconnessione 3. Comunicazione (interfaccia) Architettura di un computer componenti per elaborare

Dettagli

DAL PROBLEMA ALL'ALGORITMO AL PROGRAMMA SCRITTO IN Come. Scopo principale dell informatica è risolvere problemi con i calcolatori.

DAL PROBLEMA ALL'ALGORITMO AL PROGRAMMA SCRITTO IN Come. Scopo principale dell informatica è risolvere problemi con i calcolatori. DAL PROBLEMA ALL'ALGORITMO AL PROGRAMMA SCRITTO IN Come Scopo principale dell informatica è risolvere problemi con i calcolatori. Non tutti i problemi sono risolvibili con i calcolatori. Si può dimostrato

Dettagli

Convertitori numerici in Excel

Convertitori numerici in Excel ISTITUTO DI ISTRUZIONE SUPERIORE G. M. ANGIOY CARBONIA Convertitori numerici in Excel Prof. G. Ciaschetti Come attività di laboratorio, vogliamo realizzare dei convertitori numerici con Microsoft Excel

Dettagli

Corso di Informatica Generale (C. L. Economia e Commercio) Ing. Valerio Lacagnina Rappresentazione dell informazione negli elaboratori

Corso di Informatica Generale (C. L. Economia e Commercio) Ing. Valerio Lacagnina Rappresentazione dell informazione negli elaboratori Informazione e computer Si può rappresentare l informazione attraverso varie forme: Numeri Testi Suoni Immagini 0001010010100101010 Computer Cerchiamo di capire come tutte queste informazioni possano essere

Dettagli

Guida all uso del foglio elettronico Excel Lezioni ed esercizi

Guida all uso del foglio elettronico Excel Lezioni ed esercizi Lezioni di EXCEL Guida all uso del foglio elettronico Excel Lezioni ed esercizi 1 Il foglio elettronico Excel Excel è un foglio elettronico che consente di effettuare svariate operazioni nel campo matematico,

Dettagli

LA NOTAZIONE SCIENTIFICA

LA NOTAZIONE SCIENTIFICA LA NOTAZIONE SCIENTIFICA Definizioni Ricordiamo, a proposito delle potenze del, che = =.000 =.000.000.000.000 ovvero n è uguale ad seguito da n zeri. Nel caso di potenze con esponente negativo ricordiamo

Dettagli

Laboratorio di Informatica

Laboratorio di Informatica per chimica industriale e chimica applicata e ambientale LEZIONE 4 La CPU e l esecuzione dei programmi 1 Nelle lezioni precedenti abbiamo detto che Un computer è costituito da 3 principali componenti:

Dettagli

Codici Numerici. Modifica dell'informazione. Rappresentazione dei numeri.

Codici Numerici. Modifica dell'informazione. Rappresentazione dei numeri. Codici Numerici. Modifica dell'informazione. Rappresentazione dei numeri. A partire da questa lezione, ci occuperemo di come si riescono a codificare con sequenze binarie, quindi con sequenze di 0 e 1,

Dettagli

Introduzione agli algoritmi e alla programmazione in VisualBasic.Net

Introduzione agli algoritmi e alla programmazione in VisualBasic.Net Lezione 1 Introduzione agli algoritmi e alla programmazione in VisualBasic.Net Definizione di utente e di programmatore L utente è qualsiasi persona che usa il computer anche se non è in grado di programmarlo

Dettagli

Rappresentazione delle informazioni

Rappresentazione delle informazioni Rappresentazione delle informazioni Abbiamo informazioni (numeri, caratteri, immagini, suoni, video... ) che vogliamo rappresentare (e poter elaborare) in un calcolatore. Per motivi tecnologici un calcolatore

Dettagli

Software Applicativo. Hardware. Sistema Operativo Software di Base Traduttori e Linguaggi

Software Applicativo. Hardware. Sistema Operativo Software di Base Traduttori e Linguaggi : di base e applicativo L HardWare (monitor, tastiera, circuiti, stampante, ) è il nucleo fondamentale del calcolatore ma da solo non serve a nulla. Bisogna utilizzare il software per poterlo fare funzionare.

Dettagli

Semantica operazionale dei linguaggi di Programmazione

Semantica operazionale dei linguaggi di Programmazione Semantica operazionale dei linguaggi di Programmazione Oggetti sintattici e oggetti semantici Rosario Culmone, Luca Tesei Lucidi tratti dalla dispensa Elementi di Semantica Operazionale R. Barbuti, P.

Dettagli

ESERCIZI DI PROBLEM SOLVING E COMPOSIZIONE DEI DIAGRAMMI DI FLUSSO per le classi terza

ESERCIZI DI PROBLEM SOLVING E COMPOSIZIONE DEI DIAGRAMMI DI FLUSSO per le classi terza ESERCIZI DI PROBLEM SOLVING E COMPOSIZIONE DEI DIAGRAMMI DI FLUSSO per le classi terza vers.3 in lavorazione Docente SAFFI FABIO Contenuti 01.Esercizi generici sul diagramma di flusso - flow chart... 2

Dettagli

Master della filiera cereagricola. Impresa e mercati. Facoltà di Agraria Università di Teramo. Giovanni Di Bartolomeo Stefano Papa

Master della filiera cereagricola. Impresa e mercati. Facoltà di Agraria Università di Teramo. Giovanni Di Bartolomeo Stefano Papa Master della filiera cereagricola Giovanni Di Bartolomeo Stefano Papa Facoltà di Agraria Università di Teramo Impresa e mercati Parte prima L impresa L impresa e il suo problema economico L economia studia

Dettagli

INFORMATICA E COMPUTER : INTRODUZIONE

INFORMATICA E COMPUTER : INTRODUZIONE INFORMATICA E COMPUTER : INTRODUZIONE! Informatica: dal francese, informatique informat(ion) (automat)ique [termine coniato dall'ingegnere francese Philippe Dreyfus nel 1962] è la scienza che studia i

Dettagli

DAL PROBLEMA AL PROGRAMMA

DAL PROBLEMA AL PROGRAMMA 1. I PROBLEMI E LA LORO SOLUZIONE DAL PROBLEMA AL PROGRAMMA L'uomo, per affrontare gli innumerevoli problemi postigli dallo sviluppo della civiltà, si è avvalso della scienza e della tecnica, i cui destini

Dettagli

Informatica. appunti dalle lezioni del 20/09/2011 e del 27/09/2011

Informatica. appunti dalle lezioni del 20/09/2011 e del 27/09/2011 Informatica appunti dalle lezioni del 20/09/2011 e del 27/09/2011 Definizioni Informatica: scienza per lʼelaborazione automatica dellʼinformazione Informatica = Informazione + Automatica Informazione:

Dettagli

Gli algoritmi: definizioni e proprietà

Gli algoritmi: definizioni e proprietà Dipartimento di Elettronica ed Informazione Politecnico di Milano Informatica e CAD (c.i.) - ICA Prof. Pierluigi Plebani A.A. 2008/2009 Gli algoritmi: definizioni e proprietà La presente dispensa e da

Dettagli

SISTEMI DI NUMERAZIONE DECIMALE E BINARIO

SISTEMI DI NUMERAZIONE DECIMALE E BINARIO SISTEMI DI NUMERAZIONE DECIMALE E BINARIO Il sistema di numerazione decimale (o base dieci) possiede dieci possibili valori (0, 1, 2, 3, 4, 5, 6, 7, 8 o 9) utili a rappresentare i numeri. Le cifre possiedono

Dettagli

Definire all'interno del codice un vettore di interi di dimensione DIM, es. int array[] = {1, 5, 2, 4, 8, 1, 1, 9, 11, 4, 12};

Definire all'interno del codice un vettore di interi di dimensione DIM, es. int array[] = {1, 5, 2, 4, 8, 1, 1, 9, 11, 4, 12}; ESERCIZI 2 LABORATORIO Problema 1 Definire all'interno del codice un vettore di interi di dimensione DIM, es. int array[] = {1, 5, 2, 4, 8, 1, 1, 9, 11, 4, 12}; Chiede all'utente un numero e, tramite ricerca

Dettagli

JAVASCRIPT. Tale file è associato alla pagina web mediante il tag