Esercitazione sui grafi di precedenza, fork/join, cobegin/coend.

Dimensione: px
Iniziare la visualizzazioe della pagina:

Download "Esercitazione sui grafi di precedenza, fork/join, cobegin/coend."

Transcript

1 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); fork(l2); S2; L1: S3; L2: S4; fork(l4); goto L3; fork(l4); goto L3; goto L4;

2 L4: join(cont6); S6; goto L5; L3: join(cont5); S5; goto L5; L5: join(cont7); Spiegazione. S7; Nel grafo di precedenze sono presenti 7 statement (o attività). E possibile notare che 3 di questi (nello specifico S5, S6 e S7) dipendono dal termine di più attività (S5 dipende dal termine di S2 ed S3; S6 dipende dal termine di S2, S3 ed S4; infine S7 dipende dal termine di S5 ed S6). Per questo motivo sarà necessario sincronizzare queste 3 attività tramite 3 diverse istruzioni di join(cont). Una istruzione di join (punto di unione) viene effettuata prima di eseguire una attività che ha più di un ingresso; cont è un contatore (inizialmente > 0) che viene decrementato ogni volta che un flusso di esecuzione cerca di passare attraverso l attività con più di un ingresso; quando il contatore si azzera, allora l istruzione join non è più bloccante e permette di proseguire eseguendo l attività successiva. Quindi, nel nostro caso, occorre definire tre contatori per le tre join che devono essere eseguite prima di S5, S6 ed S7 nel modo seguente: cont5 := 2; /* perché S5 dipende da 2 attivita */ cont6 := 3; /* perché S6 dipende da 3 attivita */ cont7 := 2; /* perché S7 dipende da 2 attivita */ Dopo la definizione dei contatori, inizia il processo principale e viene eseguita la prima attività S1. S1; Da S1 è possibile seguire 3 rami di esecuzione concorrenti; scegliendo come ramo principale quello di sinistra (che va verso S2) occorre creare gli altri due percorsi paralleli. A tal fine si creano delle etichette chiamate label che identificano il punto d inizio dei nuovi flussi di esecuzione. Nel nostro caso, il flusso di esecuzione che partirà da S3 viene associato alla label L1 mentre quello che partirà da S4 viene associato alla label L2. A questo punto è possibile creare due processi che saranno concorrenti a quello principale: fork(l1); fork(l2);

3 I due processi appena creati cominceranno l esecuzione a partire dalla prima istruzione (attività) indicata nella rispettiva etichetta, che si vedrà più avanti. Dopo aver creato i due flussi di esecuzione paralleli identificati da L1 ed L2, il flusso di esecuzione principale può proseguire eseguendo S2. A questo punto si ripropone una situazione in cui dopo S2 è possibile eseguire in parallelo due diverse attività; una seguirà il flusso principale (da S2 verso S5), l altra dovrà essere inserita in un processo parallelo (da S2 verso S6) e quindi dobbiamo definire una label L4 per specificare da dove partirà l esecuzione del nuovo processo creato. S2; fork(l4); Il flusso principale dovrebbe proseguire verso S5, però questa attività non può essere eseguita fintanto che tutti i flussi di esecuzione in ingresso a S5 non siano sincronizzati (perché S5 dipende sia dall attività S2 che dall attività S3). Ogni volta che uno statement (o attività) presenta una confluenza di archi in ingresso sarà necessario creare un punto di unione. Anche in questo caso viene creata un etichetta, L3, che ci permetterà di chiamare l istruzione di join anche dagli altri processi che confluiscono in quel nodo. Quindi, a questo punto, il ramo principale deve saltare all istruzione di join che verrà in seguito descritta dalla label L3: goto L3; Ora bisogna cominciare a descrivere le istruzioni associate ad ogni label che abbiamo precedentemente introdotto, a partire dalla prima che abbiamo scritto, cioè L1. Quando viene chiamata l etichetta L1 deve essere eseguita l attività S3; da questa attività deve essere creato un ramo parallelo che va verso S6 (la cui esecuzione è già identificata dalla label L4 introdotta precedentemente); dopo aver creato questa biforcazione con una fork, il processo corrente deve proseguire la sua esecuzione verso S5, che però è un punto d unione (quindi S5 non può essere subito eseguito, bisogna prima passare attraverso la join identificata dalla label L3), pertanto il processo corrente deve saltare all istruzione di join che verrà descritta dalla label L3. Quindi L1 è definita dalle istruzioni che seguono: L1: S3; fork(l4); goto L3; Dopo aver descritto L1, si passa a descrivere la seconda label introdotta. Quando viene chiamata l etichetta L2 l attività che deve essere eseguita è S4; l attività successiva, S6, non può essere subito eseguita perché è un punto d unione. Quindi bisogna saltare all etichetta L4 che descrive il punto d unione prima di eseguire l attività S6. L2: S4; goto L4;

4 Continuando a descrivere le etichette, si passa ad L4. In realtà, visto che ora descriveremo l etichetta L4 e l istruzione precedente era proprio un salto a questa etichetta, l ultima istruzione si rivela superflua, quindi è possibile eliminarla. goto L4; L etichetta L4 è legata ad un nodo con tanti punti di ingresso, quindi la prima operazione da eseguire è una join che sincronizzi i diversi flussi di esecuzione in ingresso. Visto che gli archi in ingresso sono tre, il contatore della join deve essere inizializzato a 3. Quindi il contatore che dobbiamo usare è quello che all inizio abbiamo dichiarato con il nome cont6. In questo modo l operazione di join aspetterà che i tre flussi di esecuzione in ingresso siano pronti, dopodichè si sbloccherà e verrà eseguita l attività S6. A questo punto, il flusso di esecuzione che stiamo analizzando dovrebbe portare verso S7 che è un altro punto d unione; quindi bisogna definire una nuova label L5 e quindi saltare a questa etichetta. L4: join(cont6); S6; goto L5; L etichetta successiva è L3. Questa etichetta è legata ad un nodo con 2 punti di ingresso, quindi la prima istruzione sarà una join su un contatore che era stato inizializzato a 2. Quando il contatore si azzera deve essere possibile eseguire l attività S5; da S5 si andrà verso il punto d unione descritto all etichetta L5. L3: join(cont5); S5; goto L5; Non ci rimane che descrivere, per ultima, l etichetta (L5) associata all ultimo nodo; come prima, questo fa sì che l istruzione di salto appena scritta sia superflua (può essere omessa). La prima istruzione da eseguire è il punto d unione, dopo il quale può essere eseguita l ultima attività del grafo di precedenza, cioè S7. goto L5; L5: join(cont7); S7;

5 Esercizio 2. Realizzare mediante il costrutto fork/join il seguente grafo di precedenze. Risposta. contg := 3; A; fork(lc); B; fork(le); D; LC: C; F; LE: E; LG: end join(contg); G; Spiegazione. Nel grafo di precedenze è presente una sola attività (G) che possiede più archi di ingresso; quindi definiamo un contatore per l istruzione di join che verrà effettuata prima di eseguire l attività G. contg := 3; La prima attività che deve essere eseguita è A, dopo la quale possono partire due attività concorrenti. Se scegliamo come ramo principale quello di sinistra, dobbiamo creare una

6 label che descriva il processo che partirà dall attività C. Chiamiamo questa label LC ed eseguiamo una fork. A; fork(lc); Il ramo principale proseguirà eseguendo l attività B, dopo la quale è nuovamente possibile dividere l esecuzione creando un nuovo processo concorrente che partirà dall attività E; chiamiamo LE la label associata al nuovo processo e eseguiamo una fork. B; fork(le); Il ramo principale proseguirà eseguendo l attività D; successivamente cercherà di entrare nello statement G che però è un punto d unione, quindi prima di essere eseguito deve essere sincronizzato. E necessario creare una label per questo statement che chiamiamo LG. Il ramo principale deve saltare alle istruzioni descritte nella label LG. D; Ora è possibile cominciare a descrivere le istruzioni appartenenti ad ogni label introdotta. La prima label è LC. Quando ci si riferisce ad LC, la prima attività che deve essere eseguita è C; il flusso d esecuzione porta subito ad eseguire l attività F; prima di entrare nell attività G occorre sincronizzarsi con gli altri flussi d esecuzione quindi occorre raggiungere con un istruzione di salto il punto d unione che verrà descritto nella label LG. LC: C; F; La seconda label introdotta è stata LE. La prima attività che deve essere eseguita è E; come per gli altri statement, da E bisogna saltare al punto d unione descritto dalla label LG. LE: E; Infine, l ultima label che rimane da descrivere è LG. Si tratta della label associata al punto d unione che deve essere eseguito prima dell attività G, che ha 3 archi in ingresso; quindi occorre eseguire una join che blocchi l esecuzione finchè tutti e tre i flussi di esecuzione in ingresso non siano pronti. Nota: l istruzione precedente goto LG è diventata superflua perché LG viene descritta immediatamente dopo. LG: join(contg);

7 G; Esercizio 3. Realizzare mediante il costrutto co/coend il seguente grafo di precedenze. Risposta. Spiegazione. A; co co G; B; co co C; F; D; E; In un costrutto di questo tipo tutte le attività che vengono descritte all interno di un blocco co/coend vengono eseguite in parallelo, mentre tutte le attività descritte in un blocco /end vengono eseguite in serie.

8 Da un analisi grafica ci si accorge che il grafo di precedenze in oggetto può essere semplificato come segue, raggruppando due insiemi di attività B1 e B2 che possono essere eseguiti in modo concorrente dopo l esecuzione dell attività A. In questa situazione quindi avremo che la prima attività che deve essere eseguita è A, dalla quale si diramano due flussi di esecuzione paralleli B1 e B2 che poi devono essere ricongiunti per eseguire l attività G; il che si traduce nel seguente pseudo-codice: A; co co G; B1; B2; che significa: all inizio () viene eseguita l attività A, al termine della quale vengono eseguite contemporaneamente (co) le macroattività B1 e B2; quando entrambe sono terminate (coend), allora viene eseguita l attività G. Infatti il costrutto co/coend permette di sospendere il processo padre fino alla terminazione di tutti i processi attivati. D altra parte, il costrutto /end descrive delle operazioni sequenziali. Ora dobbiamo descrivere i macroblocchi B1 e B2, che abbiamo artificialmente introdotto, in termini di attività del grafo di precedenze. Il macroblocco B1 è dato dall esecuzione in sequenza () dell attività B, dopo la quale possono iniziare in parallelo (co) le due attività D ed E. Quindi, nel codice precedente possiamo sostituire il blocco B1 con la sua descrizione:

9 B1: B; co D; E; co Il macroblocco B2 è semplicemente dato dall esecuzione in sequenza () delle attività C ed F. Quindi possiamo sostituire il blocco B2 con la sua descrizione: B2: C; F; Esercizio 4. Realizzare, se possibile, mediante i costrutti fork/join e co/coend il seguente grafo di precedenze.

10 Risposta. Realizzazione mediante costrutto fork/join: contg := 2; conti := 2; A; fork(le); B; fork(ld); C; H; LE: E; goto LI; F; LD: D; LG: LI: end join(contg); G; goto LI; join(conti); I; Realizzazione mediante costrutto co/coend: NON è possibile realizzare questo grafo di precedenze con il costrutto co/coend. Spiegazione. FORK/JOIN: Definiamo un contatore per ogni nodo che presenta più di un ingresso, inizializzato al numero di ingressi di quel nodo: contg := 2; conti := 2; Viene eseguita la prima attività A, dopo la quale si può creare un nuovo processo parallelo per eseguire il ramo di destra (viene creata appositamente la label LE): A;

11 fork(le); Il ramo principale (è stato scelto quello a sinistra) prosegue ed esegue l attività B. A questo punto si presenta un altra biforcazione che permette di creare un nuovo processo che andrà ad eseguire il ramo verso D (viene creata appositamente la label LD): B; fork(ld); Il ramo principale (ancora una volta viene scelto a sinistra) puo proseguire e vengono eseguite in sequenza le attività C ed H. Dopo l attività H è necessario sincronizzare i flussi di esecuzione prima di eseguire l attività I, quindi viene introdotta un istruzione di salto all etichetta LI (dove verrà effettuata una join). C; H; goto LI; A questo punto si può passare a descrivere le label. La label LE prevede l esecuzione in serie delle attività E ed F, poi dovrà saltare al punto d unione LG prima di entrare nell attività G. LE: E; F; La label LD prevede l esecuzione dell attività D, poi dovrà saltare al punto d unione LG prima di eseguire l attività G. LD: D; La label LG descrive il punto d unione per sincronizzare i flussi di esecuzione prima dell attività G. Viene effettuata una join sul contatore che era stato previsto all inizio per questo punto d unione, poi viene eseguita l attività G ed infine si salta all ultimo punto d unione, descritto dalla label LI. L istruzione precedente (goto LG) diventa superflua. LG: join(contg); G; goto LI; L ultima label descrive l ultimo punto d unione che sincronizza i due flussi di esecuzione che arrivano dalle attività H e G. Dopo la join, l ultima attività può essere mandata in esecuzione. L istruzione precedente (goto LI) diventa superflua. goto LI; LI: join(conti); I;

12 COBEGIN/COEND: Non è possibile in alcun modo raggruppare le attività in modo tale da poter usare il costrutto co/coend.

Architettura dei Sistemi Operativi Centro Multimediale Montiferru GRAFI DI PRECEDENZE. Cobegin-Coend e Fork-Join

Architettura dei Sistemi Operativi Centro Multimediale Montiferru GRAFI DI PRECEDENZE. Cobegin-Coend e Fork-Join 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

Dettagli

Introduzione alle macchine a stati (non definitivo)

Introduzione alle macchine a stati (non definitivo) Introduzione alle macchine a stati (non definitivo) - Introduzione Il modo migliore per affrontare un problema di automazione industriale (anche non particolarmente complesso) consiste nel dividerlo in

Dettagli

Processi parte IV. Processi parte IV

Processi 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

Dettagli

Le etichette nei programmi. Istruzioni di branch: beq. Istruzioni di branch: bne. Istruzioni di jump: j

Le 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):

Dettagli

Principles of Concurrent Programming

Principles 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

Dettagli

Capitolo 4 Reti Sequenziali. Reti Logiche T

Capitolo 4 Reti Sequenziali. Reti Logiche T Capitolo 4 Reti Sequenziali Reti Logiche T Rete sequenziale Es riconoscitore di sequenza: z=1 se e solo se la sequenza degli ingressi (x0,x1) è nell ordine: (0,0)-(0,1) (1,1) (x0,x1)=(1,1) z=??? Gli ingressi

Dettagli

Diagramma 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 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

Dettagli

Le strutture di controllo in C++

Le 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

Dettagli

Programmi di Manipolazione dei Testi

Programmi di Manipolazione dei Testi Programmi di Manipolazione dei Testi I primi programmi da affrontare sono quelli relativi alla manipolazione di testi. Esaminiamo, attraverso alcuni esempi, il passaggio dal problema alla sua analisi e

Dettagli

PROCESSI NON SEQUENZIALI E TIPI DI INTERAZIONE

PROCESSI 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

Dettagli

Cos è un algoritmo. Si dice algoritmo la descrizione di un metodo di soluzione di un problema che sia

Cos è 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

Dettagli

Il Sistema Operativo Concorrenza e Grafi di precedenza

Il 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

Dettagli

Scelte. Costrutto condizionale. Il costrutto if. Il costrutto if. Rappresentazione con diagramma a blocchi. Il costrutto if

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

Dettagli

Architetture data-flow

Architetture 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

Dettagli

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

Linguaggio Testuale. E un formalismo che consente di rappresentare gli algoritmi mediante semplici istruzioni in linguaggio «parlato» Linguaggio Testuale E un formalismo che consente di rappresentare gli algoritmi mediante semplici istruzioni in linguaggio «parlato» Delle volte viene chiamato metalinguaggio, e l algoritmo scritto tramite

Dettagli

CORSO DI PROGRAMMAZIONE

CORSO DI PROGRAMMAZIONE ISTITUTO TECNICO INDUSTRIALE G. M. ANGIOY SASSARI CORSO DI PROGRAMMAZIONE INTRODUZIONE ALLE ISTRUZIONI ITERATIVE DISPENSA 03.01 03-01_Iterazioni_[ver_15] Questa dispensa è rilasciata sotto la licenza Creative

Dettagli

PROCESSI NON SEQUENZIALI E TIPI DI INTERAZIONE

PROCESSI 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

Dettagli

PROCESSI NON SEQUENZIALI E TIPI DI INTERAZIONE. Algoritmo, programma, processo

PROCESSI 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

Dettagli

Diagrammi a blocchi 1

Diagrammi a blocchi 1 Diagrammi a blocchi 1 Sommario Diagrammi di flusso, o a blocchi." Analisi strutturata." Esercizi. 2 Diagrammi a blocchi È un linguaggio formale di tipo grafico per rappresentare gli algoritmi." Attraverso

Dettagli

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

Diagrammi di flusso - Flowcharts. E un formalismo che consente di rappresentare graficamente gli algoritmi Diagrammi di flusso - Flowcharts E un formalismo che consente di rappresentare graficamente gli algoritmi Un diagramma di flusso descrive le azioni da eseguire ed il loro ordine di esecuzione Ogni azione

Dettagli

il tipo di parallelismo dipende dal grado di cooperazione

il 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

Dettagli

Informatica 3 V anno

Informatica 3 V anno Informatica 3 V anno Teoria degli automi Introduzione agli automi Un particolare tipo di sistemi dinamici è rappresentato dagli automi. L automa è un modello di calcolo molto semplice da utilizzare, adatto

Dettagli

Principles of Concurrent Programming

Principles 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

Dettagli

ACSO Programmazione di Sistema e Concorrente

ACSO Programmazione di Sistema e Concorrente ACSO Programmazione di Sistema e Concorrente P2 Modello Thread 2/12/2015 programma e parallelismo il tipo di parallelismo dipende dal grado di cooperazione (scambio di informazione) necessario tra attività

Dettagli

Linguaggio C - le strutture di controllo: sequenza, selezione, iterazione

Linguaggio 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

Dettagli

Esercizio 1 (punti 5) E noto che un Full adder è un circuito logico che realizza le funzioni Riporto e Risultato seondo la definizione seguente

Esercizio 1 (punti 5) E noto che un Full adder è un circuito logico che realizza le funzioni Riporto e Risultato seondo la definizione seguente Informatica 1, Sez. di Cremona Appello del 12 Febbraio 2009 NB. Gli allievi Informatici e Gestionali, ad eccezione di coloro che hanno ottenuto il riconoscimento di 5 crediti per esami sostenuti in altri

Dettagli

Antonio Cianfrani. Standard Access Control List (ACL)

Antonio Cianfrani. Standard Access Control List (ACL) Antonio Cianfrani Standard Access Control List (ACL) Indice Cosa sono le ACL? Interfacce Inbound & Outbound Wildcard mask Configurare una ACL standard ACL extended (prossima lezione) Named ACL (prossima

Dettagli

Diagrammi a blocchi 1

Diagrammi a blocchi 1 Diagrammi a blocchi 1 Sommario Diagrammi di flusso, o a blocchi. Analisi strutturata. Esercizi. 2 Diagrammi a blocchi È un linguaggio formale di tipo grafico per rappresentare gli algoritmi. Attraverso

Dettagli

Analisi strutturata 1

Analisi 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

Processi. Descrittore di Processo (PCB) Context Switch Primitive per la creazione e terminazione dei processi. Il descrittore di processo (PCB)

Processi. Descrittore di Processo (PCB) Context Switch Primitive per la creazione e terminazione dei processi. Il descrittore di processo (PCB) Processi Descrittore di Processo (PCB) Context Switch Primitive per la creazione e terminazione dei processi 1 Il descrittore di processo (PCB) Il S.O. gestisce i processi associando a ciascuno di essi

Dettagli

Laboratorio di Python

Laboratorio di Python Alberi, Esercizi su alberi Università di Bologna 15 e 17 maggio 2013 Sommario Correzione esercizi 1 Correzione esercizi 2 Esercizi Correzione esercizi Definire una funzione che preso un dizionario di studenti

Dettagli

Scheme: struttura del programma e campo di azione

Scheme: struttura del programma e campo di azione «a2» 2013.11.11 --- Copyright Daniele Giacomini -- appunti2@gmail.com http://informaticalibera.net Scheme: struttura del programma e campo di azione Definizione e campo di azione...........................

Dettagli

Algoritmi. Pagina 1 di 5

Algoritmi. Pagina 1 di 5 Algoritmi Il termine algoritmo proviene dalla matematica e deriva dal nome di in algebrista arabo del IX secolo di nome Al-Khuwarizmi e sta ad indicare un procedimento basato su un numero finito operazioni

Dettagli

AUTOMA A STATI FINITI

AUTOMA 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

Dettagli

Sviluppo di programmi

Sviluppo 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

Dettagli

Principles of Concurrent Programming

Principles 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

Dettagli

Lezione 5 e 6. Fabio Scotti ( ) Laboratorio di programmazione per la sicurezza. Valentina Ciriani ( ) Laboratorio di programmazione

Lezione 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

Dettagli

11.4 Chiusura transitiva

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

Dettagli

Appunti di informatica. Lezione 8 anno accademico Mario Verdicchio

Appunti 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

Dettagli

Blocchi 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 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

Dettagli

UML e i diagrammi di attività

UML 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

Dettagli

Struttura di programmi MAL Elementi lessicali

Struttura di programmi MAL Elementi lessicali Elementi lessicali Ogni microistruzione è definita su una linea di programma Le linee vuote vengono ignorate Le linee con solo commenti vengono ignorate Il carattere di fine linea (RETURN ENTER INVIO)

Dettagli

Scope, Memoria e Tabella dei Simboli

Scope, Memoria e Tabella dei Simboli Scope, Memoria e Tabella dei Simboli La tabella dei simboli è uno strumento fondamentale attraverso il quale interpreti e compilatori implementano la traduzione da un programma scritto in un linguaggio

Dettagli

Servizio Sistema Informatico di Ateneo (SSIA) Attività Sistemistiche e Software Gestionali e Documentali

Servizio Sistema Informatico di Ateneo (SSIA) Attività Sistemistiche e Software Gestionali e Documentali Questa guida ha lo scopo di illustrarti la procedura da seguire per effettuare l iscrizione alla partecipazione alla selezione al corso di dottorato. N.B. per effettuare tali operazioni è indispensabile

Dettagli

Strutture di controllo e cicli

Strutture di controllo e cicli Appendice B Strutture di controllo e cicli Le condizioni I cicli Le interruzioni A p p e n d i c e B Il microcontrollore della scheda Arduino, opportunamente programmato, è in grado di prendere decisioni

Dettagli

Seconda Esercitazione. Gestione di processi in Unix Primitive Fork, Wait, Exec

Seconda Esercitazione. Gestione di processi in Unix Primitive Fork, Wait, Exec Seconda Esercitazione Gestione di processi in Unix Primitive Fork, Wait, Exec System call fondamentali fork exit wait exec Generazione di un processo figlio, che condivide il codice con il padre e possiede

Dettagli

Processi non sequenziali e tipi di interazione

Processi 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

Dettagli

Processi non sequenziali e tipi di interazione

Processi 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

Dettagli

13/01/2005 COGNOME NOME MATRICOLA. SOLUZIONE ESERCIZIO N. 1 Pagina 1. Si consideri la rete sequenziale asincrona rappresentata in figura:

13/01/2005 COGNOME NOME MATRICOLA. SOLUZIONE ESERCIZIO N. 1 Pagina 1. Si consideri la rete sequenziale asincrona rappresentata in figura: SOLUION SRCIIO N. 1 Pagina 1 Si consideri la rete sequenziale asincrona rappresentata in figura: 0 1 0 1 2 3 4 z 5 6 7 C B A c b a DOMANDA N.1 (PUNTI 1) Si possono presentare problemi di corsa critica?

Dettagli

Verifica parte IIB. Rif. Ghezzi et al

Verifica 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

Dettagli

Thread in Java. Thread = flusso di esecuzione indipendente nel codice del programma

Thread in Java. Thread = flusso di esecuzione indipendente nel codice del programma Thread in Java Thread = flusso di esecuzione indipendente nel codice del programma Come si può realizzare il concetto di Thread in Java? Seguendo la filosofia OO: sono oggetti particolari ai quali si richiede

Dettagli

Il Sistema Operativo Processi e Risorse

Il Sistema Operativo Processi e Risorse ISTITUTO TECNICO SECONDO BIENNIO GIORGIO PORCU www.thegiorgio.it Sommario Processi Evoluzione dei Processi Modello a Processi Interrupt Context Switching Risorse Risorsa, Classe, Istanza, Molteplicità

Dettagli

Elementi di Informatica A. A. 2016/2017

Elementi 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

Dettagli

Istruzioni. Una istruzione semplice è qualsiasi espressione seguita da un punto e virgola. Esempio x = 0; y = 1;/* due istruzioni */

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

Dettagli

Riepilogo sulla Concorrenza

Riepilogo 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

Dettagli

Stack e nidificazione dei sottoprogrammi Cos è un sottoprogramma? La chiamata di un sottoprogramma... 6

Stack e nidificazione dei sottoprogrammi Cos è un sottoprogramma? La chiamata di un sottoprogramma... 6 Stack e nidificazione dei sottoprogrammi... 2 Cos è un sottoprogramma?... 2 La chiamata di un sottoprogramma... 6 Lo stack... 9 Il nesting dei sottoprogrammi.... 12 Lo stack pointer... 17 Stack e nidificazione

Dettagli

ANALIZZIAMO NEI DETTAGLI GLI STATEMENTS DI SELEZIONE E DI RIPETIZIONE FORNITI DAL LINGUAGGIO C STATEMENT SEMPLICE STATEMENT COMPOSTO BLOCCO

ANALIZZIAMO NEI DETTAGLI GLI STATEMENTS DI SELEZIONE E DI RIPETIZIONE FORNITI DAL LINGUAGGIO C STATEMENT SEMPLICE STATEMENT COMPOSTO BLOCCO ANALIZZIAMO NEI DETTAGLI GLI STATEMENTS DI SELEZIONE E DI RIPETIZIONE ORNITI DAL LINGUAGGIO C Premessa: STATEMENT SEMPLICE STATEMENT COMPOSTO BLOCCO Uno ement semplice termina con ; come, ad esempio: ressione;

Dettagli

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

Dettagli

Analisi e implementazione dell algoritmo di Dijkstra (Parte 1)

Analisi e implementazione dell algoritmo di Dijkstra (Parte 1) Analisi e implementazione dell algoritmo di Dijkstra (Parte 1) Algoritmicamente August 1, 2009 http://algoritmicamente.wordpress.com/ 1 Concetti fondamentali Definizione 1 Un grafo è un insieme di vertici

Dettagli

Lezione 10 Alberi e gestione delle eccezioni

Lezione 10 Alberi e gestione delle eccezioni Lezione 10 Alberi e gestione delle eccezioni Informatica 5 Maggio 2016 1 Visita in ampiezza ed esercizi Esercizio: stampa per livelli Scrivere una funzione che stampa le etichette di tutti i nodi dell

Dettagli

Risoluzione di un problema

Risoluzione 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

JavaScript Core Language. Prof. Francesco Accarino IIS Atiero Spinelli Sesto San Giovanni via leopardi 132

JavaScript Core Language. Prof. Francesco Accarino IIS Atiero Spinelli Sesto San Giovanni via leopardi 132 JavaScript Core Language Prof. Francesco Accarino IIS Atiero Spinelli Sesto San Giovanni via leopardi 132 Condizioni L utilizzo di operatori relazionali e logici consente di formulare delle condizioni

Dettagli

Sequential Functional Chart (SFC) - Parte 3

Sequential Functional Chart (SFC) - Parte 3 Sequential Functional Chart (SFC) - Parte 3 Vincenzo Suraci Automazione STRUTTURA DEL NUCLEO TEMATICO ESERCITAZIONE Via Ariosto 25-00185 Roma http://www.diag.uniroma1.it 2 ESERCITAZIONE Via Ariosto 25-00185

Dettagli

Unità di apprendimento 7. Dal problema al programma

Unità di apprendimento 7. Dal problema al programma Unità di apprendimento 7 Dal problema al programma Unità di apprendimento 7 Lezione 5 Conosciamo l iterazione definita e indefinita In questa lezione impareremo: che cos è l istruzione di iterazione come

Dettagli

Fondamenti di Informatica. Algoritmi di Ricerca e di Ordinamento

Fondamenti di Informatica. Algoritmi di Ricerca e di Ordinamento Fondamenti di Informatica Algoritmi di Ricerca e di Ordinamento 1 Ricerca in una sequenza di elementi Data una sequenza di elementi, occorre verificare se un elemento fa parte della sequenza oppure l elemento

Dettagli

Luigi Piroddi

Luigi Piroddi Automazione industriale dispense del corso 16. Linguaggio a contatti (Ladder Diagram) piroddi@elet.polimi.it Introduzione Il linguaggio a contatti (o diagramma a scala, dall inglese ladder diagram, LD)

Dettagli

Modificare il tipo di grafico Spostare, ridimensionare, cancellare un grafico

Modificare il tipo di grafico Spostare, ridimensionare, cancellare un grafico 4.6 GRAFICI Il programma Calc si presta non solo alla creazione di tabelle e all esecuzione di calcoli, ma anche alla creazione di grafici che riepilogano visivamente i dati, ne rendono immediata la loro

Dettagli

A volte capita di dover scegliere in base al verificarsi di certe condizioni tra più sequenze possibili.

A volte capita di dover scegliere in base al verificarsi di certe condizioni tra più sequenze possibili. GRAFCET Per facilitare al massimo il dialogo tra l utente ed il fornitore di automazione è necessario disporre di un mezzo di rappresentazione delle specifiche che sia privo di incertezze, di facile comprensione

Dettagli

Verifica parte IIB. Grafo di controllo. Criteri di selezione per test strutturali (white box) Test. Rif. Ghezzi et al

Verifica 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

Dettagli

Vincenzo Gervasi, Laura Semini Ingegneria del Software Dipartimento di Informatica Università di Pisa

Vincenzo Gervasi, Laura Semini Ingegneria del Software Dipartimento di Informatica Università di Pisa Vincenzo Gervasi, Laura Semini Ingegneria del Software Dipartimento di Informatica Università di Pisa Lezioni precedente: Descrizione del dominio: modello statico Questa lezione Descrizione del dominio:

Dettagli

Cognome e Nome: Numero di Matricola: Spazio riservato alla correzione

Cognome e Nome: Numero di Matricola: Spazio riservato alla correzione Cognome e Nome: Numero di Matricola: Spazio riservato alla correzione 1 2 3 4 Bonus Totale /25 /25 /25 /25 /100 1. Grafi a) Si scriva lo pseudocodice dell'algoritmo BFS che utilizza un array Discovered

Dettagli

Università degli Studi dell Insubria Dipartimento di Scienze Teoriche e Applicate. Architettura degli elaboratori Bistabili e Clock

Università degli Studi dell Insubria Dipartimento di Scienze Teoriche e Applicate. Architettura degli elaboratori Bistabili e Clock Università degli tudi dell Insubria Dipartimento di cienze Teoriche e Applicate Architettura degli elaboratori Bistabili e Clock Marco Tarini Dipartimento di cienze Teoriche e Applicate marco.tarini@uninsubria.it

Dettagli

ALU MICROPROGRAMMI. a. A + B A Leggi A,B Alu(A+B) C C A HALT. b. A * B A // A + + A B-1 volte a. Leggi A,B b. B D;

ALU MICROPROGRAMMI. a. A + B A Leggi A,B Alu(A+B) C C A HALT. b. A * B A // A + + A B-1 volte a. Leggi A,B b. B D; Si consideri un sistema la cui parte operativa è raffigurata in figura, dove l ALU (1) esegue la somma (output(alu) =A+B), (2) lascia passare l input sinistro (output(alu)=a), (3) lascia passare l input

Dettagli

Ingegneria del Software 9. Macchine a stati. Dipartimento di Informatica Università di Pisa A.A. 2014/15

Ingegneria del Software 9. Macchine a stati. Dipartimento di Informatica Università di Pisa A.A. 2014/15 Ingegneria del Software 9. Macchine a stati Dipartimento di Informatica Università di Pisa A.A. 2014/15 so far Modello del dominio Modello statico: diagrammi delle classi Modello dinamico : diagrammi di

Dettagli

La struttura selezione

La 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

Dettagli

Configurazione firewall Cisco ASA5505

Configurazione firewall Cisco ASA5505 Configurazione firewall Cisco ASA5505 Argomenti da trattare: Creazione della rete Assegnazione indirizzi Modifica delle impostazioni di default delle vlan esistenti Assegnazione della vlan ad una interfaccia

Dettagli

Prof. Pagani Corrado LINGUAGGIO C: SELEZIONE E CICLI

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

Le strutture di controllo

Le 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

Dettagli

FATTURE WEB CONTABILIZZAZIONE FATTURE ATTIVE

FATTURE WEB CONTABILIZZAZIONE FATTURE ATTIVE V1.0 2019-02-12 FATTURE WEB CONTABILIZZAZIONE FATTURE ATTIVE CONTABILIZZAZIONE MASSIVA... 2 CONTABILIZZAZIONE AUTOMATICA... 11 Con l'implementazione rilasciata nella segnalazione InfoProfis DS1473 del

Dettagli

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

Introduzione 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

Dettagli

Università di Roma Tor Vergata Corso di Laurea triennale in Informatica Sistemi operativi e reti A.A Pietro Frasca.

Università di Roma Tor Vergata Corso di Laurea triennale in Informatica Sistemi operativi e reti A.A Pietro Frasca. Università di Roma Tor Vergata Corso di Laurea triennale in Informatica Sistemi operativi e reti A.A. 2018-2019 Pietro Frasca Lezione 5 Martedì 16-10-2018 Operazioni sui processi Nella maggior parte dei

Dettagli

Come creare una pianificazione che genera una spedizione in Contactsend

Come creare una pianificazione che genera una spedizione in Contactsend Come creare una pianificazione che genera una spedizione in Contactsend Obiettivo In questo tutorial vedremo che cosa è una pianificazione, come crearla dall interfaccia di Contactplan e come usarla per

Dettagli

I Circuiti combinatori: LOGISIM

I Circuiti combinatori: LOGISIM 1 ISTITUTO DI ISTRUZIONE SUPERIORE ANGIOY I Circuiti combinatori: LOGISIM Prof. G. Ciaschetti 1. Le porte logiche Un circuito combinatorio (o sistema combinatorio o rete combinatoria) è un circuito elettrico,

Dettagli

Progetto DIMMI CHE SEI E TI DIRÒ...

Progetto DIMMI CHE SEI E TI DIRÒ... Progetto DIMMI CHE SEI E TI DIRÒ... Ho deciso di costruire una APP per telefonino Android che su richiesta dei dati anagrafici indica a chi fa la richiesta come si svolgerà il suo prossimo futuro. La prima

Dettagli

Istruzioni di Controllo

Istruzioni 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

Dettagli

Cosa sono i report. Prof. Emanuele Papotto 05/10/2010

Cosa sono i report. Prof. Emanuele Papotto 05/10/2010 Prof. Emanuele Papotto Cosa sono i report Nei database, gli elenchi di g informazioni pronti per essere stampati (nella figura a fianco l elenco dei cantanti), vengono chiamati report (rapporti) 1 A cosa

Dettagli

Segmenti paralleli compresi tra rette parallele

Segmenti paralleli compresi tra rette parallele G Segmenti paralleli compresi tra rette parallele Verifica che segmenti paralleli compresi tra rette parallele sono congruenti Prima di iniziare a tracciare gli oggetti che fanno parte della costruzione,

Dettagli

Lab 2: Sincronizzazione diretta/indiretta in Java

Lab 2: Sincronizzazione diretta/indiretta in Java Dept. of Computer Science Lab 2: Sincronizzazione diretta/indiretta in Java Matteo Camilli matteo.camilli@unimi.it Laboratorio di Sistemi Operativi a.a. 2015/16 Università degli Studi di Bergamo 1 Esercizi

Dettagli

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

Dettagli

Nello scorso fascicolo 8 ZAKINPROGRESS COMPONENTI

Nello scorso fascicolo 8 ZAKINPROGRESS COMPONENTI F.22-ZAKinPROGRESS 18-02-2008 10:00 Pagina 8 8 U N S E M P L I C E P R O G R A M M A In questo numero vedrai come creare un semplice programma per muovere il braccio robotico RoboArm partendo da zero,

Dettagli

Reti Logiche T. Esercizi reti sequenziali sincrone

Reti Logiche T. Esercizi reti sequenziali sincrone Reti Logiche T Esercizi reti sequenziali sincrone ESERCIZIO N. Si esegua la sintesi di una rete sequenziale sincrona caratterizzata da un unico segnale di ingresso (X) e da un unico segnale di uscita (Z),

Dettagli

LABORATORIO DI SISTEMI

LABORATORIO DI SISTEMI ALUNNO: Fratto Claudio CLASSE: IV B Informatico ESERCITAZIONE N : 5 LABORATORIO DI SISTEMI OGGETTO: Progettare il software per il controllo di un serbatoio, gestendone la fase di riempimento e quella di

Dettagli

Esecuzione condizionale. Esecuzione condizionale. Costrutto if. Costrutto if

Esecuzione condizionale. Esecuzione condizionale. Costrutto if. Costrutto if Esecuzione condizionale Esecuzione condizionale Permette l esecuzione di un blocco di codice solo se si verifica una certa condizione SE (condizione è vera) ALLORA esegui istruzioni 2 er. 2.4 also condizione

Dettagli

Fondamenti teorici e programmazione

Fondamenti teorici e programmazione Fondamenti teorici e programmazione FTP(A) - modb Lezione 9 di ricerca binaria F.Bonchi Dip.to Informatica Fondamenti teorici e programmazione (A) - modb a.a. 2018/19 pag. 1 liberi Un albero libero è un

Dettagli

Function Block Diagram

Function Block Diagram Function Block Diagram Marco Mauri Politecnico di Milano P.zza Leonardo da Vinci, 32 22-23 Maggio 2001 1 Sommario Struttura del linguaggio e notazioni grafiche Come esprimere espressioni semplici e complesse

Dettagli

Strutture iterative. Strutture iterative. I cicli in C. Strutture iterative. con i che assume i valori da 0 a 1000

Strutture iterative. Strutture iterative. I cicli in C. Strutture iterative. con i che assume i valori da 0 a 1000 Strutture iterative 2 Strutture iterative Ver. 2.4 Problema: Visualizzare i numeri interi da 0 a 1000 Soluzione printf("0\n"); printf("1\n"); printf("2\n"); printf("3\n"); printf("4\n");... Non è davvero

Dettagli

AEIT Sistema di posta elettronica. Spostare automaticamente le spam in una sottocartella

AEIT Sistema di posta elettronica. Spostare automaticamente le  spam in una sottocartella AEIT Sistema di posta elettronica Spostare automaticamente le e-mail spam in una sottocartella Per fare in modo che le e-mail classificate come spam dal filtro antispam del server mail.aeit.it vengano

Dettagli