Espressioni e Operatori
|
|
- Adelmo Crippa
- 7 anni fa
- Visualizzazioni
Transcript
1 Espressioni e Operatori Lezione 4 Espressioni Un espressione è formata da una o più operazioni Le operazioni sono rappresentate da operandi ed operatori operatore = simbolo che identifica l operazione operando = argomento su cui deve essere eseguita l operazione a + b; Gli operatori del C++ sono unari, binari o ternari gli operandi di un operatore binario sono distinti in operando sinistro (primo argomento dell operatore) e operando destro (secondo argomento dell operatore) /02 1
2 Valutazione delle Espressioni La valutazione di un espressione richiede l esecuzione di una o più operazioni L ordine in cui vengono considerati gli operatori e gli operandi dipende dalle regole di precedenza e di associatività Il risultato dell espressione è (quasi sempre) un R-value Il tipo del risultato dipende dal tipo degli operandi dell espressione 2 Operatori Aritmetici Gli operatori aritmetici sono +, -, *, /, % Il tipo del risultato di un operazione aritmetica è uguale al tipo dell operando più grande 2 * 3.5 // risultato è double 7 / 3; // risultato è intero (2) 21 % 3; //risultato è intero (0) 21 % 3.5; // ERRORE Possono verificarsi errori di eccezione aritmetica divisione per 0, underflow, overflow /02 2
3 Operatori Logico-Relazionali Gli operatori logico-relazionali sono >, <, >=, <=, ==,!=, &&,,! restituiscono un risultato di tipo vero-falso un espressione è falsa se vale 0, vera altrimenti Gli operatori logici vengono valutati da sinistra a destra la valutazione termina non appena è stato determinato il valore dell espressione expr1 expr2; // expr2 non valutata se expr1 è vera!strcmp(s, t); // equivalente a (strcmp(s, t) == 0) 4 Esempio Operatori Relazionali Conta quanti elementi di ivec sono minori del valore di soglia #include <vector> int conta(const vector<int>& ivec, int soglia) { int cnt = 0; vector<int>::iterator iter = ivec.begin(); while(iter!= ivec.end() ) { cnt = cnt + (*iter < soglia); ++iter; } return cnt; } /02 3
4 Utilizzo dei Controlli di Sentinella 1 Ci sono situazioni in cui un'operazione è legale solo se alcune precondizioni sono verificate Dereferenziazione di un puntatore solo se il puntatore non è 0 Accesso ad un elemento di un array solo se l'indice è corretto Divisione solo se il divisore è diverso da 0 6 Utilizzo dei Controlli di Sentinella 2 Se le precondizioni non sono soddisfatte si verifica un comportamento anomalo del programma Si possono usare gli operatori logici per effettuare queste operazioni solo se le precondizioni sono verificate int *ptr = 0, i; (ptr) && (i = *ptr); /02 4
5 Operatori di Assegnamento 1 L operatore di assegnamento è = L'operatore di assegnamento modifica il valore di una variabile (la variabile aveva gia un valore) L'operatore di inizializzazione assegna un valore ad una variabile appena creata L operando di destra è un R-value e l operando di sinistra è un L-value 8 Operatori di Assegnamento 2 Il risultato di un assegnamento è l R-value dell operando destro Il tipo dell assegnamento è il tipo dell operando sinistro int i, *ip, ia[4] = {0}, j; i = ia[0] + 1; // risultato 1, intero int *ip = &j; *ip = i*2 + ia[i]; // risultato 2, intero /02 5
6 Operatori di Assegnamento È possibile concatenare operazioni di assegnamento se tutti gli operandi a cui si devono assegnare valori sono dello stesso tipo int i, j; i = j = 0; // CORRETTO int i = j = 0; // ERRORE L operatore di assegnamento composto permette di compattare la notazione a op= b; ==> a = a op b; È possibile comporre +, -, *, /, %, &,, <<, >>, ^ 10 Operatori di Incremento e Decremento Gli operatori di incremento e decremento sono ++, -- i++ ===> i = i + 1; i-- ===> i = i - 1; Esistono due versioni dello stesso operatore ++i prima incrementa il valore di e poi lo legge i++ prima legge il valore di i e poi lo incrementa int i = 0, ia[3] = { 0, 1, 2 }; int c = ia[i++]; // c = 0, i = 1 c = ia[++i]; // i = 2, c = ia[2] /02 6
7 Operatore sizeof L operatore sizeof restituisce la dimensione in byte di un oggetto o di un tipo Il risultato di un sizeof è di tipo size_t (tipo dipendente dalla macchina definito nell'header file cstddef) Il risultato di un sizeof è una costante sizeof( expr ); // dimensione del tipo di expr sizeof epxr; sizeof( int ); // dimensione di int L operatore sizeof applicato ad un array restituisce il numero di byte occupati dall array int ia[] = { 0, 1, 2 }; sizeof( ia ) / sizeof( int ); // il risultato è 3 12 Operatore Condizionale 1 L operatore condizionale (if aritmetico) è l unico operatore ternario del C++ La sintassi è expr1? expr2 : expr3; se expr1 è vera il risultato è expr2, altrimenti è expr /02 7
8 Operatore Condizionale 2 #include <iostream> main() { // calcola parità int i; cout << dammi un intero << endl; cin >> i; cout << i << è ; cout << (i % 2)? dispari : pari << endl; } 14 Operatore Virgola La virgola serve a separare sotto-espressioni Un espressione formata da sotto-espressioni separate da virgole ha come risultato il valore dell ultima sotto-espressione int ia[3], m[3][4]; int i = ( ia!= 0 )? ia[1]++, 1 : 0; m[1, 2] = 100; // dove abbiamo scritto? /02 8
9 Operatori ai Bit Gli operatori ai bit sono %,, ^, ~, <<, >> Leggono gli operandi come sequenze di bit Possono operare su uno (o più) specifico bit Il controllo sulla correttezza delle operazioni è delegato completamente al programmatore Gli operandi sono detti bitvector Utilizzati per rappresentare in modo compatto insiemi di flag Sono di tipo intero (int, short, long, char) È consigliabile che siano unsigned Nella libreria iostream i bitvector sono usati per rappresentare il formato del flusso (tipo di rappresentazione, numero di cifre decimali, etc.) 16 Esempio Operatori ai Bit unisgned char i = 101; // unsigned char j = 151; // j = ~j; // (104) j << 1; // (208) j >> 2; // (52) j &= i; // (36) j ^= i; // (65) j = i; // (101) /02 9
10 Classe bitset La libreria standard fornisce la classe bitset che implementa il tipo di dati astratto sequenza di bit Fornisce operazioni per manipolare e testare insiemi di bit, indipendenti dalla rappresentazione dei bit Definizione di variabili bitset bitset<24> bitvec; 18 Principali operazioni su bitset test(pos) // controlla se il bit pos è 1 any() // controlla se qualche bit è 1 none() // controlla se nessun bit è 1 count() // conta quanti bit sono 1 size() // conta quanti sono i bit [pos] // accedi al bit pos flip(pos) // inverte il bit pos set(pos) // mette a 1 il bit pos reset(pos) // mette a 0 il bit pos /02 10
11 Conversioni di oggetti bitset È possibile convertire oggetti bitset in altri tipi: string con la funzione to_string() unsigned long con la funzione to_long() Queste conversioni sono utili per passare oggetti bitset a funzioni C o C++ prestandard che non conoscono la classe bitset 20 Esempio uso classe bitset #include <bitset> bitset<32> bitvec(0xffff); // crea un bitset di 32 bit bool is_set = bitvec.any(); int count; if(is_set) // se c'è un bit a 1 conta quanti bit sono a 1 count = bitvec.count(); else bitvec.flip(); // inverte tutti i bit for(int i = 0; i<bitvec.size(); i++) if(i % 2) // setta a 1 i bit di posizione pari bitvec.set(i); else bitvec.reset(i); // e a 0 gli altri /02 11
12 Espressioni New e Delete Ad ogni programma è assegnata una porzione di memoria utilizzabile in fase di esecuzione Per allocare la memoria si utilizza l'espressione new int* pi = new int(10); // alloca un int e lo inizializza con 10 int* pia = new int[4]; // alloca un vettore di interi con 4 elementi Gli oggetti allocati dinamicamente non hanno nome e devono essere referenziati tramite puntatori Per rilasciare la memoria dinamica si utilizza l'espressione delete delete pi; delete [] pia; //Cancella la memoria allocata a pi //Cancella il vettore allocato a pia 22 Operazioni di Input/Output Il C++ non prevede nessun operatore per effettuare operazioni di input/output La libreria standard fornisce classi e operatori che permettono di effettuare operazioni di input/output (iostream) I dispositivi di input/output sono rappresentati dall'astrazione di flusso (stream) cin è un oggetto istream che identifica lo standard input cout è un oggetto ostream che identifica lo standard output L'operatore << inserisce un oggetto nel flusso di output L'operatore >> estrae un oggetto dal flusso di input /02 12
13 Regole di Precedenza La sintassi del C++ definisce delle regole di precedenza tra gli operatori che vengono utilizzate per valutare espressioni composte un espressione composta è valutata considerando prima gli operatori con più alta precedenza, in ordine da sinistra a destra 6+3*4/2+2; // 6+((3*4)/2)+2 = 14 while(ch = nextchar()!= '\n') // che fa? È possibile modificare l ordine di valutazione degli operatori utilizzando le parentesi una coppia di parentesi individua una sotto-espressione la valutazione di una sotto-espressione ha massima precedenza 24 Regole di Associatività Per ogni operatore è definito un livello di precedenza ed un tipo di associatività Associatività a destra o a sinistra La regola di associatività specifica come viene interpretata un'espressione in cui compare più volte lo stesso operatore Associatività a destra i = j = k = 1; // (i = (j = (k = 1))) Associatività a sinistra i + j + k; // (i + j) + k) /02 13
14 Regole di Conversione di Tipo Quando in un espressione sono presenti operandi di tipo diverso il programma deve operare delle conversioni di tipo Una conversione di tipo non provoca alterazioni nel contenuto della memoria Modifica solo il tipo di un dato Esistono tre tipi di conversioni Implicite, aritmetiche ed esplicite 26 Regole di Conversione Implicita Le conversioni implicite sono eseguite automaticamente dal compilatore Le conversioni implicite sono eseguite secondo regole dette conversioni standard Il programma può introdurre proprie regole di conversione standard (ma non per i tipi predefiniti) /02 14
15 Regole di Conversione Implicita In un assegnamento si converte automaticamente l R-value dell operando destro al tipo dell operando sinistro Il tipo della variabile passata ad una funzione viene convertito nel tipo dell argomento della funzione Il tipo dell'oggetto restituito dal return è convertito nel tipo del risultato della funzione Tutte queste conversioni sono realizzate con la creazione di variabili temporanee 28 Regole di Conversione Aritmetica Le conversioni aritmetiche garantiscono che gli operandi di un operatore binario siano dello stesso tipo Tutti gli operandi sono convertiti nel tipo dell operando più grande Le regole sono Ogni operando può essere solo promosso Tutti gli operandi più piccoli di un int sono sempre promossi ad int prima di essere valutati Promuovere un operando char a int significa Leggere il valore ASCII del char Copiarlo in una variabile int temporanea /02 15
16 Regole di Conversione Esplicita Viene effettuata attraverso l operazione di cast tipo_cast<tipo>(expr); L'operazione di cast è pericolosa perché aggira il sistema di controlli sui tipi del compilatore Non tutti i cast sono sicuri La conversione di un tipo in un tipo più piccolo è non sicura perché tronca la rappresentazione del dato Il compilatore non esegue mai automaticamente un cast non sicuro 30 Utilizzo dei Cast Referenziare puntatori generici (void) Evitare delle conversioni inutili nella valutazione di un espressione Scavalcare il controllo sui tipi predisposto dal compilatore Eliminare ambiguità nella valutazione di un espressione se più conversioni implicite sono possibili il compilatore non sceglie e segnala un errore di ambiguità /02 16
17 Tipi di Cast Il C++ standard distingue 4 diversi tipi di cast, a seconda dell'utilizzo Solo per migliorare la leggibilità del codice const_cast<t>(expr); // rende expr (non) costante static_cast<t>(expr); // trasforma il tipo di expr in T reinterpret_cast<t>(expr); /* legge il pattern di bit all'indirizzo di expr come se fosse di tipo T */ dynamic_cast<t>(expr) /* implementa il run time type identification */ 32 Cast C-style Nel C++ pre-standard esisteva un solo di tipo di cast T (expr); (T) expr; int (3.14); // converte il tipo di expr a T // tronca la parte decimale (short) l; // tronca la rappresentazione del numero Per motivi di compatibilità, nello standard è ancora supportato questo tipo di cast, ma ne è deprecato l'uso /02 17
18 Istruzioni Un istruzione è la più piccola unità di codice eseguibile di un programma C++ Ogni istruzione è caratterizzata da un ; come carattere finale Un istruzione composta è formata da più operazioni elementari un operazione composta è racchiusa tra {} e non è seguita dal ; Un istruzione composta può sostituire un istruzione semplice Un blocco è un istruzione composta che contiene definizioni 34 Istruzioni di Dichiarazione Dichiarano o definiscono una variabile Possono comparire in qualunque punto del codice Il C++ incoraggia a definire le variabili solo nel momento in cui servono Evita di definire variabili non inizializzate Evita inutili inizializzazioni Consente di allocare memoria solo alle variabili realmente utilizzate È possibile definire variabili nella linea di controllo di un'istruzione di controllo del flusso La variabile è visibile solo all'interno del blocco associato all'istruzione /02 18
19 Istruzioni di Controllo del Flusso L ordine di esecuzione delle istruzioni di un programma è sequenziale, a partire dalla prima linea della funzione main() Le istruzioni di controllo del flusso servono a modificare l ordine di esecuzione delle istruzioni del programma 36 if then else L if è un istruzione condizionale che permette di scegliere tra al più due casi if (expr) ist; l'istruzione ist è eseguita solo se expr è vera if (expr) ist1; else ist2; se expr è vera viene eseguita ist1, altrimenti viene eseguita ist2 Istruzioni di if annidate sono fonti di potenziali errori dangling else /02 19
20 switch Lo switch è un istruzione condizionale che permette di scegliere tra più casi switch (expr) { case i: ist-i; break; case j: ist-j; break; default: ist; } 38 while Il while è un istruzione di ciclo while (expr) ist; esegue ist fino a quando expr è vera L ordine di esecuzione è 1) valuta expr 2) se expr è vera esegui ist e torna ad 1 3) esegui la prossima istruzione /02 20
21 for Il for è un istruzione di ciclo for( ist_iniz; expr1; expr2) ist; esegue ist_iniz, quindi esegue ist e expr2 fino a quando expr1 è vera L ordine di esecuzione è 1) esegui ist_iniz 2) valuta expr1 3) se expr1 è vera esegui prima ist, poi expr2 e torna a 2) 4) esegui prossima istruzione 40 do while Il do è un istruzione di ciclo do ist; while (expr); esegue ist fino a quando expr non diventa falsa almeno una volta l istruzione ist viene eseguita L ordine di esecuzione è 1) esegui ist 2) valuta expr 3) se expr è vera torna a 1), altrimenti esegui prossima istruzione /02 21
22 Salti Le istruzioni di salto spostano il controllo del programma Esistono tre istruzioni di salto break interrompe il ciclo che si sta eseguendo continue interrompe l iterazione del ciclo che si sta eseguendo goto label salta incondizionatamente all istruzione etichettata label label deve stare nella stessa funzione che contiene goto /02 22
Elementi 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
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
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
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:
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
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
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
DettagliQualsiasi programma in C++ segue lo schema:
Qualsiasi programma in C++ segue lo schema: #include // libreria che gestisce flusso di input e output using namespace std; // uso di librerie standard del C++ int main() { // dichiarazioni
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
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
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
DettagliElementi di Informatica A. A. 2016/2017
Elementi di Informatica A. A. 2016/2017 Ing. Nicola Amatucci Università degli studi di Napoli Federico II Scuola Politecnica e Delle Scienze di Base nicola.amatucci@unina.it Programmazione C++ Parte 1
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
DettagliAssegnazione di una variabile
Assegnazione di una variabile Per scrivere un valore dentro una variabile si usa l operatore di assegnazione, che è rappresentato dal simbolo =. Quindi, se scrivo int a; a = 12; assegno alla variabile
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
DettagliIngegneria Elettronica Ingegneria delle Telecomunicazioni (J-Z) Ing. Antonio Monteleone A.A. 2001/02 3 ciclo
Ingegneria Elettronica Ingegneria delle Telecomunicazioni (J-Z) Ing. Antonio Monteleone A.A. 2001/02 3 ciclo In C++ è possibile distinguere due aree distinte di memoria: memoria stack e memoria heap E
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à
DettagliLezione 6 Introduzione al C++ Mauro Piccolo
Lezione 6 Introduzione al C++ Mauro Piccolo piccolo@di.unito.it Linguaggi di programmazione Un linguaggio formale disegnato per descrivere la computazione Linguaggi ad alto livello C, C++, Pascal, Java,
DettagliIntroduzione alla programmazione in linguaggio C
Introduzione alla programmazione in linguaggio C Il primo programma in C commento Header della libreria Funzione principale Ogni istruzione in C va terminata con un ; Corso di Informatica AA. 2007-2008
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
DettagliStruttura di un programma C++
Struttura di un programma C++ // Programma semplice in C++ #include using namespace std; int main() { cout
DettagliTipi di dato, Alessandra Giordani Lunedì 7 maggio 2011
Tipi di dato, memoria e conversioni Alessandra Giordani agiordani@disi.unitn.it Lunedì 7 maggio 2011 http://disi.unitn.it/~agiordani/ Il linguaggio C è esplicitamente tipato: occorre esplicitamente associare
DettagliEspressioni ed operatori in C
Espressioni ed operatori in C Espressioni Il C è un linguaggio basato su espressioni Una espressione è una notazione che denota un valore mediante un processo di valutazione Una espressione può essere
DettagliEspressioni ed operatori in C
Espressioni ed operatori in C Espressioni Il C è un linguaggio basato su espressioni Una espressione è una notazione che denota un valore mediante un processo di valutazione Una espressione può essere
DettagliIndice. Ordine di valutazione. Espressioni in C++ Le espressioni in C++ (CAP 4) Alberto Garfagnini e Marco Mazzocco A.A. 2014/ * 20 / 2
Le espressioni in C++ (CAP 4) Indice Le espressioni in C++ : precedenze e associatività degli operatori Alberto Garfagnini e Marco Mazzocco Università degli studi di Padova A.A. 2014/2015 gli operatori
DettagliOCA JAVA 7 SE PROGRAMMER I DOCENTE: DOTT. FAUSTO DELL ANNO
CENTRO STUDI ULISSE Via Buccino, n. 22 - C.a.p. 84018 - Scafati (SA) Tel. Fax. 081.19970299-339.2365416-349.4152010 E-mail: info@centrostudiulisse.it - www.centrostudiulisse.it OCA JAVA 7 SE PROGRAMMER
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
DettagliI/O da tastiera + Alessandra Giordani Lunedì 2 maggio
I/O da tastiera + costrutti while e if Alessandra Giordani agiordani@disi.unitn.it Lunedì 2 maggio 2011 http://disi.unitn.it/~agiordani/ Ripasso funzione printf() Usata per stampare il contenuto di una
DettagliTipi strutturati - struct
Fondamenti di Programmazione A Appunti per le lezioni Gianfranco Rossi Tipi strutturati - struct Struttura dati (concreta) struct: sequenza di n elementi (n 0), rispettivamente di tipo t1,,tn (non necessariamente
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
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
DettagliInformatica 1 Tipi e dichiarazioni in C++ C++ - Tipi e dichiarazioni 1
Informatica 1 Tipi e dichiarazioni in C++ C++ - Tipi e dichiarazioni 1 Cosa è il C++ E un linguaggio di programmazione derivato dal C Può essere usato per modificare il SO Unix e i suoi derivati (Linux)
DettagliFondamenti di C++ Input/Output di base
Università della Calabria Corso di Laurea in Ingegneria Elettronica Programmazione Orientata agli Oggetti A.A. 2006/2007 Fondamenti di C++ Paolo Trunfio * * DEIS, Università della Calabria http://si.deis.unical.it/~trunfio
DettagliVariabili e Costanti
Struttura di un Programma C++ Un programma descrive una sequenza di azioni ogni azione è descritta da una espressione un insieme di espressioni seguite da ; è un istruzione espressione = più piccola unità
DettagliUn elaboratore è un manipolatore di simboli (segni) intrinsecamente capace di trattare vari. caratteri char caratteri ASCII unsigned char
IL LINGUAGGIO C Un elaboratore è un manipolatore di simboli (segni) L'architettura tt fisica i di ogni elaboratore è intrinsecamente capace di trattare vari domini i di dati, detti tipi i primitivi iti
DettagliIL LINGUAGGIO C Un elaboratore è un manipolatore di simboli (segni) L'architettura fisica di ogni elaboratore è intrinsecamente capace
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
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
DettagliAlgebra di Boole: Concetti di base. E un algebra basata su tre operazioni logiche
Fondamenti di Informatica Algebra di Boole: Concetti di base Fondamenti di Informatica - D. Talia - UNICAL Algebra di Boole E un algebra basata su tre operazioni logiche OR AND NOT Ed operandi che possono
DettagliSTRUTTURE DI CONTROLLO IN C. Docente: Giorgio Giacinto AA 2009/2010
Università degli Studi di Cagliari Corso di Laurea Specialistica in Ingegneria per l Ambiente ed il Territorio Corso di Laurea Specialistica in Ingegneria Civile - Strutture FONDAMENTI DI INFORMATICA 2
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à
DettagliIL LINGUAGGIO JAVA. Input, Tipi Elementari e Istruzione Condizionale. Fondamenti di Informatica - D. Talia - UNICAL 1. Fondamenti di Informatica
Fondamenti di Informatica IL LINGUAGGIO JAVA Input, Tipi Elementari e Istruzione Condizionale Fondamenti di Informatica - D. Talia - UNICAL 1 Primo esempio di un programma Java Semplicissimo programma
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
DettagliVariabili e Funzioni. Informatica 1 / 19
Variabili e Funzioni Informatica 1 / 19 Programmi C e Un programma C e composto da funzioni e variabili Variabile: memorizza valori appartenenti ad un insieme di definizione (dipendente dal tipo) Funzione:
DettagliLinguaggio C - sezione dichiarativa: costanti e variabili
Dipartimento di Elettronica ed Informazione Politecnico di Milano Informatica e CAD (c.i.) - ICA Prof. Pierluigi Plebani A.A. 2008/2009 Linguaggio C - sezione dichiarativa: costanti e variabili La presente
DettagliIl linguaggio C. Puntatori e dintorni
Il linguaggio C Puntatori e dintorni 1 Puntatori : idea di base In C è possibile conoscere e denotare l indirizzo della cella di memoria in cui è memorizzata una variabile (il puntatore) es : int a = 50;
DettagliIL LINGUAGGIO JAVA Input, Tipi Elementari e Istruzione Condizionale
Fondamenti di Informatica IL LINGUAGGIO JAVA Input, Tipi Elementari e Istruzione Condizionale Fondamenti di Informatica - D. Talia - UNICAL 1 Lettura di dati da input In Java la lettura di dati da input
DettagliProgrammazione Procedurale in Linguaggio C++
Programmazione Procedurale in Linguaggio C++ Elementi di Base Parte 3 Istruzioni di Assegnazione G. Mecca M. Samela Università della Basilicata Elementi di Base >> Sommario Sommario Introduzione Istruzioni
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
DettagliLinguaggi di Programmazione I Lezione 9
Linguaggi di Programmazione I Lezione 9 Prof. Marcello Sette mailto://marcello.sette@gmail.com http://sette.dnsalias.org 6 maggio 28 Variabili 3 Ambiti................................................................
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
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à
DettagliJavaScript 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
DettagliSTRUTTURE DI CONTROLLO DEL C++
STRUTTURE DI CONTROLLO DEL C++ Le istruzioni if e else Le istruzioni condizionali ci consentono di far eseguire in modo selettivo una singola riga di codice o una serie di righe di codice (che viene detto
DettagliIL LINGUAGGIO JAVA. Input, Tipi Elementari e Istruzione Condizionale. Primo esempio di un programma Java
Fondamenti di Informatica IL LINGUAGGIO JAVA Input, Tipi Elementari e Istruzione Condizionale Fondamenti di Informatica - D. Talia - UNICAL 1 Primo esempio di un programma Java Semplicissimo programma
DettagliIstruzioni Condizionali
Istruzioni Condizionali Corso di Programmazione e Metodi Numerici Ingegneria Aerospaziale BAER Domenico Daniele Bloisi Docenti Metodi Numerici prof. Vittoria Bruni vittoria.bruni@sbai.uniroma1.it Programmazione
DettagliTipi di dati scalari (casting e puntatori) Alessandra Giordani Lunedì 10 maggio 2010
Tipi di dati scalari (casting e puntatori) Alessandra Giordani agiordani@disi.unitn.it Lunedì 10 maggio 2010 http://disi.unitn.it/~agiordani/ I tipi di dati scalari I tipi aritmetici, i tipi enumerativi
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
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
DettagliLaboratorio di programmazione
Laboratorio di programmazione Lezione II Tatiana Zolo zolo@cs.unipr.it 1 IL PROGRAMMA C++ Istruzioni (espressioni terminate da ; ) istruzioni di dichiarazione (es. int x = 0;); istruzioni di assegnamento
DettagliPROGRAMMA = ALGORITMO
Corso di Laurea Scienze Prof. San. Tec., Area Tecnico-Assistenziale SISTEMI DI ELABORAZIONE DELLE INFORMAZIONI Anno Accademico 2005-2006 Prof. Fausto Passariello Corso Integrato Metodologia della Ricerca
DettagliSi possono applicare solo a variabili (di tipi interi, floating o puntatori), ma non a espressioni generiche (anche se di questi tipi).
Operatori di incremento e decremento: ++ e -- ++ e -- sono operatori unari con la stessa priorità del meno unario e associatività da destra a sinistra. Si possono applicare solo a variabili (di tipi interi,
DettagliTipi elementari. Stefano Ferrari. Università degli Studi di Milano Programmazione. anno accademico
Tipi elementari Stefano Ferrari Università degli Studi di Milano stefano.ferrari@unimi.it Programmazione anno accademico 2017 2018 Tipi di dato Ogni variabile (e ogni costante) è associata a un tipo, che
DettagliQuando è necessario elaborare una certa quantità di dati omogenei si possono usare variabili indicizzate: int a0, a1, a2;
Array Quando è necessario elaborare una certa quantità di dati omogenei si possono usare variabili indicizzate: int a0, a1, a2; Il C supporta questo uso attraverso il tipo di dati array (o vettore): int
DettagliIstruzioni semplici e strutturate
Consorzio NETTUNO Corso di Fondamenti di Informatica I secondo giorno di stage Istruzioni semplici e strutturate Dipartimento di Informatica e Sistemistica Università degli Studi di Napoli Federico II
DettagliCorso di Fondamenti di Informatica
Corso di Fondamenti di Informatica Le classi di istruzioni in C++ 1 Le classi di istruzioni in C++ SEQUENZIALI Statement semplice Statement composto CONDIZIONALI if < expr.> else switch case
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
DettagliEspressioni in Linguaggio C
Concetti chiave Espressioni in Linguaggio C Espressioni Conversioni Implicite Operatori aritmetici Operatore di assegnamento Operatori relazionali Operatori logici Gerarchia e associatività degli operatori
DettagliJava SE 7. Strutture di programmazione (2)
Java SE 7 Strutture di programmazione (2) diegozabot@yahoo.it ursula.castaldo@gmail.com Casting (1) E' l'operazione che realizza la conversione di tipo tra oggetti e tra tipi primitivi. E' un'operazione
Dettagli$QDOLVLGHOSURJUDPPDTXDGUDWR
$QDOLVLGHOSURJUDPPDTXDGUDWR /* */ calcolare l area del quadrato #include main(){ int lato, area; printf("lato "); scanf("%d", &lato); if(lato < 0) printf("errore nei dati \n"); else { area =
DettagliProgrammazione in C. La struttura del programma Variabili, espressioni, operazioni
Programmazione in C La struttura del programma Variabili, espressioni, operazioni Struttura del programma // Area quadrato circoscritto // circonferenza /* Author: Lorenzo Course: info */ #include
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
DettagliL assegnamento. Andrea Marin. a.a. 2011/2012. Università Ca Foscari Venezia Laurea in Informatica Corso di Programmazione part-time
Andrea Marin Università Ca Foscari Venezia Laurea in Informatica Corso di Programmazione part-time a.a. 2011/2012 Abbiamo visto È conveniente definire una macchina astratta C Lo stato della macchina ci
DettagliProgrammazione in Java (I modulo)
Programmazione in Java (I modulo) Lezione 4 Variabili di tipo primitivo. Dichiarazione di costanti Conversioni di tipo: operatore cast Altri operatori di assegnamento Operazioni aritmetiche e di confronto
DettagliLe basi del linguaggio Java
Le basi del linguaggio Java Compilazione e interpretazione Quando si compila il codice sorgente scritto in Java, il compilatore genera il codice compilato, chiamato bytecode. È un codice generato per una
DettagliI puntatori. DD Cap.7 pp KP Cap.6 pp
I puntatori DD Cap.7 pp.245-280 KP Cap.6 pp.219-235 Cos è un puntatore Un puntatore è una variabile che assume come valore un indirizzo di memoria. Il nome di una variabile fa quindi riferimento ad un
DettagliFondamenti di Informatica - 1. Prof. B.Buttarazzi A.A. 2011/2012
Fondamenti di Informatica - 1 Prof. B.Buttarazzi A.A. 2011/2012 Sommario Introduzione alla sintassi C++ Operatori Conversione di tipo Istruzioni di controllo Esercizi 16/04/2012 2 Operatori sui bit Il
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
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
DettagliEsercizi Programmazione I
Esercizi Programmazione I 9 Novembre 201 Esercizio 1 Valutare e dare il tipo delle seguenti espressioni condizionali. 1 char a= a, b= b ; // a ha v a l o r e decimale 97 2 i n t i= 1, j= 2 ; 3 double x=
DettagliSunto della scorsa lezione Il linguaggio C. Un Programma con Errori. Il preprocessore. Linguaggi di Programmazione I.
Sunto della scorsa lezione 06-10-2003 Il linguaggio C Matricole 2-3 Un programma C è un insieme di funzioni. La funzione è sempre presente Una funzione è un insieme di istruzioni racchiuse tra ogni istruzione
DettagliIl linguaggio C. Puntatori e Array
Il linguaggio C Puntatori e Array Puntatori I puntatori sono variabili i cui valori sono indirizzi di locazioni in cui sono memorizzate altre variabili architettura a 32 bit: 232-1 indirizzi, ma non si
Dettagli#include <iostream> // libreria che gestisce flusso di input e output. using namespace std; // uso di librerie standard del C++
Qualsiasi programma in C++ segue lo schema: #include // libreria che gestisce flusso di input e output using namespace std; // uso di librerie standard del C++ int main() { // dichiarazioni
DettagliParte 3. Puntatori. [S. Dalí The temptation of St. Anthony, 1946] - AA. 2015/16 3.1
Parte 3 Puntatori [S. Dalí The temptation of St. Anthony, 1946] 3.1 3.2 Puntatori Approfondimento rispetto alla trattazione vista nel corso precedente Finora come avete utilizzato i puntatori? Principalmente
DettagliIL LINGUAGGIO JAVA. Introduzione alla sintassi di Java La sintassi formalizza le regole sintattiche per scrivere frasi ben formate
Fondamenti di Informatica IL LINGUAGGIO JAVA Sintassi, Semantica, Input, Tipi Elementari e Istruzione Condizionale 1 Introduzione alla sintassi di Java La sintassi formalizza le regole sintattiche per
DettagliStruttura dei programmi e Variabili
Linguaggio C Struttura dei programmi e Variabili 1 La struttura generale dei programmi! Struttura del programma: Direttive Funzioni Dichiarazioni Istruzioni Di assegnamento direttive Di ingresso e uscita
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
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
Dettagliciclo di vita della soluzione (informatica) di un problema
Università di Roma Tor Vergata L2-1 ciclo di vita della soluzione (informatica) di un problema errori run-time errori sintattici codice editor codice C++ compilatore esegui eseguibile OK risultati scorretti
DettagliESPRESSIONI. Ivan Lanese
ESPRESSIONI Ivan Lanese Argomenti Espressioni Spaziatura e commenti Per domani Domani sarete divisi in 2 gruppi Il gruppo coi portatili qui in aula Controllate di essere in grado di avviare Eclipse sul
DettagliI cicli. Iterazioni Calcolo della media Istruzioni break e continue
I cicli Iterazioni Calcolo della media Istruzioni break e continue Ciclo while p Vero A while() ; Falso Esegue una istruzione mentre una condizione è verificata Programmazione
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
Dettagli