Algoritmi e Programmazione (in C) Stefano Cagnoni e Monica Mordonini

Slides:



Advertisements
Presentazioni simili
Analisi – Progettazione - Programmazione
Advertisements

Linguaggi algoritmici
I DATI LE ISTRUZIONI LE STRUTTURE FONDAMENTALI
Algoritmi e Programmazione
Informatica Generale Marzia Buscemi
Corso di Laurea in Biotecnologie corso di Informatica Paolo Mereghetti DISCo – Dipartimento di Informatica, Sistemistica e Comunicazione.
Corso di Robotica Residenza Universitaria Alcantara 20 Gennaio 2005
INFORMATICA Strutture iterative
1 Istruzioni, algoritmi, linguaggi. 2 Algoritmo per il calcolo delle radici reali di unequazione di 2 o grado Data lequazione ax 2 +bx+c=0, quali sono.
Introduzione agli algoritmi. Definizione Sistema di regole e procedure di calcolo ben definite che portano alla soluzione di un problema con un numero.
Il computer ragiona? Problemi e algoritmi.
Informatica Problema Algoritmo Programma
Università degli Studi di Bergamo Facoltà di Lingue e Letterature Straniere Facoltà di Lettere e Filosofia A.A Informatica generale 1 Appunti.
Informatica 2. Concetti fondamentali di programmazione Programmare vuol dire scrivere un algoritmo in un linguaggio che faccia funzionare un calcolatore.
1 Corso di Laurea in Biotecnologie Informatica (Programmazione) Problemi e algoritmi Anno Accademico 2009/2010.
Definizione di Algoritmo
Algoritmi e Strutture Dati (Mod. B)
Programmazione Un programma descrive al computer, in estremo dettaglio, la sequenza di passi necessari a svolgere un particolare compito L’attività di.
Introduzione alla programmazione ll
Introduzione alla programmazione lll
DAL PROBLEMA ALL'ALGORITMO Problemi e Programmi Paolo Amico
ALGORITMI E PROGRAMMAZIONE STRUTTURATA
Fondamentidi Programmazione Corso: Fondamenti di Programmazione Classe: PARI-DISPARI Docente: Prof. Luisa Gargano Testo: Aho, Ulman, Foundations of Computer.
Unità Didattica 1 Algoritmi
Istruzioni Iterative Nicola Fanizzi
Strutture di controllo in C -- Flow Chart --
Fondamenti di Informatica Algoritmi
Algoritmi e Programmazione (in C) Stefano Cagnoni e Monica Mordonini
Gli algoritmi.
Elementi di Informatica
Elementi di Informatica
Dall’algoritmo al programma.
ELEMENTI DI PROGRAMMAZIONE
2000 Prentice Hall, Inc. All rights reserved. Capitolo 3 (Deitel) Lo sviluppo di programmi strutturati Indice degli argomenti Introduzione 3.2 -
Algoritmi e Programmazione strutturata
INFORMATICA MATTEO CRISTANI.
PROGRAMMAZIONE: linguaggi
Lezione 6 Strutture di controllo Il condizionale
PROBLEMA ALGORITMO PROGRAMMA LINGUAGGI di PROGRAMMAZIONE
Programmazione di Calcolatori
BIOINFO3 - Lezione 15 ISTRUZIONI
Programmazione Strutturata
Informatica e Algoritmi
COME RAGIONA UN COMPUTER
Gli Algoritmi L’algoritmo è un insieme ordinato di operazioni non ambigue ed effettivamente computabili che, quando eseguito, produce un risultato e si.
DIVERTIRSI CON SCRATCH
Dal problema all’ algoritmo
ALGORITMI Un algoritmo (detto anche procedura, prescrizione, processo, routine, metodo) è un insieme di regole (dette anche direttive o istruzioni) che,
Rappresentazione degli algoritmi
Tecnologie Informatiche ed Elettroniche per le Produzioni Animali
Algoritmi.
Vincenza Ferrara Novembre 2007 Fondamenti di Matematica e Informatica Laboratorio Informatica I anno a.a
Linguaggio C: Le basi Stefano Cagnoni e Monica Mordonini
Linguaggio C: Le basi Stefano Cagnoni e Monica Mordonini
Realizzazione software
1 Informatica Generale Marzia Buscemi Ricevimento: Giovedì ore , Dipartimento di Informatica, stanza 306-PS o per posta.
L’ELABORATORE ELETTRONICO uno strumento in grado di eseguire insiemi di azioni (“mosse”) elementari le azioni vengono eseguite su oggetti (dati) per produrre.
Diagrammi a blocchi.
Informatica e Informatica di Base
Problemi, algoritmi e programmazione
ALGORITMI Dal problema al programma Definizione di algoritmo
Il computer ragiona? Problemi e algoritmi. Paola Pianegonda2 Cos’è un problema?  Problema è qualsiasi situazione della quale non conosciamo la soluzione.
Programmazione dei Calcolatori Elettronici
Dal problema al programma
GLI ALGORITMI Appunti preparati dalla prof.ssa Maria D’Angelo.
Informatica Problemi e algoritmi. una situazione che pone delle domande cui si devono dare risposte. Col termine problema o situazione problematica s’indica.
Istruzioni e algoritmi. Istruzioni Operative I passi elementari che compongono l’algoritmo sono le istruzioni. Distinguiamo: Istruzioni di input Istruzioni.
Unità di apprendimento 6
ALGORITMI, LINGUAGGI E PROGRAMMI Facoltà di Lingue e Letterature Straniere Corso di laurea in Relazioni Pubbliche.
Lezioni di Ricerca Operativa Corso di Laurea in Informatica
Transcript della presentazione:

Algoritmi e Programmazione (in C) Stefano Cagnoni e Monica Mordonini Dipartimento di Ingegneria dell’Informazione Università degli Studi di Parma Fondamenti di Informatica Laurea in Ingegneria Civile e Ingegneria per l’ambiente e il territorio Algoritmi e Programmazione (in C) Stefano Cagnoni e Monica Mordonini

FI - Algoritmi e Programmazione Il problema di fondo Descrizione di un problema individuazione di una soluzione Quale è il giusto punto di partenza? Cioè, di quali dati abbiamo bisogno ? Quali metodologie o tecniche utilizzare? In quale ordine eseguire le operazioni consentite da tali tecniche ? FI - Algoritmi e Programmazione

FI - Algoritmi e Programmazione Algoritmo Dall'arabo al-Khuwarizmi, e dal greco arithmós Un algoritmo è un metodo generale che risolve in un tempo finito e con una sequenza finita di passi qualsiasi istanza di un dato problema di elaborazione. FI - Algoritmi e Programmazione

FI - Algoritmi e Programmazione Algoritmo E’ possibile “trovare” algoritmi anche per la risoluzione di problemi non strettamente informatici Esempi: Descrivere come raggiungere una destinazione Istruzioni per il montaggio di un mobile Istruzioni per la realizzazione di una torta Un algoritmo può non essere l’unica soluzione al problema FI - Algoritmi e Programmazione

Codifica di un algoritmo Fase di descrizione (scrittura) di un algoritmo attraverso un insieme ordinato (sequenziale) di codici (istruzioni), appartenenti a un qualche linguaggio di programmazione, che specificano le azioni da compiere e l’ordine in cui devono essere eseguite Il prodotto della codifica è un programma FI - Algoritmi e Programmazione

FI - Algoritmi e Programmazione Testo scritto in accordo alla sintassi (insieme di regole che regolano la formazione delle espressioni in un linguaggio) e alla semantica (insieme di regole che consentono l’interpretazione del significato del testo) di un linguaggio di programmazione Un programma rappresenta l’insieme delle istruzioni che descrivono un processo espresse in un qualche linguaggio Un processo trasforma un insieme di dati iniziali nei risultati finali mediante una successione di azioni elementari FI - Algoritmi e Programmazione

FI - Algoritmi e Programmazione Un programma può non essere un algoritmo (basta che la sequenza di operazioni non sia finita cioè che il programma non termini)... ... tuttavia può essere molto utile Es. gestione semafori, non ha fine poiché ripete indefinitamente la stessa sequenza FI - Algoritmi e Programmazione

FI - Algoritmi e Programmazione Esecuzione L’esecuzione delle azioni nell’ordine specificato dall’algoritmo consente di ottenere i risultati che risolvono il problema a partire dai dati in ingresso Problema:  algoritmo  programma Codifica in un linguaggio di programmazione Metodo risolutivo FI - Algoritmi e Programmazione

FI - Algoritmi e Programmazione Algoritmo Un algoritmo deve avere le seguenti proprietà: Finitezza: composto da un numero finito di passi elementari. Non ambiguità (determinismo): i risultati non variano in funzione della macchina/persona che esegue l'algoritmo. Realizzabilità: deve essere eseguibile con le risorse a disposizione. Efficienza (auspicabile): deve eseguire il minimo numero possibile di operazioni FI - Algoritmi e Programmazione

FI - Algoritmi e Programmazione Algoritmo Per definire un algoritmo è necessario: Condurre un'attenta analisi del problema ed eventualmente suddividere il problema in sottoproblemi più piccoli. Individuare i possibili ingressi e precisare le uscite (definizione dei dati). Definire completamente e dettagliatamente la sequenza dei passi che portano alla soluzione. FI - Algoritmi e Programmazione

FI - Algoritmi e Programmazione Il crivello di Eratostene Si vogliono trovare tutti i numeri primi compresi fra 2 e n (in modo efficiente). Si costruisca una sequenza ordinata dei numeri fra 2 e n. Si estragga il primo numero dalla sequenza. E’ necessariamente un numero primo. Si eliminino dalla sequenza tutti i multipli del numero estratto al passo 2. Se la sequenza non è vuota si torna al passo 2, altrimenti si termina. FI - Algoritmi e Programmazione

Il crivello di Eratostene Esempio Sequenza iniziale (da 2 a 20): 2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,19,20 2 è primo; lo elimino con tutti i suoi multipli: 3,5,7,9,11,13,15,17,19 3 è primo; lo elimino con tutti i suoi multipli: 5,7,11,13,17,19 5 è primo; lo elimino con tutti i suoi multipli: … 19 è primo, la sequenza e’ vuota, termino. FI - Algoritmi e Programmazione

Diagrammi di flusso (Flow-Chart) I diagrammi di flusso sono un formalismo grafico per descrivere gli algoritmi. I diagrammi di flusso visualizzano graficamente i passi da cui sono formati gli algoritmi. Un diagramma di flusso è una descrizione formale, più efficace e meno ambigua di una descrizione a parole. FI - Algoritmi e Programmazione

FI - Algoritmi e Programmazione Diagrammi di flusso Operazioni rappresentabili in un diagramma di flusso Ingresso/Uscita dati (rappresentate come schede) Operazioni sui dati (rappresentate come rettangoli) Trasferimento di informazione (Assegnamenti) Calcolo di espressioni aritmetiche e logiche Verifica di condizioni (rappresentate come rombi) Assunzione di decisioni (combinazioni di rettangoli e rombi). Caso particolare: cicli. Possono utilizzare costanti e variabili FI - Algoritmi e Programmazione

FI - Algoritmi e Programmazione Diagrammi di flusso Un diagramma di flusso è costituito da due tipi di entità: Nodi rappresentano le operazioni e gli stati di inizio e fine dell’algoritmo Archi orientati Collegano fra loro i nodi, rappresentando con frecce il ‘flusso’ dei dati, quindi la sequenza delle operazioni: il risultato prodotto da un nodo è successivamente elaborato dal nodo a cui punta l’arco uscente da esso Una struttura di questo tipo è detta grafo (orientato) FI - Algoritmi e Programmazione

Elaborazione / Assegnamento Tipi di Nodi Lettura dati Var1 Var1  Espr1 Inizio Start Elaborazione / Assegnamento Scrittura dati Var1 Espr1 = Espr2 Espr1  Espr2 Espr1 > Espr2 Espr1  Espr2 Espr1 < Espr2 Espr1  Espr2 Fine Stop Sì No Decisione FI - Algoritmi e Programmazione

FI - Algoritmi e Programmazione Esempio Start Inizio Leggi un valore (ad es. 10) Stampa quel valore (stampa 10) Fine Var1 Var1 Stop FI - Algoritmi e Programmazione

FI - Algoritmi e Programmazione Esempio 2 Start Inizio Leggi un valore (ad es. 10) Aggiungi 1 a quel valore Stampa il nuovo valore (stampa 11) Fine Var1 Var1  Var1 + 1 Var1 Stop FI - Algoritmi e Programmazione

FI - Algoritmi e Programmazione Esempio 3 Start Inizio Leggi Var1 Var1 Se Var1 > 10 stampa Var1 Altrimenti incrementa di 1 Var1 e poi stampa Var1 No Var1 > 10 Var1  Var1 + 1 Sì Var1 Fine Stop FI - Algoritmi e Programmazione

Strutture di Controllo No No C O1 O2 Sì C No Sì O Ciclo While - Do Ciclo Repeat - Until If - Then - Else Ripete una stessa operazione O finché la condizione C resta vera Ripete una stessa operazione O finché la condizione C non diventa vera Se C è vera esegue O1, altrimenti esegue O2 FI - Algoritmi e Programmazione

Programmazione Strutturata Si compone di sequenze di azioni, decisioni (if then, if then else) e cicli (while-do, repeat until). Ogni diagramma ha esattamente un ingresso ed una uscita. Ogni azione può essere Un’operazione semplice Un’ azione composta da altri diagrammi strutturati FI - Algoritmi e Programmazione

Esempio: Somma di Tre Numeri Start Somma  Var1 +Var2 + Var3 Var1 Somma Var2 Stop Var3 FI - Algoritmi e Programmazione

Esempio: Somma di N Numeri Start No Sì I < N Var N Somma  Somma + Var Somma Stop I  0 Somma  0 I  I + 1 FI - Algoritmi e Programmazione