CAPITOLO 3 - ALGORITMI E CODIFICA

Documenti analoghi
Introduzione alla programmazione Algoritmi e diagrammi di flusso. Sviluppo del software

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

DISPENSE DI PROGRAMMAZIONE

Blocchi di base. Schemi: Sequenza Selezione Iterazione. Flow chart strutturati Sequenza Selezione Iterazione. Teorema di Bohm e Jacopini

Laboratorio di Programmazione Laurea in Ingegneria Civile e Ambientale

Sviluppo di programmi

Laboratorio di Programmazione Laurea in Ingegneria Civile e Ambientale

Algoritmi. Andrea Passerini Conoscenze informatiche e relazionali Corso di laurea in Scienze dell Ingegneria Edile

Laboratorio di Programmazione Laurea in Ingegneria Civile e Ambientale

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.)

PROBLEMI E ALGORITMI VESPIA CATERINA LICEO CLASSICO AGLI ANGELI

Sviluppo di programmi

Introduzione alla programmazione

Diagrammi a blocchi 1

Corso di Informatica. Problemi ed algoritmi. Ing Pasquale Rota

Caratteristiche di un calcolatore elettronico

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

Sistemi di Elaborazione delle Informazioni

Dispensa di Informatica II.1

Sviluppo di programmi

Diagrammi a blocchi 1

PROBLEMI ALGORITMI E PROGRAMMAZIONE

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

RAPPRESENTAZIONE GLI ALGORITMI NOTAZIONE PER LA RAPPRESENTAZIONE DI UN ALGORITMO

Fondamenti di Informatica Laurea in Ingegneria Civile e Ingegneria per l ambiente e il territorio

Introduzione agli Algoritmi

Diagrammi di flusso - Flowcharts. E un formalismo che consente di rappresentare graficamente gli algoritmi

Lezione 5. La macchina universale

Dal problema a un programma comprensibile dal calcolatore. Il Progetto degli Algoritmi. Dall analisi del problema all esecuzione

Economia Aziendale Sistemi di Elaborazione delle Informazioni Università degli Studi di Enna Kore Mario Collotta

Rappresentazione con i diagrammi di flusso (Flow - chart)

LA METAFORA DELL UFFICIO

PROGRAMMAZIONE (Corso A)

Dal Problema all Algoritmo. Prof. Francesco Accarino IIS Altiero Spinelli Sesto San Giovanni

Flow-chart. Introduzione agli algoritmi e ai diagrammi a blocchi.

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

Lez. 5 La Programmazione. Prof. Salvatore CUOMO

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

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

Fondamenti di Informatica Laurea in Ingegneria Civile e Ingegneria per l ambiente e il territorio

Fondamenti di Informatica

Risoluzione di un problema

Fasi di creazione di un programma

ELEMENTI DI INFORMATICA L. Ing. Claudia Chiusoli

Algoritmi e soluzione di problemi

Problemi, algoritmi, calcolatore

La formalizzazione dell informazione: Dati e Diagrammi di Flusso

Linguaggi algoritmici A. Ferrari

Agent and Object Technology Lab Dipartimento di Ingegneria dell Informazione Università degli Studi di Parma. Fondamenti di Informatica.

Paolo Bison. Fondamenti di Informatica Ingegneria Meccanica Università di Padova A.A. 2008/09

Introduzione all informatica

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

Modulo 1 Concetti di base della Tecnologia dell Informazione

Il concetto di calcolatore e di algoritmo

Corso di Informatica di Base

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

Laboratorio di Informatica. Esercitazione su algoritmi e diagrammi di flusso

Elementi di Informatica e Programmazione

Formalismi per la descrizione di algoritmi

Paolo Bison. Fondamenti di Informatica A.A. 2006/07 Università di Padova

Analisi e Programmazione

Computer. Capitolo 2. 05/04/2012 continuazione 1

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

Informatica/ Ing. Meccanica/ Edile/ Prof. Verdicchio/ 02/07/2015/ Foglio delle domande /VERSIONE 1 Matricola Cognome Nome

Linguaggio Testuale. E un formalismo che consente di rappresentare gli algoritmi mediante semplici istruzioni in linguaggio «parlato»

Cos è la programmazione?

ALGORITMI: PROPRIETÀ FONDAMENTALI

ALGORITMI E PROGRAMMAZIONE STRUTTURATA. Prof R. Bresolin a.s

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

Università degli Studi di Brescia INFORMATICA. Dipartimento di Ingegneria Meccanica e Industriale

Algoritmi e diagrammi di flusso

Diagrammi di flusso (Flow Chart)

Scienza dei calcolatori elettronici (Computer Science) Scienza dell informazione. è uno strumento in grado di eseguire insiemi di azioni elementari.

MODULO 07. La soluzione dei problemi mediante gli algoritmi

Pag. 1. La formalizzazione dell informazione: Dati e Diagrammi di Flusso. Codifica degli algoritmi

5.4 Istruzione di input L istruzione di input ha la forma:

L ELABORATORE ELETTRONICO

DESCRIZIONI RIGOROSE c7

SISTEMI DI ELABORAZIONE DELLE INFORMAZIONI Algoritmi e programmazione Prof. Andrea Borghesan

Algoritmi e diagrammi di flusso versione biennio

Laboratorio di Programmazione

Caratteristiche generali del linguaggio Visual Basic

Come ragiona il computer

Linguaggi, Traduttori e le Basi della Programmazione

Algoritmi e programmazione

Programmazione I. Fondamenti di programmazione. Problemi, Algoritmi, Diagrammi di flusso

Sommario. Problema computazionale Sviluppo software Algoritmi. Istruzioni Sequenziali, Condizionali, Cicliche; Javascript

Informatica. Informatica. Problema - soluzione. Algoritmi, dati e programmi. Introduzione ai concetti di: Distinguiamo tra: problema

LA METAFORA DELL UFFICIO

ALGORITMI E SOLUZIONI DI PROBLEMI

Laboratorio di Programmazione Laurea in Ingegneria Civile e Ambientale

APPUNTI DI INFORMATICA

INFORmazione+autoMATICA. Perché saperne di piu? Le fasi della programmazione. Cosa intendiamo per programmazione

IL TEOREMA DI BOEHM-JACOPINI

Dall algoritmo al calcolatore: concetti introduttivi. Algoritmo. Problema: consumo medio 9/27/2018. Fondamenti di Programmazione 3

Transcript:

FASI DI SVILUPPO DEL SOFTWARE Problema Idea (soluzione) Algoritmo (soluzione formale) Programma (traduzione dell algoritmo in una forma comprensibile da un elaboratore elettronico) Test (criteri di verifica) Documentazione ALGORITMI Risolvere un problema significa individuare un procedimento (algoritmo) che, eseguito, fornisce informazioni finali (risultati) dipendenti da informazioni iniziali (dati). Il procedimento risolutivo è costituito da un insieme di passi (istruzioni), ognuno dei quali specifica una operazione elementare. Definizioni Per algoritmo si intende il meccanismo di soluzione di un problema. Stabilisce la sequenza di operazioni da eseguire sui dati assegnati, per produrre risultati. Ogni operazione definisce una azione compiuta sui dati d ingresso per produrre dati in uscita. I dati in ingresso possono essere oggetti di varia natura e cioè numeri, caratteri alfabetici, date, ecc L esperienza quotidiana suggerisce numerosi esempi di algoritmi: le istruzioni per una ricetta culinaria, le istruzioni d uso di particolari apparecchi, le regole di un giuoco di carte e così via.. Affinché un procedimento possa definirsi algoritmo occorre che sia non ambiguo (ogni istruzione deve essere definita in modo rigoroso senza ambiguità), eseguibile, generale (deve essere valido non solo per un particolare problema ma per tutti i problemi della stessa classe) e finito cioè progettato in modo tale che la sua esecuzione richieda un tempo finito. Esecuzione L esecuzione di un algoritmo si traduce in una successione di operazioni che vengono effettuate nel tempo. L esecuzione di un algoritmo evoca un processo sequenziale cioè una serie di eventi che occorrono uno dopo l altro, ognuno con un inizio ed una fine ben identificabile In genere comprende 3 fasi: caricamento dei dati (input) elaborazione visualizzazione dei dati (output). PROGRAMMA Sequenza di operazioni svolte da un elaboratore per risolvere un problema. Il programma corrisponde alla realizzazione software di un algoritmo in un certo linguaggio di programmazione. Programma = Dati + Istruzioni Dati: la descrizione dei dati e effettuata attraverso dichiarazioni e definizioni. Istruzioni: le operazioni effettuate in un programma elaborano sostanzialmente dei dati. I dati vengono gestiti attraverso: Costanti sono valori che non possono essere modificati, ma solo utilizzati; ad esempio nel calcolo del perimetro p= (b+h)x2 due è una costante; Le costanti possono essere alfanumeriche o numeriche. Le costanti alfanumeriche, dette anche stringhe, sono costituite da dei caratteri (cifre, lettere dell alfabeto, segni di punteggiatura, caratteri speciali) racchiuse da doppio apice. Esempi: casa 2 (stringa vuota) b (Spazio) 1

Le costanti numeriche: sono dei numeri positivi o negativi che possono essere interi o reali. Esempio:1 2,3-100 Variabili Le Variabili sono dei contenitori in cui è possibile memorizzare dei dati che variano nel tempo. Si posso suddividere in due categorie: 1. Variabili semplici 2. Variabili Strutturate (Vettori,Matrici) La variabile è caratterizzata da: 1. un nome che la identifica in modo univoco (il nome assegnato deve cominciare con una lettera,non può contenere caratteri speciali, può essere al massimo lunga 255 caratteri) 2. un tipo che identifica l insieme di valori che può assumere (short,integer,long,single, double, byte, string,boolean,date) 3. un valore memorizzato al suo interno Ad ogni istante una variabile individua un valore che è l ultimo valore assegnatole e resta inalterato finchè una successiva assegnazione non ne modificherà il valore stesso. Istruzione di Assegnazione: Questo tipo di istruzione permette di assegnare ad una variabile il valore di una espressione generica. Il valore assegnato può essere: Letto da terminale Una costante numerica (ad es. NUM = 1) Il contenuto di un altra variabile: (ad es.num2 = NUM1) Il risultato di un espressione aritmetica o logica tra costanti e/o variabili (ad es. A = B * 2-5). La variabile che compare nella parte sinistra di un assegnazione puo comparire anche nella parte destra es. NUM = NUM+1; questa istruzione permetterà di assegnare alla variabile NUM il valore precedente all assegnazione incrementato di uno. Se prima di questa istruzione la variabile NUM conteneva 2, dopo l esecuzione conterrà 3. TEST (CRITERI DI VERIFICA) I criteri di verifica sono un controllo sui risultati per verificare che questi siano corrispondenti agli obiettivi iniziali. DOCUMENTAZIONE Per descrivere in modo preciso e sintetico un algoritmo occorre far uso di un linguaggio generalizzato che permetta a chiunque di eseguire l algoritmo stesso senza dover ridefinire il problema. Il linguaggio generalizzato potrebbe essere il linguaggio naturale (ad esempio l italiano o l inglese), ma al fine di eliminare le inevitabili ambiguità del linguaggio naturale, occorre definire determinate strutture linguistiche che descrivano in modo preciso gli algoritmi. I più comuni linguaggi di descrizione degli algoritmi sono: diagrammi di flusso (Tipo Grafico Più utilizzato) pseudo-linguaggio ( Tipo testuale) Il linguaggio con cui descrivere gli algoritmi non è un linguaggio di programmazione. IL LINGUAGGIO DEI DIAGRAMMI DI FLUSSO (flow-chart) Quello dei diagrammi di flusso (in inglese detti anche flow chart) è un linguaggio di modellazione grafico per rappresentare il flusso di controllo di algoritmi, procedure, istruzioni operative (in senso lato). Con questo linguaggio si rappresenta graficamente la sequenza delle istruzioni mediante linee di connessione munite di frecce (archi orientati); ad ogni istruzione è associato un particolare simbolo grafico la cui forma è funzione del tipo di istruzione considerata. I diagrammi di flusso interconnettono elementi di un insieme di blocchi ognuno dei quali specifica un azione elementare. I blocchi elementare possono essere così schematizzati: 2

REGOLE DI COMPOSIZIONE ciascun blocco di azione ha una freccia entrante ed una uscente; ciascun blocco di decisione ha una freccia entrante e due uscenti; ciascuna freccia entra in un blocco oppure si inserisce in un altra freccia; ciascun blocco è raggiungibile dal blocco iniziale; il blocco finale è raggiungibile da qualsiasi blocco; uno ed un solo blocco START, uno ed un solo blocco STOP; qualunque sequenza di blocchi di azione e di controllo che parta dal blocco iniziale termina nel blocco finale SCHEMI DI COMPOSIZIONE FONDAMENTALI Fra i possibili modi di connettere blocchi elementari e frecce, ci sono i cosiddetti schemi di composizione fondamentali, chiamati schema di sequenza; schema di selezione; schema di iterazione. Sono strutturati quei grafi di flusso che possono essere ricondotti ai tre schemi di composizione fondamentali. SEQUENZA: evidenzia la composizione di due o più azioni elementari di un processo; graficamente è così rappresentato: SELEZIONE 3

Oltre ai rettangoli che rappresentano le azioni elementari compaiono i rombi che contengono i controlli; il verificarsi o meno di una condizione determina due diversi comportamenti, uno per il caso vero (True) e l altro per il falso (False). La condizione è una combinazione di costanti, variabili ed espressioni con gli operatori di confronto: < (minore) > (maggiore) =(uguale) <= (minore uguale) >=(maggiore uguale) <> (diverso). ITERAZIONE Se il risultato del controllo lo impone, l azione deve essere ripetuta; esistono due modelli e cioè uno detto WHILE in cui l azione (o le azioni) da ripetere può non essere mai eseguita, l altro detto REPEAT in cui l azione (o le azioni) da iterare è comunque eseguita almeno una volta. Il modello WHILE è quindi una iterazione per Vero (true) della condizione Cond, mentre il REPEAT è una iterazione per Falso (false) della condizione. TEOREMA DI BÖHM E JACOPINI (1966) Tutti i programmi possono essere realizzati con solo l uso degli schemi di composizione elementari (Sequenza, Selezione, Iterazione). Operatori Aritmetici (utilizzabili non blocchi di azione per le espressioni) Operatori Relazionali (utilizzabili nei blocchi di controllo) Operatori di Assegnazione = Operatori Booleani NOT Nega la condizione AND Restituisce vero se tutte le condizioni sono vere OR Restituisce vero se almeno un condizione è vera 4

ESEMPIO DI DIAGRAMMA DI FLUSSO Rappresentare con un diagramma di flusso l algoritmo che ricerca il massimo tra quattro numeri inseriti in input dall utente. Si utilizzano le seguenti variabili: MAX per meorizzare il numero massimo N1,N2,N3,N4 per memorizzare i 4 numeri inseriti in input 5