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



Documenti analoghi
Algoritmi. Maurizio Palesi. Maurizio Palesi 1

Sistemi di Elaborazione delle Informazioni

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

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

Descrizione di un algoritmo

RAPPRESENTAZIONE GRAFICA DEGLI ALGORITMI

Cenni su algoritmi, diagrammi di flusso, strutture di controllo

Lezione 8. La macchina universale

Introduzione. Informatica B. Daniele Loiacono

Fasi di creazione di un programma

Appunti del corso di Informatica 1 (IN110 Fondamenti) 2 Algoritmi e diagrammi di flusso

3 - Variabili. Programmazione e analisi di dati Modulo A: Programmazione in Java. Paolo Milazzo

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

Nozione di algoritmo. Gabriella Trucco

Metodologie di programmazione in Fortran 90

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

DI D AGRA R MM M I M A BLOCC C H C I TEORI R A E D D E SERC R I C ZI 1 1

Sistemi Web! per il turismo! - lezione 3 -

Algoritmi e diagrammi di flusso

La selezione binaria

Gli algoritmi: definizioni e proprietà

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

Corso di Informatica

Sommario. Definizione di informatica. Definizione di un calcolatore come esecutore. Gli algoritmi.

4 3 4 = 4 x x x 10 0 aaa

Introduzione alla Programmazione

Alessandro Pellegrini

LE FUNZIONI A DUE VARIABILI

Algoritmi, dati e programmi

Informatica per le discipline umanistiche 2 lezione 14

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

Appunti di Sistemi Elettronici

Tipi primitivi. Ad esempio, il codice seguente dichiara una variabile di tipo intero, le assegna il valore 5 e stampa a schermo il suo contenuto:

La programmazione. Sviluppo del software

Variabili e tipi di dato

Funzionalità di un Algoritmo

Appunti del corso di Informatica 1 (IN1 Fondamenti) 2 Introduzione alla programmazione

(71,1), (35,1), (17,1), (8,1), (4,0), (2,0), (1,0), (0,1) 0, = 1, 431 0, = 0, 862 0, = 1, 792 0, = 1, 448 0, = 0, 896

Esempi di algoritmi. Lezione III

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

Esercizi per il recupero del debito formativo:

Come ragiona il computer. Problemi e algoritmi

I Problemi e la loro Soluzione. Il Concetto Intuitivo di Calcolatore. Risoluzione di un Problema. Esempio

Arduino: Programmazione

Università di Torino Facoltà di Scienze MFN Corso di Studi in Informatica. Programmazione I - corso B a.a prof.

Automatizzare i compiti ripetitivi. I file batch. File batch (1) File batch (2) Visualizzazione (2) Visualizzazione

+ / operatori di confronto (espressioni logiche/predicati) / = > < Pseudo codice. Pseudo codice

MATLAB. Caratteristiche. Dati. Esempio di programma MATLAB. a = [1 2 3; 4 5 6; 7 8 9]; b = [1 2 3] ; c = a*b; c

Le Macchine di Turing

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

Architettura (10/9/2003) Pag. 1/6. Cognome e Nome (in stampatello):

Complementi di Analisi per Informatica *** Capitolo 2. Numeri Complessi. e Circuiti Elettrici. a Corrente Alternata. Sergio Benenti 7 settembre 2013

TECNOLOGIE INFORMATICHE DELLA COMUNICAZIONE ORE SETTIMANALI 2 TIPO DI PROVA PER GIUDIZIO SOSPESO PROVA DI LABORATORIO

Dall Algoritmo al Programma. Prof. Francesco Accarino IIS Altiero Spinelli Sesto San Giovanni

3. Programmazione strutturata (testo di riferimento: Bellini-Guidi)

PROVA INTRACORSO TRACCIA A Pagina 1 di 6

Un ripasso di aritmetica: Rappresentazione binaria - operazioni. riporti

Proof. Dimostrazione per assurdo. Consideriamo l insieme complementare di P nell insieme

Il sapere tende oggi a caratterizzarsi non più come un insieme di contenuti ma come un insieme di metodi e di strategie per risolvere problemi.

Introduzione ai Metodi Formali

Lezione 10: Il problema del consumatore: Preferenze e scelta ottimale

Strutturazione logica dei dati: i file

Scopo della lezione. Informatica. Informatica - def. 1. Informatica

Calcolo del Valore Attuale Netto (VAN)

Corso di Informatica

Un ripasso di aritmetica: Conversione dalla base 10 alla base 16

Architettura degli Elaboratori I Esercitazione 1 - Rappresentazione dei numeri

FONDAMENTI di INFORMATICA Prof. Lorenzo Mezzalira

ESERCIZIO 1 (b) Dove è memorizzato il numero del primo blocco del file? Insieme agli altri attributi del file, nella cartella che contiene il file.

Esercizi di programmazione in C

SOMMARIO I radicali pag I radicali aritmetici pag Moltiplicazione e divisione fra radicali aritmetici pag.

MANUALE ESSE3 Gestione Registro delle lezioni

Il luogo delle radici (ver. 1.0)

Corso di Esercitazioni di Programmazione

Chapter 1. Circuiti sequenziali: macchine a stati

risulta (x) = 1 se x < 0.

Informatica. Rappresentazione dei numeri Numerazione binaria

1

= 1*2^7 + 1*2^6 + 0*2^5 + 1*2^4 + 0*2^3 + 0*2^2 + 1*2^1 + 0*2^0 = 210

Requisiti normativi, standard, template

SISTEMI DI NUMERAZIONE IL SISTEMA DECIMALE

24 : 3 = 8 con resto 0 26 : 4 = 6 con resto 2

ALGEBRA DELLE PROPOSIZIONI

COS È UN LINGUAGGIO? LINGUAGGI DI ALTO LIVELLO LA NOZIONE DI LINGUAGGIO LINGUAGGIO & PROGRAMMA

2.12 Esercizi risolti

Per lo svolgimento del corso risulta particolarmente utile considerare l insieme

Rappresentazione delle informazioni

CALCOLATORI ELETTRONICI A cura di Luca Orrù. Lezione n.7. Il moltiplicatore binario e il ciclo di base di una CPU

(a cura di Francesca Godioli)

Richiesta pagina PHP (es: index.php)

- Algoritmi ed esecutori di algoritmi - ALGORITMI MACCHINA DI VON NEUMANN

Correttezza. Corso di Laurea Ingegneria Informatica Fondamenti di Informatica 1. Dispensa 10. A. Miola Novembre 2007

Matematica generale CTF

Elementi di Informatica e Programmazione

Architettura di un calcolatore

LABORATORIO DI PROGRAMMAZIONE EDIZIONE 1, TURNO B

ALGORITMI e PROGRAMMI Programmazione: Lavoro che si fa per costruire sequenze di istruzioni (operazioni) adatte a svolgere un dato calcolo

Lezione 2 OPERAZIONI ARITMETICHE E LOGICHE ARCHITETTURA DI UN ELABORATORE. Lez2 Informatica Sc. Giuridiche Op. aritmetiche/logiche arch.

Javascript: il browser

Elementi di Informatica e Programmazione

Transcript:

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 2

Esempi di algoritmi Ricetta per cucinare gli spaghetti Metti l acqua nella pentola Fai bollire l acqua Metti la pasta nell acqua Aggiungi un po di sale Attendi 6 minuti Scola la pasta 3

Esempi di algoritmi Verifica se un numero è pari o dispari Prendi il numero Calcola il resto della divisione intera del numero per 2 Se il resto è zero Allora il numero è pari Altrimenti il numero è dispari 4

Esempi di algoritmi Verifica se un numero e' primo: 1.Prendi il numero n 2.Poni un contatore i a 2 3.Calcola il resto della divisione intera n/i 4.Se il resto è zero Allora il numero NON e' primo Altrimenti, se il contatore e' minore di... allora incrementa il contatore i e vai al passo 3 Dubbio: fino a quanto dobbiamo incrementare il contatore?? 5

Proprietà degli algoritmi L'algoritmo è caratterizzato da: finitezza: composto da un numero finito di passi elementari; le operazioni sono eseguite un numero finito di volte non ambiguità: i risultati non variano in funzione della macchina/persona che esegue l'algoritmo (deterministico) realizzabilità: deve essere eseguibile con le risorse a disposizione 6

Proprietà degli algoritmi ma gli esempi precedenti possiedono queste proprietà? Problemi presenti: Ambiguità Ipotesi implicite sulle capacità dell esecutore Uso del linguaggio naturale 7

Rappresentazione degli algoritmi E necessario far riferimento a dei formalismi che: non introducano ambiguità e siano universalmente riconosciuti ed interpretati allo stesso modo da un generico esecutore permettano di rappresentare in modo efficace un algoritmo Costituiscano un utile strumento per poi poter passare alla fase di codifica in un linguaggio di programmazione 8

Rappresentazione degli algoritmi Rappresentazione grafica Diagrammi di Flusso / Flow Chart Rappresentazione testuale Notazione Lineare Strutturata / PseudoCodice 9

Algoritmi: operazioni base Le operazioni primarie sono: Istruzioni di I/O (Trasferimento di informazioni: lettura dati, scrittura risultati) Istruzioni di assegnamento Valutazione espressioni (esecuzione di calcoli) Strutture di controllo (che modificano il flusso sequenziale di esecuzione delle operazioni) 10

Flow chart: simboli fondamentali ingresso/uscita Elaborazione inizio/fine Selezione...ce ne sono anche altri con forme diverse di importanza secondaria, ma questo non e' un corso di disegno... 11

Istruzioni di I/O lettura di dati in input scrittura dei risultati in output Flow chart Pseudo-codice leggi A leggi A scrivi B scrivi B 12

Istruzione di assegnamento Concetto di variabile Identificata da un etichetta / identificatore simbolico Può essere comodo pensare alla variabile come ad un contenitore in cui possiamo memorizzare o reperire dei dati utilizzati durante il calcolo L istruzione di assegnamento permette di assegnare un valore ad una variabile A = 5 Alla variabile A viene assegnato il valore 5 13

Istruzione di assegnamento Inizializzazione All inizio di un algoritmo una variabile non ha alcun valore Non ha quindi senso utilizzarla in una espressione (è un errore!) Essa deve essere inizializzata: O esplicitamente mediante un assegnamento Oppure mediante una operazione di lettura START START START B = 0 leggi B A = B + 3 ERRORE: B non è inizializzata A = B + 3 A = B + 3 CORRETTO CORRETTO 14

Istruzione di assegnamento E stato usato il simbolo = per indicare l istruzione di assegnamento (sarà lo stesso usato nel linguaggio C) Alcuni testi/autori indicano invece il simbolo (per evitare confusione con l operatore di uguaglianza) Dato il seguente frammento di codice: A = 5 A = A + 1 Cosa fa quell istruzione? L esecutore esegue i seguenti passi: prima valuta l espressione a destra, cioè calcola il valore di A+1 che vale 6 dopo assegna tale valore alla variabile a sinistra, cioè ad A alla fine dell esecuzione di quella istruzione quindi, A vale 6 15

Valutazione espressioni L esecutore è in grado di valutare espressioni aritmetiche ed assegnarle alla variabile specificata nella parte sinistra. Diagramma a blocchi Pseudo-codice B = 5*(82-35)/7 B = 5*(82-35)/7 A = (B+34)/B*2 A = (B+34)/B*2 16

Struttura di Selezione Verifica di una condizione leggi N VERO E' N < 0? FALSO Stampa N e' negativo! Stampa N e' non negativo! 17

Diagrammi di Flusso: Esercizi Leggere base B e altezza H e stampare l'area Leggere due numeri X e Y, stampare il maggiore dei due Leggere due numeri X e Y, e scambiare loro valori (ossia alla fine X contiente quello che c'era in Y e viceversa...) Leggere un numero e stampare un messaggio a seconda che sia primo o meno. 18