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

Размер: px
Начинать показ со страницы:

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

Транскрипт

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

2 Cosa è il C++ E un linguaggio di programmazione derivato dal C Può essere usato per modificare il SO Unix e i suoi derivati (Linux) Supporta l astrazione dei dati Supporta la programmazione orientata agli oggetti (Object Oriented = OO) Supporta la programmazione generica C++ - Tipi e dichiarazioni 2

3 Cosa è un programma #include <iostream> // rende accessibili le funzioni dii/o #include <string> // funzionalità classe string //using namespace std; int main() { string yourname; } std::<< cout Inserisci il tuo nome -> ; std::cin >> yourname; std::<<cout Ciao << yourname <<!\n ; C++ - Tipi e dichiarazioni 3

4 Come si fa ad eseguire un programma Compilazione ad esempio con il compilatore gcc Esecuzione del file compilato: attenzione sotto Unix verificare che il file compilato sia eseguibile (chmod +x <nome file>) C++ - Tipi e dichiarazioni 4

5 Identificatori Un identificatore è una sequenza lettere, numeri e simbolo _. Non c è limite alla lunghezza anche se per alcuni compilatori sono significativi solo i primi 32 caratteri. Un identificatore non deve corrispondere a una parola chiave del linguaggio. Case sensitive C++ - Tipi e dichiarazioni 5

6 Parole chiave del linguaggio asm, auto, bool, break, case, catch, char, class, const, const_cast, continue, default, delete, do, double, dynamic_cast, else, enum, explicit, extern, false, float, for, friend, goto, if, inline, int, long, mutable, namespace, new, operator, rivate, protected, public, register, reinterpret_cast, return, short, signed, sizeof, static,static_cast, struct, switch, template, this, throw, true, try, typedef,typeid, typename, union, unsigned, using, virtual, void, volatile, wchar_t C++ - Tipi e dichiarazioni 6

7 Tipi di dati La memoria del computer è organizzata a bytes (8 bit) Byte ->0:255 oppure 1 carattere C++ - Tipi e dichiarazioni 7

8 Tipi fondamentali (1) TIPO BYTES DESCR RANGE char 1 Carattere o intero lungo 8 bit [-128:127], [0: 255] short 2 Intero lungo 16 bit [-32768:32767] [0:65535] long 4 Intero lungo 32 bit [ : ] [0: ] int * Intero la cui lunghezza dipende dalla lunghezza della word di sistema operativo, ad es. MSDOS 16bit, Windows 32 float 4 Numero in virgola mobile 3.4e + / - 38 (7 cifre) C++ - Tipi e dichiarazioni 8

9 Tipi fondamentali (2) TIPO BYTES DESCR RANGE double 8 Numero in virgola mobile doppia precisione 1.7e + / (15 cifre) long double 10 Numero in virgola mobile long 1.2e + / (19 cifre) bool 1 booleano true o false wchar_t 2 E stato progettato per rappresentare un set di caratteri internazionali a 2 byte. Non è supportato da tutti i compilatori wide characters C++ - Tipi e dichiarazioni 9

10 Booleani (1) Una variabile booleana può assumere i valori true e false Un booleano è usato per esprimere il risultato di una operazione logica, ad esempio: void f(int a, int b) { bool b1 = a==b; // == equivalenza } C++ - Tipi e dichiarazioni 10

11 Booleani (2) Conversione bool -> intero true = 1, false = 0 Conversione intero -> bool: Interi diversi da 0 = true Interi uguale a 0 = false C++ - Tipi e dichiarazioni 11

12 Caratteri L insieme dei caratteri è definito per esempio dai caratteri ASCII Prescinde dalla rappresentazione interna. Char c = a ; Costante di tipo carattere C++ - Tipi e dichiarazioni 12

13 Escape codes \n newline \r carriage return \t tabulation \v vertical tabulation \b backspace \f page feed \a alert (beep) \' single quotes (') \" double quotes (") \ question (?) \\ inverted slash (\) C++ - Tipi e dichiarazioni 13

14 I tipi fondamentali: interi Sia char che int possono essere definiti in funzione del segno ( puro, signed, unsigned) Gli interi possono essere definiti anche in funzione della lunghezza (short int, int, long int) int x; short xcorto; long interolungo; C++ - Tipi e dichiarazioni 14

15 I tipi fondamentali: void Non esistono oggetti di tipo void, si usa per specificare che una funzione non restituisce valori oppure per indicare che un puntatore è di un tipo non specificato. void x; // ERRORE void f(); // la funzione f non restituisce alcun valore void* pv; // puntatore ad oggetto di tipo sconosciuto C++ - Tipi e dichiarazioni 15

16 Enumerati Tipo che può contenere un insieme di valori specificati dall utente: enum settimana { lunedì, martedì, mercoledì, giovedì, Venerdì, sabato, domenica}; C++ - Tipi e dichiarazioni 16

17 Dichiarazioni Perché un identificatore possa essere usato in un programma C++ deve essere precedentemente dichiarato: char ch; string s; int count = 1; const double pi = ; char* name = Alessandra ; C++ - Tipi e dichiarazioni 17

18 Struttura della dichiarazione Una dichiarazione è costituita da: specificatore tipobase dichiaratore inizializzatore (Per una maggiore precisione consultare la sintassi) Ad esempio: char ch; string s; static int count = 1; const double pi = ; char* name = Alessandra ; C++ - Tipi e dichiarazioni 18

19 Gli identificatori Gli identificatori consistono in una sequenza di lettere e cifre, il primo carattere deve essere una lettera. Il carattere _ può essere usato Gli identificatori non possono essere uguali le parole chiave del C++ Si distingue fra maiuscolo e minuscolo C++ - Tipi e dichiarazioni 19

20 Regole di visibilità (scope) int x; int main() { // compound statement x = 25; { int y = x; int x; x = 1; y = x; { int x; x = 2; } x = 3; } x = 33; } C++ - Tipi e dichiarazioni 20

21 sizeof Le dimensioni delle variabili in memoria dipendono dall implementazione Problema della portabilità C++ - Tipi e dichiarazioni 21

22 Inizializzazione Inizializzazione automatica a 0 per variabili con scope globale o all interno di un namespace Valore iniziale no definito per variabili locali e oggetti allocati nella memoria libera Array inizializzati solo se statici C++ - Tipi e dichiarazioni 22

23 lvalue Left value, ovvero espressioni alla sinistra di una assegnamento che identificano una locazione di memoria, ad es: *p[a+10] = 7; C++ - Tipi e dichiarazioni 23

24 best practices Evitare di usare identificatori che non hanno senso (pippo, x, a ecc ) I nomi delle classi iniziano con lettera maiuscola Tutti gli altri con lettera minuscola Se il nome è composto da più parole, le parole che seguono devono avere l iniziale maiuscola class StudentiPrimoCorso StudentiPrimoCorso giovannirossi; char* myname = Alessandra ; C++ - Tipi e dichiarazioni 24

25 Esercizi 1. Programma sulla conversione dei caratteri 2. Programma sulla dimensione dei tipi di dati C++ - Tipi e dichiarazioni 25

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

Подробнее

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

Подробнее

La sintassi del C APPENDICE H

La sintassi del C APPENDICE H APPENDICE H La sintassi del C Nella notazione della sintassi utilizzata, le categorie sintattiche (non terminali) sono state indicate da uno stile tipografico in corsivo, mentre le parole letterali e i

Подробнее

Fondamenti di Programmazione. Antonio Pescapè e Marcello Esposito Parte Quinta v1.0

Fondamenti di Programmazione. Antonio Pescapè e Marcello Esposito Parte Quinta v1.0 Fondamenti di Programmazione Antonio Pescapè e Marcello Esposito Parte Quinta v1.0 Agenda I linguaggi C e C++: introduzione Elementi Lessicali Commenti Identificatori Parole Chiave Costanti Letterali Elementi

Подробнее

Sommario. Introduzione... xv. Giorno 1 Elementi base del linguaggio C

Sommario. Introduzione... xv. Giorno 1 Elementi base del linguaggio C Sommario Introduzione... xv Organizzazione del volume... xv Argomenti...xvi Domande...xvi Verifiche...xvi Domande e risposte...xvi Esercizi...xvi Non è richiesta alcuna precedente esperienza di programmazione...

Подробнее

Alfabeto ed elementi lessicali del linguaggio C

Alfabeto ed elementi lessicali del linguaggio C Programmazione M-Z Ingegneria e Scienze Informatiche - Cesena A.A. 2016-2017 Alfabeto ed elementi lessicali del linguaggio C Pietro Di Lena - [email protected] s t a t i c s h o r t l e g s ; i n

Подробнее

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

Подробнее

Corso di Fondamenti di Informatica

Corso di Fondamenti di Informatica Corso di Fondamenti di Informatica Introduzione alla programmazione in C++ 1 Un introduzione Che cosa è il C++? La programmazione procedurale La programmazione orientata agli oggetti La programmazione

Подробнее

Introduzione alla programmazione. Alice Pavarani

Introduzione alla programmazione. Alice Pavarani Introduzione alla programmazione Alice Pavarani Il linguaggio C Creato da Dennis Ritchie nel 1972 presso i Bell Laboratories Linguaggio di programmazione procedurale, strutturato Linguaggio ad alto livello

Подробнее

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 Il Linguaggio C++ IDE Introduzione alla sintassi Istruzioni di scrittura e lettura Identificatori Tipi di dato predefiniti Dichiarazione

Подробнее

Fondamenti di Informatica

Fondamenti di Informatica Storia del C e del C++ Fondamenti di Informatica 13. Introduzione al C++ Linguaggio C 1972, nato come evoluzione di due linguaggi BCPL e B Linguaggi senza nozione di tipo di dati Dennis Ritchie (Bell Laboratories)

Подробнее

SULL USO DEI CARATTERI. char x; si legge con ( %c,&x) e si stampa con ( %c,x) ma anche con ( %d,x) DUE ESEMPI

SULL USO DEI CARATTERI. char x; si legge con ( %c,&x) e si stampa con ( %c,x) ma anche con ( %d,x) DUE ESEMPI SULL USO DEI CARATTERI Ricordiamo che: int x; si legge con ( %d,&x) e si stampa con ( %d,x) float x; si legge con ( %f,&x) e si stampa con ( %f,x) double x;si legge con ( %lf,&x) e si stampa con ( %f,x)

Подробнее

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

Подробнее

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

Подробнее

Variabili. Tipi di dati di base. Variabili. Variabili

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

Подробнее

L AMBIENTE CODE BLOCKS E L IO

L AMBIENTE CODE BLOCKS E L IO L AMBIENTE CODE BLOCKS E L IO Il primo programma in C++ #include using namespace std; main() { cout

Подробнее

Laboratorio di programmazione

Laboratorio di programmazione Laboratorio di programmazione Lezione II Tatiana Zolo [email protected] 1 IL PROGRAMMA C++ Istruzioni (espressioni terminate da ; ) istruzioni di dichiarazione (es. int x = 0;); istruzioni di assegnamento

Подробнее

Variabili. Unità 2. Domenico Daniele Bloisi. Corso di Programmazione e Metodi Numerici Ingegneria Aerospaziale BAER

Variabili. Unità 2. Domenico Daniele Bloisi. Corso di Programmazione e Metodi Numerici Ingegneria Aerospaziale BAER Corso di Programmazione e Metodi Numerici Ingegneria Aerospaziale BAER Domenico Daniele Bloisi Docenti Metodi Numerici prof. Vittoria Bruni [email protected] Programmazione prof. Domenico

Подробнее

L AMBIENTE CODE BLOCKS E L IO

L AMBIENTE CODE BLOCKS E L IO L AMBIENTE CODE BLOCKS E L IO Il primo programma #include main() { printf("ciao Mondo!"); } Il file deve essere salvato con estensione.c Il primo programma in C++ #include using

Подробнее

Introduzione al Linguaggio C

Introduzione al Linguaggio C INFORMATICA 1 Lezione 3 (Introduzione al Linguaggio C, Introduzione ai Tipi di dato, Cenni alla codifica binaria) Introduzione al Linguaggio C 1 Passi fondamentali del C Definito nel 1972 (AT&T Bell Labs)

Подробнее

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

Подробнее

Lezione 9: Puntatori a funzioni. Tipi enumerativi e orientati ai bit

Lezione 9: Puntatori a funzioni. Tipi enumerativi e orientati ai bit Lezione 9: Puntatori a funzioni. Tipi enumerativi e orientati ai bit Vittorio Scarano Laboratorio di Informatica I Corso di Laurea in Informatica Università degli Studi di Salerno Struttura della lezione

Подробнее

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

Подробнее

Informatica (A-K) 7. Linguaggio C - 1

Informatica (A-K) 7. Linguaggio C - 1 Storia del linguaggio C Informatica (A-K) 7. Linguaggio C - 1 Corso di Laurea in Ingegneria Civile & Ambientale A.A. 2011-2012 2 Semestre Prof. Giovanni Pascoschi Linguaggio C 1972, nato come evoluzione

Подробнее

Corso Programmazione 1 Capitolo 01: Concetti Elementari

Corso Programmazione 1 Capitolo 01: Concetti Elementari Corso Programmazione 1 Capitolo 01: Concetti Elementari Docente: Roberto Sebastiani - [email protected] Esercitatori: Mario Passamani - [email protected] Alessandro Tomasi - [email protected]

Подробнее

INTRODUZIONE ALLA PROGRAMMAZIONE AD ALTO LIVELLO IL LINGUAGGIO JAVA. Fondamenti di Informatica - D. Talia - UNICAL 1. Fondamenti di Informatica

INTRODUZIONE ALLA PROGRAMMAZIONE AD ALTO LIVELLO IL LINGUAGGIO JAVA. Fondamenti di Informatica - D. Talia - UNICAL 1. Fondamenti di Informatica Fondamenti di Informatica INTRODUZIONE ALLA PROGRAMMAZIONE AD ALTO LIVELLO IL LINGUAGGIO JAVA Fondamenti di Informatica - D. Talia - UNICAL 1 Fondamenti di Informatica - Programma Un programma è una formulazione

Подробнее

INTRODUZIONE ALLA PROGRAMMAZIONE AD ALTO LIVELLO IL LINGUAGGIO JAVA. Fondamenti di Informatica - Programma

INTRODUZIONE ALLA PROGRAMMAZIONE AD ALTO LIVELLO IL LINGUAGGIO JAVA. Fondamenti di Informatica - Programma Fondamenti di Informatica INTRODUZIONE ALLA PROGRAMMAZIONE AD ALTO LIVELLO IL LINGUAGGIO JAVA Fondamenti di Informatica - D. Talia - UNICAL 1 Fondamenti di Informatica - Programma Un programma è una formulazione

Подробнее

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

Подробнее

Linguaggio C++ Linguaggi di terza generazione

Linguaggio C++ Linguaggi di terza generazione Linguaggio C++ Linguaggi di terza generazione Insieme di primitive ad alto livello, ognuna traducibile in una sequenza di primitive in linguaggio macchina Es.: pesolordo pesocarico + pesoveicolo Due load,

Подробнее

Costanti e Variabili

Costanti e Variabili Parte 3 Costanti e Variabili Identificatori Un identificatore è un nome che viene associato a diverse entità (costanti, tipi, variabili, funzioni, ecc.) e serve ad identificare la particolare entità Gli

Подробнее

Struttura dei programmi C

Struttura dei programmi C Programmi C Struttura dei Programmi C Dichiarazione delle variabili Operazioni di Ingresso/Uscita Fondamenti di Informatica 1 Struttura dei programmi C Un programma C deve contenere, nell'ordine: una parte

Подробнее

Capitolo 2 Introduzione alla programmazione in C

Capitolo 2 Introduzione alla programmazione in C Capitolo 2 Introduzione alla programmazione in C Introduzione Un semplice programma C: Stampa di una linea di testo Un altro semplice programma C: Sommare due interi Concetti sulla Memoria Aritmetica in

Подробнее

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

Подробнее

Prof. Pagani Corrado INTRODUZIONE AL LINGUAGGIO C

Prof. Pagani Corrado INTRODUZIONE AL LINGUAGGIO C Prof. Pagani Corrado INTRODUZIONE AL LINGUAGGIO C IL LINGUAGGIO C Nel 1972 Dennis Ritchie nei Bell Laboratories progettò il linguaggio C Il linguaggio possiede tutti i costrutti di controllo dei linguaggi

Подробнее

Introduzione alla programmazione in C++

Introduzione alla programmazione in C++ Introduzione alla programmazione in C++ Fondamenti di Informatica Roberto BASILI Marzo, 2007 La Programmazione Programmare significa: Determinare la natura del problema (analisi) Definire una decomposizione

Подробнее

Primi passi col linguaggio C

Primi passi col linguaggio C Andrea Marin Università Ca Foscari Venezia Laurea in Informatica Corso di Programmazione part-time a.a. 2011/2012 Come introdurre un linguaggio di programmazione? Obiettivi: Introduciamo una macchina astratta

Подробнее

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 [email protected] Lunedì 2 maggio 2011 http://disi.unitn.it/~agiordani/ Ripasso funzione printf() Usata per stampare il contenuto di una

Подробнее