Lezione 7: La Formalizzazione degli Algoritmi - Strutture di Controllo e Selettive La Programmazione Strutturata (3 p) Giovedì 21 Ottobre 2010
|
|
- Floriana Rosati
- 7 anni fa
- Visualizzazioni
Transcript
1 Università di Salerno Corso di FONDAMENTI DI INFORMATICA Corso di Laurea Ingegneria Corso B Docente : Ing. Anno Accademico Lezione 7: La Formalizzazione degli Algoritmi - Strutture di Controllo e Selettive La Programmazione Strutturata (3 p) Giovedì 21 Ottobre 2010
2 Ovviamente il blocco operazioni può contenere a sua volta delle strutture selettive Si usano quando ci sono più di due alternative da controllare Si parla in questo caso di selezioni annidate 2
3 Programmazione Strutturata Definizioni: Flowchart o Algoritmo o Schema a Blocchi : qualsiasi combinazione di blocchi operativi e decisionali; ogni arco uscente da un blocco va in ingresso ad un solo blocco. Flusso di controllo: ordine di percorrenza dei blocchi individuato da un flowchart. Struttura di controllo: flowchart parziale da assumere come modello di computazione, con un ingresso e un'uscita. Sequenza di computazione: successione di blocchi operativi e decisionali prodotta dall'esecuzione di un flowchart per un certo insieme di dati in ingresso 3
4 Programmazione Strutturata Definizioni La programmazione strutturata è una tecnica di programmazione che ha lo scopo di semplificare la struttura di un algoritmo disciplinando l'uso delle strutture di controllo utilizzabili all'interno di uno schema blocchi. In particolare, tale tecnica prevede l'uso di un numero limitato di strutture di controllo fondamentali, con un ingresso ed una uscita, di sequenza, selezione ed iterazione. La programmazione strutturata vincola quindi l'utilizzo delle strutture di controllo, ma offre i seguenti vantaggi: rende possibile una progettazione di tipo Top-Down; permette la definizione di algoritmi in generale più leggibili, essendo più facile individuare i moduli corrispondenti alle varie parti di cui si compone l'algoritmo; test, correzione e manutenzione del programma sono perciò più semplici. 4
5 Semplici: esprimono azioni elementari a= a+ 1; Strutturate: composte da più istruzioni semplici assemblate in determinate strutture Sequenza Selezione Iterazione o Ciclo Le I struzioni Per le strutture utilizzate per la programmazione proveremo a rispondere alle seguenti domande: Esiste un numero finito di schemi di strutture da adoperare per la costruzione di un programma? E sempre possibile realizzare un programma con le sole strutture del punto precedente? 5
6 Il costrutto sequenza, detta anche istruzione composta è una successione di più istruzioni semplici o strutturate. Le istruzioni vengono eseguite in sequenza secondo l ordine in cui sono scritte. Consente di conferire ai linguaggi ad alto livello elevate capacità di nidificazione delle strutture di controllo Costrutto blocco di istruzioni { begin istruzione_1; istruzione1;...;..; istruzione_n; Programmazione Strutturata : Costrutto Sequenza } end istruzionen ISTRUZIONE1 ISTRUZIONEn 6
7 Programmazione Strutturata : Selezione Hanno la funzione di esprimere l esecuzione condizionale di una specifica istruzione (semplice o composta) tra più istruzioni che possono essere eseguite in alternativa. Esecuzione condizionale di una istruzione if-then Esecuzione condizionale tra due istruzioni if-then-else Esecuzione condizionale tra più istruzioni case 7
8 if R then S In cui R è un espressione booleana o, in particolare una relazione ed S una qualsiasi istruzione semplice o strutturata. La semantica di questa istruzione è cosi esprimibile : se l espressione R è vera esegui S altrimenti esegui l istruzione immediatamente successiva nella sequenza di istruzioni all interno della quale è inserita l istruzione if-then in esame. float a; float b; Progr. Strutturata : I struzione Condizionale Semplice float c; leggi b; c=7; a=c-(b*2); if (a>0) then { stampa Il valore di a è positivo ; } stampa Il valore di a è:; stampa a; Vero R S Q Falso 8
9 Progr. Strutturata : I struzione Condizionale Semplice if R then S 1 else S 2 In cui R è un espressione booleana o, in particolare una relazione ed S 1 e S 2 una qualsiasi istruzione semplice o strutturata. La semantica di questa istruzione è cosi esprimibile : se l espressione R è vera esegui S 1 altrimenti esegui l istruzione S 2, in entrambi i casi esegui l istruzione immediatamente successiva nella sequenza di istruzioni all interno della quale è inserita l istruzione ifthen in esame. if ( espressione ) istruzione; else Vero R Falso istruzione; Dove espressione: è una espressione booleana (a==b) vale true se a contiene lo stesso valore di b, S 1 S 2 altrimenti vale false (x>5) vale true se il valore di x è strettamente maggiore di 5, altrimenti vale false Q (x<=0) vale true se il valore di x è negativo, altrimenti vale false Parole riservate del linguaggio (keywords): if, else 9
10 Progr. Strutturata : I struzione Condizionale Esemplificazione (Q) if ( a = = b ) x = 0; else x = 1; (S) Vero Q a == b Falso x = 0 x = 1 x è uguale a 0 S se a è uguale a b altrimenti x è uguale a 1 10
11 istruzione può essere una qualunque istruzione, semplice o composta, può anche essere vuota. (Q) if ( a = = b ) else Progr. Strutturata : I struzione Condizionale x = 0; ; (S) Vero x = 0 Q a == b Falso ; S 11
12 Progr. Strutturata : I struzione Condizionale senza parte else if ( (x+y)*(z-2) > (23+v) ) { z = x + 1; y = 13 + x; } equivale a: if ( (x+y)*(z-2) > (23+v) ) { z = x + 1; y = 13 + x; } else ; 12
13 Progr. Strutturata : I struzione Condizionale Operatori Logici Nelle operazioni di tipo condizionale è tipico l utilizzo di OPERATORI LOGI CI :! Negazione && AND OR Il risultato restituito da questi operatori è di tipo logico (vero, falso) rappresentabile con 0 e 1! Negazione : Operatore Unario effettua l operazione di negazione logica && AND : opera su operandi multipli la condizione è vera (1) se è verificate congiuntamente, altrimenti il risultato è falso (0) OR : opera su operandi multipli la condizione è vera se è vera per almeno uno degli operandi è falsa se è falsa per tutti gli operandi 13
14 Progr. Strutturata : I struzione Condizionale Esempi : L istruzione può essere una qualsiasi istruzione semplice o composta if (x = = 0) z = 5; else y = w * y; if (x = = 0) { z = 5; } else { y = w * y; }; if ((x = = y) && (z>3)) z = 5; else { y = z + w * y; x = z; } 14
15 Progr. Strutturata : I struzione Condizionale annidate if ( a<b && a<c ) minimo = a; SI else minimo = a if ( b<c ) minimo = b; else minimo = c; a < b && a <c SI NO b < c NO minimo = b minimo = c 15
16 Progr. Strutturata : I struzione Selezione Multipla L istruzione di selezione multipla, detta anche case, esprime una selezione fra n > 2 istruzioni nell ipotesi che la condizione di selezione sia codificata mediante un espressione ad n valori si ha : case e v 1 : S 1 ; Q v 2 : S 2 ;... v n : S n ; v1 v2 vn e otherwise Sm end S1 S2 Sn e: espressione di selezione v 1,v 2... v n : valori di e con funzioni di etichette particolari che Sm contrassegnano le istruzioni S 1,S 2,...,S n : espressioni semplici o strutturate La clausola otherwise definisce l istruzione da eseguire nel caso in cui l espressione di selezione assuma valori non appartenenti all insieme {v 1,v 2... v n } 16
17 Esempio: Calcolo delle Radici di un Equazione di Secondo Grado (1) Si vuole realizzare un programma che risolva un equazione di 2 grado nella forma: ax 2 +bx+c = 0 Con a,b, e c coefficienti reali. Il programma deve fornire sia il numero delle radici reali dell equazione, sia i loro valori. 17
18 Esempio: Calcolo delle Radici di un Equazione di Secondo Grado (2) Algoritmo: Inserimento da tastiera dei coefficienti a,b,c Calcolo del determinante delta = b*b-4*a*c Controllo del segno del determinante (positivo, negativo o nullo) Il determinante è negativo? Vero: Nessuna soluzione reale Falso: Il determinante è nullo?» Vero: Una soluzione reale: x = -b/2*a» Falso(Determinante positivo): Due soluzioni reali x 1 =(-b- delta)/2*a x 2 =(-b+ delta)/2*a 18
19 Esempio: Calcolo delle Radici di un Equazione di Secondo Grado (3) Inizio Leggi a, b e c delta b*b-4*a*c Determinante negativo Si Delta<0 No Determinante nullo Determinante positivo Stampa Nessuna soluzione reale x -b/2*a Si Delta=0 x 1 No (-b- delta)/2*a Fine Stampa x Stampa Una soluzione reale Stampa x 1 e x 2 x 2 (-b+ delta)/2*a Stampa Due soluzioni reali 19
20 Esempio: Calcolo delle Radici di un Equazione di Secondo Grado (4) a 5 Inizio SCHERMO b 4 Leggi a, b e c Nessuna soluzione reale c 1 delta b*b-4*a*c delta - 4 Si Delta<0 No x x1 Stampa Nessuna soluzione reale x -b/2*a Si Delta=0 x 1 No (-b- delta)/2*a x2 Fine Stampa x Stampa Una soluzione reale Stampa x 1 e x 2 x 2 (-b+ delta)/2*a Stampa Due soluzioni reali 20
21 Esempio: Calcolo delle Radici di un Equazione di Secondo Grado (5) a 4 Inizio SCHERMO b 4 Leggi a, b e c Una soluzione reale c 1 delta b*b-4*a*c x = -1/2 delta 0 Si Delta<0 No x x 1-1/2 Stampa Nessuna soluzione reale x -b/2*a Si Delta=0 x 1 No (-b- delta)/2*a x 2 Fine Stampa x Stampa Una soluzione reale Stampa x 1 e x 2 x 2 (-b+ delta)/2*a Stampa Due soluzioni reali 21
22 Esempio: Calcolo delle Radici di un Equazione di Secondo Grado (5) a 1 Inizio SCHERMO b c -1-2 Leggi a, b e c delta b*b-4*a*c Due soluzioni reali x 1 = -1 x 2 = 2 delta 9 Si Delta<0 No x x 1 x Stampa Nessuna soluzione reale Fine Stampa x x -b/2*a Stampa Una soluzione reale Stampa x 1 e x 2 Si Delta=0 x 1 x 2 No (-b- delta)/2*a (-b+ delta)/2*a Stampa Due soluzioni reali 22
23 Programmazione Strutturata : Costrutto I terazione (cicli) I costrutti di iterazione consentono di realizzare dei cicli di elaborazione, cioè l esecuzione ripetuta di una specifica istruzione (semplice o composta). Il costrutto è caratterizzato da: istruzione da eseguire che, per ciascuna percorrenza opera su variabili distinte sulle medesime variabili che assumono, in generale, valori diversi in funzione della percorrenza Il ciclo è caratterizzato da una relazione R di continuazione per ciascuna percorrenza del ciclo viene valutata allo scopo di decidere se questo deve avere termine o se deve essere eseguito ancora una volta 23
24 Programmazione Strutturata : Costrutto I terazione (cicli) Classificazioni cicli: a condizione iniziale (while o while-do) a condizione finale (repeat-until o do-while) a conteggio (for) Nei cicli a conteggio si conosce a priori il numero delle ripetizioni, mentre in quelli a condizione il numero complessivo di ripetizioni non è noto. Esempio di ciclo a condizione : //leggere un carattere c dalla tastiera fino a quando non si preme il tasto a do { leggi c; } while (!(c==65)) Esempio di ciclo a conteggio : // legge 5 caratteri dalla tastiera for (i=0; i<5; i++) leggi a; 24
25 Programmazione Strutturata : Costrutto I terazione (cicli) while R do S Ciclo a condizione iniziale Causa l esecuzione di S zero o più volte. S viene eseguita quando R ritorna un valore vero e termina quanto R ritorna un valore falso. Si tratta del costrutto iterativo più generale in quanto il numero di iterazioni può essere qualsiasi I valori necessari per la valutazione di R devono essere definiti prima dell inizio e, in generale, ridefiniti da S. Vero R S Falso Q 25
26 Programmazione Strutturata : Costrutto I terazione (cicli) Esempio int a=0; //se a=10??? int b=5; int c=10; int contatore = 0; while ((a+b)<c) { stampa a+b minore di c; stampa Numero di cicli fatti; stampa contatore; contatore=contatore+1; a=a+1; //cosa accade se omettiamo questa istruzione? } stampa Uscita dal ciclo; 26
27 Programmazione Strutturata : Costrutto I terazione (cicli) Ciclo a condizione finale Il ciclo a condizione finale ( istruzione repeat o do-while) ha la forma repeat S until R causa l esecuzione di S una o più volte. S viene eseguita fin quando R è Falsa e il ciclo termina quando R è vera R viene valutata dopo la prima esecuzione di S e quindi i valori necessari per la sua valutazione sono calcolati internamente al ciclo S Falso R Q Vero 27
28 Programmazione Strutturata : Costrutto I terazione (cicli) Esempio int a=0; //se a=10, cosa accade? int b=5; int c=10; int contatore = 0; do { stampa a+b minore di c; //è sempre vero? stampa Numero di cicli fatti: stampa contatore; contatore=contatore+1; a=a+1; //cosa accade se omettiamo questa istruzione? } while (((a+b)<c)); stampa Uscita dal ciclo; 28
29 Programmazione Strutturata : Costrutto I terazione (cicli) Ciclo a conteggio for vc=vi to vf step k do S vc: variabile di conteggio che assume i seguenti valori della progressione: vi: valore iniziale vf: valore finale k: passo o ragione S: istruzione da eseguire La variabile di conteggio assume dunque i seguenti valori: vi, vi+k, vi+2k,..., vf per vi = vf il ciclo viene percorso una sola volta per vi > vf il ciclo viene percorso zero volte (a meno che k non sia negativo) 29
30 Programmazione Strutturata : Costrutto I terazione (cicli) Utilizzo del Ciclo a conteggio Il costrutto ciclo di conteggio è stato fra i primi ad essere utilizzato anche se è fra i più pericolosi da utilizzarsi; è buona norma attenersi alle regole di seguito esposte al fine di evitare errori di programmazione. da utilizzare quando è noto in anticipo il numero di ripetizioni da NON utilizzare quando si prevedano condizioni di terminazioni ulteriori rispetto a quella specificata nel costrutto v c = v i v c = v f S NO SI v c = Succ( v c ) Q 30
31 Programmazione Strutturata : Costrutto I terazione (cicli) Esempio int a= 0; //se a= 10, cosa accade? int b= 5; int c= 10; int contatore = 0; for (a= 0; (a+ b)< c; a= a+ 1) { stampa a+ b minore di c; stampa Numero di cicli fatti; stampa contatore; contatore= contatore+ 1; } stampa Uscita dal ciclo; 31
32 Teorema di Bòhm-Jacopini Si indichino con P l insieme di tutti gli algoritmi realizzabili, e con D l insieme di tutti gli algoritmi realizzati facendo uso esclusivo delle tre strutture di controllo fondamentali (sequenza, selezione ed iterazione): dato un programma p appartenente a P, esiste sempre un programma d appartenente a D, che risulta debolmente equivalente a p. I n base a quanto espresso in precedenza si può dire : Due programmi si dicono funzionalmente equivalenti se, sottoposti ad un qualsiasi insieme di dati di ingresso entrambi terminano producendo gli stessi dati di uscita oppure entrambi non terminano L insieme costituito dalle strutture sequenza, selezione e iterazione è un insieme completo 32
33 Equivalenza funzionale di program m i Definizione di equivalenza: Equivalenza debole: due flowchart (algoritmi) sono debolmente equivalenti se, per ogni insieme di dati in ingresso, generano gli stessi dati in uscita Equivalenza forte: due flowchart sono fortemente equivalenti se sono debolmente equivalenti e le rispettive sequenze di computazione sono uguali, per ogni insieme di dati in ingresso Equivalenza fortissima: due flowchart sono fortissimamente equivalenti se sono fortemente equivalenti ed inoltre in essi compaiono lo stesso numero di volte gli stessi blocchi elementari 33
34 Equivalenza Strutturali In generale è possibile passare da uno schema a blocchi Non strutturato ad uno strutturato mediante l utilizzo di schematismi fortemente equivalenti Vero p Falso B Vero A p Falso B A Falso q Vero Falso q Vero B 34
35 Equivalenza Strutturali Le due figure stutturate di ciclo (a condizione iniziale ed a condizione finale sono mutuamente ricavabili mediante delle operazioni di equivalenza p Vero A A Falso While - do Vero p Falso Repeat - Until 35
36 Equivalenza Strutturali Repeat-until ricavato tramite un w hile do A A p Falso Falso Vero! p A Repeat - Until Vero While - do 36
37 While Equivalenza Strutturali do ricavato tramite un Repeat -until Falso p Vero Falso p Vero While - do A A p Vero Falso Repeat - Until 37
38 38
le operazioni base per la realizzazione di un algoritmo sono 4: visualizzazione risultati intermedi, scrittura risultati finali
Operazioni fondamentali le operazioni base per la realizzazione di un algoritmo sono 4: 1 trasferimento di informazioni: acquisizione dati, visualizzazione risultati intermedi, scrittura risultati finali
DettagliIstruzioni Condizionali
Corso di Laurea Ingegneria Informatica Fondamenti di Informatica Dispensa 10 Istruzioni Condizionali Carla Limongelli Novembre 2011 http://www.dia.uniroma3.it/~java/fondinf/ Istruzioni condizionali 1 Contenuti
DettagliProf. Pagani Corrado LINGUAGGIO C: SELEZIONE E CICLI
Prof. Pagani Corrado LINGUAGGIO C: SELEZIONE E CICLI IF Ogni linguaggio di programmazione presenta almeno una struttura di controllo decisionale. La sintassi del linguaggio C è la seguente. if ()
DettagliMatlab. Istruzioni condizionali, cicli for e cicli while.
Matlab. Istruzioni condizionali, cicli for e cicli while. Alvise Sommariva Università degli Studi di Padova Dipartimento di Matematica 17 marzo 2016 Alvise Sommariva Introduzione 1/ 18 Introduzione Il
DettagliLezione 5 e 6. Fabio Scotti ( ) Laboratorio di programmazione per la sicurezza. Valentina Ciriani ( ) Laboratorio di programmazione
Lezione 5 e 6 - Concetto di blocco - Controllo del flusso di un programma - Costrutti per la scelta if e switch - Costrutti while e for - Operatori in C Fabio Scotti (2004-2009) Laboratorio di programmazione
DettagliLinguaggio C - le strutture di controllo: sequenza, selezione, iterazione
Dipartimento di Elettronica ed Informazione Politecnico di Milano Informatica e CAD (c.i.) - ICA Prof. Pierluigi Plebani A.A. 2008/2009 Linguaggio C - le strutture di controllo: sequenza, selezione, iterazione
DettagliPseudo codice. Paolo Bison. Fondamenti di Informatica 1 A.A. 2003/04 Università di Padova. Pseudo codice, Paolo Bison, A.A , p.
Pseudo codice Paolo Bison Fondamenti di Informatica 1 A.A. 2003/04 Università di Padova Pseudo codice, Paolo Bison, A.A. 2003-04, 2003-09-30 p.1/38 Pseudo codice linguaggio testuale mix di linguaggio naturale
Dettagliunità didattica 3 Le strutture condizionali e le strutture iterative
unità didattica 3 Le strutture condizionali e le strutture iterative 1. La struttura condizionale Il Pascal prevede la codifica della struttura condizionale (indicata anche con il nome di struttura dell
DettagliPROGRAMMAZIONE STRUTTURATA
PROGRAMMAZIONE STRUTTURATA Programmazione strutturata 2 La programmazione strutturata nasce come proposta per regolamentare e standardizzare le metodologie di programmazione (Dijkstra, 1965) Obiettivo:
DettagliIstruzioni Condizionali
Corso di Laurea Ingegneria Informatica Fondamenti di Informatica 1 Dispensa 6 Istruzioni Condizionali Carla Limongelli Settembre 2006 http://www.dia.uniroma3.it/~java/fondinf1/ Istruzioni condizionali
DettagliPaolo Bison. Fondamenti di Informatica Ingegneria Meccanica Università di Padova A.A. 2008/09
Linguaggi procedurali Paolo Bison Fondamenti di Informatica Ingegneria Meccanica Università di Padova A.A. 2008/09 Linguaggi procedurali, Paolo Bison, FI08, 2008-09-29 p.1 Linguaggi procedurali classe
DettagliFondamenti di Informatica Laurea in Ingegneria Civile e Ingegneria per l ambiente e il territorio
Dipartimento di Ingegneria dell Informazione Università degli Studi di Parma Il problema di fondo Fondamenti di Informatica Laurea in Ingegneria Civile e Ingegneria per l ambiente e il territorio Algoritmi
DettagliSviluppo di programmi
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
DettagliUnità Didattica 2 Linguaggio C. Espressioni, Operatori e Strutture linguistiche per il controllo del flusso
Unità Didattica 2 Linguaggio C Espressioni, Operatori e Strutture linguistiche per il controllo del flusso 1 Espressioni e assegnazioni Le espressioni sono definite dalla grammatica: espressione = variabile
DettagliStrutture di Controllo
Strutture di Controllo Istruzioni condizionali e cicli http://www.dia.uniroma3.it/~roselli/ roselli@dia.uniroma3.it Credits Materiale a cura del Prof. Franco Milicchio Introduzione Fino ad ora, il nostro
DettagliLaboratorio di Programmazione 1. Docente: dr. Damiano Macedonio Lezione 8 14/11/2013
Laboratorio di Programmazione 1 1 Docente: dr. Damiano Macedonio Lezione 8 14/11/2013 Original work Copyright Sara Migliorini, University of Verona Modifications Copyright Damiano Macedonio, University
DettagliIstruzioni di Controllo
Istruzioni di Controllo Programmazione strutturata Ricordiamo i concetti chiave: concatenazione o composizione BLOCCO istruzione condizionale SELEZIONE ramifica il flusso di controllo in base al valore
DettagliLe strutture di controllo
INFORMATICA B Ingegneria Elettrica Le strutture di controllo Selezione un esempio introduttivo Si disegni il diagramma di flusso di un algoritmo che chiede all utente un valore intero e visualizza il suo
DettagliFondamenti di Informatica 6. Algoritmi e pseudocodifica
Vettori e matrici #1 Fondamenti di Informatica 6. Algoritmi e pseudocodifica Corso di Laurea in Ingegneria Civile A.A. 2010-2011 1 Semestre Prof. Giovanni Pascoschi Le variabili definite come coppie
DettagliCorso di PHP. Prerequisiti. 3 - Le strutture di controllo. Istruzioni semplici Controllo del flusso di programma
Corso di PHP 3 - Le strutture di controllo 1 Prerequisiti Istruzioni semplici Controllo del flusso di programma 2 1 Introduzione In molti casi le sole istruzioni viste finora non sono sufficienti a risolvere
DettagliFondamenti di Informatica A. A. 2018/19
Fondamenti di Informatica Prof. Marco Lombardi A. A. 2018/19 AlgoBuild: Strutture Iterative e Selettive OUTLINE Blocco condizionale (Struttura selettiva IF - IF/ELSE) Esempi Cicli a condizione iniziale
DettagliFondamenti di Informatica
Vettori e matrici #1 Le variabili definite come coppie sono dette variabili scalari Fondamenti di Informatica 5. Algoritmi e pseudocodifica Una coppia è una variabile
DettagliInformatica (A-K) 5. Algoritmi e pseudocodifica
Vettori e matrici #1 Informatica (A-K) 5. Algoritmi e pseudocodifica Corso di Laurea in Ingegneria Civile & Ambientale A.A. 2011-2012 2 Semestre Prof. Giovanni Pascoschi Le variabili definite come coppie
DettagliIstruzioni di Ciclo. Unità 4. Domenico Daniele Bloisi. Corso di Programmazione e Metodi Numerici Ingegneria Aerospaziale BAER
Corso di Programmazione e Metodi Numerici Ingegneria Aerospaziale BAER Domenico Daniele Bloisi Docenti Metodi Numerici prof. Vittoria Bruni vittoria.bruni@sbai.uniroma1.it Programmazione prof. Domenico
DettagliRisoluzione di un problema
Algoritmi Risoluzione di un problema Descrizione di un problema! Individuazione di un ALGORITMO! Metodo risolutivo (progetto) Introduzione 2 Algoritmo Sequenza finita di mosse che risolve in un tempo finito
Dettagli<istruzione> ::= <istruzione-semplice> <istruzione> ::= <istruzione-di-controllo> <istruzione-semplice> ::= <espressione> ;
ISTRUZIONI Le istruzioni esprimono azioni che, una volta eseguite, comportano una modifica permanente dello stato interno del programma o del mondo circostante. Le strutture di controllo permettono di
DettagliAnalisi strutturata 1
Gli algoritmi Analisi e programmazione Gli algoritmi Proprietà ed esempi Costanti e variabili, assegnazione, istruzioni, proposizioni e predicati Vettori e matrici I diagrammi a blocchi Analisi strutturata
Dettagli<istruzione> ::= <istruzione-semplice> <istruzione> ::= <istruzione-di-controllo> <istruzione-semplice> ::= <espressione> ;
ISTRUZIONI Le istruzioni esprimono azioni che, una volta eseguite, comportano una modifica permanente dello stato interno del programma o del mondo circostante. Le strutture di controllo permettono di
DettagliLaboratorio di Programmazione Laurea in Ingegneria Civile e Ambientale
Dipartimento di Ingegneria dell Informazione Università degli Studi di Parma Laboratorio di Laurea in Ingegneria Civile e Ambientale Algoritmi e Algebra di Boole Stefano Cagnoni Il problema di fondo Descrizione
DettagliProgrammazione Strutturata
Programmazione Strutturata Problema: Spaghetti Code è un termine dispregiativo per quei programmi per computer che abbiano una struttura di controllo del flusso complessa e/o incomprensibile Ad esempio,
DettagliStrutture di controllo
Strutture di controllo 73 Teorema di Bohm e Jacopini Tutti i programmi possono essere scritti in termini di tre strutture di controllo: La sequenza, permette di eseguire le istruzioni secondo l ordine
DettagliLa struttura selezione
La struttura selezione La struttura sequenziale 2 E una semplice successione di blocchi di istruzione. Esiste un solo ingresso ed una sola uscita istruzione 1 istruzione 2 istruzione 3 La struttura di
Dettaglidel Linguaggio C Istruzioni di iterazione
Istruzioni i Iterative ti del Linguaggio C Istruzioni di iterazione Le istruzioni di iterazione forniscono strutture di controllo che esprimono la necessità di ripetere una certa istruzione durante il
DettagliSviluppo di programmi
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
DettagliISTRUZIONI. Le strutture di controllo permettono di aggregare istruzioni semplici in istruzioni più complesse.
ISTRUZIONI Le istruzioni esprimono azioni che, una volta eseguite, comportano una modifica permanente dello stato interno del programma o del mondo circostante. Le strutture di controllo permettono di
DettagliCostrutti di Programmazione Strutturata. Informatica 1 / 22
Costrutti di Programmazione Strutturata Informatica 1 / 22 Costrutti di Base Ricordi? Un algoritmo è detto strutturato se usa solo Sequenze di istruzioni Selezioni (se predicato allora fai istruzioni altrimenti
DettagliINFORMATICA. Strutture iterative
INFORMATICA Strutture iterative Strutture iterative Si dice ciclo (loop) una sequenza di istruzioni che deve essere ripetuta più volte consecutivamente. Si consideri ad esempio il calcolo del fattoriale
DettagliCostrutti di iterazione
Costrutti di iterazione Stefano Ferrari Università degli Studi di Milano stefano.ferrari@unimi.it Programmazione anno accademico 2017 2018 Iterazione Data un espressione logica e un blocco di attività
DettagliIng. Lorenzo Vismara
Ing. Lorenzo Vismara ! "# #!$#%&# '(!)&!*)&#*$# +!, +$-.(( #!((%&#, #!& %&) /$#01&! 0#( 3452 $ 6#( 1 2 &## #!7 #89): #;##( 1? )#&)< $9): #@82 #)AA)#&#&$( #7)& @B && ##@A&#C 7 $C#&7 @B A&#)@#7&#
DettagliProgrammazione Procedurale in Linguaggio C++
Programmazione Procedurale in Linguaggio C++ Strutture di Controllo Parte 2 Istruzioni Condizionali G. Mecca M. Samela Università della Basilicata Istruzioni Condizionali >> Sommario Sommario Introduzione
DettagliI costrutti forniti dal linguaggio si dividono in corrispondenti classi di istruzioni
Classi di istruzioni In maniera simile a quanto fatto per i dati, un linguaggio mette a disposizione dei costrutti per realizzare la parte esecutiva dell algoritmo. Questa consiste di: Leggi i valori di
DettagliIstruzioni. Istruzioni semplici Istruzioni di controllo. Fondamenti di Informatica e laboratorio Istruzioni e Controllo del flusso
Istruzioni Istruzioni Le istruzioni esprimono azioni che, una volta eseguite, comportano una modifica permanente dello stato interno del programma o del mondo circostante Le strutture di controllo permettono
DettagliLaboratorio di Programmazione Laurea in Ingegneria Civile e Ambientale
Dipartimento di Ingegneria dell Informazione Università degli Studi di Parma Il problema di fondo Laboratorio di Programmazione Laurea in Ingegneria Civile e Ambientale Algoritmi e Programmazione Stefano
DettagliIstruzioni. Una istruzione semplice è qualsiasi espressione seguita da un punto e virgola. Esempio x = 0; y = 1;/* due istruzioni */
Istruzioni Le istruzioni esprimono azioni che, una volta eseguite, comportano una modifica permanente dello stato interno del programma o del mondo circostante Le strutture di controllo permettono di aggregare
DettagliPaolo Bison. Fondamenti di Informatica A.A. 2006/07 Università di Padova
Pseudo codice Paolo Bison Fondamenti di Informatica A.A. 2006/07 Università di Padova Pseudo codice, Paolo Bison, FI06, 2007-01-10 p.1 Pseudo codice linguaggio testuale mix di linguaggio naturale ed elementi
DettagliINFORMATICA. Strutture condizionali
INFORMATICA Strutture condizionali Strutture condizionali Sono le istruzioni che rappresentano il ben noto costrutto IF THEN ELSE della programmazione strutturata. In C, come peraltro in tutti gli altri
DettagliPROGRAMMAZIONE: Le strutture di controllo
PROGRAMMAZIONE: Le strutture di controllo Prof. Enrico Terrone A. S: 2008/09 Le tre modalità La modalità basilare di esecuzione di un programma è la sequenza: le istruzioni vengono eseguite una dopo l
DettagliCorso di Informatica
Corso di Informatica Modulo T1 2-Iterazione 1 Prerequisiti Salto condizionato Salto incondizionato Espressione logica 2 1 Introduzione In alcuni casi si presenta la necessità di eseguire un ciclo, ossia
DettagliProgrammazione strutturata
Programmazione Strutturata Programmazione strutturata La programmazione strutturata nasce come proposta per regolamentare e standardizzare le metodologie di programmazione (Dijkstra, 1965) biettivo: rendere
DettagliCorso di Fondamenti di Informatica Classi di istruzioni 2
Corso di Informatica Classi di istruzioni 2 Anno Accademico 2010/2011 Francesco Tortorella Strutture di controllo Caratteristica essenziale degli algoritmi è la possibilità di decidere le operazioni da
DettagliEsempi comparati while, do...while
Esempi comparati while, do...while Algoritmo. - inizializza Somma a zero - finchè la risposta è "continuazione" - visualizza messaggio - acquisisci un numero I - aggiungi I a Somma - domanda se continuare
DettagliDescrizione di un algoritmo
Descrizione di un algoritmo Si descrive un algoritmo cercando di sintetizzare il più possibile la sua sequenza di passi; Non si utilizza un linguaggio di programmazione specifico, ma è meglio utilizzare
DettagliFondamenti di Informatica
Fondamenti di Informatica AlgoBuild: Strutture iterative e selettive Prof. Christian Esposito Corso di Laurea in Ingegneria Meccanica e Gestionale (Classe I) A.A. 2016/17 AlgoBuild: Strutture iterative
DettagliLA METAFORA DELL UFFICIO
LA METAFORA DELL UFFICIO Lavagna di lavoro Lavagna di programma Sportello utenti Impiegato Capo Ufficio LAVAGNA DI LAVORO Chiamiamo variabili le posizioni sulla lavagna, identificate ognuna da un nome
DettagliRappresentazione degli algoritmi
Rappresentazione degli algoritmi Universitá di Ferrara Ultima Modifica: 21 ottobre 2014 1 1 Diagramma di flusso Utilizzare il diagramma di flusso per rappresentare gli algoritmi che risolvono i seguenti
DettagliSTRUTTURE DI CONTROLLO DEL C++
STRUTTURE DI CONTROLLO DEL C++ Le istruzioni if e else Le istruzioni condizionali ci consentono di far eseguire in modo selettivo una singola riga di codice o una serie di righe di codice (che viene detto
DettagliLinguaggio C Strutture di controllo
FONDAMENTI DI INFORMATICA Prof. PIER LUCA MONTESSORO Ing. DAVIDE PIERATTONI Facoltà di Ingegneria Università degli Studi di Udine Linguaggio C Strutture di controllo 2001 Pier Luca Montessoro - Davide
DettagliFormalismi per la descrizione di algoritmi
Formalismi per la descrizione di algoritmi Per descrivere in passi di un algoritmo bisogna essere precisi e non ambigui Il linguaggio naturale degli esseri umani si presta a interpret non univoche Si usano
DettagliSTRUTTURE DI CONTROLLO IN C. Docente: Giorgio Giacinto AA 2009/2010
Università degli Studi di Cagliari Corso di Laurea Specialistica in Ingegneria per l Ambiente ed il Territorio Corso di Laurea Specialistica in Ingegneria Civile - Strutture FONDAMENTI DI INFORMATICA 2
DettagliIntroduzione alla programmazione Algoritmi e diagrammi di flusso. Sviluppo del software
Introduzione alla programmazione Algoritmi e diagrammi di flusso F. Corno, A. Lioy, M. Rebaudengo Sviluppo del software problema idea (soluzione) algoritmo (soluzione formale) programma (traduzione dell
DettagliISTRUZIONI ISTRUZIONI SEMPLICI
ISTRUZIONI istruzioni azioni modifica permanente dello stato interno strutture di controllo ::= ::= ::=
DettagliFondamenti di Programmazione. Strutture di controllo
Fondamenti di Programmazione Strutture di controllo 1! Controllo del flusso! n Flusso di esecuzione: ordine in cui le istruzioni di un programma sono eseguite! n Salvo contrordini, è in sequenza! n Due
DettagliPseudo codice. Pseudo codice, Paolo Bison, FI07, p.1 / Pseudo codice, Paolo Bison, FI07, p.3
Pseudo codice Pseudo codice Paolo Bison Fondamenti di Informatica A.A. 2007/08 Università di Padova linguaggio testuale mix di linguaggio naturale ed elementi linguistici con sintassi ben definita e semantica
DettagliCos è un algoritmo. Si dice algoritmo la descrizione di un metodo di soluzione di un problema che sia
Programmazione Un programma descrive al computer, in estremo dettaglio, la sequenza di passi necessari a svolgere un particolare compito L attività di progettare e realizzare un programma è detta programmazione
DettagliCaratteristiche di un calcolatore elettronico
Prof. Emanuele Papotto Caratteristiche di un calcolatore elettronico È una macchina, costituita da circuiti elettronici digitali e da componenti elettromeccaniche, ottiche e magnetiche. È velocissimo,
DettagliIl costrutto if else (I) Il costrutto if else (II)
I costrutti del C Strutture condizionali I costrutti usati per esprimere una decisione in C sono due: Strutture condizionali Strutture iterative Introduzione alle funzioni Il costrutto if - ( e -if) Il
DettagliISTRUZIONI. Le strutture di controllo permettono di aggregare istruzioni semplici in istruzioni più complesse.
ISTRUZIONI Le istruzioni esprimono azioni che, una volta eseguite, comportano una modifica permanente dello stato interno del programma o del mondo circostante. Le strutture di controllo permettono di
DettagliProgrammazione in Java (I modulo)
Programmazione in Java (I modulo) Lezione 7 Iterazioni nei programmi:definite e indefinite Tre costrutti: While Do...While For Esempi Istruzioni di iterazione Le istruzioni iterative permettono di ripetere
DettagliIstruzioni condizionali di diramazione in Fortran 90
Istruzioni condizionali di diramazione in Fortran 90 Ing. Luca De Santis DIS - Dipartimento di informatica e sistemistica Anno accademico 2006/2007 Fortran 90: Istruzioni di diramazione DIS - Dipartimento
DettagliRappresentazione degli algoritmi
Rappresentazione degli algoritmi Universitá di Ferrara Ultima Modifica: 21 ottobre 2014 1 1 Diagramma di flusso Utilizzare il diagramma di flusso per rappresentare gli algoritmi che risolvono i seguenti
DettagliLaboratorio di Informatica I
Struttura della lezione Lezione 3: Istruzioni ed operatori booleani. Vittorio Scarano Corso di Laurea in Informatica Università di Salerno Soluzioni agli esercizi Istruzioni (statement) semplici e di controllo
DettagliLinguaggio C++ 5. Strutture cicliche
2009-2010 Ingegneria Aerospaziale Prof. A. Palomba - Elementi di Informatica (E-Z) Linguaggio C++ 5 Strutture cicliche Linguaggio C++ 5 1 Strutture cicliche Utilizzate per ripetere un certo numero di volte
DettagliProgrammazione Procedurale in Linguaggio C++
Programmazione Procedurale in Linguaggio C++ Strutture di Controllo Parte 2 Istruzioni Condizionali versione 2.0 Questolavoroè concessoin uso secondoi termini di unalicenzacreative Commons (vedi ultima
DettagliLe Strutture di controllo Del Linguaggio C. Prof. Francesco Accarino IIS Altiero Spinelli Sesto San Giovanni
Le Strutture di controllo Del Linguaggio C Prof. Francesco Accarino IIS Altiero Spinelli Sesto San Giovanni STRUTTURE DI CONTROLLO PRIMITIVE SEQUENZA SELEZIONE (o scelta logica) ITERAZIONE NON PRIMITIVE
DettagliCast implicito. Il cast è fatto automaticamente quando un tipo più basso viene assegnato ad un tipo più alto. byte short int long float double
Il cast Cast implicito Il cast è fatto automaticamente quando un tipo più basso viene assegnato ad un tipo più alto Per esempio: byte short int long float double int x = 10; float f; f = x; Il valore di
DettagliLaboratorio Progettazione Web Il linguaggio PHP Lezione 6. Andrea Marchetti IIT-CNR 2011/2012
Laboratorio Progettazione Web Il linguaggio PHP Lezione 6 Andrea Marchetti IIT-CNR andrea.marchetti@iit.cnr.ita 2011/2012 Assegnamento L assegnamento ad una variabile è il classico variabile = valore;
DettagliIl primo programma C++
Il primo programma C++ Un programma in qualsiasi linguaggio evoluto è una sequenza di istruzioni che la CPU dopo opportune conversioni esegue. La sintassi dei linguaggi di programmazione è molto piu rigida
DettagliSviluppo di programmi
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
DettagliLaboratorio di Programmazione Laurea in Ingegneria Civile e Ambientale
Dipartimento di Ingegneria dell Informazione Università degli Studi di Parma Laboratorio di Programmazione Laurea in Ingegneria Civile e Ambientale Algoritmi e Programmazione Stefano Cagnoni Il problema
DettagliISTRUZIONI ISTRUZIONI
ISTRUZIONI Le istruzioni esprimono azioni che, una volta eseguite, comportano una modifica permanente dello stato interno del programma o del mondo circostante. Le strutture di controllo permettono di
DettagliAlgoritmi e soluzione di problemi
Algoritmi e soluzione di problemi Dato un problema devo trovare una soluzione. Esempi: effettuare una telefonata calcolare l area di un trapezio L algoritmo è la sequenza di operazioni (istruzioni, azioni)
DettagliC espressioni condizionali
C espressioni condizionali Esiste un particolare operatore, detto operatore condizionale, che rappresenta un istruzione if else. estremamente compattata?: Supponiamo di voler inserire nella variabile intera
DettagliFasi di creazione di un programma
Fasi di creazione di un programma 1. Studio Preliminare 2. Analisi del Sistema 6. Manutenzione e Test 3. Progettazione 5. Implementazione 4. Sviluppo Sviluppo di programmi Per la costruzione di un programma
DettagliI cicli. Iterazioni Calcolo della media Istruzioni break e continue
I cicli Iterazioni Calcolo della media Istruzioni break e continue Ciclo while p Vero A while() ; Falso Esegue una istruzione mentre una condizione è verificata Programmazione
DettagliLezione 4: La Formalizzazione degli Algoritmi - Strutture di Controllo e Selettive (2p) Venerdì 7 Ottobre 2009
Università di Salerno Corso di FONDAMENTI DI INFORMATICA Corso di Laurea Ingegneria Meccanica & Ingegneria Gestionale Mat. Pari Docente : Ing. Secondulfo Giovanni Anno Accademico 2009-2010 Lezione 4: La
DettagliCORSO DI ELEMENTI DI INFORMATICA
CORSO DI ELEMENTI DI INFORMATICA Corso di Laurea Triennale in Ingegneria Gestionale della Logistica e della Produzione Area didattica Ingegneria Elettrica a.a. 2016/2017 Docente: Ing. Domenico Amalfitano
DettagliLaboratorio di informatica Ingegneria meccanica
C: costanti introdotte con #define Laboratorio di informatica Ingegneria meccanica Lezione 4 22 ottobre 2007 Forma: #define nome valore Effetto: ogni occorrenza successiva di nome sarà rimpiazzata con
DettagliFondamenti di Informatica
Fondamenti di Informatica AlgoBuild: Strutture selettive, iterative ed array Prof. Arcangelo Castiglione A.A. 2016/17 AlgoBuild : Strutture iterative e selettive OUTLINE Struttura selettiva Esempi Struttura
DettagliLe strutture di controllo in C++
Le strutture di controllo in C++ Docente: Ing. Edoardo Fusella Dipartimento di Ingegneria Elettrica e Tecnologie dell Informazione Via Claudio 21, 4 piano laboratorio SECLAB Università degli Studi di Napoli
DettagliIntroduzione allo Scilab Parte 2: elementi di programmazione strutturata
Introduzione allo Scilab Parte 2: elementi di programmazione strutturata Felice Iavernaro Dipartimento di Matematica Università di Bari http://dm.uniba.it/ iavernaro felix@dm.uniba.it 13 Giugno 2007 Felice
DettagliFondamenti di Informatica Laurea in Ingegneria Civile e Ingegneria per l ambiente e il territorio
Dipartimento di Ingegneria dell Informazione Università degli Studi di Parma Il problema di fondo Fondamenti di Informatica Laurea in Ingegneria ivile e Ingegneria per l ambiente e il territorio Algoritmi
DettagliStrutture di controllo
Dipartimento di Ingegneria dell'informazione Università degli Studi di Parma Laboratorio di Programmazione Laurea in Ingegneria ivile e Ambientale MATLAB: le strutture di controllo If, while, for, do until
DettagliCostrutti condizionali e iterativi
Costrutti condizionali e iterativi Introduction to Fortran 90 Paolo Ramieri, CINECA Aprile 2014 Strutture di controllo Le strutture di controllo permettono di alterare la sequenza di esecuzione delle istruzioni
DettagliLaboratorio Progettazione Web Il linguaggio PHP le istruzioni. Andrea Marchetti IIT-CNR 2013/2014
Laboratorio Progettazione Web Il linguaggio PHP le istruzioni Andrea Marchetti IIT-CNR andrea.marchetti@iit.cnr.ita 2013/2014 Assegnamento L assegnamento ad una variabile è il classico variabile = valore;
Dettagli