La programmazione. Sviluppo del software



Documenti analoghi
Appunti di Sistemi Elettronici

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

Descrizione di un algoritmo

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

Cenni su algoritmi, diagrammi di flusso, strutture di controllo

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

Gli algoritmi: definizioni e proprietà

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

Sistemi Web! per il turismo! - lezione 3 -

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

Algoritmi. Maurizio Palesi. Maurizio Palesi 1

Funzionalità di un Algoritmo

Nozione di algoritmo. Gabriella Trucco

Informatica per le discipline umanistiche 2 lezione 14

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

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

Introduzione. Informatica B. Daniele Loiacono

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

( x) ( x) 0. Equazioni irrazionali

Lezione 8. La macchina universale

Rappresentazione dei numeri in un calcolatore

DAL DIAGRAMMA AL CODICE

SISTEMI DI NUMERAZIONE E CODICI

Algebra Booleana ed Espressioni Booleane

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

Esempi di algoritmi. Lezione III

Calcolatori: Algebra Booleana e Reti Logiche

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

APPUNTI SUL LINGUAGGIO DI PROGRAMMAZIONE PASCAL

Richiesta pagina PHP (es: index.php)

Il simbolo. è è = = = In simboli: Sia un numero naturale diverso da zero, il radicale. Il radicale. esiste. esiste 0 Il radicale

Linguaggi di programmazione

Sono casi particolari di MCF : SPT (cammini minimi) non vi sono vincoli di capacità superiore (solo x ij > 0) (i, j) A : c ij, costo di percorrenza

12 - Introduzione alla Programmazione Orientata agli Oggetti (Object Oriented Programming OOP)

APPUNTI DI MATEMATICA LE FRAZIONI ALGEBRICHE ALESSANDRO BOCCONI

RAPPRESENTAZIONE GRAFICA DEGLI ALGORITMI

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

Iniziamo con un esercizio sul massimo comun divisore: Esercizio 1. Sia d = G.C.D.(a, b), allora:

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

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

Informatica. Rappresentazione dei numeri Numerazione binaria

LE FUNZIONI A DUE VARIABILI

Progetto Lauree Scientifiche Liceo Classico L.Ariosto, Ferrara Dipartimento di Matematica Università di Ferrara 24 Gennaio 2012

MATEMATICA. { 2 x =12 y 3 y +8 x =0, si pone il problema di trovare, se esistono, un numero x ed un numero y che risolvano entrambe le equazioni.

Ciclo di vita del software: Tipologie di software

Algoritmi, dati e programmi

Introduzione al MATLAB c Parte 2

I sistemi di numerazione

Software. Algoritmo. Algoritmo INFORMATICA PER LE DISCIPLINE UMANISTICHE 2 (13042)

Corso di Informatica

FONDAMENTI di INFORMATICA Prof. Lorenzo Mezzalira

Ciclo di Istruzione. Ciclo di Istruzione. Controllo. Ciclo di Istruzione (diagramma di flusso) Lezione 5 e 6

COMANDI PER CICLI. Ciclo: un insieme di operazioni (movimentazioni, ecc.) che evolvono secondo una sequenza prestabilita.

Più processori uguale più velocità?

Metodologie di programmazione in Fortran 90

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

Concetti di base di ingegneria del software

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

RAPPRESENTAZIONE DEI NUMERI BINARI. Corso di Fondamenti di Informatica AA

GUIDA BASE DI PASCAL

Linguaggi di programmazione

FONDAMENTI di INFORMATICA L. Mezzalira

PROVA INTRACORSO TRACCIA A Pagina 1 di 6

10 - Programmare con gli Array

RAPPRESENTAZIONE BINARIA DEI NUMERI. Andrea Bobbio Anno Accademico

Informatica Generale (Prof. Luca A. Ludovico) Presentazione 5.1 Operazioni aritmetiche nel sistema binario

Appunti del corso di Informatica 1 (IN110 Fondamenti) 4 Linguaggi di programmazione

Non è un problema! Esperienze in atto per guardare senza timore il problema

Algoritmi e diagrammi di flusso

CONCETTO DI LIMITE DI UNA FUNZIONE REALE

INFORMATICA 1 L. Mezzalira

Corso di Laurea Ingegneria Informatica Fondamenti di Informatica

INFORMATICA GENERALE Prof. Alberto Postiglione Dipartimento Scienze della Comunicazione Università degli Studi di Salerno

Algebra Di Boole. Definiamo ora che esiste un segnale avente valore opposto di quello assunto dalla variabile X.

Dispensa di Informatica I.1

Computational Game Theory

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

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

Architettura hardware

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

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

Fasi di creazione di un programma

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

Fondamenti di Informatica Laurea in Ingegneria Civile e Ingegneria per l Ambiente e il Territorio

3 CENNI DI TEORIA DELLA COMPLESSITA COMPUTAZIONALE. E. Amaldi Fondamenti di R.O. Politecnico di Milano 1

Codifica binaria e algebra di Boole

Il Processore: i registri

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

Linguaggi per COMUNICARE. Il linguaggio è un sistema codificato di segni che consente la comunicazione, intesa come scambio di informazioni

Origini e caratteristiche dei calcolatori 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:

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

10. Insiemi non misurabili secondo Lebesgue.

INTRODUZIONE I CICLI DI BORSA

Elementi di Informatica

MANUALE MOODLE STUDENTI. Accesso al Materiale Didattico

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

LINGUAGGI DI PROGRAMMAZIONE

4 3 4 = 4 x x x 10 0 aaa

Cenni di logica & algebra booleana

Transcript:

La programmazione problema Sviluppo del software idea (soluzione informale) algoritmo (soluzione formale) programma (traduzione dell algoritmo in una forma comprensibile da un elaboratore elettronico) test (su molti casi, con particolare attenzione ai casi limite) documentazione (manuale utente + manuale del programmatore) A.Lioy - Politecnico di Torino (1992-2011) 1

Algoritmo Un algoritmo può essere considerato un insieme di regole per svolgere un dato compito (risolvere un problema). Il nome deriva dal matematico persiano Muhammad ibn Mūsa 'l-khwārizmī (780-850). Un algoritmo deve: terminare in un tempo finito produrre un effetto osservabile essere deterministico, ossia produrre gli stessi risultati a partire dalle stesse condizioni iniziali Esecuzione di un algoritmo engono eseguite in sequenza le operazioni che lo costituiscono. Esistono algoritmi che prevedono: una sequenza di esecuzione unica sequenze di esecuzione multiple A.Lioy - Politecnico di Torino (1992-2011) 2

Esempio: sequenza di esecuzione unica Dato il valore di X, calcolare: Y = 5 X + 3 Sequenza di esecuzione: 1. ricevo il valore di X 2. moltiplico X per 5 (sia Z il risultato) 3. sommo 3 a Z (sia Y il risultato) t 4. visualizzo Y Esempio: sequenze di esecuzione multiple Dato il valore di X, calcolare la radice quadrata di X+5. Sequenza di esecuzione: 1. ricevo il valore di X 2. sommo 5 a X (sia Y il risultato) 3a. se Y è positivo o nullo, calcolo la sua radice quadrata e la visualizzo 3b. se Y è negativo, indico che è impossibile calcolare la sua radice quadrata A.Lioy - Politecnico di Torino (1992-2011) 3

ormalizzazione di una soluzione pseudo-linguaggio (o pseudo-codice) vantaggi: immediato svantaggi: descrizione dell algoritmo poco astratta, interpretazione più complicata diagrammi di flusso vantaggi: più intuitivi perché usano un formalismo grafico, descrizione ione dell algoritmo più astratta svantaggi: richiedono l apprendimento della funzione dei vari tipi di blocco Diagrammi di flusso (flow-chart) metodo grafico per descrivere in modo formale un algoritmo blocchi base per descrivere: azioni decisioni (solo binarie, ossia della logica Booleana) archi orientati per descrivere la sequenza di svolgimento delle azioni A.Lioy - Politecnico di Torino (1992-2011) 4

Blocchi di inizio e fine START STOP Blocco di azione azione A.Lioy - Politecnico di Torino (1992-2011) 5

Blocco di Input/Output azione di I/O Blocco di inizializzazione azione di inizializzazione A.Lioy - Politecnico di Torino (1992-2011) 6

Blocco di decisione binaria condizione Booleana Connettore A.Lioy - Politecnico di Torino (1992-2011) 7

Regole uno ed un solo blocco START uno ed un solo blocco STOP tutti gli archi devono avere origine e fine in un blocco Diagrammi di flusso strutturati Un diagramma di flusso è detto strutturato se contiene solo un insieme predefinito di strutture: sequenze decisioni I-THEN-ELSE I-THEN cicli WHILE REPEAT A.Lioy - Politecnico di Torino (1992-2011) 8

Teorema di Böhm - Jacopini Qualunque diagramma di flusso è sempre trasformabile in un diagramma di flusso strutturato equivalente a quello dato. Sequenza azione-1 azione-2 A.Lioy - Politecnico di Torino (1992-2011) 9

If-Then-Else condizione struttura-1 struttura-2 If-Then condizione struttura-1 A.Lioy - Politecnico di Torino (1992-2011) 10

If-Else non esiste un blocco If-Else perché non è necessario! basta usare un blocco If-Then in cui la condizione sia stata invertita (negata) If-Else (esempio) ho abbastanza soldi? NON ho abbastanza soldi? prelevo al Bancomat prelevo al Bancomat A.Lioy - Politecnico di Torino (1992-2011) 11

While-Do condizione struttura While-Do la parte ciclica viene eseguita quando la condizione è vera se abbiamo un ciclo che viene eseguito quando la condizione è falsa, allora occorre trasformarlo in un While-Do mettendo la condizione negata un ciclo il While-Do può essere eseguito zero o più volte viene eseguito zero volte quando la condizione è subito falsa A.Lioy - Politecnico di Torino (1992-2011) 12

Repeat-Until struttura condizione Repeat-Until un ciclo Repeat-Until viene sempre eseguito almeno una volta A.Lioy - Politecnico di Torino (1992-2011) 13

erifica di strutturazione P1. etichettare ogni blocco P2. sostituire ad ogni insieme strutturato un blocco avente come etichetta l unione delle etichette dei blocchi che lo costituiscono P3. se al passo P2 si è fatta almeno una sostituzione, ripetere il passo P2 P4. se alla fine si ottiene un diagramma lineare (una sequenza), allora il diagramma originale è strutturato Esempio: diagramma strutturato START 1 2 5 3 STOP 4 A.Lioy - Politecnico di Torino (1992-2011) 14

Esempio: diagramma strutturato START 1 2 5 3,4 STOP Esempio: diagramma strutturato START 1 2, 3, 4 5 STOP A.Lioy - Politecnico di Torino (1992-2011) 15

Esempio: diagramma strutturato START 1, 2, 3, 4, 5 STOP Esempio: diagramma non strutturato START 1 2 Il ciclo non ha un test all inizio o alla fine 3 5 4 STOP A.Lioy - Politecnico di Torino (1992-2011) 16