Architettura dei Sistemi Operativi Centro Multimediale Montiferru GRAFI DI PRECEDENZE. Cobegin-Coend e Fork-Join
|
|
- Angela Fabbri
- 6 anni fa
- Visualizzazioni
Transcript
1 GRAFI DI PRECEDENZE Cobegin-Coend e Fork-Join Un grafo di precedenza è un grafo diretto che non contiene cicli. E composto da un certo numero di nodi, dove ogni nodo rappresenta una attività, per esempio un processo, e gli archi che congiungono i nodi rappresentano l ordine con cui le varie attività devono essere eseguite. Per esempio, se abbiamo due nodi A e B, dove il nodo A viene prima del nodo B, allora significa che l attività B non può essere iniziata finchè l attività A non è terminata. Per descrivere un grafo di precedenza si usano dei costrutti di un pseudo linguaggio di alto livello. Questi sono i costrutti Cobegin-Coend e Fork-Join. La sintassi del costrutto Cobegin-Coend è: Cobegin S1 S2... Sn Coend S1, S2,----Sn sono n attività di un dato programma sequenziale. Graficamente il costrutto si presenta nella sequente forma: CO S1 S Sn COEND Autore: Luca Orrù 1
2 Ogni attività S1,S2,--Sn può contenere a sua volta costrutti Cobegin-Coend. Esercizio 5 Appello del 07/09/2004 Dato il seguente pseudo-codice, disegnare il grafo di precedenze: A; CO C; Attività I F; B; CO D; E; CO G; H; CO I; CO CO L; Attività II.1 Attività II.2 Attività II Esaminando il codice si nota come ci sia un costrutto CO-COEND all interno del quale vi sono altri costrutti CO-COEND. Autore: Luca Orrù 2
3 Determiniamo prima di tutto il punto iniziale e il punto finale del costrutto CO-COEND più esterno. L attività iniziale è A e l attività finale è L. A partire dal nodo A vengono eseguite in parallelo due attività che indico con I e II, che sono individuate dai due codici Begin-End dentro il Cobegin-Coend più esterno. L attività I è costituita da due attività svolte in sequenza che sono C e F. L attività II parte dal nodo B e contiene al suo interno due attività II.1 e II.2 individuate rispettivamente dall istruzione D e dal blocco E; CO G; H; CO I; L istruzione D potrebbe essere pensata anche in questo modo: begin D; end; Il grafo parziale è il seguente A B C Attività I D F Attività II L Autore: Luca Orrù 3
4 L attività II.2 parte dal nodo E e dal nodo E parte un altro cobegin-coend costituito dai nodi G e H che termina nel nodo I. Alla fine il tutto converge al nodo L. Il grafo richiesto è dunque il seguente. A B C Attività I D E F G H Attività II I L Autore: Luca Orrù 4
5 Esercizio 5 Appello del 19/04/2005 Si realizzi il seguente grafo di precedenze tra processi mediante costrutti cobegin-coend. Attività III Soluzione: Si possono subito individuare tre attività: I, II, III L attività I è costituita da B ed E e l attività II è costituita da C. Il codice sarà quindi del tipo seguente: A; CO I; II; III; CO H; Autore: Luca Orrù 5
6 Il codice dell attività I è: Begin B; E; End; Il codice dell attività II è: Begin C; End; Il codice dell attività III è: Begin D; Cobegin F; G; Coend; End; Autore: Luca Orrù 6
7 Il codice completo è il seguente: A; CO Begin B; E; End; Begin C; End; Begin D; Cobegin F; G; Coend; End; CO H; Questo codice Cobegin F; G; Coend; lo potrei anche sostituire con Cobegin Begin F;end; Begin G;end; Coend; Autore: Luca Orrù 7
8 Esercizio 4 Appello del 12/05/2004 Dato il seguente grafo di precedenze realizzarlo mediante costrutti cobegin-coend. Attività 2 Attività 1 Dal nodo A si diramano due attività: 1 e 2 L attività 1 crea altre tre attività 1.1, 1.2, 1.3 che convergono nel nodo I L attività 2 crea due attività G e H che convergono nel nodo I. Il codice ha dunque la seguente struttura. A; CO 1; 2; CO I; Autore: Luca Orrù 8
9 Il codice dell attività 1 è: Begin B; Cobegin D; E; F; Coend End; Il codice dell attività 2 è: Begin C; Cobegin G; H; Coend; End; Autore: Luca Orrù 9
10 Il codice finale è dunque il seguente: A; CO Begin B; Cobegin D; E; F; Coend End; Begin C; Cobegin G; H; Coend; End; CO I; Autore: Luca Orrù 10
11 Esercizio 5 Appello del 21/09/2007 Dato il seguente grafo di precedenze risolverlo, se è possibile, mediante CO e COEND. Att I A Att III B C D Att I.1 E F Att II G Att I.2 I H L Soluzione: Si possono subito individuare tre attività: I, II, III L attività I è costituita da B, E, F,G,H, l attività II è costituita da C ed I e l attività III è costituita da D. Il codice sarà quindi il seguente: Autore: Luca Orrù 11
12 A; CO I; II; III; CO L; Architettura dei Sistemi Operativi Il codice dell attività I è: B; CO I.1; I.2; CO H; Si noti come l attività I contiene a sua volta un costrutto CO COEND. L attività I.1 ha il seguente codice: E; G; Il codice dell attività II è: C; I; Autore: Luca Orrù 12
13 Il codice dell attività III è: D; Il codice globale è dunque il seguente: A; CO B; CO E; G; F; CO H; C; I; D; CO L; Autore: Luca Orrù 13
14 Costrutto Fork e Join Il costrutto Fork e Join al contrario del costrutto Cobegin-Coend può essere applicato per realizzare qualsiasi grafo di precedenze tra processi. Il costrutto è basato sulle istruzioni fork e join che sono istruzioni di un ipotetico linguaggio di alto livello. La fork ha la seguente sintassi: fork (etichetta) Quando si fa una fork (etichetta) viene creata una nuova attività o processo che parte da quella etichetta e che sarà svolta in parallelo con le altre attività. Ad ogni fork corrisponde una biforcazione nel grafo di precedenze. Alla fine tutte le attività che sono state diramate devono convergere su un unica attività. Per fare questo si utilizza l istruzione join (contatore) La join (contatore) ricongiunge due o in generale N flussi di controllo, con N>2. Il codice che descrive l istruzione join (contatore) è il seguente e va inteso come un codice eseguito automaticamente ogni volta che viene richiamata la join (contatore). Join (contatore) corrisponde al codice: contatore=contatore 1 if (contatore <> 0) then processo terminato; Questo significa che ogni volta che viene eseguita una join (contatore), il contatore viene decrementato di una unità e se il contatore è diverso da zero allora il processo o i processi che hanno eseguito la join vengono terminati. Ora qualcuno, giustamente, si chiederà: Autore: Luca Orrù 14
15 1. quanti contatori servono in un grafo di precedenze? 2. a che valore vanno inizializzati i contatori? La risposta al primo quesito è la seguente: servono tante variabili contatore tante quante sono le ricongiunzioni tra più attività verso una sola attività all interno del grafo. Esempio: nel seguente grafo di precedenze servono due contatori. A B C H D E F G Abbiamo infatti due ricongiungimenti nel grafo: Al nodo F Al nodo G Servono quindi due variabili: COUNT1, riferita al nodo F e COUNT2 riferita al nodo G La risposta al quesito 2 è la seguente: le variabili contatore devono essere inizializzate ad un valore pari al numero di rami che si ricongiungono in un nodo. Autore: Luca Orrù 15
16 Nell esempio precedente, la variabile COUNT1 (nodo F) viene inizializzata al valore 2 in quanto il numero di rami che convergono in F è pari a 2. La variabile COUNT2 (nodo G) viene inizializzata al valore 3 in quanto in G convergono 3 rami. Esempio: realizzare il seguente grafo di precedenze tra processi mediante fork e join. A B C D E Occorre una variabile contatore inizializzata al valore tre. Infatti abbiamo un solo ricongiungimento (al nodo E) con un numero di rami pari a tre. Abbiamo dunque: INT COUNT=3 A; FORK(L1); #creazione del processo C che parte dalla label L1 FORK(L2); #creazione del processo D che parte dalla label L2 B; # esecuzione del processo B che procede in parallelo con C e D GOTO(L3); #l esecuzione passa alla label L3 L1:C; #esecuzione del processo C GOTO(L3); #salto alla label L3 L2:D; #esecuzione del processo D GOTO(L3);#salto alla label L3 L3:JOIN(COUNT) # unisce le attività B,C,D E; #esecuzione del processo E Autore: Luca Orrù 16
17 Esercizio 4 Appello del 27/05/2005 e del 09/02/2005 Si realizzi il seguente grafo di precedenze tra processi mediante i costrutti Fork e Join Servono due contatori: un contatore COUNT1, riferito al nodo E, inizializzato al valore 2 e un contatore COUNT2, riferito al nodo G, inizializzato al valore 3. Autore: Luca Orrù 17
18 INT COUNT1=2; INT COUNT2=3; A; #esecuzione attività A FORK (L1); # crea la biforcazione riferita al nodo C FORK (L2); #crea la biforcazione riferita al nodo D B; # esecuzione di B che procede in parallelo con C e D GOTO (L3); #salta alla label L3; L1: C; #esecuzione di C L3: JOIN (COUNT1); #unisce le attività B e C E; #esecuzione di E GOTO (L5); #salta alla label L5 L2: D; #esecuzione di D FORK (L4); #crea la biforcazione a partire da D F; #esecuzione di F in parallelo a G GOTO (L5); L4: G; L5: JOIN (COUNT2); #unisce le attività E,F,G H; Autore: Luca Orrù 18
19 Esercizio 4 Appello del 13/09/2005 Dato il seguente grafo di precedenze risolverlo, se è possibile, mediante fork e join A B C D E F I G L Con fork e join è sempre possibile realizzare un grafo di precedenze, qualunque esso sia. Si ricorda invece che con il costrutto Cobegin-Coend questo non è sempre possibile. Esaminando il grafo notiamo due ricongiunzioni. La prima al nodo I dove convergono 3 rami e la seconda al nodo L dove convergono 2 rami. Servono quindi due contatori inizializzati rispettivamente ai valori 3 e 2. Il codice è dunque il seguente: INT COUNT1=3; INT COUNT2=2; A; #esecuzione attività A FORK (L1); # crea la biforcazione riferita al nodo C FORK (L2); #crea la biforcazione riferita al nodo D B; # esecuzione di B che procede in parallelo con C e D FORK (L3); E; G; GOTO (L5); #salta alla label L5; Autore: Luca Orrù 19
20 L1: C; #esecuzione di C GOTO (L4); L2: D; #esecuzione di D GOTO (L4); #salta alla label L4; L3: F; L4: JOIN (COUNT1); #unisce le attività F, C e D I; L5: JOIN (COUNT2); #unisce le attività G e I L; Autore: Luca Orrù 20
Esercitazione sui grafi di precedenza, fork/join, cobegin/coend.
Esercitazione sui grafi di precedenza, fork/join, co/coend. Esercizio 1. Realizzare mediante il costrutto fork/join il seguente grafo di precedenze. Risposta. cont5 := 2; cont6 := 3; cont7 := 2; S1; fork(l1);
DettagliProcessi parte IV. Processi parte IV
Processi parte IV Processi parte IV Grafi di precedenza Sincronizzazione dei processi Unix mediante: fork-join cobegin-coend semafori Grafi di precedenza Un grafo di precedenza è un grafo diretto aciclico
DettagliLe etichette nei programmi. Istruzioni di branch: beq. Istruzioni di branch: bne. Istruzioni di jump: j
L insieme delle istruzioni (2) Architetture dei Calcolatori (lettere A-I) Istruzioni per operazioni logiche: shift Shift (traslazione) dei bit di una parola a destra o sinistra sll (shift left logical):
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
DettagliPROCESSI NON SEQUENZIALI E TIPI DI INTERAZIONE
PROCESSI NON SEQUENZIALI E TIPI DI INTERAZIONE 1 Algoritmo, programma, processo Algoritmo Programma Processo Procedimento logico che deve essere eseguito per risolvere un determinato problema. Descrizione
DettagliPROCESSI NON SEQUENZIALI E TIPI DI INTERAZIONE. Algoritmo, programma, processo
PROCESSI NON SEQUENZIALI E TIPI DI INTERAZIONE 1 Processo sequenziale Sequenza di stati attraverso i quali passa l elaboratore durante l esecuzione di un programma (storia di un processo o traccia dell
DettagliPROCESSI NON SEQUENZIALI E TIPI DI INTERAZIONE
PROCESSI NON SEQUENZIALI E TIPI DI INTERAZIONE 1 ALGORITMO, PROGRAMMA, PROCESSO Algoritmo Procedimento logico che deve essere eseguito per risolvere un determinato problema. Programma Descrizione di un
DettagliProcessi non sequenziali e tipi di interazione
Processi non sequenziali e tipi di interazione Algoritmo, programma, processo Algoritmo: Procedimento logico che deve essere eseguito per risolvere un determinato problema. Programma: Descrizione di un
DettagliProcessi non sequenziali e tipi di interazione
Processi non sequenziali e tipi di interazione 1 Algoritmo, programma, processo Algoritmo: Procedimento logico che deve essere eseguito per risolvere un determinato problema. Programma: Descrizione di
DettagliIl Linguaggio Assembly: Controllo del flusso: istruzioni e costrutti
Il Linguaggio Assembly: Controllo del flusso: istruzioni e costrutti Prof. Alberto Borghese Ing. Iuri Frosio Dipartimento di Scienze dell Informazione borghese,frosio@dsi.unimi.it Università degli Studi
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
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
DettagliArchitetture data-flow
Architetture data-flow Le architetture che abbiamo visto finora sono dette architetture control flow. Ciò sta ad indicare che il flusso dell elaborazione è dettato dall ordine con cui le varie istruzioni
DettagliGARA SECONDARIA DI PRIMO GRADO INDIVIDUALE
GARA2 2019 SECONDARIA DI PRIMO GRADO INDIVIDUALE ESERCIZIO 1 Premessa La tabella che segue descrive le attività di un progetto (indicate rispettivamente con le sigle A1, A2,...), riportando per ciascuna
DettagliCorso di laurea in ingegneria informatica Esame di sistemi operativi 21 gennaio 2009 SOLUZIONI
Corso di laurea in ingegneria informatica Esame di sistemi operativi 21 gennaio 2009 SOLUZIONI 1. Si consideri il programma C seguente (gli #include necessari sono omessi): / programma principale / 1.
DettagliRiepilogo sulla Concorrenza
Riepilogo sulla Concorrenza Passi per la costruzione di un programma concorrente Prima di tutto, definire se la concorrenza avviene mediante Processi concorrenti o Thread concorrenti Definizione delle
DettagliDiagramma a blocchi per la selezione, in un mazzo di chiavi, di quella che apre un lucchetto
Diagramma a blocchi per la selezione, in un mazzo di chiavi, di quella che apre un lucchetto 14 1. Dato un numero dire se è positivo o negativo 2. e se il numero fosse nullo? 3. Eseguire il prodotto tra
DettagliPrinciples of Concurrent Programming
Principles of Giuseppe Anastasi g.anastasi@iet.unipi.it Pervasive Computing & Networking Lab. () Dept. of Information Engineering, University of Pisa Overview Concetti preliminari Interazione fra processi
DettagliGARA SECONDARIA DI PRIMO GRADO INDIVIDUALE
GARA2 2019 SECONDARIA DI PRIMO GRADO INDIVIDUALE ESERCIZIO 1 Premessa La tabella che segue descrive le attività di un progetto (indicate rispettivamente con le sigle A1, A2,...), riportando per ciascuna
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
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
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,
DettagliControllo di flusso. Università degli Studi di Milano Corso di Laurea in Informatica, A.A
Università degli Studi di Milano Corso di Laurea in Informatica, A.A. 2018-2019 Controllo di flusso Turno A Nicola Basilico Dipartimento di Informatica Via Comelico 39/41-20135 Milano (MI) Ufficio S242
DettagliVerifica parte IIB. Grafo di controllo. Criteri di selezione per test strutturali (white box) Test. Rif. Ghezzi et al
Verifica parte IIB Rif. Ghezzi et al. 6.3.4.1 Test In piccolo White box Black box Condizioni di confine Problema dell' Oracolo In grande Test di modulo Test di integrazione Test di Sistema Test di Accettazione
DettagliLezione 18 Il Set di Istruzioni (4)
Lezione 18 Il Set di Istruzioni (4) Vittorio Scarano Architettura Corso di Laurea in Informatica Università degli Studi di Salerno Organizzazione della lezione Un richiamo su: Operazioni aritmetiche (add
DettagliUML Introduzione a UML Linguaggio di Modellazione Unificato. Corso di Ingegneria del Software Anno Accademico 2012/13
UML Introduzione a UML Linguaggio di Modellazione Unificato Corso di Ingegneria del Software Anno Accademico 2012/13 1 Che cosa è UML? UML (Unified Modeling Language) è un linguaggio grafico per: specificare
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
DettagliLabVIEW (Laboratory Virtual Instrument Engineering Workbench)
LabVIEW (Laboratory Virtual Instrument Engineering Workbench) Linguaggio di programmazione sviluppato da National Instruments Nato per Mac (1986), per Windows dal 1992, per Linux dal 1999 Adatto per realizzare
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
Dettagli2 OTTIMIZZAZIONE SU GRAFI. E. Amaldi Fondamenti di R.O. Politecnico di Milano 1
2 OTTIMIZZAZIONE SU GRAFI E. Amaldi Fondamenti di R.O. Politecnico di Milano 1 Molti problemi decisionali possono essere formulati utilizzando il linguaggio della teoria dei grafi. Esempi: - problemi di
Dettagli2 OTTIMIZZAZIONE SU GRAFI. E. Amaldi Fondamenti di R.O. Politecnico di Milano 1
2 OTTIMIZZAZIONE SU GRAFI E. Amaldi Fondamenti di R.O. Politecnico di Milano 1 Molti problemi decisionali possono essere formulati utilizzando il linguaggio della teoria dei grafi. Esempi: - problemi di
DettagliControllo di flusso. Università degli Studi di Milano Corso di Laurea in Informatica, A.A Homepage del corso
Università degli Studi di Milano Corso di Laurea in Informatica, A.A. 2017-2018 Controllo di flusso Homepage del corso Turno A Nicola Basilico Dipartimento di Informatica Via Comelico 39/41-20135 Milano
DettagliEsercitazione 6 Algorithmi e Strutture Dati (Informatica) A.A 2015/2016
Esercitazione 6 Algorithmi e Strutture Dati (Informatica) A.A 2015/2016 Tong Liu April 14, 2016 Elementi Fondamentali Rappresentazione n = V numero di vertici (nodi) m = E numero di archi Matrice di adiacenza:
DettagliUniversità degli Studi di Ferrara
Università degli Studi di Ferrara Corso di Laurea in Matematica - A.A. 2018 2019 Programmazione Lezione 19 Controllo di Flusso in MATLAB Docente: Michele Ferrari - michele.ferrari@unife.it Nelle lezioni
DettagliArchitetture dei Sistemi Elettronici
Architetture dei Sistemi Elettronici Roberto Roncella 12. Reti sequenziali algoritmiche Reti sequenziali algoritmiche Verso il microprocessore (8.1-8.2) Parte operativa e parte di controllo Descrizione
DettagliIl Sistema Operativo Concorrenza e Grafi di precedenza
ISTITUTO TECNICO SECONDO BIENNIO GIORGIO PORCU www.thegiorgio.it Sommario Elaborazione concorrente Elaborazione sequenziale Elaborazione concorrente Elaborazione parallela Grafi di Precedenza Grafi di
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
DettagliScelte. Costrutto condizionale. Il costrutto if. Il costrutto if. Rappresentazione con diagramma a blocchi. Il costrutto if
Scelte Costrutto condizionale Scelte, blocchi Fino ad ora il corpo dei metodi che abbiamo scritto aveva solo un modo di essere eseguito: in sequenza dalla prima istruzione all ultima In applicazioni non
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
DettagliIntroduzione alla programmazione
Introduzione alla programmazione Risolvere un problema Per risolvere un problema si procede innanzitutto all individuazione Delle informazioni, dei dati noti Dei risultati desiderati Il secondo passo consiste
Dettagli11.4 Chiusura transitiva
6 11.4 Chiusura transitiva Il problema che consideriamo in questa sezione riguarda il calcolo della chiusura transitiva di un grafo. Dato un grafo orientato G = hv,ei, si vuole determinare il grafo orientato)
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
DettagliPrinciples of Concurrent Programming
Principles of Giuseppe Anastasi g.anastasi@iet.unipi.it Pervasive Computing & Networking Lab. () Dept. of Information Engineering, University of Pisa Overview Concetti preliminari Interazione fra processi
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
DettagliFondamenti di informatica II 1. Sintesi di reti logiche sequenziali
Titolo lezione Fondamenti di informatica II 1 Sintesi di reti logiche sequenziali Reti combinatorie e sequenziali Fondamenti di informatica II 2 Due sono le tipologie di reti logiche che studiamo Reti
DettagliIl linguaggio Java Istruzioni di Controllo
Il linguaggio Java Istruzioni di Controllo Istruzioni per il controllo di flusso Istruzioni di selezione if switch Istruzioni di iterazione while do-while for Istruzioni di salto break continue return
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
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
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
DettagliVerifica parte IIB. Rif. Ghezzi et al
Verifica parte IIB Rif. Ghezzi et al. 6.3.4.1 Sommario Test In piccolo White box Black box Condizioni di confine Problema dell' Oracolo In grande Test di modulo Test di integrazione Test di Sistema Test
DettagliElementi di Architettura e Sistemi Operativi. problema punti massimi i tuoi punti problema 1 6 problema 2 7 problema 3 7 problema 4 10 totale 30
Elementi di Architettura e Sistemi Operativi Bioinformatica - Tiziano Villa 28 Settembre 2012 Nome e Cognome: Matricola: Posta elettronica: problema punti massimi i tuoi punti problema 1 6 problema 2 7
DettagliInformatica/ Ing. Meccanica/ Ing. Edile/ Prof. Verdicchio/ 02/04/2014/ Appello straordinario/ Foglio delle domande / VERSIONE 1
Informatica/ Ing. Meccanica/ Ing. Edile/ Prof. Verdicchio/ 02/04/2014/ Appello straordinario/ Foglio delle domande/ VERSIONE 1 1) Nell uso dei puntatori in C++ la scrittura -> vuol dire: a) riferimento
DettagliStrutture di controllo e cicli
AA 2012-2013 IF logico L IF logico rappresenta il tipo piú semplice di istruzione condizionale IF logico L IF logico rappresenta il tipo piú semplice di istruzione condizionale Sintassi IF ( e s p r e
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
DettagliElementi di Informatica A. A. 2016/2017
Elementi di Informatica A. A. 2016/2017 Ing. Nicola Amatucci Università degli studi di Napoli Federico II Scuola Politecnica e Delle Scienze di Base nicola.amatucci@unina.it Programmazione C++ Parte 1
Dettagli2. Teoria. [7 punti] La comunicazione tra processi nel sistema UNIX.
1. Unix [12 punti] Prova Scritta di Recupero del 5 Aprile 2004 Si scriva un programma C che utilizzi le system call di UNIX e che realizzi un comando UNIX avente la seguente sintassi: esame fsize fin fout
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
DettagliIterazione A. Ferrari
Iterazione A. Ferrari Iterazioni (cicli) L iterazione è una struttura che consente di ripetere più volte l esecuzione di un insieme di istruzioni. Due tipi di iterazione: iterazioni enumerative: consentono
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
DettagliPrinciples of Concurrent Programming
Principles of Concurrent Programming Alessio Vecchio alessio.vecchio@unipi.it Dip. di Ingegneria dell Informazione Università di Pisa Tratte da Principi e tecniche di progammazione concorrente, cap. 2
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
Dettagli2.2 Alberi di supporto di costo ottimo
. Alberi di supporto di costo ottimo Problemi relativi ad alberi hanno numerose applicazioni: progettazione di reti (comunicazione, teleriscaldamento,...) memorizzazione compatta di sequenze (DNA) diffusione
DettagliCostrutti condizionali e iterativi
Costrutti condizionali e iterativi Introduction to modern Fortran Paolo Ramieri, CINECA Maggio 2017 Strutture di controllo Le strutture di controllo permettono di alterare la sequenza di esecuzione delle
DettagliIngegneria del software
Ingegneria del software Modulo 2 Criteri di copertura delle decisioni e delle condizioni Testing di Edge Coverage L insieme dei casi di test deve essere definito in modo che ogni ramo del Control Flow
DettagliLezione 7: La Formalizzazione degli Algoritmi - Strutture di Controllo e Selettive La Programmazione Strutturata (3 p) Giovedì 21 Ottobre 2010
Università di Salerno Corso di FONDAMENTI DI INFORMATICA Corso di Laurea Ingegneria Corso B Docente : Ing. Anno Accademico 2010-2011 Lezione 7: La Formalizzazione degli Algoritmi - Strutture di Controllo
Dettagli2.2 Alberi di supporto di costo ottimo
. Alberi di supporto di costo ottimo Problemi relativi ad alberi hanno numerose applicazioni: progettazione di reti (comunicazione, teleriscaldamento,...) diffusione di messaggi segreti memorizzazione
DettagliProgrammazione strutturata
Corso di Fondamenti di Informatica Corso di Laurea in Ingegneria Gestionale (L-Z) 3. (testo di riferimento: Bellini-Guidi) Ing. Michele Ruta 1di 29 Linguaggi di programmazione Un programma è un algoritmo
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
DettagliIntroduzione ai grafi. Introduzione ai grafi p. 1/2
Introduzione ai grafi Introduzione ai grafi p. 1/2 Grafi Un grafo G é costituito da una coppia di insiemi (V,A) dove V é detto insieme dei nodi e A é detto insieme di archi ed é un sottinsieme di tutte
DettagliEsercitazione Applicazioni Windows - n. 4 Struttura condizionale
Esercitazione Applicazioni Windows - n. 4 Struttura condizionale 1. Avvia l ambiente di sviluppo Visual Basic e sviluppa una nuova applicazione Windows Form con il nome Confronto Numeri. Interagisci con
DettagliAUTOMA A STATI FINITI
Gli Automi Un Automa è un dispositivo, o un suo modello in forma di macchina sequenziale, creato per eseguire un particolare compito, che può trovarsi in diverse configurazioni più o meno complesse caratterizzate
DettagliLezione 17 Il Set di Istruzioni (3)
Lezione 17 Il Set di Istruzioni (3) Vittorio Scarano Architettura Corso di Laurea in Informatica Università degli Studi di Salerno Organizzazione della lezione Un richiamo su: Operazioni aritmetiche (add
DettagliIL COSTRUTTO ITERAZIONE
IL COSTRUTTO ITERAZIONE Il costrutto iterazione Consente di ripetere una operazione elementare o un blocco di operazioni. Tipologie di iterazione Iterazione definita Iterazione condizionata Tipologie di
Dettagli2.2 Alberi di supporto di costo ottimo
. Alberi di supporto di costo ottimo Problemi relativi ad alberi hanno numerose applicazioni: progettazione di reti (comunicazione, teleriscaldamento,...) protocolli reti IP memorizzazione compatta di
DettagliInformazioni varie. Lezione 18 Il Set di Istruzioni (5) Dove siamo nel corso. Un quadro della situazione
Informazioni varie Lezione 18 Il Set di Istruzioni (5) Vittorio Scarano Architettura Corso di Laurea in Informatica Università degli Studi di Salerno La lezione di martedì 20 maggio (9-12) non si tiene
DettagliBlocchi di base. Schemi: Sequenza Selezione Iterazione. Flow chart strutturati Sequenza Selezione Iterazione. Teorema di Bohm e Jacopini
Blocchi di base Schemi: Sequenza Selezione Iterazione Flow chart strutturati Sequenza Selezione Iterazione Teorema di Bohm e Jacopini I più comuni linguaggi di descrizione degli algoritmi sono: Diagrammi
Dettagli2.3 Cammini ottimi. E. Amaldi Fondamenti di R.O. Politecnico di Milano 1
. Cammini ottimi E. Amaldi Fondamenti di R.O. Politecnico di Milano .. Cammini minimi e algoritmo di Dijkstra Dato un grafo orientato G = (N, A) con una funzione di costo c : A c ij R e due nodi s e t,
DettagliProgrammazione strutturata
Programmazione Strutturata Programmazione strutturata La programmazione strutturata nasce come proposta per regolamentare e standardizzare le metodologie di programmazione (Dijkstra, 1965) biettivo: rendere
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
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
DettagliInformatica ALGORITMI E LINGUAGGI DI PROGRAMMAZIONE. Francesco Tura. F. Tura
Informatica ALGORITMI E LINGUAGGI DI PROGRAMMAZIONE Francesco Tura francesco.tura@unibo.it 1 Lo strumento dell informatico: ELABORATORE ELETTRONICO [= calcolatore = computer] Macchina multifunzionale Macchina
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
DettagliIl linguaggio assembly
Il linguaggio assembly Strutture di controllo P.H. cap. 2.6 1 Argomenti Organizzazione della memoria Istruzioni di trasferimento dei dati Array Le strutture di controllo Istruzioni di salto if then do...
Dettagli2.2 Alberi di supporto di costo ottimo
. Alberi di supporto di costo ottimo Problemi relativi ad alberi hanno numerose applicazioni: progettazione di reti (comunicazione, teleriscaldamento,...) memorizzazione compatta di sequenze (DNA) diffusione
DettagliStrutture di controllo in C. Strutture di controllo in C -- Flow Chart --
-- Flow Chart -- Corso di Informatica A Vito Perrone 1 Indice Rappresentazione degli algoritmi tramite flow chart Istruzione La parte dichiarativa L I/O Primi esempi che girano 2 Codifica degli algoritmi
DettagliIL COSTRUTTO ITERAZIONE
IL COSTRUTTO ITERAZIONE Ragioniamo su questo esercizio Dati tre numeri farne la somma Modifichiamo il programma perché permetta di fare la somma di 1000 numeri. Il costrutto iterazione Il costrutto iterativo
DettagliUn quadro della situazione. Lezione 15 Il Set di Istruzioni (3) Dove siamo nel corso. Organizzazione della lezione. Cosa abbiamo fatto
Un quadro della situazione Lezione 15 Il Set di Istruzioni (3) Vittorio Scarano Architettura Corso di Laurea in Informatica Università degli Studi di Salerno Input/Output Sistema di Interconnessione Registri
Dettagliil tipo di parallelismo dipende dal grado di cooperazione
Thread Settembre 2009 programma e parallelismo il tipo di parallelismo dipende dal grado di cooperazione (scambio d informazione) necessario tra attività svolte in parallelo processo macchina virtuale
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
DettagliIl linguaggio assembly
Il linguaggio assembly Strutture di controllo P.H. cap. 2.6 1 Argomenti Organizzazione della memoria Istruzioni di trasferimento dei dati Array Le strutture di controllo Istruzioni di salto if then do...
DettagliProgrammazione Orientata agli Oggetti. Emilio Di Giacomo e Walter Didimo
Programmazione Orientata agli Oggetti Emilio Di Giacomo e Walter Didimo Una metafora dal mondo reale la fabbrica di giocattoli progettisti Un semplice giocattolo Impara i suoni Dall idea al progetto Toy
DettagliCapitolo IV. La struttura dei Programmi
Capitolo IV La struttura dei Programmi Frasi del linguaggio Tutti i linguaggi di alto livello prevedono quattro tipologie di frasi diverse: le dichiarazioni con le quali il programmatore da ordini al traduttore
DettagliUML e i diagrammi di attività
UML e i diagrammi di attività S i n t a s s i e L i n e e G u i d a Dr. Andrea Baruzzo andrea.baruzzo@dimi.uniud.it Page 2 Attività: che cosa sono e a cosa servono Un diagramma di attività mostra il flusso
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
DettagliA.A ALLIEVI DEL III ANNO IN INGEGNERIA INFORMATICA
A.A. 2013-2014 ALLIEVI DEL III ANNO IN INGEGNERIA INFORMATICA PRIMA PARTE DEL PROGETTO DA PRESENTARE OBBLIGATORIAMENTE COME PROVA (NON ESCLUSIVA) D ESAME DELL INSEGNAMENTO INGEGNERIA DEL SOFTWARE (9 CFU)
DettagliAppunti di informatica. Lezione 8 anno accademico Mario Verdicchio
Appunti di informatica Lezione 8 anno accademico 2016-2017 Mario Verdicchio Il ciclo FOR Molto spesso in un programma bisogna ripetere un operazione per un numero prefissato di volte Si tratta di un iterazione
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 ()
Dettagli