ALGORITMI: PROPRIETÀ FONDAMENTALI

Documenti analoghi
Codifica dell Informazione

Codifica dell Informazione

L ELABORATORE ELETTRONICO

CORSO DI PROGRAMMAZIONE E INFORMATICA GENERALE 1

L ELABORATORE ELETTRONICO!

Cosa è l Informatica?

INFORMATICA. Scienza dei calcolatori elettronici (computer science) Scienza dell informazione (information science)

Concetti Introduttivi. Il Computer

INFORMATICA. Scienza degli elaboratori elettronici (Computer. informazione

Algoritmi Istruzioni che operano su dati. Per scrivere un programma è necessario. che l esecutore automatico sia in grado di.

Algoritmi e Programmi

Informatica. Come si risolve un problema?

in termini informali: un algoritmo è una sequenza ordinata di operazioni che risolve un problema specifico

Lez. 8 La Programmazione. Prof. Pasquale De Michele (Gruppo 2) e Raffaele Farina (Gruppo 1) 1

Programmazione. Informatica. Risoluzione dei Problemi

Lez. 5 La Programmazione. Prof. Salvatore CUOMO

FONDAMENTI DI INFORMATICA

3. Indicare cosa sta a significare la figura geometrica del rombo in un diagramma a blocchi

Il Concetto Intuitivo di Calcolatore. Esercizio. I Problemi e la loro Soluzione. (esempio)

Modulo 1. Concetti base della Tecnologia dell informazione. Prof. Nicolello Cristiano. Modulo 1

Introduzione agli Algoritmi 4. Problemi. Dal Problema alla Soluzione

ELABORAZIONE DELLE INFORMAZIONI (ALGORITMI E LINGUAGGI DI PROGRAMMAZIONE)

LA CODIFICA DELL INFORMAZIONE. Introduzione ai sistemi informatici D. Sciuto, G. Buonanno, L. Mari, McGraw-Hill Cap.2

RAPPRESENTAZIONE DELLE INFORMAZIONI

Corso di Informatica. Problemi ed algoritmi. Ing Pasquale Rota

Introduzione agli Algoritmi

La codifica digitale

MODULO 07. La soluzione dei problemi mediante gli algoritmi

Architettura degli Elaboratori

Fondamenti di Informatica - 1. Prof. B.Buttarazzi A.A. 2011/2012

Problema: dati i voti di tutti gli studenti di una classe determinare il voto medio della classe.

La codifica dei numeri

Lezione 1. Problemi Algoritmi Programmi

Linguaggi, Traduttori e le Basi della Programmazione

Altrimenti, il M.C.D. di a e b è anche divisore di r (e.g. a=15,b=6,r=3 che è il M.C.D.)

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

Sviluppo di programmi

Problemi, algoritmi, calcolatore

Risolvere un problema significa individuare un procedimento che permetta di arrivare al risultato partendo dai dati Termine algoritmo da:

FONDAMENTI DI INFORMATICA

Introduzione ai sistemi informatici 3/ed Donatella Sciuto, Giacomo Buonanno, Luca Mari. Copyright 2005 The McGraw-Hill Companies srl

Informatica ALGORITMI E LINGUAGGI DI PROGRAMMAZIONE. Francesco Tura. F. Tura

Introduzione alla programmazione

Per gli esercizi sulla algebra booleana, si consiglia di verificare tramite tabelle di verità le equivalenze logiche proposte sulle dispense.

I.4 Rappresentazione dell informazione

Teoria dell Informazione

Corso di Matematica per la Chimica. Dott.ssa Maria Carmela De Bonis a.a

I sistemi di numerazione. Informatica - Classe 3ª, Modulo 1

Pag. 1. La Rappresentazione e la Codifica delle informazioni (parte 2) Tipi di dati. Informatica Facoltà di Medicina Veterinaria

La codifica dell informazione

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

La codifica. dell informazione

La codifica. dell informazione

Linguaggi di Programmazione

Rappresentazione con i diagrammi di flusso (Flow - chart)

Numeri e caratteri in binario. Prof.ssa Antonella Serra

Il concetto di calcolatore e di algoritmo

Introduzione alla programmazione strutturata

Struttura del calcolatore

Aritmetica dei Calcolatori Elettronici

Dall algoritmo al programma

Informatica Generale Andrea Corradini Gli algoritmi e la risoluzione di problemi

Introduzione all Informatica Scienze Naturali / Restauro - Unical 1 Dispensa 1

Università degli Studi di Verona. Algoritmie Diagrammidiflusso. Gennaio Sergio Marin Vargas. Dipartimento di Biotecnologie

Corso di Informatica di Base

LA CODIFICA DELL INFORMAZIONE

Corso di Informatica Generale (C. L. Economia e Commercio) Ing. Valerio Lacagnina Rappresentazione dei numeri relativi

A lezione sono stati presentati i seguenti passi per risolvere un problema:

Codifica binaria. Rappresentazioni medianti basi diverse

MODULO 1. Prof. Onofrio Greco. Prof. Greco Onofrio

ALGORITMI. Obiettivo: risolvere problemi mediante l uso di un elaboratore elettronico. Elaboratore elettronico

La Rappresentazione dell Informazione

Transcript:

ALGORITMI: PROPRIETÀ FONDAMENTALI Non si può risolvere un problema senza prima fissare un insieme di azioni, i di mosse elementari possibili per l'esecutore. Bisogna conoscerne le caratteristiche, le mosse che sa eseguire ed il linguaggio che sa capire Non-ambiguità: ogni azione deve essere univocamente interpretabile dall'esecutore, Eseguibilità: ogni azione deve essere eseguibile in un tempo finito da parte dell esecutore dell algoritmo, Finitezza: per ogni insieme di dati di ingresso, il numero totale di azioni da eseguire deve essere finito. Proprietà desiderabile: Efficienza: deve risolvere il problema utilizzando al meglio le risorse a disposizione

ALGORITMI: ESECUTORE

Rappresentazione degli algoritmi 1. Linguaggio naturale Linguaggi informali 2. Diagrammi i di flusso 3. Pseudo-codice Linguaggi semi-formali 4. Linguaggio di programmazione Linguaggi formali

Variabili Un algoritmo descrive non una singola istanza di un problema, ma piuttosto un intera classe di problemi (es. trovare il max in un insieme quali che siano i valori contentuti nell insieme). Per questo motivo, le operazioni comprese nell algoritmo fanno riferimento a variabili, vale a dire contenitori per dati. Ogni variabile ha nome valore (iniziale e corrente) Esempio: N = 2 (il valore iniziale di N è 2) N = N + 3 (il valore corrente di N è 5)

Esempio di algoritmo: calcolo del MCD Problema: calcolo del Massimo Comun Divisore (MCD) fra due interi M ed N Algoritmo n 1 1. Calcola l'insieme A dei divisori di M 2. Calcola l'insieme B dei divisori di N 3. Calcola l l'insieme i C dei divisori i i comuni di M e N, C = A B 4. Il risultato è il massimo dell insieme C

ESEMPIO: calcolo del MCD Algoritmo n 2 Strategia risolutiva: Finchè M N: se M>N, sostituisci a M il valore M = M-N altrimenti sostituisci a N il valore N = N-M Il Massimo Comun Divisore è il valore finale ottenuto quando M e N diventano uguali

ESEMPIO: calcolo del MCD Calcoliamo il MCD di M = 24 e N = 14. 1. M=24, N=14 24>14 M = 24-14 = 10 2. M=10, N=14 10<14 N = 14-10 = 4 3. M=10, N=4 10>4 M = 10-4 = 6 4. M=6, N=4 6>4 M = 6-4 = 2 5. M=2, N=4 2<4 N = 4-2 = 2 6. M=2, N=2 2=2 il MCD di 24 e 14 è 2

Esempio di Grafo di flusso: MCD Inizio Lettura M, N M>N? No N>M? No Scrittura N Si Si M = M N N = N M Fine

ALGORITMI EQUIVALENTI In generale un algoritimo può essere visto come una funzione da un dominio di ingresso (input) ad dominio di uscita (output) Due algoritmi si dicono equivalenti quando: hanno stesso dominio di ingresso e stesso dominio di uscita; in corrispondenza degli stessi valori nel dominio di ingresso producono gli stessi valori nel dominio di uscita.

ESEMPIO: calcolo del MCD Algoritmo n 3 Dati due interi M e N (M N) 1. Dividi M per N, e sia R il resto della divisione; 2. Se R=0 0 allora termina. Il Massimo Comun Divisore è N; 3. Altrimenti assegna a M il valore di N ed a N il valore del resto R e torna al punto 1.

ESEMPIO: calcolo del MCD Calcoliamo il MCD di M = 24 e N = 14. 1. M=24, N=14 24/14 = 1,R=10 M=N=14, N=R=10 2. M=14, N=10 14/10 = 1,R=4 M=N=10, N=R=4 3. M=10, N=4 10/4 = 2, R=2 M=N=4, N=R=2 4. M=4, N=2 4/2 = 2, R=0 il MCD di 24 e 14 è 2

ALGORITMI: ESECUZIONE L'esecuzione delle azioni nell'ordine specificato dall'algoritmo consente di ottenere, a partire dai dati di ingresso, i risultati che risolvono la particolare istanza del problema.

ALGORITMI: ESECUZIONE TRAMITE COMPUTER La programmazione è l'attività con cui si predispone l'elaboratore ad eseguire un particolare insieme di azioni su una particolare tipologia di dati, allo scopo di risolvere un problema.

RISOLUZIONE DI PROBLEMI CON L ELABORATORE ELETTRONICO Ogni elaboratore è una macchina in grado di eseguire azioni elementari su dati L'esecuzione delle azioni elementari è richiesta all'elaboratore tramite comandi chiamati istruzioni Le istruzioni sono espresse attraverso frasi di un opportuno linguaggio di programmazione Un programma non è altro che la formulazione testuale di un algoritmo in un linguaggio di programmazione

ALGORITMI E PROGRAMMI PROBLEMA ALGORITMO PROGRAMMA metodo risolutivo linguaggio di programmazione

LINGUAGGI AD ALTO LIVELLO È opportuno impostare la soluzione di un problema a partire dalle mosse elementari del linguaggio macchina? SI, per risolvere il problema con efficienza NO, se la macchina di partenza ha mosse di livelloll troppo basso (difficile progettare un algoritmo) Linguaggi di Programmazione ad Alto Livello (di astrazione) le istruzioni corrispondono ad operazioni più complesse esempi: Pascal, Basic, C, C++, Java

Fondamenti di Informatica Francesco Folino Codifica dell Informazione

CODIFICA DI DATI E ISTRUZIONI Algoritmi Istruzioni che operano su dati Per scrivere un programma è necessario rappresentare dati e istruzioni in un formato tale che l esecutore automatico sia in grado di Memorizzare istruzioni e dati Manipolare istruzioni e dati Le informazioni gestite dai sistemi di elaborazione devono essere codificate per poter essere memorizzate, elaborate, scambiate, Codifica dell Informazione

CODIFICA DELL INFORMAZIONE La stessa informazione si può rappresentare in modi differenti Stessa rappresentazione per informazioni differenti Codifica dell Informazione

SISTEMI DI CODIFICA Sistema di codifica (o codifica, ocodice) Usa un insieme di simboli di base (alfabeto) I simboli dell alfabeto possono essere combinati ottenendo differenti configurazioni (o codici, ostati), distinguibili l una dall altra altra Associa ogni configurazione ad una particolare entità di informazione (la configurazione diventa un modo per rappresentarla) Codifica dell Informazione

SISTEMI DI CODIFICA: NUMERI INTERI (DECIMALI) Alfabeto Cifre 0, 1, 2,, 9 separatore decimale (, ) separatore delle migliaia (. ) Segni positivo ( + ) e negativo ( - ) Regole di composizione (sintassi) Definiscono i le combinazioni i i ben formate 12.318,43 12,318.43 Codice (semantica) Associano ad ogni configurazione un entità di informazione 12.318,43 = 1 10 4 + 2 10 3 + 3 10 2 + 1 10+ 1 10 0 + 4 10-1 + 3 10-2 Lo stesso alfabeto può essere usato per codici diversi 123,456 = 1 10 2 + 2 10+ 3 10 0 + 4 10-1 + 5 10-2 + 6 10-3 [IT] 123,456 = 1 10 5 + 2 10 4 + 3 10 3 + 4 10 2 + 5 10 1 + 6 10 0 [UK] Codifica dell Informazione

CODIFICA BINARIA Codifica binaria: usa un alfabeto di 2 simboli Utilizzata nei sistemi informatici Si utilizza una grandezza fisica (luminosità, tensione elettrica, la corrente elettrica), per rappresentare informazione Si divide in due intervalli l insieme dei valori che la grandezza può assumere: ogni intervallo corrisponde ad un simbolo Solo 2 simboli al fine di ridurre la probabilità di errore Tanto più simboli si devono distinguere e tanto meno la rivelazione sarà affidabile (gli intervalli della grandezza fisica i saranno meno ampi) Codifica dell Informazione

CODIFICA BINARIA BIT (BInary digit) it) unità elementare di informazione rappresentabile con dispositivi elettronici con 1 bit si possono rappresentare 2 stati ti 0/1, on/off, si/no Combinando più bit si può codificare un numero maggiore di stati ti con 2 bit possono rappresentare 4 stati con K bit si possono rappresentare 2 K stati Quanti bit sono necessari per codificare N oggetti? N 2 K K log 2 N K = log 2 N Codifica dell Informazione

I GIORNI DELLA SETTIMANA IN BINARIO Codifica dell Informazione