Espressioni e Operatori

Dimensione: px
Iniziare la visualizzazioe della pagina:

Download "Espressioni e Operatori"

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

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

Dettagli

Unità 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 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

Dettagli

Tipi 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: 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

Dettagli

Dichiarazioni e tipi predefiniti nel linguaggio C

Dichiarazioni 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:

Dettagli

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

Lezione 5 e 6. Fabio Scotti ( ) Laboratorio di programmazione per la sicurezza. Valentina Ciriani ( ) Laboratorio di programmazione Lezione 5 e 6 - Concetto di blocco - Controllo del flusso di un programma - Costrutti per la scelta if e switch - Costrutti while e for - Operatori in C Fabio Scotti (2004-2009) Laboratorio di programmazione

Dettagli

Cast implicito. Il cast è fatto automaticamente quando un tipo più basso viene assegnato ad un tipo più alto. byte short int long float double

Cast 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

Dettagli

Dati due punti sul piano calcolare la loro distanza

Dati 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

Dettagli

Qualsiasi programma in C++ segue lo schema:

Qualsiasi 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

Dettagli

Laboratorio di Informatica I

Laboratorio 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

Dettagli

Il potere espressivo di un linguaggio è caratterizzato da: PROGRAMMA = DATI + CONTROLLO

Il 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

Dettagli

LINGUAGGI DI PROGRAMMAZIONE!

LINGUAGGI 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

Dettagli

Elementi di Informatica A. A. 2016/2017

Elementi di Informatica A. A. 2016/2017 Elementi di Informatica A. A. 2016/2017 Ing. Nicola Amatucci Università degli studi di Napoli Federico II Scuola Politecnica e Delle Scienze di Base nicola.amatucci@unina.it Programmazione C++ Parte 1

Dettagli

#include <stdio.h> /* l esecuzione comincia dalla funzione main */ int main()

#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

Dettagli

Assegnazione di una variabile

Assegnazione 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

Dettagli

Corso di Fondamenti di Informatica Il sistema dei tipi in C++

Corso 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

Dettagli

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

Dettagli

Linguaggio C: Espressioni

Linguaggio 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

Lezione 6 Introduzione al C++ Mauro Piccolo

Lezione 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,

Dettagli

Introduzione alla programmazione in linguaggio C

Introduzione 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

Dettagli

Laboratorio di Informatica I

Laboratorio 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

Dettagli

Struttura di un programma C++

Struttura di un programma C++ Struttura di un programma C++ // Programma semplice in C++ #include using namespace std; int main() { cout

Dettagli

Tipi di dato, Alessandra Giordani Lunedì 7 maggio 2011

Tipi 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

Dettagli

Espressioni ed operatori in C

Espressioni 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

Dettagli

Espressioni ed operatori in C

Espressioni 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

Dettagli

Indice. Ordine di valutazione. Espressioni in C++ Le espressioni in C++ (CAP 4) Alberto Garfagnini e Marco Mazzocco A.A. 2014/ * 20 / 2

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

Dettagli

OCA JAVA 7 SE PROGRAMMER I DOCENTE: DOTT. FAUSTO DELL ANNO

OCA 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

Dettagli

Linguaggi di programmazione

Linguaggi 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

Dettagli

I/O da tastiera + Alessandra Giordani Lunedì 2 maggio

I/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

Dettagli

Tipi strutturati - struct

Tipi 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

Dettagli

Laboratorio di Programmazione 1. Docente: dr. Damiano Macedonio Lezione 5 31/10/2013

Laboratorio 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

Dettagli

Programmare in C. Maurizio Palesi Salvatore Serrano. Valori. Operazioni. Un insieme di valori del tipo. Per operare su tali valori Tipi

Programmare 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

Dettagli

Informatica 1 Tipi e dichiarazioni in C++ C++ - Tipi e dichiarazioni 1

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

Dettagli

Fondamenti di C++ Input/Output di base

Fondamenti 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

Dettagli

Variabili e Costanti

Variabili 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à

Dettagli

Un elaboratore è un manipolatore di simboli (segni) intrinsecamente capace di trattare vari. caratteri char caratteri ASCII unsigned char

Un 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

Dettagli

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

Dettagli

IL LINGUAGGIO C TIPI DI DATO

IL 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

Dettagli

Algebra di Boole: Concetti di base. E un algebra basata su tre operazioni logiche

Algebra 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

Dettagli

STRUTTURE DI CONTROLLO IN C. Docente: Giorgio Giacinto AA 2009/2010

STRUTTURE 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

Dettagli

Linguaggio C: Espressioni

Linguaggio 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à

Dettagli

IL LINGUAGGIO JAVA. Input, Tipi Elementari e Istruzione Condizionale. Fondamenti di Informatica - D. Talia - UNICAL 1. Fondamenti di Informatica

IL 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

Dettagli

Introduzione al linguaggio C Primi programmi

Introduzione 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

Dettagli

Variabili e Funzioni. Informatica 1 / 19

Variabili 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:

Dettagli

Linguaggio C - sezione dichiarativa: costanti e variabili

Linguaggio 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

Dettagli

Il linguaggio C. Puntatori e dintorni

Il 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;

Dettagli

IL LINGUAGGIO JAVA Input, Tipi Elementari e Istruzione Condizionale

IL 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

Dettagli

Programmazione Procedurale in Linguaggio C++

Programmazione 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

Dettagli

Laboratorio di Informatica I

Laboratorio 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

Dettagli

Linguaggi di Programmazione I Lezione 9

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

Dettagli

Struttura di un linguaggio

Struttura 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

Dettagli

Linguaggio C: Espressioni

Linguaggio 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

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

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

Dettagli

STRUTTURE DI CONTROLLO DEL C++

STRUTTURE 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

Dettagli

IL LINGUAGGIO JAVA. Input, Tipi Elementari e Istruzione Condizionale. Primo esempio di un programma Java

IL 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

Dettagli

Istruzioni Condizionali

Istruzioni 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

Dettagli

Tipi di dati scalari (casting e puntatori) Alessandra Giordani Lunedì 10 maggio 2010

Tipi 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

Dettagli

Informatica 2 modulo C Massimo Callisto De Donato

Informatica 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

Dettagli

Fondamenti di programmazione parte 2. Elementi di informatica IGLP

Fondamenti 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

Dettagli

Laboratorio di programmazione

Laboratorio 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

Dettagli

PROGRAMMA = ALGORITMO

PROGRAMMA = 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

Dettagli

Si possono applicare solo a variabili (di tipi interi, floating o puntatori), ma non a espressioni generiche (anche se di questi tipi).

Si 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,

Dettagli

Tipi elementari. Stefano Ferrari. Università degli Studi di Milano Programmazione. anno accademico

Tipi 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

Dettagli

Quando è necessario elaborare una certa quantità di dati omogenei si possono usare variabili indicizzate: int a0, a1, a2;

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

Dettagli

Istruzioni semplici e strutturate

Istruzioni 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

Dettagli

Corso di Fondamenti di Informatica

Corso 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

Dettagli

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

Dettagli

Espressioni in Linguaggio C

Espressioni 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

Dettagli

Java SE 7. Strutture di programmazione (2)

Java 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 $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 =

Dettagli

Programmazione in C. La struttura del programma Variabili, espressioni, operazioni

Programmazione 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

Dettagli

Laboratorio di informatica Ingegneria meccanica

Laboratorio 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

Dettagli

L assegnamento. Andrea Marin. a.a. 2011/2012. Università Ca Foscari Venezia Laurea in Informatica Corso di Programmazione part-time

L 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

Dettagli

Programmazione in Java (I modulo)

Programmazione 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

Dettagli

Le basi del linguaggio Java

Le 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

Dettagli

I puntatori. DD Cap.7 pp KP Cap.6 pp

I 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

Dettagli

Fondamenti di Informatica - 1. Prof. B.Buttarazzi A.A. 2011/2012

Fondamenti 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

Dettagli

Università degli Studi di Milano

Università 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

Dettagli

LINGUAGGI DI PROGRAMMAZIONE

LINGUAGGI 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

Dettagli

Esercizi Programmazione I

Esercizi 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=

Dettagli

Sunto della scorsa lezione Il linguaggio C. Un Programma con Errori. Il preprocessore. Linguaggi di Programmazione I.

Sunto 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

Dettagli

Il linguaggio C. Puntatori e Array

Il 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++

#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

Dettagli

Parte 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] - 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

Dettagli

IL LINGUAGGIO JAVA. Introduzione alla sintassi di Java La sintassi formalizza le regole sintattiche per scrivere frasi ben formate

IL 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

Dettagli

Struttura dei programmi e Variabili

Struttura 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

Dettagli

Il C nel C++ Struttura di un linguaggio. Elementi lessicali. Spazi. Livello lessicale: Livello sintattico: Livello semantico:

Il 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

Dettagli

Laboratorio di Informatica Ingegneria Clinica Lezione 9/11/2011. Prof. Raffaele Nicolussi

Laboratorio 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

Dettagli

ciclo di vita della soluzione (informatica) di un problema

ciclo 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

Dettagli

ESPRESSIONI. Ivan Lanese

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

Dettagli

I cicli. Iterazioni Calcolo della media Istruzioni break e continue

I 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

Dettagli

Il linguaggio C. Notate che...

Il 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