Fasi di creazione di un programma



Documenti analoghi
Fasi di creazione di un programma

Descrizione di un algoritmo

Sviluppo di programmi

Lezione 8. La macchina universale

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

RAPPRESENTAZIONE GRAFICA DEGLI ALGORITMI

Sviluppo di programmi

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

Linguaggi e Paradigmi di Programmazione

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

Cenni su algoritmi, diagrammi di flusso, strutture di controllo

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

Algoritmi. Maurizio Palesi. Maurizio Palesi 1

Introduzione. Informatica B. Daniele Loiacono

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

Metodologie di programmazione in Fortran 90

Laurea Specialistica in Informatica

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

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

Cos è un Calcolatore?

4 3 4 = 4 x x x 10 0 aaa

Introduzione al MATLAB c Parte 2

Complemento al corso di Fondamenti di Informatica I corsi di laurea in ingegneria, settore dell informazione Università la Sapienza Consorzio Nettuno

Introduzione agli algoritmi e alla programmazione in VisualBasic.Net

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

Corso di Informatica

Introduzione al corso

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

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

Fondamenti di Informatica PROBLEMI E ALGORITMI. Fondamenti di Informatica - D. Talia - UNICAL 1

Come ragiona il computer. Problemi e algoritmi

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.

Architettura hardware

Tecniche di Simulazione: Introduzione. N. Del Buono:

Fondamenti di Informatica Ingegneria Clinica Lezione 16/10/2009. Prof. Raffaele Nicolussi

Gestione della memoria centrale

Introduzione. Classificazione di Flynn... 2 Macchine a pipeline... 3 Macchine vettoriali e Array Processor... 4 Macchine MIMD... 6

Introduzione alla Programmazione Orientata agli Oggetti. Classi, Oggetti e Messaggi

I sistemi di numerazione

Introduzione alla Programmazione

Organizzazione degli archivi

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

Origini e caratteristiche dei calcolatori elettronici

Algoritmi e diagrammi di flusso

Informatica 3. Informatica 3. LEZIONE 10: Introduzione agli algoritmi e alle strutture dati. Lezione 10 - Modulo 1. Importanza delle strutture dati

Introduzione allo Scilab Parte 3: funzioni; vettori.

Alla ricerca dell algoritmo. Scoprire e formalizzare algoritmi.

PROVA INTRACORSO TRACCIA A Pagina 1 di 6

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

Le variabili. Olga Scotti

Nozione di algoritmo. Gabriella Trucco

SOFTWARE. È l insieme delle istruzioni che è necessario fornire alla macchina per il suo funzionamento. Vi sono due categorie di software:

Indice generale. OOA Analisi Orientata agli Oggetti. Introduzione. Analisi

Object Oriented Programming

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

Macchine a stati finiti G. MARSELLA UNIVERSITÀ DEL SALENTO

I componenti di un Sistema di elaborazione. Memoria centrale. È costituita da una serie di CHIP disposti su una scheda elettronica

Software di sistema e software applicativo. I programmi che fanno funzionare il computer e quelli che gli permettono di svolgere attività specifiche

Siamo così arrivati all aritmetica modulare, ma anche a individuare alcuni aspetti di come funziona l aritmetica del calcolatore come vedremo.

Funzionalità di un Algoritmo

Scheduling della CPU. Sistemi multiprocessori e real time Metodi di valutazione Esempi: Solaris 2 Windows 2000 Linux

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

LE FUNZIONI A DUE VARIABILI

Riccardo Dutto, Paolo Garza Politecnico di Torino. Riccardo Dutto, Paolo Garza Politecnico di Torino

Aritmetica dei Calcolatori 2

Analizzatore lessicale o scanner

Laboratorio di Informatica

Capitolo 13: L offerta dell impresa e il surplus del produttore

età sesso luogo-abitazione scuola superiore esperienza insegnamento

Raggruppamenti Conti Movimenti

Dimensione di uno Spazio vettoriale

Traccia di soluzione dell esercizio del 25/1/2005

Archivi e database. Prof. Michele Batocchi A.S. 2013/2014

Requisiti normativi, standard, template

Rappresentazione delle informazioni

Informazione analogica e digitale

Esempi di algoritmi. Lezione III

Raccolta dei Requisiti con i Casi D'uso. Corso di Ingegneria del Software Anno Accademico 2012/13

Fasi del ciclo di vita del software (riassunto) Progetto: generalità. Progetto e realizzazione (riassunto)

Linguaggi di programmazione

I TUTORI. I tutori vanno creati la prima volta seguendo esclusivamente le procedure sotto descritte.

Soluzione dell esercizio del 2 Febbraio 2004

Gli algoritmi: definizioni e proprietà

Sistemi Web! per il turismo! - lezione 3 -

Esercizio 1: trading on-line

Automazione Industriale (scheduling+mms) scheduling+mms.

Prova di Laboratorio di Programmazione

CALCOLATORI ELETTRONICI A cura di Luca Orrù. Lezione n.6. Unità di controllo microprogrammata

Esercizio: numero primo

Architettura di un calcolatore

(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

Siti web centrati sui dati Architettura MVC-2: i JavaBeans

Gestione del workflow

APPUNTI DI MATEMATICA LE FRAZIONI ALGEBRICHE ALESSANDRO BOCCONI

Problemi, Algoritmi e Programmi

Sistemi di Numerazione

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

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

Introduzione alla programmazione in C

Transcript:

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 conviene: 1. condurre un analisi del problema da risolvere 2. elaborare un algoritmo della soluzione rappresentato in un linguaggio adatto alla comprensione degli esseri umani ma abbastanza vicino ai linguaggi di programmazione 3. produrre un programma scritto nel linguaggio di programmazione scelto 42

Sviluppo di programmi FASE 1: Dare un nome al problema partendo dall analisi del problema FASE 2: Scrivere la specifica funzionale FASE 3: Scrittura dell algoritmo FASE 3.1: Introduzione dei contenitori di dati (variabili) necessarie e delle relative operazioni elementari FASE 3.2: Specifica di un diagramma di flusso ( o di uno pseudo codice) che descrive in modo preciso e non ambiguo la sequenza di operazioni da eseguire FASE 4: Traduzione del diagramma di flusso ( o dello pseudo codice) in un programma in un linguaggio di programmazione 43

Sviluppo di programmi FASE 1: Dare un nome al problema partendo dall analisi del problema FASE 2: Scrivere la specifica funzionale FASE 3: Scrittura dell algoritmo FASE 3.1: Introduzione dei contenitori di dati (variabili) necessarie e delle relative operazioni elementari FASE 3.2: Specifica di un diagramma di flusso ( o di uno pseudo codice) che descrive in modo preciso e non ambiguo la sequenza di operazioni da eseguire FASE 4: Traduzione del diagramma di flusso ( o dello pseudo codice) in un programma in un linguaggio di programmazione 44

FASE 1: problema e sua analisi L analisi di un problema è la primissima cosa da fare quando si è di fronte alla richiesta di risolverlo Bisogna capire bene il problema prima di pensare di risolverlo! L analisi del problema deve fornire come prodotto: un nome ed una breve descrizione di cosa si vuol fare un elenco di requisiti, ovvero, di richieste, vincoli che il programma deve soddisfare 45

Esempio di Analisi del problema: ax 2 +bx+c Problema: CALCOLO RADICI Descrizione: calcolare le soluzioni reali di una equazione di secondo grado Requisiti: l equazione può avere nessuna soluzione reale, due soluzioni coincidenti, o due soluzioni distinte. Si devono, in questi casi, evidenziare il messaggio nessuna radice radici coincidenti r (dove r è il valore delle radici) radici distinte r1 ed r2 (dove r1 ed r2 sono il valore delle radici) 46

Sviluppo di programmi FASE 1: Dare un nome al problema partendo dall analisi del problema FASE 2: Scrivere la specifica funzionale FASE 3: Scrittura dell algoritmo FASE 3.1: Introduzione dei contenitori di dati (variabili) necessarie e delle relative operazioni elementari FASE 3.2: Specifica di un diagramma di flusso ( o di uno pseudo codice) che descrive in modo preciso e non ambiguo la sequenza di operazioni da eseguire FASE 4: Traduzione del diagramma di flusso ( o dello pseudo codice) in un programma in un linguaggio di programmazione 47

FASE 2: specifica funzionale Una specifica funzionale descrive: quali sono i dati iniziale, ovvero i dati di input (ingresso) da elaborare qual è il risultato atteso in funzione dei dati in ingresso (output, uscita dell algoritmo) 48

Esempio di specifica funzionale CALCOLO RADICI: specifica funzionale INPUT: i numeri reali a,b,c che sono i coefficienti dell equazione da risolvere OUTPUT: i messaggi nessuna radice reale x1=x2=r se l equazione ha due radici reali coincidenti pari ad r x1=r1, x2=r2 se l equazione ha due radici reali distinte pari ad r1 ed r2 49

Sviluppo di programmi FASE 1: Dare un nome al problema partendo dall analisi del problema FASE 2: Scrivere la specifica funzionale FASE 3: Scrittura dell algoritmo FASE 3.1: Introduzione dei contenitori di dati (variabili) necessarie e delle relative operazioni elementari FASE 3.2: Specifica di un diagramma di flusso ( o di uno pseudo codice) che descrive in modo preciso e non ambiguo la sequenza di operazioni da eseguire FASE 4: Traduzione del diagramma di flusso ( o dello pseudo codice) in un programma in un linguaggio di programmazione 50

FASE 3: scrittura dell algoritmo Descrizione dell algoritmo, ovvero, dei passi da eseguire per giungere al risultato di uscita partendo dai dati in input La prima stesura non necessariamente deve essere completa di ogni dettaglio. in genere, si procede per raffinamenti successivi 51

Esempio di stesura preliminare di algoritmi CALCOLO RADICI: stesura preliminare dell algoritmo risolvo il problema calcolando il discriminante (delta) dell equazione analizzo i vari casi di delta < 0 = 0 > 0 costruisco per ognuno di questi casi il messaggio da produrre in output Successivamente si definiscono le variabili (contenitori di dati) coinvolte e dettaglio la specifica dell algoritmo usando un diagramma di flusso o lo pseudo codice. 52

Sviluppo di programmi FASE 1: Dare un nome al problema partendo dall analisi del problema FASE 2: Scrivere la specifica funzionale FASE 3: Scrittura dell algoritmo FASE 3.1: Introduzione delle variabili (contenitori di dati) necessarie e delle relative operazioni elementari FASE 3.2: Specifica di un diagramma di flusso ( o di uno pseudo codice) che descrive in modo preciso e non ambiguo la sequenza di operazioni da eseguire FASE 4: Traduzione del diagramma di flusso ( o dello pseudo codice) in un programma in un linguaggio di programmazione 53

FASE 3.1: definizione delle variabili Ogni algoritmo deve tenere traccia (memorizzare) i valori dei dati in input, dei risultati in output, e dei valori intermedi calcolati durante l esecuzione dei passi A questo fine si usano delle variabili (contenitori di dati). Ogni variabile ha un nome associato al dato (valore) memorizzato. Una variabile è una astrazione (semplificazione) della nozione di area di memoria (una o più celle della RAM, un registro generale) contenente i bit rappresentanti i dati I dati contenuti in una variabile hanno un tipo (si dice che una variabile è di un certo tipo) che caratterizza un insieme di elementi e le operazioni che sono possibili su di essi 54

FASE 3.1: definizione delle variabili Ogni variabile memorizza il valore di un dato Ogni dato appartiene ad un tipo di dato Un tipo di dato è: un insieme di elementi, rappresentabili in modo finito, dotato di operazioni primitive su di esso ESEMPIO: il tipo di dato intero è l insieme dei numeri interi, sequenze di cifre, con segno dotato di operazioni primitive ed effettivamente eseguibili come somma (+), differenza (-), prodotto (*), divisione intera (/), resto. 55

FASE 3.1: definizione delle variabili Le variabili da usare per memorizzare i valori dei dati intermedi dipendono dall algoritmo All inizio della stesura di un algoritmo difficilmente si è già a conoscenza di quante e quali variabili si dovranno usare Ad ogni raffinamento dell algoritmo si possono aggiungere o togliere variabili fino ad arrivare all uso corretto di ognuna 56

Esempio di definizione di variabili CALCOLO RADICI: variabili usate ci vogliono tante variabili quanti sono i dati in input. In questo caso ci vogliono tre variabili che chiamiamo a,b,c per i coefficienti dell equazione ci vogliono tante variabili quanti sono i dati in uscita. In questo caso, servono due variabili r1,r2 per il valore delle radici dell equazione ci vogliono alcune variabili per tenere conto di dati intermedi da calcolare e modificare per ottenere la soluzione. In questo caso, potremmo usare una variabile per memorizzare il valore del discriminante. La variabile la chiamiamo delta Il tipo di tutte queste variabili è float (numeri reali). 57