21 marzo 2002 (ri-)Avvisi: Giovedi 28 marzo la lezione e sospesa. Nuovo indirizzo di Spedire messaggi e esercizi solo.

Slides:



Advertisements
Presentazioni simili
Training On Line - CONP. 2 Richiesta Da Menu: Conferimenti ad inizio anno termico > Agosto > Pluriennali > Nuova Richiesta Si accede alla pagina di Richiesta.
Advertisements

Dipartimento di Ingegneria Idraulica e Ambientale - Universita di Pavia 1 Caduta non guidata di un corpo rettangolare in un serbatoio Velocità e rotazione.
1 Tutto su liceoclassicojesi.it 1° Incontro sulla gestione di liceoclassicojesi.it.
Presente e futuro della religiosità nel nord est DIFFERENZE TRA GENERAZIONI figli e padri italo de sandre 1ids.
1 MeDeC - Centro Demoscopico Metropolitano Provincia di Bologna - per Valutazione su alcuni servizi erogati nel.
Mat_Insieme Lavoro di Gruppo Prodotti Notevoli
TAV.1 Foto n.1 Foto n.2 SCALINATA DI ACCESSO ALL’EREMO DI SANTA CATERINA DEL SASSO DALLA CORTE DELLE CASCINE DEL QUIQUIO Foto n.3 Foto n.4.
/ fax
Lezioni di Astronomia 3- Le stelle Bologna 8 aprile 2010
1 Pregnana Milanese Assessorato alle Risorse Economiche Bilancio Preventivo P R O P O S T A.
Ministero della Salute - DGFDM
Frontespizio Economia Monetaria Anno Accademico
1 la competenza alfabetica della popolazione italiana CEDE distribuzione percentuale per livelli.
1 Tavolo del Patto per la crescita intelligente, sostenibile e inclusiva Il ricorso agli ammortizzatori sociali nei territori colpiti dagli eventi sismici.
1 Innovazione dal punto di vista strategico Francesco Berri Medical Director ASTELLAS PHARMA SpA Bologna 10 Giugno 2011.
Implementazione dell algortimo di Viterbi attraverso la soluzione del problema di cammino mi- nimo tramite software specifico. Università degli studi di.
I MATEMATICI E IL MONDO DEL LAVORO
EIE 0607 III / 1 A B P a = 30 P b = 35 t = 2, tc = 1 Questo può essere un equilibrio? No! Politiche di un paese importatore: una tariffa allimportazione.
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Puntatori Marco D. Santambrogio – Ver. aggiornata al 21 Marzo 2013.
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Lab 2 – Info B Marco D. Santambrogio – Riccardo Cattaneo –
Programmazione 1 9CFU – TANTE ore
ELEZIONI REGIONALI 2010 PRIMI RISULTATI E SCENARI 14 aprile 2010.
Canale A. Prof.Ciapetti AA2003/04
Ufficio Studi UNIONCAMERE TOSCANA 1 Presentazione di Riccardo Perugi Ufficio Studi UNIONCAMERE TOSCANA Firenze, 19 dicembre 2000.
Realizzazione e caratterizzazione di una semplice rete neurale per la separazione di due campioni di eventi Vincenzo Izzo.
Il linguaggio Fortran 90: 4. Array: Vettori e Matrici
1 Pregnana Milanese Assessorato alle Risorse Economiche Bilancio Preventivo 2011 APPROVAZIONE Bilancio Preventivo 2011 APPROVAZIONE Consiglio Comunale.
Master universitario di II livello in Ingegneria delle Infrastrutture e dei Sistemi Ferroviari Anno Accademico 2012/2013 Cultura dimpresa, valutazione.
La partita è molto combattuta perché le due squadre tentano di vincere fino all'ultimo minuto. Era l'ultima giornata del campionato e il risultato era.
Dipartimento di Ingegneria Idraulica e Ambientale - Universita di Pavia 1 Scritte scritte scritte scritte scritte scritte scritte Scritte scritte Titolo.
Progetto di applicazioni grafiche. Disegno di forme complesse Prassi : un classe per ciascuna forma Progetta la forma individuando le componenti base.
Cos’è un problema?.
Lezione 2 La progettazione degli esperimenti
Lezione 6 Encoder ottici
STILI DI APPRENDIMENTO ED EVOLUZIONE INTERFACCE
Analisi di Immagini e Dati Biologici
19 Lezione 21/5/04 Composizione dell'immagine 1 COMPOSIZIONE DELLIMMAGINE.
Contatore: esempio di circuito sequenziale
Settimana: 3-7 marzo Orariolunedimartedi Mercoledi 5 Giovedi 6 Venerdi lezione intro alla fis mod DR lezione intro alla fis mod DR.
2 3 4 RISERVATEZZA INTEGRITA DISPONIBILITA 5 6.
Melfi, 1 aprile 2011 – MediaShow 1 Social Network: possibilità di uso consapevole nella didattica Uso, consapevolezza, opportunità, proposte Caterina Policaro.
Esercitazione 1: Rispetto al test di ansia (Media=25; σ=5), calcolare:
Q UESTIONI ETICHE E BIOETICHE DELLA DIFESA DELLA VITA NELL AGIRE SANITARIO 1 Casa di Cura Villa San Giuseppe Ascoli Piceno 12 e 13 dicembre 2011.
1 Negozi Nuove idee realizzate per. 2 Negozi 3 4.
ISOIVA (LOCALE) TO ISOIVA (WEB) RIPARTIZIONE INFORMATICA UFFICIO APPLICATIVI AMMINISTRATIVI 13/04/2011 UNIVERSITÀ DEGLI STUDI DI FERRARA 1.
ORDINE DI CHIAMATA a 1minuto e 2 minuti PRINCIPALI TEMPI DELLA COMPETIZIONE ORDINE DI CHIAMATA a 1minuto e 2 minuti PRINCIPALI TEMPI DELLA COMPETIZIONE.
Scheda Ente Ente Privato Ente Pubblico. 2ROL - Richieste On Line.
TECNOLOGIE DELLINFORMAZIONE E DELLA COMUNICAZIONE PER LE AZIENDE Materiale di supporto alla didattica.
1 Guida per linsegnamento nei corsi per il conseguimento del CERTIFICATO DI IDONEITÀ ALLA GUIDA DEL CICLOMOTORE.
Protocollo informatico: interoperabilità e PEC
Bando Arti Sceniche. Per poter procedere è indispensabile aprire il testo del Bando 2ROL - Richieste On Line.
LE SAI LE TABELLINE? Mettiti alla prova!.
RILEVAZIONE LIVELLI DI COMPETENZE ITALIANO ANNO SCOLASTICO 2007/2008.
RILEVAZIONE DEI LIVELLI DI COMPETENZA MATEMATICA ANNO SCOLASTICO 2007/2008 BY PROCIDA.
1 Questionario di soddisfazione del servizio scolastico Anno scolastico 2011/2012 Istogramma- risposte famiglie.
Un trucchetto di Moltiplicazione per il calcolo mentale
Calendario lezioni ed esercitazioni impartite nell anno accademico 2001/2002 II Semestre Corso di Fisica Sperimentale con Laboratorio Classe di Tecnologie.
Settimana: 10 – 14 marzo Orariolunedimartedi Mercoledi 12 Giovedi 13 Venerdi Lezione Dal c al c Lezione Dal c al c
14 marzo 2002 Avvisi:.
Esempi risolti mediante immagini (e con excel)
1Piero Scotto - C14. Finalità del corso Programma Materiale Requisiti Spendibilità 2Piero Scotto - C14.
Sviluppare un programma in C che, dato un array da 100 elementi interi caricato con numeri casuali compresi tra [10,100], sia in grado di cercare il valore.
-17 Aspettative economiche – Europa Settembre 2013 Indicatore > +20 Indicatore 0 a +20 Indicatore 0 a -20 Indicatore < -20 Unione Europea Totale: +6 Indicatore.
NO WASTE Progetto continuità scuola primaria scuola secondaria Salorno a.s. 2013_
I chicchi di riso e la sfida al Bramino
Mercato del lavoro e condizione giovanile: la crisi si acuisce
Il numero più grande Accademia dei Lincei
TRASFORMATA DI FOURIER
IL GIOCO DEL PORTIERE CASISTICA. Caso n. 1 Il portiere nella seguente azione NON commette infrazioni.
Transcript della presentazione:

21 marzo 2002 (ri-)Avvisi: Giovedi 28 marzo la lezione e sospesa. Nuovo indirizzo di Spedire messaggi e esercizi solo qui!!!

La struttura di selezione multipla switch Formato switch ( variabile ){ case val-1 : azioni case val-2 : azioni …… case val-k : azioni default: azioni } val-1, val-2,…… val-k sono k valori di costanti intere per variabile

Sommario 1. Inizializzazione 2. Input dei dati 2.1 switch loop per aggiornare count 1/* Fig. 4.7: fig04_07.c 2 Counting letter grades */ 3#include 4 5int main() 6{6{ 7 int grade; 8 int aCount = 0, bCount = 0, cCount = 0, 9 dCount = 0, fCount = 0; printf( "Enter the letter grades.\n" ); 12 printf( "Enter the EOF character to end input.\n" ); while ( ( grade = getchar() ) != EOF ) { switch ( grade ) { /* switch nested in while */ case 'A': case 'a': /* grade was uppercase A */ 19 ++aCount; /* or lowercase a */ 20 break; case 'B': case 'b': /* grade was uppercase B */ 23 ++bCount; /* or lowercase b */ 24 break; case 'C': case 'c': /* grade was uppercase C */ 27 ++cCount; /* or lowercase c */ 28 break; case 'D': case 'd': /* grade was uppercase D */ 31 ++dCount; /* or lowercase d */ 32 break;

Sommario 2.1 Use switch loop to update count 3. Print results case 'F': case 'f': /* grade was uppercase F */ 35 ++fCount; /* or lowercase f */ 36 break; case '\n': case' ': /* ignore these in input */ 39 break; default: /* catch all other characters */ 42 printf( "Incorrect letter grade entered." ); 43 printf( " Enter a new grade.\n" ); 44 break; 45 } 46 } printf( "\nTotals for each letter grade are:\n" ); 49 printf( "A: %d\n", aCount ); 50 printf( "B: %d\n", bCount ); 51 printf( "C: %d\n", cCount ); 52 printf( "D: %d\n", dCount ); 53 printf( "F: %d\n", fCount ); return 0; 56}

Precisazione while ( ( grade = getchar() ) != EOF ) EOF e il carattere end-of-file. Dipende dal sistema operativo: MS-DOS ctrl-z Unix ctrl-d Valore numerico di EOF e solitamente –1 (comunque un valore negativo)

Le istruzioni break e continue break –Causa una uscita immediata da una struttura while, for, do/while o switch –Lesecuzione del programma continua con la prima istruzione dopo la struttura –Uso consueto dellistruzione break Uscire prima da un loop Saltare la parte rimanente della struttura switch

Sommario 1. Inizializzazione delle variabili 2. Loop 3. Print Output 1/* Fig. 4.12: fig04_12.c 2 Usare listruzione break in una structura for */ 3#include 4 5int main() 6{6{ 7 int x; 8 9 for ( x = 1; x <= 10; x++ ) { if ( x == 5 ) 12 break; /* interrompe il ciclo solo 13 if x == 5 */ printf( "%d ", x ); 16 } printf( "\n Broke out of loop at x== %d\, x ); 19 return 0; 20} Broke out of loop at x== 5

Le istruzioni break e continue continue –Salta le istruzioni restanti nel corpo di una struttura while, for, do/while Procede con literazione successiva nel loop –while, do/while La condizione di continuazione del ciclo e valutata immediatamente dopo che viene eseguita listruzione continue –for Viene eseguita lespressione di incremento, poi viene valutata la condizione di iterazione

Sommario Inizializzazione delle variabili Loop Print Output 1/* Fig. 4.12: fig04_12.c 2 Uso di continue in una struttura for */ 3#include 4 5int main() 6{6{ 7 int x; 8 9 for ( x = 1; x <= 10; x++ ) { if ( x == 5 ) 12 continue; /* salta il codice restante del 13 ciclo solo if x == 5 */ printf( "%d ", x ); 16 } printf("\nUsed continue to skip printing value 5\n"); 19 return 0; 20} Used continue to skip printing the value 5

Osservazioni su break e continue –break, continue violano le norme della programmazione strutturata, ma sono tollerate poiche sono piu efficienti (se usate bene!) delle corrispondenti tecniche strutturate….

Operatori Logici && (AND logico ) –Restituisce true se entrambe le condizioni sono true || (OR logico ) –Restituisce true se almeno una delle condizioni e true ! (NOT logico, negazione logica) –Inverte la verita/falsita della sua condizione –Operatore unario Molto utili come condizioni per i loop Espressione Risultato true && false false true || false true !false true

Confondere loperatore di uguaglianza (==) con loperatore di assegnamento (=) Errore pericoloso –Non causano generalmente errori di sintassi –Ogni espressione che produce un valore puo essere usata in una struttura di controllo –Valori Nonzero sono true, Valori zero sono false Esempio: if ( payCode == 4 ) printf( "You get a bonus!\n" ); –Controlla paycode, se e 4 allora viene dato un bonus

Confondere loperatore di uguaglianza (==) con loperatore di assegnamento (=) Se sostituiamo == con = if ( payCode = 4 ) printf( "You get a bonus!\n" ); –Questo assegna a paycode il valore 4 –4 e nonzero, dunque lespressione e true, e il bonus viene dato indipendentemente da quanto fosse il valore di paycode –Errore logico, non di sintassi

Programmazione Strutturata Tutti i programmi si possono dividere in tre parti: Sequenza - Selezione - if, if/else, o switch Iterazione - while, do/while, or for Ogni selezione si puo riscrivere come istruzione if, Ogni iterazione si puo riscrivere come istruzione while I programmi si possono ridurre a : –Sequenza –Struttura if (selezione) –Struttura while (iterazione) Le strutture di controllo si possono combinare solo in due modi: nidificazione (reg. 2) e accatastamento (reg.3)

Le funzioni Divide et impera –Costruire un programma da piccoli pezzi detti moduli –Ogni pezzo e maneggiabile piu facilmente dellintero problema.

Funzioni –Moduli di programmi in C –Programmi vengono scritti combinando funzioni definite dallutente e funzioni della libreria La libreria standard del C ha una grande varieta di funzioni Rende il lavoro del programmatore piu semplice…. … si evita di riinventare la ruota…

Funzioni Chiamate di funzioni –Specifica il nome della funzione e delle informazioni (gli argomenti) necessari per la sua esecuzione. –Esegue operazioni o manipolazioni –Restituisce dei risultati Una analogia –Il boss chiede alloperaio di svolgere un compito –Loperaio prende le informazioni necessarie, svolge il compito e riporta i risultati –Information hiding: il boss non conosce i dettagli

Funzioni della libreria matematica Per eseguire tutti i comuni calcoli matematici –#include Formato per la chiamata di funzioni –FunctionName (argument); Vari argomenti si scrivono separati da virgola –printf( "%.2f", sqrt( ) ); Chiama la funzione sqrt, che calcola la radice quadrata del suo argomento Tutte le funzioni matematiche restituiscono un tipo double –Gli argomenti possono essere costanti, variabili o espressioni.

Funzioni Tutte le variabili dichiarate allinterno di funzioni sono variabili locali. –Note solo nella definizione della funzione Parametri –Comunicano informazioni tra funzioni

Definizione di funzioni Formato per definizione di funzioni tipo-restituito nome-funzione ( lista-parametri ) { dichiarazioni e istruzioni }

Definizione di funzioni –Tipo-restituito: tipo di dato del risultato (default int ) void – la funzione non restituisce nulla –Nome-funzione: qualunque nome di identificatore valido

Definizione di funzioni –Lista-parametri: dichiarazione dei parametri, separati da virgole che saranno ricevuti dalla funzione. Se non deve ricevere alcun valore uso void oppure () Ogni parametro deve essere specificato con il suo tipo (default int ) (float x, y) (float x,int y) (float x, float y) NO! SI!

Definizione di funzioni –Dichiarazioni e istruzioni: corpo della funzione (blocco) Si possono dichiarare variabili allinterno di blocchi (variabili locali) Non si puo dichiarare come variabile locale un parametro della funzione Non si puo definire una funzione dentro unaltra funzione

Definizione di funzioni –Ritorno del controllo Se nulla deve essere restituito –return; –o, si raggiunge semplicemente la parentesi } Se qualcosa deve essere restituito –return espressione ;

Sommario Prototipo Funzione (3 parametr) Input Chiamata funzione Definizione funzione Prototipi di funzione Function prototy pe Functio n nam e Paramet ers - what the funct ion takes in Return type - data type funct ion retur ns (defa ult int ) Used to valid ate funct ions Prototyp e only need ed if funct ion defin ition com es after use in prog ram int max imu m( int, int, int ); Tak e s i n 3 i n t s Ret u r n s a n i n t Promotion rules and convers ions Convert ing to lowe r types can lead to error s 1/* Fig. 5.4: fig05_04.c 2 trovare il massimo di tre interi */ 3#include 4 5int maximum( int, int, int ); /* prototipo 6 7int main() 8{8{ 9 int a, b, c; printf( "Enter three integers: " ); 12 scanf( "%d%d%d", &a, &b, &c ); 13 printf("Maximum is: %d\n", maximum( a, b, c )); return 0; 16} 17 18/* Definizione della funzione massimo */ 19int maximum( int x, int y, int z ) 20{ 21 int max = x; if ( y > max ) 24 max = y; if ( z > max ) 27 max = z; return max; 30} funzione */

Prototipi di funzioni –Nome della funzione –Parametri ricevuti dalla funzione –Tipo restituito dalla funzione (default int ) –Si usano per validare le funzioni –Sono necessari solo se la definizione della funzione viene dopo il suo utilizzo nel programma int maximum( int, int, int ); Prende 3 int Restituisce int

Header File (File di intestazione) Header File –Contiene i prototipi delle funzioni di una certa libreria –,, etc –Si includono con #include #include Header file personalizzati –Creo file con i prototipi delle mie funzioni –Lo salvo come filename.h –Lo includo nei programmi con #include "filename.h" –Permette di riutilizzare delle funzioni fatte da noi

Generazione di numeri random funzione rand –Si trova in –Restituisce un numero "random" 0 e RAND_MAX (almeno 32767) i = rand(); Pseudorandom –Sequenza prefissata di numeri "random" –Stessa sequenza ogni volta che si chiama la funzione

Generazione di numeri random Scaling –Per avere un numero random tra number tra 1 e n 1 + ( rand() % n ) rand % n restituisce un numero tra 0 e n ( rand() % 6) // numero tra 1 e 6

Generazione di numeri random funzione srand –Si trova in –Prende un intero seed – salta in una locazione della sequenza "random srand( seed ); –srand( time( NULL ) ); //load time( NULL )- ora corrente espressa in sec.

Sommario 1. Dichiara la variabile seed 2. Input valore per seed 2.1 Usa srand per cambiare la sequenza random 2.2 Definisce Loop 3. Genera e da in output numeri random 1/* Fig. 5.9: fig05_09.c 2 Randomizing die-rolling program */ 3#include 4#include 5 6int main() 7{7{ 8 int i; 9 unsigned seed; printf( "Enter seed: " ); 12 scanf( "%u", &seed ); 13 srand( seed ); for ( i = 1; i <= 10; i++ ) { 16 printf( "%10d", 1 + ( rand() % 6 ) ); if ( i % 5 == 0 ) 19 printf( "\n" ); 20 } return 0; 23}

Sommario Output Enter seed: Enter seed: Enter seed:

Esercizi: Esercizio 4.33 Scrivere un programma che visualizzi una tabella contenente tutti i numeri romani in corrispondenza dei numeri interi decimali da 1 a 100.