Laboratorio di Informatica
|
|
- Faustina Romano
- 7 anni fa
- Visualizzazioni
Transcript
1 Laboratorio di Informatica Ingegneria Meccanica Lezione 3, 8 ottobre 2007 versione 9 ottobre 2007 Renato Menicocci <rmenicocci@fub.it> <menicocci@die.uniroma.it> Interi in complemento a 2 (I) Con N bit sono rappresentabili, in complemento a 2, tutti gli interi nell'intervallo [-2^(N-), 2^(N-)-] Esempio: 6 bit, [-32768, 32767] Valori non negativi/negativi distinguibili in base al valore del bit più significativo (msb = 0/) Esempi su 8 bit 0 rappresenta 27 (msb = 0) rappresenta -28 (msb = ) Se R(X) è la rappresentazione su N bit di X, allora, se X è rappresentabile su N bit, R(-X) si può ottenere così:. si inverte ogni bit in R(X) (0, 0) 2. si somma 2 Interi in complemento a 2 (II) Esempio su 8 bit: 00 0 (6) (-6) (somma eseguita con regole ordinarie usate in base 2) E una forma di rappresentazione posizionale in cui, su N bit, il valore dell'msb è -2^(N-) e non 2^(N-) Esempio su 8 bit: -6 = -2^7+2^6+2^+2^0 Estensione del segno: attenzione alla rappresentazione di numeri negativi quando si aumenta il numero di bit Esempi su 6 bit Interi in complemento a 2 (III) Se si resta nei limiti di rappresentazione previsti per N bit, il risultato, in complemento a 2, di somme/sottrazioni tra numeri in complemento a 2 può essere ottenuto con la somma ordinaria, troncando il risultato su N bit Esempio su 8 bit = -8 (-8 è nei limiti) Esempio su 8 bit 6 + (-6) = 0 (0 è nei limiti, scartare msb) = =
2 Interi in complemento a 2 (IV) -- Tipo short int in C -- Esempio su 8 bit 6 + (-43) = 8 (8 è nei limiti, scartare msb) Esempio su 8 bit (-) = -29 (-29 non è nei limiti (errore di overflow)) Esempio su 8 bit 27 + = 28 (28 non è nei limiti (errore di overflow)) = = = Intervallo minimo: [-32767, 32767] Intervallo vero: dipende dall implementazione; è specificato da SHRT_MIN e SHRT_MAX nel file limits.h Dimensione di una variabile di tipo short int: dipende dall implementazione; per l intervallo minimo sono sufficienti 6 bit tipicamente, è quella in complemento a 2 Nelle dichiarazioni: short int o short Specifica di conversione per scanf/printf: %hd Tipo int in C -- Intervallo minimo: [-32767, 32767] Intervallo vero: dipende dall implementazione; è specificato da INT_MIN e INT_MAX nel file limits.h; deve includere l intervallo usato per il tipo short int Dimensione di una variabile di tipo int: dipende dall implementazione; per l intervallo minimo sono sufficienti 6 bit tipicamente, è quella in complemento a 2 Nelle dichiarazioni: int Specifica di conversione per scanf/printf: %d -- Tipo long int in C -- Intervallo minimo: [ , ] Intervallo vero: dipende dall implementazione; è specificato da LONG_MIN e LONG_MAX nel file limits.h; deve includere l intervallo usato per il tipo int Dimensione di una variabile di tipo long int: dipende dall implementazione; per l intervallo minimo sono sufficienti 32 bit tipicamente, è quella in complemento a 2 Nelle dichiarazioni: long int o long Specifica di conversione per scanf/printf: %ld 7 8
3 -- Tipo unsigned short int in C -- Intervallo minimo: [0, 65535] Intervallo vero: dipende dall implementazione, è specificato da USHRT_MAX nel file limits.h (valore minimo è sempre 0) Dimensione di una variabile di tipo unsigned short int: dipende dall'implementazione; per l intervallo minimo sono sufficienti 6 bit tipicamente, è quella posizionale Nelle dichiarazioni: unsigned short int o unsigned short Specifica di conversione per scanf/printf: %hu, %ho (ottale), %hx o %hx (esadecimale, lettere minuscole o maiuscole) 9 -- Tipo unsigned int in C -- Intervallo minimo: [0, 65535] Intervallo vero: dipende dall implementazione, è specificato da UINT_MAX nel file limits.h (valore minimo è sempre 0) Dimensione di una variabile di tipo unsigned int: dipende dall implementazione; per l'intervallo minimo sono sufficienti 6 bit tipicamente, è quella posizionale Nelle dichiarazioni: unsigned int o unsigned Specifica di conversione per scanf/printf: %u, %o (ottale), %x o %X (esadecimale, lettere minuscole o maiuscole) 0 -- Tipo unsigned long int in C -- Intervallo minimo: [0, ] Intervallo vero: dipende dall implementazione, è specificato da ULONG_MAX nel file limits.h (valore minimo è sempre 0) Dimensione di una variabile di tipo unsigned long int: dipende dall implementazione; per l intervallo minimo sono sufficienti 32 bit tipicamente, è quella posizionale Nelle dichiarazioni: unsigned long int o unsigned long Specifica di conversione per scanf/printf: %lu, %lo (ottale), %lx o %lx (esadecimale, lettere minuscole o maiuscole) -- Specifiche di conversione per tipi int -- short int %hd unsigned short int %hu %ho %hx %hx int %d unsigned int %u %o %x %X long int %ld unsigned long int %lu %lo %lx %lx 2
4 -- Operandi interi in C (I) -- Variabili di uno dei tipi int Costanti usate direttamente nelle espressioni Esempio (a, b, c intere): b = 2 * a + 33 * b - c / 9 ; Una costante viene specificata con segno (opz.): + o - sequenza di cifre: in base 0, 8 (prefisso 0, [0-7]) o 6 (prefisso 0x o 0X, [0-9], [a-f] o [A-F] ) suffisso (opz.): u o U per unsigned, l o L per long Esempi L (base 0) 0xFFFFFFFFl (base 6) (base 8) 0XaAaA (base 6) L (base 0) 3 -- Operandi interi in C (II) -- E possibile introdurre costanti intere con la direttiva di compilazione #define usando il formato #define nome valore Effetto di #define nome valore: ogni occorrenza successiva di nome nel testo del programma sarà rimpiazzata con valore (eccezioni: nome compare in una porzione del testo del programma delimitata da /* */ o " ") In #define nome valore per nome valgono le stesse regole date per il nome di variabili per valore, per produrre valori numerici corretti, usare le stesse regole date per le costanti nelle espressioni 4 -- Operandi interi in C (III) -- Esempio: #define K L produce la sostituzione di K con L Esempio (Attenzione!): #define COSTOBASE = 235 produce la sostituzione di COSTOBASE con = 235 Una #define nome valore può essere introdotta dove necessario nel testo del programma ed è elaborata dal preprocessore (attivato dal compilatore) a tempo di compilazione L uso di #define nome valore consente di modificare i valori delle costanti in uso aggiornando solo la porzione #define, senza altri interventi sul testo del programma -- Tipo di una costante intera in C -- Il tipo di una costante intera dipende da come il valore di questa viene specificato Base 0, senza suffisso: primo tipo, tra int, long int e unsigned long int, compatibile con il valore Base 8 o 6, senza suffisso: primo tipo, tra int, unsigned int, long int e unsigned long int, compatibile con il valore Con suffisso u o U: primo tipo, tra unsigned int e unsigned long int, compatibile con il valore Con suffisso l o L: primo tipo, tra long int e unsigned long int, compatibile con il valore La determinazione del tipo di una costante intera è rilevante per la valutazione delle espressioni 5 6
5 -- Operatori aritmetici per interi in C -- Operatori binari (due operandi): somma (+), sottrazione (-), prodotto (*), quoziente (/), resto (%) Operatori unari (un operando): segno (+), inversione segno (-) Attenzione: se il risultato di un operazione eccede i limiti della rappresentazione in uso, si hanno effetti dipendenti dall implementazione Attenzione: se almeno uno degli operandi in / e % è negativo, o in caso di divisore nullo, si hanno effetti dipendenti dall implementazione Nelle espressioni, le coppie di parentesi ( ) stabiliscono la priorità di applicazione degli operatori (dalle coppie più interne verso le più esterne) 7 -- Operatori relazionali per interi in C (I) -- Operatori binari (due operandi) per confronto ordinato: maggioranza (>), minoranza (<), maggioranza o uguaglianza (o non minoranza) (>=), minoranza o uguaglianza (o non maggioranza) (<=) Operatori binari (due operandi) per confronto non ordinato: uguaglianza (==) (Attenzione!), diversità (o non uguaglianza) (!=) Sono usati per formulare condizioni (espressioni condizionali o logiche) e producono un risultato binario (due possibili valori) intepretato come valore logico: 0() indica che, con gli operandi specificati, la condizione è falsa(vera) Possono apparire in espressioni in cui appaiono operatori di altro tipo 8 -- Operatori relazionali per interi in C (II) -- Esempi (assumendo x, y, w, z di tipo int e x = 3, y = -7, w = al tempo di valutazione delle espressioni seguenti) z = (x == 3) ; ( assegnato a z poiché x vale 3) z = ((x + 3) <= (y + w)) ; (0 assegnato a z poiché x + 3 vale 6 e y + w vale 4) y!= 5 (vale ) x == (y +0) (vale ) (y + 0) == x (vale (confronto non ordinato!)) x < w (vale ) w < x (vale 0 (confronto ordinato!)) 9 Operatori logici (I) Sono usati per combinare costanti, variabili, espressioni logiche, aventi valore FALSO o VERO, e producono nuovi valori FALSO o VERO AND, OR: operatori binari (due operandi); NOT: operatore unario (un operando) X AND Y: produce valore VERO solo se X e Y hanno entrambi valore VERO X OR Y: produce valore FALSO solo se X e Y hanno entrambi valore FALSO NOT X: inverte valore di X Operatori e valori di questo tipo sono detti booleani (da Boole) 20
6 Operatori logici (II) A B A AND B A OR B FALSO FALSO FALSO FALSO FALSO VERO FALSO VERO VERO FALSO FALSO VERO VERO VERO VERO VERO NOT A VERO FALSO -- Operatori logici in C (I) -- Per le operazioni logiche di AND, OR e NOT sono disponibili, rispettivamente, gli operatori &&, e! Gli operandi interi di un operatore logico vengono resi logici in questo modo: il valore 0 viene intepretato come FALSO, mentre un valore diverso da 0 (qui indicato con 0) viene interpretato come VERO &&, e! forniscono come risultato 0 (inteso come FALSO) o (inteso come VERO) Proprietà di associatività (X AND Y) AND Z = X AND (Y AND Z) = X AND Y AND Z (X OR Y) OR Z = X OR (Y OR Z) = X OR Y OR Z 2 A B A && B A B!A Operatori logici in C (II) -- A B A && B A B!A La valutazione delle espressioni contenenti && e obbedisce alle regole seguenti espressione && espressione2: Se espressione vale 0 (FALSO), espressione2 non viene valutata e l espressione complessiva vale 0 (FALSO) espressione espressione2: Se espressione vale 0 (VERO), espressione2 non viene valutata e l espressione complessiva vale (VERO) Esempi di espressioni logiche in C -- Esempi (assumendo x, y, w, z di tipo int e x = 3, y = -7, w = al tempo di valutazione delle espressioni seguenti) z = ((x == 3) && (y == -7)) ; ( assegnato a z) z = ((x!= 2) ((y + w) == 5)) ; ( assegnato a z)!w (vale 0 poiché w non vale 0) x == ((!y) +0) (vale 0) (y > ) && z (vale 0 (valore di z ininfluente)) (y < ) z (vale (valore di z ininfluente)) 24
7 Uso degli operatori logici Formulazione di condizioni Esempio: Le condizioni affinchè un triangolo di lati a, b, c risulti equilatero, isoscele o scaleno possono essere formulate come segue equilatero: ( a = b ) AND ( a = c ) isoscele: (( a = b ) AND ( a c )) OR (( a = c ) AND ( a b )) OR (( b = c ) AND ( a c )) -- Uso degli operatori logici in C -- In C, le precedenti formulazioni assumono le forme seguenti (si ipotizzano lati a valori interi) equilatero: ( a == b ) && ( a == c ) isoscele: (( a == b ) && ( a!= c )) (( a == c ) && ( a!= b )) (( b == c ) && ( a!= c )) scaleno: (a!= b) && (a!= c) && (b!= c) scaleno: (a b) AND (a c) AND (b c) Strutture di controllo La formulazione di molti algoritmi richiede che il linguaggio di programmazione in uso offra la possibilità di modificare il flusso di esecuzione delle istruzioni in base al valore di un espressione (modifiche condizionate) Strutture di selezione: permettono la ramificazione condizionata del flusso Strutture di iterazione: permettono la ripetizione condizionata di una data sequenza di istruzioni -- Strutture di controllo in C -- Le istruzioni if, if else, switch forniscono meccanismi per la scelta tra azioni alternative Le istruzioni while e for forniscono meccanismi per l iterazione condizionata Blocco di istruzioni: sequenza di istruzioni delimitata da parentesi graffe { istr ; istr2 ; ; istrn ; } In caso di blocco di singola istruzione, le parentesi graffe possono essere omesse { istr ; } equivale a istr ; 27 28
8 -- Strutture di selezione in C -- Selezione singola if: si sceglie di eseguire o non eseguire una singola azione Selezione doppia if else: si esegue una tra due azioni logicamente distinte (caso particolare: una delle due azioni è nulla selezione singola) Selezione multipla switch: si esegue una tra un certo numero di azioni logicamente distinte Un azione è formulata con un blocco di istruzioni La selezione avviene sempre in base al valore di un espressione, distinguendo solo due casi: zero (0) e diverso da zero ( 0) Istruzione if -- Formato if ( espressione ) { istruzione ; istruzione2 ; ; } istruzione istruzione espressione Il valore di espressione ( 0 o 0) determina la scelta tra eseguire o non eseguire il blocco { istruzione ; istruzione2 ; ; } 30 istruzione istruzione2. -- Istruzione if else -- Formato if ( espressione ) { istruzione ; istruzione2 ; ; } else { istruzionea ; istruzioneb ; ; } 0 0 espressione istruzionea istruzioneb. Il valore di espressione ( 0 o 0) determina la scelta tra eseguire il blocco { istruzione ; istruzione2 ; ; } o eseguire il blocco { istruzionea ; istruzioneb ; ; } 3 -- Strutture if else nidificate -- E possibile ottenere ramificazioni complesse inserendo strutture if else nei blocchi istruzioni di altre strutture if else Una scrittura indentata e corretta* può facilitare la lettura del programma e semplificare al programmatore l associazione di un else con il proprio if [*il compilatore, in accordo alle regole del linguaggio C, associa uno specifico else al primo if che, oltre a precedere l else, risulti compatibile con l associazione (indipendentemente dal fatto che si sia usata una scrittura con indentazione)] 32
9 -- Determinare il tipo di un triangolo (I) -- c = ( a == b ) ; /* lati (interi) a, b, c */ c2 = ( a == c ) ; c3 = ( b == c ) ; if ( c ) { if ( c2 ) printf( "equilatero\n" ) ; /* c && c2 */ else printf( "isoscele\n" ) ; /* c &&!c2 */ } else /*!c */ { if ( c2 ) printf( "isoscele\n" ) ; /*!c && c2 */ else if ( c3 ) printf( "isoscele\n" ) ; /*!c &&!c2 && c3 */ else printf( "scaleno\n" ) ; /*!c &&!c2 &&!c3 */ } -- Determinare il tipo di un triangolo (II) -- Analisi dei casi da cui deriva la formulazione precedente c = ( a == b ) c2 = ( a == c ) equilatero 0 isoscele 0 c2 = ( a == c ) 0 c3 = ( b == c ) isoscele 0 scaleno -- Determinare il tipo di un triangolo (III) -- Dall analisi dei casi, si ottiene anche la seguente formulazione alternativa c = ( a == b ) ; /* lati (interi) a, b, c */ c2 = ( a == c ) ; c3 = ( b == c ) ; /* N.B.!c &&!c2 && c3 equivale a!c2 && c3 */ if ( c && c2 ) printf( "equilatero\n" ) ; if (( c &&!c2 ) ( c2 &&!c ) ( c3 &&!c2 )) printf( "isoscele\n" ) ; if (!c &&!c2 &&!c3 ) printf( "scaleno\n" ) ; Strutture di iterazione Le strutture di iterazione permettono di specificare un azione che dovrà essere ripetuta sotto il controllo di una condizione Iterazione indefinita: controllata da un valore sentinella (il numero di iterazioni non è noto in anticipo) Iterazione definita: controllata dal valore di un contatore (il numero di iterazioni è noto in anticipo) 36
10 -- Istruzione while -- Formato while ( espressione ) { istruzione ; istruzione2 ; ; } 0 istruzione istruzione2. espressione Il valore di espressione ( 0 o 0) determina la scelta tra eseguire il blocco { istruzione ; istruzione2 ; ; } e valutare di nuovo espressione o uscire dalla struttura Lunghezza di una sequenza di interi int main( ) { int numero, contatore = 0 ; printf( "Inserire sequenza di interi non nulli\n" ) ; printf( "Inserire 0 per terminare\n" ) ; /* valore sentinella è 0 */ scanf( "%d", &numero ) ; while ( numero!= 0 ) { /* valore sentinella è 0 */ contatore = contatore + ; scanf( "%d", &numero ) ; } printf( "Lunghezza sequenza = %d\n", contatore ) ;... return 0 ; } 38
Laboratorio di informatica Ingegneria meccanica
Interi in complemento a 2 () Laboratorio di informatica Ingegneria meccanica Lezione 5 29 ottobre 2007 Con N bit sono rappresentabili tutti gli interi nell'intervallo [-2^(N-), 2^(N-)-] Esempio: 6 bit,
DettagliLaboratorio di Informatica Ingegneria Clinica Lezione 9/11/2011. Prof. Raffaele Nicolussi
Laboratorio di Informatica Ingegneria Clinica Lezione 9/11/2011 Prof. Raffaele Nicolussi FUB - Fondazione Ugo Bordoni Via del Policlinico, 147-00161 Roma Università degli Studi La Sapienza Fondamenti di
DettagliLaboratorio di Informatica
Laboratorio di Informatica Ingegneria Meccanica Esercitazione 3, 23 ottobre 2007 versione 3 novembre 2007 Limiti per tipi int #include rende visibili le costanti simboliche SHRT_MIN, SHRT_MAX,
DettagliLaboratorio di informatica Ingegneria meccanica
C: costanti introdotte con #define Laboratorio di informatica Ingegneria meccanica Lezione 4 22 ottobre 2007 Forma: #define nome valore Effetto: ogni occorrenza successiva di nome sarà rimpiazzata con
DettagliLaboratorio di informatica Ingegneria meccanica
Rappresentazione ed interpretazione Laboratorio di informatica Ingegneria meccanica Insieme dei valori da rappresentare interpretazione rappresentazione Insieme delle sequenze di K bit Lezione 2 8 ottobre
DettagliPrecisazione sui tipi in ANSi C
Precisazione sui tipi in ANSi C Tipi primitivi del C Un tipo è costituito da un insieme di valori ed un insieme di operazioni su questi valori. Classificazione dei tipi primitivi del C scalari aritmetici:
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
DettagliElementi lessicali. Lezione 4. La parole chiave. Elementi lessicali. Elementi lessicali e espressioni logiche. Linguaggi di Programmazione I
Lezione 4 Elementi lessicali e espressioni logiche Matricole 2-3 Elementi lessicali il linguaggio C ha un suo vocabolario di base i cui elementi sono detti token esistono 6 tipi di token: parole chiave
DettagliStrutture di Controllo Condizionali e Operatori Logici e Relazionali
Linguaggio C Strutture di Controllo Condizionali e Operatori Logici e Relazionali 1 Strutture di Controllo! Controllano il flusso di esecuzione di un programma Istruzioni di selezione: permettono di selezionare
DettagliLaboratorio di Programmazione 1. Docente: dr. Damiano Macedonio Lezione 5 31/10/2013
Laboratorio di Programmazione 1 1 Docente: dr. Damiano Macedonio Lezione 5 31/10/2013 Original work Copyright Sara Migliorini, University of Verona Modifications Copyright Damiano Macedonio, University
Dettagli1
Manuali di C Linguaggio C B. W. Kernigan, D. M. Ritchie Jackson La guida completa al C H. Schildt McGraw-Hill Fondamenti di Informatica 1 Linguaggio C Creato nei primi anni 70 per sviluppare il S.O. Unix
DettagliTipi di dato. Le variabili in C. Problema: dato in input un carattere, se esso è una lettera minuscola, trasformarla in maiuscola.
Tipi di dato Le variabili in C KP Cap.3 pp.95-129 Cap.5 pp.190-193 DD Cap. 9 pp.352-355 Abbiamo già parlato delle variabili, ed abbiamo fin ora usato il tipo int, ma abbiamo molte altre possibiltà I tipi
DettagliLaboratorio di informatica Ingegneria meccanica
( 1 ) Rappresentazione di numeri reali Laboratorio di informatica Ingegneria meccanica Lezione 8 26 novembre 2007 Numerazione posizionale: d n d 1 d 0.d -1 d -2 d -m rappresenta d n B n + + d 1 B 1 + d
DettagliLinguaggio C: Espressioni
Linguaggio C: Espressioni Moreno Marzolla Dipartimento di Informatica Scienza e Ingegneria (DISI) Università di Bologna http://www.moreno.marzolla.name/ 2 Ringraziamenti prof. Mirko Viroli, Università
DettagliStrutture di Controllo Condizionali e Operatori Logici e Relazionali
Linguaggio C Strutture di Controllo Condizionali e Operatori Logici e Relazionali 1 Strutture di Controllo n Controllano il flusso di esecuzione di un programma Istruzioni di selezione: permettono di selezionare
DettagliLaboratorio di Informatica Ingegneria Clinica Lezione 7/11/2011. Prof. Raffaele Nicolussi
Laboratorio di Informatica Ingegneria Clinica Lezione 7/11/2011 Prof. Raffaele Nicolussi FUB - Fondazione Ugo Bordoni Via del Policlinico, 147-00161 Roma Docente Raffaele Nicolussi rnicolussi@fub.it Lezioni
DettagliIntroduzione alle operazioni di I/O con formato e tipi primitivi
Introduzione alle operazioni di I/O con formato e tipi primitivi Un programma C legge normalmente i dati su cui operare dallo standard input (stdin) e comunica con l esterno scrivendo dati sullo standard
DettagliAssegnamento. Ricordiamo che l esecuzione di x = exp corrisponde a: Esempio: somma = 5; a = 2; somma = somma + a; somma 5 = 7 a 2 2
Assegnamento Assegnamento Ricordiamo che l esecuzione di x = exp corrisponde a: 1. valutare il valore dell espressione exp a destra di = (usando i valori correnti delle variabili); 2. assegnare poi tale
DettagliIstruzioni Condizionali
Corso di Laurea Ingegneria Informatica Fondamenti di Informatica Dispensa 10 Istruzioni Condizionali Carla Limongelli Novembre 2011 http://www.dia.uniroma3.it/~java/fondinf/ Istruzioni condizionali 1 Contenuti
DettagliEsempi comparati while, do...while
Esempi comparati while, do...while Algoritmo. - inizializza Somma a zero - finchè la risposta è "continuazione" - visualizza messaggio - acquisisci un numero I - aggiungi I a Somma - domanda se continuare
DettagliTipi di dato. Il concetto di tipo di dato viene introdotto per raggiungere due obiettivi:
Tipi di dato Il concetto di tipo di dato viene introdotto per raggiungere due obiettivi: esprimere in modo sintetico la loro rappresentazione in memoria, e un insieme di operazioni ammissibili permettere
DettagliTipi di dato. Funzioni. Il sistema dei tipi C. Tipi di dato. Quanti bit? I tipi interi in C
I tipi scalari in C Input/output dei tipi scalari Conversioni di tipo Funzioni 5 Il sistema dei tipi C di dato Tipi Scalari Tipi Strutturati void Tipi eri Tipi reali Enumerazioni Vettori Strutture Union
DettagliIl potere espressivo di un linguaggio è caratterizzato da: PROGRAMMA = DATI + CONTROLLO
LINGUAGGI DI PROGRAMMAZIONE Il potere espressivo di un linguaggio è caratterizzato da: quali tipi di dati consente di rappresentare (direttamente o tramite definizione dell utente) quali istruzioni di
DettagliEsercitazione 2. Espressioni booleane Il comando if-else
Esercitazione 2 Espressioni booleane Il comando if- Espressioni booleane L espressione (i==100) è un espressione booleana. La sua valutazione può restituire solo uno dei due valori booleani true = 1 (in
DettagliCast implicito. Il cast è fatto automaticamente quando un tipo più basso viene assegnato ad un tipo più alto. byte short int long float double
Il cast Cast implicito Il cast è fatto automaticamente quando un tipo più basso viene assegnato ad un tipo più alto Per esempio: byte short int long float double int x = 10; float f; f = x; Il valore di
DettagliLINGUAGGI DI PROGRAMMAZIONE!
LINGUAGGI DI PROGRAMMAZIONE! Il potere espressivo di un linguaggio è! caratterizzato da:! quali tipi di dati consente di rappresentare (direttamente o tramite definizione dell utente)! quali istruzioni
DettagliLinguaggio C. Tipi predefiniti e operatori. Università degli Studi di Brescia. Docente: Massimiliano Giacomin
Linguaggio C Tipi predefiniti e operatori Università degli Studi di Brescia Docente: Massimiliano Giacomin Elementi di Informatica e Programmazione Università di Brescia 1 RICHIAMI char 8 bit Valori interi
DettagliStrutture di Controllo Iterative: Istruzione FOR
Linguaggio C Strutture di Controllo Iterative: Istruzione FOR 1 Istruzioni iterative! Anche dette cicli! Prevedono l esecuzione ripetitiva di altre istruzioni (corpo del ciclo)! Ad ogni iterazione del
DettagliDati due punti sul piano calcolare la loro distanza
Introduzione al C Primo esempio in C Dati due punti sul piano calcolare la loro distanza Soluzione: la distanza fra due punti si calcola secondo il teorema di Pitagora, con la formula: y Distanza = (lato12
DettagliPer gli esercizi sulla algebra booleana, si consiglia di verificare tramite tabelle di verità le equivalenze logiche proposte sulle dispense.
Fondamenti di Informatica - A. Fantechi Raccolta di esercizi Per gli esercizi sulla algebra booleana, si consiglia di verificare tramite tabelle di verità le equivalenze logiche proposte sulle dispense.
DettagliVariabili. Tipi di dati di base. Variabili. Variabili
Variabili 2 Tipi di dati di base Ver. 2.4 2010 - Claudio Fornaro - Corso di programmazione in C Porzioni di memoria RAM usate per mantenere dati variabili nel tempo La definizione di una variabile riserva
DettagliValutazione di espressioni
Valutazione di espressioni Stefano Ferrari Università degli Studi di Milano stefano.ferrari@unimi.it Programmazione anno accademico 2016 2017 Blocco Blocco è un insieme di istruzioni consecutive, con un
DettagliLinguaggi di programmazione
Linguaggi di programmazione C LINGUAGGI DI PROGRAMMAZIONE Il potere espressivo di un linguaggio è caratterizzato da: quali tipi di dati consente di rappresentare (direttamente o tramite definizione dell
DettagliIl linguaggio C. Notate che...
Il linguaggio C Notate che... 1 Il C è un linguaggio a blocchi int main (void) { blocco } 2 Il C è un linguaggio a blocchi (2) Non è possibile mischiare dichiarazioni e comandi! int main (void) { } Dichiarazione
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
DettagliIL LINGUAGGIO C TIPI DI DATO
IL LINGUAGGIO C Un elaboratore è un manipolatore di simboli (segni) L'architettura fisica di ogni elaboratore è intrinsecamente capace di trattare vari domini di dati, detti tipi primitivi dominio dei
DettagliIdentificatori. Fondamenti di Informatica e laboratorio Intro C
Identificatori Sequenza (di lunghezza maggiore o uguale a 1) di lettere e cifre che inizia obbligatoriamente con una lettera. E' ammesso anche l'utilizzo dell'undescore _ Maiuscole e minuscole sono diverse
DettagliLaboratorio di Informatica I
Struttura della lezione Lezione 3: Istruzioni ed operatori booleani. Vittorio Scarano Corso di Laurea in Informatica Università di Salerno Soluzioni agli esercizi Istruzioni (statement) semplici e di controllo
DettagliDichiarazioni e tipi predefiniti nel linguaggio C
Politecnico di Milano Dichiarazioni e tipi predefiniti nel linguaggio C Variabili, costanti, tipi semplici, conversioni di tipo. Premessa Programmi provati sul compilatore Borland C++ 1.0 Altri compilatori:
DettagliLINGUAGGI DI PROGRAMMAZIONE
LINGUAGGI DI PROGRAMMAZIONE Il potere espressivo di un linguaggio è caratterizzato da: quali tipi di dati consente di rappresentare (direttamente o tramite definizione dell utente) quali istruzioni di
DettagliNUMERI NATURALI: INTERVALLO DI VALORI RAPPRESENTABILI INFORMAZIONI NUMERICHE
INFORMAZIONI NUMERICHE La rappresentazione delle informazioni numeriche è di particolare rilevanza Abbiamo già discusso i numeri naturali (interi senza segno) N = { 0,1,2,3, } Dobbiamo discutere come rappresentare
DettagliLaboratorio di Programmazione
Laboratorio di Programmazione (Laurea triennale in matematica) Lezione 3 Analisi dettagliata di un programma /* commento */ Possono estendersi su più linee apparire in qualsiasi parte del programma. Alternativamente
Dettagli#include <stdio.h> /* l esecuzione comincia dalla funzione main */ int main()
Primi passi Il mio primo programma #include /* l esecuzione comincia dalla funzione main */ int main() { printf( Hello World!\n" ); return 0; /* il programma termina con successo */ } /* fine
DettagliIntroduzione al linguaggio C Primi programmi
Introduzione al linguaggio C Primi programmi Violetta Lonati Università degli studi di Milano Dipartimento di Scienze dell Informazione Laboratorio di algoritmi e strutture dati Corso di laurea in Informatica
DettagliLaboratorio di Programmazione 1. Docente: dr. Damiano Macedonio Lezione 8 14/11/2013
Laboratorio di Programmazione 1 1 Docente: dr. Damiano Macedonio Lezione 8 14/11/2013 Original work Copyright Sara Migliorini, University of Verona Modifications Copyright Damiano Macedonio, University
DettagliLaboratorio di Informatica I
Struttura della lezione Lezione 2: Elementi lessicali, casting e while Vittorio Scarano Laboratorio di Informatica I Corso di Laurea in Informatica Università degli Studi di Salerno Soluzione agli esercizi
DettagliStrutture di Controllo Iterative: Istruzione FOR
Linguaggio C Strutture di Controllo Iterative: Istruzione FOR 1 Istruzioni iterative n Anche dette cicli n Prevedono l esecuzione ripetitiva di altre istruzioni (corpo del ciclo) n Ad ogni iterazione del
DettagliFondamenti di programmazione parte 2. Elementi di informatica IGLP
Fondamenti di programmazione parte 2 Elementi di informatica IGLP Questo insieme di trasparenze è stato ideato e realizzato dai ricercatori e professori del Dipartimento di Informatica e Sistemistica dell
DettagliVariabili, tipi, espressioni in C. Emilio Di Giacomo
Variabili, tipi, espressioni in C Emilio Di Giacomo Richiami generali tipo di dato: specifico dominio di valori variabile: "contenitore" che può memorizzare valori di uno specifico tipo di dato, detto
DettagliIl C nel C++ Struttura di un linguaggio. regole per la definizione i simboli. regole per la composizione dei simboli
Il C nel C++ Struttura di un linguaggio Livello lessicale: regole per la definizione i simboli Livello sintattico: regole per la composizione dei simboli Livello semantico: significato delle strutture
DettagliStruttura di un linguaggio
Il C nel C++ Struttura di un linguaggio Livello lessicale: regole per la definizione i simboli Livello sintattico: regole per la composizione dei simboli Livello semantico: significato delle strutture
DettagliIl corpo di tutte le funzioni deve essere contenuto tra parentesi graffe
Primi passi Il mio primo programma #include /* l esecuzione comincia dalla funzione main */ int main() { printf( Hello World!\n" ); return 0; /* il programma termina con successo */ } /* fine
DettagliIl C nel C++ Struttura di un linguaggio. Elementi lessicali. Spazi. Livello lessicale: Livello sintattico: Livello semantico:
Struttura di un linguaggio Il C nel C++ Livello lessicale: regole per la definizione i simboli Livello sintattico: regole per la composizione dei simboli Livello semantico: significato delle strutture
DettagliIntroduzione alla programmazione in C
Introduzione alla programmazione in C Testi Consigliati: A. Kelley & I. Pohl C didattica e programmazione B.W. Kernighan & D. M. Ritchie Linguaggio C P. Tosoratti Introduzione all informatica Materiale
DettagliLA CODIFICA LORENZO BRACCIALE
LA CODIFICA LORENZO BRACCIALE LORENZO.BRACCIALE@UNIROMA2.IT LA CODIFICA Serve per rappresentare un informazione La stessa informazione rappresentata in modi diversi ad es. 200 o duecento Stessa rappresentazione
DettagliTipi di dati fondamentali. Tipi di dati fondamentali. Utilità dei tipi di dati nelle dichiarazioni. Il tipo di dati char. Codice ASCII.
Tipi di dati fondamentali Tipi di dati fondamentali Linguaggi di Programmazione I Ferdinando Cicalese caratteri: char signed char unsigned char interi short int long interi unsigned short unsigned unsigned
DettagliLinguaggio C. Tipi predefiniti. Università degli Studi di Brescia. Prof. Massimiliano Giacomin. Prof. M. Giacomin
Linguaggio C Tipi predefiniti Università degli Studi di Brescia Prof. Massimiliano Giacomin Elementi di Informatica e Programmazione Università di Brescia 1 Il concetto di tipo (reprise) Nome che indica
DettagliEspressioni booleane. Esempio: temperatura <= 0 velocita > velocita max
Espressioni booleane Espressioni booleane il linguaggio deve consentire di descrivere espressioni booleane cioé espressioni che ritornino come risultato valori di verit : vero o falso (guardie di condizionali
DettagliProgrammazione Procedurale in Linguaggio C++
Programmazione Procedurale in Linguaggio C++ Strutture di Controllo Parte 2 Istruzioni Condizionali G. Mecca M. Samela Università della Basilicata Istruzioni Condizionali >> Sommario Sommario Introduzione
DettagliProgrammare in C. Maurizio Palesi Salvatore Serrano. Valori. Operazioni. Un insieme di valori del tipo. Per operare su tali valori Tipi
MASTER Information Technology Excellence Road (I.T.E.R.) Programmare in C Maurizio Palesi Salvatore Serrano Master ITER Informatica di Base Maurizio Palesi, Salvatore Serrano 1 Tipi di Dati Valori Un insieme
DettagliCorso di Fondamenti di Programmazione canale E-O. Tipi di dato. Un esempio
Corso di Fondamenti di Programmazione canale E-O Tiziana Calamoneri Le variabili in C KP Cap. 3, pp. 95-129 Cap. 5, pp. 190-193 DD Cap. 9, pp.352-355 Tipi di dato Abbiamo già parlato delle variabili, ed
DettagliUniversità degli Studi di Milano
Università degli Studi di Milano Corso di Laurea in Sicurezza dei Sistemi e delle Reti Informatiche Lezione 5 Controllo del flusso del programma FABIO SCOTTI Indice 1. CONCETTO DI BLOCCO IN C...3 2. DUE
DettagliLaboratorio di Informatica I
Struttura della lezione Lezione : Elementi lessicali del C Vittorio Scarano Corso di Laurea in Informatica Elementi lessicali e token Costanti Identificatori Operatori operatori di incremento/decremento
DettagliStruttura di un. Struttura dei programmi C
Parte 4 Struttura di un Programma Struttura dei programmi C Un programma C deve essere contenuto in uno o più file (salvo diversa specifica, per ora si assume in un file): 1. Una parte contenente direttive
DettagliInformatica AA 2005/06. Programmazione M.A. Alberti. Operatori in Java 1. Operatori in Java. Espressioni aritmetiche. Espressioni booleane
Operatori in Java Operatori in Java Corso di laurea in Informatica Operatori aritmetici Operatori di uguaglianza e relazionali Operatori logici in espressioni booleane La precedenza degli operatori L associatività
DettagliArchitettura degli Elaboratori e Laboratorio. Matteo Manzali Università degli Studi di Ferrara Anno Accademico
Architettura degli Elaboratori e Laboratorio Matteo Manzali Università degli Studi di Ferrara Anno Accademico 2016-2017 Analogico vs digitale Segnale analogico Segnale digitale Un segnale è analogico quando
DettagliLaboratorio di informatica Ingegneria meccanica
Laboratorio di informatica Ingegneria meccanica Lezione 7 19 novembre 2007 Concetto di modulo di un programma (1) Lo sviluppo di programmi complessi avviene tipicamente per composizione di moduli, ognuno
DettagliProgrammazione C Massimo Callisto De Donato
Università degli studi di Camerino Scuola di scienze e tecnologia - Sezione Informatica Programmazione C Massimo Callisto De Donato massimo.callisto@unicam.it www.cs.unicam.it/massimo.callisto LEZIONE
Dettagli2001 Pier Luca Montessoro, Davide Pierattoni (si veda la nota di copyright alla slide n. 2)
- Linguaggio C - Espressioni e operatori FONDAMENTI DI INFORMATICA Prof. PIER LUCA MONTESSORO Ing.DAVIDE PIERATTONI Facoltà di Ingegneria Università degli Studi di Udine Linguaggio C Espressioni e operatori
Dettagli2 Operatori matematici e costrutto if
Questa dispensa propone esercizi sulla scrittura di algoritmi, in linguaggio C, utili alla comprensione delle operazioni tra numeri e del costrutto condizionale if. Si introducono anche le due funzioni
Dettagli20/10/2014 M. Nappi/FIL 1
FIL Lezione 4: Istruzioni Iterative. Michele Nappi mnappi@unisa.it biplab.unisa.it 20/10/2014 M. Nappi/FIL 1 La struttura di Iterazione while Struttura tt di iterazione i Il programmatore specifica un
DettagliCorso: Fondamenti di Informatica 1 (gruppo 8-9) Corsi di laurea: Area dell'informazione Simulazione del Questionario a Risposte Multiple.
Domanda n. 1 Corso: Fondamenti di Informatica 1 (gruppo 8-9) Corsi di laurea: Area dell'informazione Simulazione del Questionario a Risposte Multiple 8-Nov-2004 Argomento: Rappresentazione dell'informazione
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
DettagliCodifica dei Tipi di Dati in Linguaggio C
Codifica dei Tipi di Dati in Linguaggio C In questa dispensa verrà illustrato come vengono codificati i tipi semplici del linguaggio C. In particolare considereremo i seguenti tipi di dato: il tipo intero
DettagliCorso di Fondamenti di Informatica Il sistema dei tipi in C++
Corso di Fondamenti di Informatica Il sistema dei tipi in C++ Anno Accademico Francesco Tortorella Struttura di un programma C++ // Programma semplice in C++ #include int main() { cout
DettagliEsercitazione 3. Espressioni booleane I comandi if-else e while
Esercitazione 3 Espressioni booleane I comandi if-else e while Esercizio Si consideri la seguente istruzione: if (C1) if (C2) S1; else S2; A quali delle seguenti interpretazioni corrisponde? if (C1) if
DettagliLa codifica binaria. Informatica B. Daniele Loiacono
La codifica binaria Informatica B Introduzione Il calcolatore usa internamente una codifica binaria ( e ) per rappresentare: i dati da elaborare le istruzioni dei programmi eseguibili Fondamenti di codifica
DettagliANALIZZIAMO 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;
DettagliInformatica A (per gestionali) A.A. 2004/2005. Esercizi C. Strutture di controllo
Informatica A (per gestionali) A.A. 2004/2005 Esercizi C Strutture di controllo 1 Indice 1 Strutture di controllo...3 1.1 Multiplo...3 1.2 Massimo Comun Divisore...3 1.3 Valutazione triangolo...4 1.4 Calcolatrice...5
DettagliLinguaggio C: Espressioni
Linguaggio C: Espressioni Moreno Marzolla Dipartimento di Informatica Scienza e Ingegneria (DISI) Università di Bologna http://www.moreno.marzolla.name/ 2 / 34 Ringraziamenti prof. Mirko Viroli, Università
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
DettagliVariabili, tipi primitivi e construtti condizionali
, tipi primitivi e construtti condizionali Fondamenti di Programmazione e Laboratorio A.A. 2018/2019 Dichiarazioni di variabili La sintassi da utilizzare per dichiarare una variabile la seguente: tipo
DettagliInformatica 2 modulo C Massimo Callisto De Donato
Università degli studi di Camerino Scuola di scienze e tecnologia - Sezione Informatica Informatica 2 modulo C Massimo Callisto De Donato massimo.callisto@unicam.it www.cs.unicam.it/massimo.callisto LEZIONE
DettagliPREFAZIONE... IX Lo scopo di questo libro... ix La metodologia di insegnamento... ix Panoramica sul libro... xiii
Sommario PREFAZIONE... IX Lo scopo di questo libro... ix La metodologia di insegnamento... ix Panoramica sul libro... xiii CAPITOLO 1: INTRODUZIONE AI COMPUTER, A INTERNET E AL WEB... 1 1.1 Introduzione...
DettagliTipi di dato primitivi
Tipi di dato primitivi (oltre int) Tipi di dato primitivi int (già trattati) Valori logici (ricordati) Valori reali Valori carattere Informatica - A.A. 2009/2010 - Tipi di dato 2 1 Valori logici (il caso
Dettagli1 Operatori bit-a-bit (Rev )
1 Operatori bit-a-bit (Rev. 2.0.2) La più piccola quantità di informazione memorizzabile nella memoria di un computer è il bit. Il bit può assumere sono due valori di solito indicati con 1 e 0 anche se,
DettagliLaboratorio di informatica Ingegneria Clinica. Esercitazione 2 10 Ottobre 2011
Laboratorio di informatica Ingegneria Clinica Esercitazione 2 10 Ottobre 2011 Istruzioni Istruzioni di Input/Output Istruzioni di assegnamento Istruzioni di controllo Permettono di modificare il flusso
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 ()
DettagliELEMENTI DI INFORMATICA L-B. Ing. Claudia Chiusoli
ELEMENTI DI INFORMATICA L-B Ing. Claudia Chiusoli Materiale Lucidi delle lezioni Date degli appelli Testi di esami precedenti Informazioni e contatti http://www.lia.deis.unibo.it/courses/ Programma del
DettagliTipi di dato in C. Ogni variabile in C ha associato un tipo, questo permette di:
Tipi di dato Tipi di dato in C Ogni variabile in C ha associato un tipo, questo permette di: Riservare memoria per la codifica dei valori che può assumere Rilevare errori legati all uso di operatori non
DettagliLa codifica. dell informazione. (continua) Codifica dei numeri. Codifica dei numeri. Sono stati pertanto studiati codici alternativi per
La codifica dell informazione (continua) Codifica dei numeri Il codice ASCII consente di codificare le cifre decimali da 0 a 9 fornendo in questo modo un metodo per la rappresentazione dei numeri Il numero
DettagliLa codifica. dell informazione. Codifica dei numeri. (continua) Codifica dei numeri. Codifica dei numeri: il sistema decimale
La codifica dell informazione Il codice ASCII consente di codificare le cifre decimali da a 9 fornendo in questo modo un metodo per la rappresentazione dei numeri Il numero 324 potrebbe essere rappresentato
DettagliTipi di dato in C. Ogni variabile in C ha associato un tipo, questo permette di:
Tipi di dato Tipi di dato in C Ogni variabile in C ha associato un tipo, questo permette di: Riservare memoria per la codifica dei valori che può assumere Rilevare errori legati all uso di operatori non
DettagliStruttura di un programma C++
Struttura di un programma C++ // Programma semplice in C++ #include using namespace std; int main() { cout
DettagliC istruzione di assegnazione
C istruzione di assegnazione Forma ntattica della istruzione di assegnazione: variabile = espresone l-value r-value In esecuzione il computer valuta l espresone ed il suo valore è assegnato alla variabile
DettagliLinguaggio C: Espressioni
Linguaggio C: Espressioni Moreno Marzolla Dipartimento di Informatica Scienza e Ingegneria (DISI) Università di Bologna http://www.moreno.marzolla.name/ 2 Ringraziamenti prof. Mirko Viroli, Università
Dettagli