Corso Programmazione 1 Capitolo 01: Concetti Elementari



Documenti analoghi
Alfabeto ed elementi lessicali del linguaggio C

Introduzione alla programmazione in C

Funzioni in C. Violetta Lonati

Struttura di un programma C++

Gli array. Gli array. Gli array. Classi di memorizzazione per array. Inizializzazione esplicita degli array. Array e puntatori

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

Nascita di Java. Che cos e Java? Caratteristiche di Java. Java: linguaggio a oggetti

Alcune regole di base per scrivere un programma in linguaggio C

Programmazione C Massimo Callisto De Donato massimo.callisto@unicam.it

3 - Variabili. Programmazione e analisi di dati Modulo A: Programmazione in Java. Paolo Milazzo

void funzioneprova() { int x=2; cout<<"dentro la funzione x="<<x<<endl; }

Variabili e tipi di dato

Le stringhe. Le stringhe

Programmare in Java. Olga Scotti

Codifica: dal diagramma a blocchi al linguaggio C++

Elementi lessicali. Lezione 4. La parole chiave. Elementi lessicali. Elementi lessicali e espressioni logiche. Linguaggi di Programmazione I

Introduzione al Python

Java: Compilatore e Interprete

La velocità di una carovana

La sintassi del C APPENDICE H

Matematica - SMID : Programmazione Febbraio 2009 FOGLIO RISPOSTE

Java:Struttura di Programma. Fabio Scanu a.s. 2014/2015

Laboratorio di Programmazione 1. Docente: dr. Damiano Macedonio Lezione 18 31/03/2014

Corso di Fondamenti di Informatica

Struttura di un programma Java

Fondamenti di Informatica e Laboratorio T-AB Ingengeria dell Automazione a.a. 2008/2009. Lab 02 Tipi semplici in C

Le variabili. Olga Scotti

Strutture. Strutture e Unioni. Definizione di strutture (2) Definizione di strutture (1)

Algebra di Boole: Concetti di base. Fondamenti di Informatica - D. Talia - UNICAL 1. Fondamenti di Informatica

Dati testuali. Caratteri e stringhe. Tipi di dato testuali. Dati testuali. Il sistema dei tipi C. Rappresentazione dei testi

Gian Luca Marcialis studio degli algoritmi programma linguaggi LINGUAGGIO C

+ / operatori di confronto (espressioni logiche/predicati) / = > < Pseudo codice. Pseudo codice

Excel. A cura di Luigi Labonia. luigi.lab@libero.it

Laboratorio di Informatica I

Linguaggio C. Fondamenti. Struttura di un programma.

LINGUAGGI DI PROGRAMMAZIONE

Alfabeto ed elementi lessicali del linguaggio C

Richiesta pagina PHP (es: index.php)

Appunti del corso di Informatica 1 (IN110 Fondamenti) 6 Introduzione al linguaggio C

COS È UN LINGUAGGIO? LINGUAGGI DI ALTO LIVELLO LA NOZIONE DI LINGUAGGIO LINGUAGGIO & PROGRAMMA

Concetto di Funzione e Procedura METODI in Java

Dall Algoritmo al Programma. Prof. Francesco Accarino IIS Altiero Spinelli Sesto San Giovanni

Un esecutore di un linguaggio simbolico e costituito dalla coppia Compilatore, processore (o Interprete, processore)

Linguaggi di Programmazione

Università degli Studi di Cassino Corso di Fondamenti di Informatica Puntatori. Anno Accademico 2010/2011 Francesco Tortorella

Fondamenti di Informatica e Laboratorio T-AB T-16 Progetti su più file. Funzioni come parametro. Parametri del main

BREVE INTRODUZIONE ALLA PROGRAMMAZIONE IN C++ E MATHEMATICA

Appunti del corso di Informatica 1. 6 Introduzione al linguaggio C

MATLAB. Caratteristiche. Dati. Esempio di programma MATLAB. a = [1 2 3; 4 5 6; 7 8 9]; b = [1 2 3] ; c = a*b; c

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

INFORMATICA - I puntatori Roberta Gerboni

Visibilità dei Membri di una Classe

ISTITUTO TECNICO INDUSTRIALE STATALE LA GESTIONE DEI FILE DI TESTO IN C++

4 3 4 = 4 x x x 10 0 aaa

Introduzione. Laboratorio di Calcolo Corso di Laurea in Fisica. Università degli Studi di Roma La Sapienza

Inizializzazione, Assegnamento e Distruzione di Classi

Capitolo Quarto...2 Le direttive di assemblaggio di ASM Premessa Program Location Counter e direttiva ORG

Programmazione I / Informatica generale Prova scritta 11 Giugno 2008

GESTIONE INFORMATICA DEI DATI AZIENDALI

Le funzioni in C. I programmi C sono costituiti da definizioni di variabili e funzioni.

costruttori e distruttori

Eredità in C++ Corso di Linguaggi di Programmazione ad Oggetti 1. a cura di Giancarlo Cherchi

Compilatore risorse display grafico LCD serie IEC-line

Appunti sulla Macchina di Turing. Macchina di Turing

Università di Torino Facoltà di Scienze MFN Corso di Studi in Informatica. Programmazione I - corso B a.a prof.

LABORATORIO DI PROGRAMMAZIONE EDIZIONE 1, TURNO B

Linguaggio C Compilazione, linking e preprocessor

PROVA INTRACORSO TRACCIA A Pagina 1 di 6


Introduzione alla programmazione Java. Dott. Ing. M. Banci, PhD

Tipi di dato-prima parte

Dispensa YACC: generalità

Connessione ad internet

Bloodshed Dev-C++ è l IDE usato durante le esercitazioni/laboratorio. IDE = Integrated Development Environment

Informatica B. Breve introduzione all ambiente di programmazione. Politecnico di Milano IV Facoltà di Ingegneria 2003

APPUNTI SUL LINGUAGGIO DI PROGRAMMAZIONE PASCAL

Introduzione a I LINGUAGGI DI PROGRAMMAZIONE

Rappresentazione dei numeri in un calcolatore

Corso di programmazione in C

Programmazione in Java Parte I: Fondamenti

ALGEBRA DELLE PROPOSIZIONI

12 - Introduzione alla Programmazione Orientata agli Oggetti (Object Oriented Programming OOP)

BOZZA. cin per la comunicazione dal dispositivo di input standard, la tastiera, al programma (stream di input standard)

NOZIONI BASE PER ESERCITAZIONI

IL LINGUAGGIO C++ Configurazione di Dev-C++

Corso Base. Liceo Norberto Rosa Bussoleno Prof. Angelo GIORGIO

La struttura dati ad albero binario

Corso di Fondamenti di Informatica

Gli algoritmi: definizioni e proprietà

Lezione 1. Gli Insiemi. La nozione di insieme viene spesso utilizzata nella vita di tutti i giorni; si parla dell insieme:

Javascript: il browser

Automatizzare i compiti ripetitivi. I file batch. File batch (1) File batch (2) Visualizzazione (2) Visualizzazione

Funzioni. Il modello console. Interfaccia in modalità console

Le command line di Java

Il Software e Il Sistema Operativo. Prof. Francesco Accarino IIS Altiero Spinelli A.S. 09/10

Informatica B a.a 2005/06 (Meccanici 4 squadra) PhD. Ing. Michele Folgheraiter

Linguaggio C - Stringhe

ESERCIZI DI PROGRAMMAZIONE C/C++ per le classi terza

Esercizi di programmazione in C

Introduzione al linguaggio C Gli array

Transcript:

Corso Programmazione 1 Capitolo 01: Concetti Elementari Docente: Roberto Sebastiani - roberto.sebastiani@unitn.it Esercitatori: Mario Passamani - mario.passamani@unitn.it Alessandro Tomasi - alessandro.tomasi@unitn.it C.D.L.: Informatica A.A.: 2015-2016 Luogo: DISI, Università di Trento URL: disi.unitn.it/~rseba/didattica/prog1_2016/ Ultimo aggiornamento: 14 settembre 2015, ore 11:34 Avviso: il materiale (testo, figure) mostrato in queste slide è opera principalmente di Roberto Sebastiani, con contributi di Alessandro Armando, Enrico Giunchiglia e Sabrina Recla. Le persone di cui sopra ne detengono i diritti di autore. Ogni uso commerciale di queste slide senza l esplicita autorizzazione degli autori è strettamente proibito dalle leggi sul copyright. Nessuna copia di queste slide può essere mostrata in pubblico senza essere preceduta da questo avviso. c Roberto Sebastiani et al. () Cap. 01: Concetti Elementari 14 settembre 2015 1 / 22

Outline Scrittura e Compilazione di un programma 1 Scrittura e Compilazione di un programma 2 Programmi elementari 3 Sintassi del C++ c Roberto Sebastiani et al. () Cap. 01: Concetti Elementari 14 settembre 2015 2 / 22

Scrittura e Compilazione di un programma Scrittura di un programma scrittura di uno o più file di testo, chiamato/i sorgente Scritto in un linguaggio di programmazione (es C++) Stampabile, comprensibile ad un essere umano creazione e modifica tramite uno strumento chiamato editor Es. Emacs sotto linux in C++ tipicamente l estensione del nome è.cc,.cpp (o.h ) Es. prova.cc, prova.cpp c Roberto Sebastiani et al. () Cap. 01: Concetti Elementari 14 settembre 2015 3 / 22

Scrittura e Compilazione di un programma Compilazione (un unico file) file sorgente ("prova.cc") file oggetto ("prova.o") LINKER COMPILATORE librerie di sistema ("cmath") file eseguibile ("a.out") COMPILATORE+LINKER file sorgente tradotto in un file oggetto dal compilatore Es: g++ -c prova.cc Imp: file oggetto illeggibile ad un essere umano e non stampabile! file oggetto collegato (linked) a librerie di sistema dal linker, generano un file eseguibile (default a.out, opzione -o <nome>) Es: g++ prova.o Es: g++ prova.o -o prova File incomprensibili agli umani, ma eseguibili da una macchina Compilazione e linking possibile in un unica istruzione Es: g++ prova.cc c Roberto Sebastiani et al. () Cap. 01: Concetti Elementari 14 settembre 2015 4 / 22

Scrittura e Compilazione di un programma Compilazione (su più files) file sorgente ("prova1.cc") ("prova2.cc").... ("provan.cc") COMPILATORE file oggetto ("prova1.o") ("prova2.o") ("provan.o") librerie di sistema ("cmath") LINKER file eseguibile ("a.out") file sorgente tradotti nei rispettivi file oggetto uno alla volta file oggetto collegato (linked) a librerie di sistema dal linker, generano un file eseguibile (default a.out) Es: g++ prova1.o prova2.o... provan.o Compilazione e linking possibile in un unica istruzione Es: g++ prova1.cc prova2.cc... provan.cc c Roberto Sebastiani et al. () Cap. 01: Concetti Elementari 14 settembre 2015 5 / 22

ESEMPI Scrittura e Compilazione di un programma esempio di com è fatto un programma: { ESEMPI_BASE/esempio_fattoriale.cc } con compilazione separata: { ESEMPI_BASE/fact.cc ESEMPI_BASE/esempio_fattoriale2.cc } c Roberto Sebastiani et al. () Cap. 01: Concetti Elementari 14 settembre 2015 6 / 22

Outline Programmi elementari 1 Scrittura e Compilazione di un programma 2 Programmi elementari 3 Sintassi del C++ c Roberto Sebastiani et al. () Cap. 01: Concetti Elementari 14 settembre 2015 7 / 22

Programmi elementari Un template di programma C++ Componente comune a tutti i programmi di questo corso:: { ESEMPI_BASE/template.cc } using namespace std; // Definizione dello spazio // dei nomi #include <iostream> int main () { return 0; } // chiamata a libreria // funzione principale // chiusura funzione principale c Roberto Sebastiani et al. () Cap. 01: Concetti Elementari 14 settembre 2015 8 / 22

Programmi elementari Un programma C++ elementare Output di una stringa predefinita: { ESEMPI_BASE/ciao.cc } using namespace std; #include <iostream> // chiamata a libreria int main () // funzione principale { cout << "Ciao a tutti\n"; // istruzione di output return 0; } Variante con endl : { ESEMPI_BASE/ciao2.cc } Variante con stringa spezzettata: { ESEMPI_BASE/ciao3.cc } c Roberto Sebastiani et al. () Cap. 01: Concetti Elementari 14 settembre 2015 9 / 22

Outline Sintassi del C++ 1 Scrittura e Compilazione di un programma 2 Programmi elementari 3 Sintassi del C++ c Roberto Sebastiani et al. () Cap. 01: Concetti Elementari 14 settembre 2015 10 / 22

Sintassi del C++ Elementi di base: sequenze di parole Le parole di un programma C++ possono essere costituite da: lettere: _ a b c d e f g h i j k l m n o p q r s t u v w x y z A B C D E F G H I J K L M N O P Q R S T U V W X Y Z cifre (digit): 0 1 2 3 4 5 6 7 8 9 caratteri speciali:! ^ \& \* ( ) - + = { } ~ [ ] \ ; : " < >?,. / c Roberto Sebastiani et al. () Cap. 01: Concetti Elementari 14 settembre 2015 11 / 22

Sintassi del C++ Elementi di base: spaziature Le spaziature possono essere costituite da spazi: tabulazioni: caratteri di nuova riga: commenti: racchiusi fra /* e */ (come in C): /* Questo commento e su piu righe */ tra // e fine riga: // Questo commento e su una sola riga c Roberto Sebastiani et al. () Cap. 01: Concetti Elementari 14 settembre 2015 12 / 22

Sintassi del C++ Identificatori (Identifiers) Nota le entità di un programma C++ devono avere dei nomi che ne consentano l individuazione nel caso più semplice i nomi sono degli identificatori liberamente scelti un identificatore è una parola iniziante con una lettera il carattere _ è una lettera il C++ distingue tra maiuscole e minuscole (si dice che è case sensitive). Es: Fact è diverso da fact c Roberto Sebastiani et al. () Cap. 01: Concetti Elementari 14 settembre 2015 13 / 22

Sintassi del C++ Parole Chiave (keywords) Le parole chiave del C++ sono un insieme di simboli il cui significato è stabilito dal linguaggio e non può essere ridefinito in quanto il loro uso è riservato. Principali parole chiavi del C++ asm auto break case catch char class const continue default delete do double else enum extern float for friend goto if inline int long new operator private protected public register return short signed sizeof static struct switch template this throw try typedef union virtual void volatile while c Roberto Sebastiani et al. () Cap. 01: Concetti Elementari 14 settembre 2015 14 / 22

Sintassi del C++ Le Espressioni Letterali Denotano valori costanti, spesso sono chiamati solo letterali (o costanti senza nome, o valori costanti ) Possono essere: costanti carattere (denotano singoli caratteri) costanti stringa (denotano sequenze di caratteri) costanti numeriche intere costanti numeriche reali c Roberto Sebastiani et al. () Cap. 01: Concetti Elementari 14 settembre 2015 15 / 22

Sintassi del C++ Rappresentazione costanti carattere una costante carattere viene rappresentata racchiudendo il corrispondente carattere fra apici: per esempio la costante a rappresenta il carattere a i caratteri di controllo vengono rappresentati da combinazioni speciali dette sequenze di escape che iniziano con una barra invertita (backslash \ ) c Roberto Sebastiani et al. () Cap. 01: Concetti Elementari 14 settembre 2015 16 / 22

Sequenze di Escape Sintassi del C++ Nome Abbreviazione Sequenza di Escape nuova riga NL(LF) \n tabulazione orizzontale HT \t tabulazione verticale VT \v spazio indietro BS \b ritorno carrello CR \r avanzamento modulo FF \f segnale acustico BEL \a barra invertita \ \\ apice \ virgolette " \" Esempio: { ESEMPI_BASE/escape.cc } c Roberto Sebastiani et al. () Cap. 01: Concetti Elementari 14 settembre 2015 17 / 22

Sintassi del C++ Rappresentazione di Costanti Stringa una costante stringa è una lista di caratteri compresa fra una coppia di virgolette esempio: "Hello!" possono includere anche spaziature, caratteri non alfanumerici e sequenze di escape: per esempio "Hello, world!\n" c Roberto Sebastiani et al. () Cap. 01: Concetti Elementari 14 settembre 2015 18 / 22

Sintassi del C++ Rappresentazione di Numeri un numero intero viene rappresentato da una sequenza di cifre, che vengono interpretate in base decimale (default) in base ottale se inizia con uno zero in base esadecimale se inizia con 0x (o 0X ) un numero reale (in virgola mobile) viene rappresentato facendo uso del punto decimale e della lettera e (o E ) per separare la parte in virgola fissa dall esponente; ad esempio: -1235.6e-2 rappresenta -12,356 Nota: In un numero reale, la virgola viene rappresentata secondo la notazione anglosassone con un punto.. Esempio di rappresentazione di numeri in C++: { ESEMPI_BASE/rappr_numeri.cc } c Roberto Sebastiani et al. () Cap. 01: Concetti Elementari 14 settembre 2015 19 / 22

Sintassi del C++ Operatori Alcuni caratteri speciali e loro combinazioni sono usati come operatori, cioè servono a denotare certe operazioni nel calcolo delle espressioni. Esempio: 2*3+4 Principali operatori del C++ + - * / % ^ & ~! = < > += -= *= /= %= ^= &= = << >> >>= <<= ==!= <= >= && ++ --, ->* ->.* :: () []?: c Roberto Sebastiani et al. () Cap. 01: Concetti Elementari 14 settembre 2015 20 / 22

Sintassi del C++ Proprietà degli Operatori la posizione rispetto ai suoi operandi (o argomenti): un operatore si dice prefisso se precede gli argomenti postfisso se segue gli argomenti infisso se sta fra gli argomenti il numero di argomenti (o arità) la precedenza (o priorità) nell ordine di esecuzione; ad esempio: l espressione 1+2*3 viene calcolata come 1+(2*3) e non come (1+2)*3 l associatività: l ordine in cui vengono eseguiti operatori della stessa priorità gli operatori possono essere associativi a destra o a sinistra c Roberto Sebastiani et al. () Cap. 01: Concetti Elementari 14 settembre 2015 21 / 22

Sintassi del C++ I Separatori Principali Separatori del C++ ( ), ; : { } i separatori sono simboli di interpunzione, che indicano il termine di una istruzione, separano elementi di liste, raggruppano istruzioni o espressioni, ecc. alcuni caratteri, come la virgola, possono essere sia separatori che operatori, a seconda del contesto le parentesi devono essere sempre usate in coppia, come nel normale uso matematico c Roberto Sebastiani et al. () Cap. 01: Concetti Elementari 14 settembre 2015 22 / 22