C C++ &.

Slides:



Advertisements
Presentazioni simili
Linguaggio C e C++.
Advertisements

© 2007 SEI-Società Editrice Internazionale, Apogeo Unità F1 Primi programmi.
Introduzione al linguaggio C++
I Linguaggi di programmazione
Laboratorio di Linguaggi lezione I: "Hello, world!" Marco Tarini Università dellInsubria Facoltà di Scienze Matematiche, Fisiche e Naturali di Varese Corso.
Funzioni e procedure Ogni linguaggio di programmazione ad alto livello mette a disposizione del programmatore questi strumenti, ed il C non è da meno!
Laboratorio di Linguaggi Marco Tarini Università dellInsubria Facoltà di Scienze Matematiche, Fisiche e Naturali di Varese Corso di Laurea in Informatica.
Sottoprogrammi: funzioni e procedure
© 2007 SEI-Società Editrice Internazionale, Apogeo Unità F2 Selezione.
Code::Blocks Ambiente di sviluppo.
Code::Blocks Ambiente di sviluppo.
Recupero debito quarto anno Primo incontro
Evoluzione dei linguaggi di programmazione
Introduzione alla programmazione A. Ferrari. Il linguaggio C Nel 1972 Dennis Ritchie nei Bell Laboratories progettò il linguaggio C Il linguaggio possiede.
Procedure e funzioni In linguaggio C.
I DATI LE ISTRUZIONI LE STRUTTURE FONDAMENTALI
I linguaggi di programmazione
ITIS LATTANZIO Unità Didattica Materia Informatica Funzioni in C++
Inizio… Linguaggi Linguaggi di programmazione Linguaggi di programmazione Linguaggi di programmazione Linguaggi di programmazione Linguaggi Formali Linguaggi.
Type Checking (1° parte)
Metodologie di Programmazione = decomposizione basata su astrazioni
Introduzione al linguaggio C
Fondamenti di Informatica I a.a Il linguaggio C Il preprocessore La sostituzione di macro Le compilazioni condizionali Linclusione di file C.
Concetti di base: header file, funzione main(),set caratteri C++, token, operatori, espressioni etc. Flusso di controllo, cicli, costrutti.
Programmazione Procedurale in Linguaggio C++
Indirizzi delle variabili A ogni variabile sono associati tre concetti fondamentali: il valore memorizzato; il tipo dati di appartenenza; lindirizzo. Il.
FUNZIONI DI BIBLIOTECA
Funzioni definite dall’utente
Informatica 2. Concetti fondamentali di programmazione Programmare vuol dire scrivere un algoritmo in un linguaggio che faccia funzionare un calcolatore.
Introduzione al linguaggio C++ 5 lezioni
1 Corso di Laurea in Biotecnologie Informatica (Programmazione) Introduzione a JAVA Anno Accademico 2009/2010.
Corso di Laurea in Biotecnologie Informatica (Programmazione)
1 Corso di Informatica (Programmazione) Lezione 12 (19 novembre 2008) Programmazione in Java: i metodi statici.
Corso di Informatica (Programmazione)
Fondamenti di Informatica I a.a Il linguaggio C Il controllo di flusso La selezione condizionale Listruzione switch I cicli Le istruzioni break,
Unità Didattica 2 I Linguaggi di Programmazione
Algebra Lineare Esercizi assegnati.
Le funzioni.
Espressioni condizionali
AN FI Un denominatoe comune Comandi u notazioni che esprimono azioni che, una volta eseguite, comportano una modifica permanente dello stato interno.
FUNZIONI... Una funzione permette di dare un nome a una espressione rendendola parametrica float f(){ return * sin(0.75); } float f1(int x) { return.
ITIS LATTANZIO Unità Didattica Materia Informatica Funzioni in C++
...dal bit al linguaggio R. In principio era il bit… …Per intenderci 0 e 1, il linguaggio macchina. Tra gli anni '40 e gli anni '50, la programmazione.
Università degli Studi di Bari Laurea in Chimica Di spense di Informatica - Dott. F. Mavelli Programmare in Matlab Funzioni di Libreria Funzioni definite.
CODIFICA Da flow-chart a C++.
I Metodi in Java Il termine "metodo" è sinonimo di "azione". Quindi, affinché un programma esegua qualche istruzione, deve contenere metodi.
TURBOPASCAL …. ripassiamo - prof. V. Riboldi -.
Lo sviluppo del software e i linguaggi di programmazione
Un esempio: Calcolo della potenza n-esima di un numero reale
Lo sviluppo top down Le funzioni
2000 Prentice Hall, Inc. All rights reserved. Capitolo 5 (Deitel) Le funzioni Indice degli argomenti Introduzione Moduli nei programmi C 5.3.
Unità Didattica 1 Linguaggio C
Complessità di un algoritmo
la traduzione dei programmi
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Funzioni e Procedure Marco D. Santambrogio – Ver. aggiornata al 3 Aprile 2015.
Corso di Algoritmi e Strutture Dati APPUNTI SUL LINGUAGGIO C
Sottoprogrammi e funzioni
1 Il linguaggio C Precisazioni sull’esperienza in laboratorio.
Concetti Fondamentali sulla Programmazione
Linguaggio C: Le basi Stefano Cagnoni e Monica Mordonini
Copyright © Istituto Italiano Edizioni Atlas
Problemi, algoritmi e programmazione
Eprogram informatica V anno. Introduzione a PHP Introduzione La diffusione di PHP ha avuto un notevole incremento dalla fine degli anni Novanta a oggi,
Programmazione dei Calcolatori Elettronici
Il C `e un linguaggio di programmazione di uso generale, originariamente sviluppato per la scrittura del sistema operativo Unix, ed oggi disponibile su.
I linguaggi di programmazione -GALBIATI ALBERTO -ESPOSITO MATTIA.
Dal problema al programma – ciclo di sviluppo del software La scrittura del programma è solo una delle fasi del processo di sviluppo di un'applicazione.
Parsing ricorsivo discendente Il parsing ricorsivo discendente (recursive descent parsing) è un metodo di tipo top-down che può essere facilmente codificato.
Transcript della presentazione:

C C++ &

Generalità sul linguaggio C Dennis Ritchie Brian W. Kernighan Il C è un linguaggio di programmazione procedurale di alto livello. Progettato e realizzato da Dennis Ritchie e da Brian W. Kernighan nel 1972, fu sviluppato presso gli AT&T Bell Laboratories con lo scopo di ottenere un linguaggio di alto livello per l’implementazione dei sistemi operativi. Il linguaggio C nasce come evoluzione di altri linguaggi. Il linguaggio C nasce come evoluzione del linguaggio BCPL (Basic Combined Programming Language) e del suo successore, il linguaggio B. Benché strettamente legato a quest’ultimo sistema, il C può essere utilizzato con i principali sistemi operativi oggi disponibili. Il C è un linguaggio compilato. Dalla metà degli anni Ottanta, l’ANSI C divenne la versione ufficiale del linguaggio. Nella metà degli anni Ottanta il comitato X3JI1 dell’ANSI (American National Standards Institute) sviluppò uno standard per il linguaggio C che aggiungeva importanti caratteristiche e ufficializzava molte caratteristiche presenti nei diversi compilatori realizzati successivamente alla pubblicazione di K&R.

Le principali caratteristiche del linguaggio C È un linguaggio general purpouse, ossia può essere impiegato per codificare progetti software di natura diversa, da quelli real time a quelli che operano su basi di dati, da quelli tecnico-scientifici sino alla realizzazione di moduli per il sistema operativo. È un linguaggio strutturato di tipo imperativo (o procedurale). I linguaggi C e C++ non sono linguaggi strutturati a blocchi poiché non consentono la dichiarazione di procedure e funzioni all’interno di altre procedure e funzioni. Nella versione ANSI, è facilmente portabile e perciò multipiattaforma; può infatti essere compilato su un’ampia gamma di computer. Il C riunisce in sé i migliori elementi dei linguaggi ad alto livello con la possibilità di controllo e la flessibilità del linguaggio Assembler.

Le principali caratteristiche del linguaggio C Produce programmi efficienti. Essendo nato per implementare sistemi operativi, il C evita anche, ove possibile, qualsiasi operazione che possa determinare un decadimento del livello di efficienza del programma eseguibile. Produce programmi di dimensioni ridotte. Ha infatti una sintassi che si presta alla concisione e alla scrittura di codice compatto. Consente l’implementazione dei puntatori (fa ampio uso di puntatori per memoria, vettori, strutture e funzioni). Alcune delle lacune del C riguardano invece: Spesso non è facile trovare gli errori quando si programma in C. Un metodo scadente per l’identificazione di errori (che generalmente ne esclude l’utilizzo ai principianti). La facilità con cui si possono “violare le regole” del C.

Inizialmente il linguaggio C++ venne chiamato C con classi. Bjarne Stroustrup Intorno alla prima metà degli anni Ottanta fu sviluppata un’estensione del linguaggio C chiamata inizialmente “C con classi” e , solo dopo qualche anno, ribattezzata C++. Il C++ mantiene il C come linguaggio base per non perdere gli indiscutibili vantaggi offerti da quest’ultimo.

Il linguaggio C++ Il linguaggio C++ è un linguaggio autonomo indipendente dal C. Il C++ rappresenta un linguaggio autonomo indipendente dal C, venendosi a posizionare tra i linguaggi di medio livello. In particolare, l’introduzione di costrutti quali i template e le classi rende C++ un linguaggio multiparadigma (con particolare predilezione per il paradigma a oggetti e la programmazione generica). Il C e il C++ sono linguaggi per programmatori. Ciò che ha sempre differenziato il linguaggio C++ dagli altri linguaggi artificiali è il fatto di non essere stato sviluppato da gruppi di ricerca appositamente predisposti per creare un nuovo linguaggio di programmazione, ma creato dai programmatori con l’obbiettivo di rendere più semplice l’attività di codifica di programmi notevolmente lunghi e complessi.

Descrizione sintattica dei linguaggi di programmazione Un linguaggio di programmazione non è un linguaggio naturale. Lo studio di un linguaggio di programmazione, proprio come lo studio di un linguaggio naturale (italiano, inglese, ecc.) si basa sul rispetto e sull’applicazione di precise regole grammaticali. I linguaggi di programmazione fanno parte dei cosiddetti linguaggi formali, cioè a quell’insieme di regole che definisce la struttura di frasi formalmente corrette.

Formalismo utilizzato per descrivere la sintassi del linguaggio Le parole chiave del linguaggio saranno scritte in grassetto. Le parole scritte racchiuse tra le parentesi angolari < > rappresentano le categorie sintattiche, ossia elementi generali del linguaggio che, nei vari programmi, saranno sostituiti con opportune occorrenze. Ad esempio: <NomeVariabile> = <Espressione> A = B A = C + 2 * D C = 0 I blocchi racchiusi tra parentesi quadre [ ] indicano l’opzionalità, ossia tali blocchi possono anche non essere presenti. Ad esempio: int <NomeVariabile> [= <ValoreIniziale>] I blocchi racchiusi tra parentesi graffe { } indicano la possibilità di ripetizione. Ad esempio: indica che subito dopo il nome della variabile è possibile inserire altri nomi separati da una virgola. int <NomeVariabile> {,<NomeVariabile>} Il simbolo | ha il significato di OR. Ciò significa che all’interno di una lista di parole chiave separate da questo simbolo occorre sceglierne soltanto una. Ad esempio: int | float <NomeVariabile>

Gli elementi di un programma C++ Struttura di un programma C++ Facoltativo Direttive al processore Facoltativo Dichiarazione di variabili globali e/o dei prototipi delle funzioni OBBLIGATORIO Programma principale (funzione main) Facoltativo Funzione 1 Facoltativo Funzione 2 Facoltativo Funzione N

Il programma principale (funzione main) La funzione main è la funzione principale di un programma codificato in C++ e come tale deve essere sempre presente. [<TipoRestituito>] main ([<ElencoParametri>]) { <Istruzione1>; <Istruzione2>; ……… <IstruzioneN>; }

Il programma principale (funzione main) Il gruppo di istruzioni racchiuse all’interno della coppia di parentesi graffe { } definisce il corpo del programma. Il più semplice programma in C++ che si può scrivere è il seguente: main ( ) { }

Il programma principale (funzione main) L’istruzione return fa in modo che la funzione restituisca il valore (o l’espressione) indicato. int main ( ) { return 0; } Con l’istruzione return la funzione restituisce il valore (o l’espressione) indicato. Naturalmente tale valore deve essere dello stesso tipo della funzione.

Il programma principale (funzione main) Nel caso in cui non si voglia usare l’istruzione return occorre dichiarare esplicitamente che la funzione non restituisce alcun risultato. Per far questo occorre far precedere il nome main dalla parola chiave void: void main ( ) { }

Il programma principale (funzione main) #include <iostream.h> int main ( ) { cout << “Ciao mondo!”; return 0; } È buona regola indentare le istruzioni al fine di garantire la leggibilità del programma. Un programma non indentato diventa difficile da leggere e da correggere. L’indentazione aiuta a seguire il flusso del controllo e, di conseguenza, a seguire la logica del programma. Sempre riferendoci all’istruzione return, si può notare che ogni istruzione in C++ termina con un punto e virgola (;). Su una singola riga è possibile scrivere più istruzioni, ma è buona norma scriverne solo una al fine di migliorare la leggibilità del codice.

La preelaborazione del codice sorgente: le direttive al processore Programma sorgente e programma oggetto. Il linguaggio C++ è un linguaggio compilato. Come sappiamo, i compilatori sono programmi che accettano in ingresso un programma scritto in linguaggio di alto livello (detto programma sorgente) e lo traducono interamente in un programma in linguaggio macchina (detto programma oggetto): a traduzione ultimata, il programma potrà essere eseguito. A differenza di altri linguaggi, la compilazione in C++ prevede una prima fase di preelaborazione, detta precompilazione, svolta da un apposito modulo denominato preprocessore.

La preelaborazione del codice sorgente: le direttive al processore Programma sorgente e programma oggetto. Le dichiarative di precompilazione sono istruzioni di dichiarazione per il processore. Le istruzioni di dichiarazione per il preprocessore vengono chiamate dichiarative di precompilazione o direttive al preprocessore e iniziano con il carattere # seguito dalla parola chiave include o define e dalla dichiarazione della direttiva. La direttiva #include consente di inserire nel file sorgente la libreria standard indicata dopo la diirettiva stessa.

La preelaborazione del codice sorgente: le direttive al processore Programma sorgente e programma oggetto. Le dichiarative di precompilazione sono istruzioni di dichiarazione per il processore. Una libreria è un insieme organizzato di programmi utilizzati frequentemente nelle applicazioni e memorizzati su un dispositivo di memoria di massa. La direttiva va racchiusa all’interno di parentesi angolari o di doppi apici. Ad esempio, le direttive: #include <iostream.h> #include ‘‘iostream.h’’ indicano al compilatore di includere e compilare insieme al programma il file iostream.h che contiene i prototipi delle funzioni standard di input/output (I/O) del C++, richiamabili poi da un qualsiasi punto del programma.

La preelaborazione del codice sorgente: le direttive al processore Programma sorgente e programma oggetto. Le dichiarative di precompilazione sono istruzioni di dichiarazione per il processore. #include <iostream.h> #include ‘‘iostream.h’’ L’estensione .h del file sta a indicare che i file in questione sono file di intestazione o file di header. Le dichiarazioni di inclusione #include non terminano con il punto e virgola.

Le funzioni per la gestione dell’input/output La funzione cout ci consente di scrivere sul monitor. cout è abbreviazione di console output. Il simbolo << è detto operatore di output. La sintassi è la seguente: cout << <Espressione> | <Stringa> {<< <Espressione> | <Stringa>}; Ad esempio, l’istruzione: Ad esempio, l’istruzione: cout << “Ciao a tutti”; cout << 2+3+7; visualizza sul monitor la stringa Ciao a tutti. visualizza sul monitor il valore 12.

Le funzioni per la gestione dell’input/output La funzione cin ci consente di leggere i dati provenienti dalla tastiera. cin è abbreviazione di console input. Il simbolo >> è detto operatore di input. La sintassi è la seguente: cin >> <NomeVariabile> {>> <NomeVariabile>}; Ad esempio, l’istruzione: cin >> Numero; consente di accogliere all’interno della variabile Numero il valore digitato dalla tastiera.

Realizziamo il nostro primo programma in C++ #include <iostream.h> int main ( ) { cout << “Ciao mondo!”; return 0; }

Dal codice sorgente al codice eseguibile I passi da eseguire per creare un file eseguibile sono i seguenti: Scrittura del programma sorgente e memorizzazione dello stesso all’interno di un file con l’estensione .c, .cpp, .cp. Compilazione del programma sorgente e ottenimento del programma oggetto memorizzato in un file caratterizzato dall’estensione .obj. Il compilatore, durante la fase di traduzione del codice sorgente in codice oggetto, verifica la correttezza formale del codice sorgente e segnala la presenza di errori che impediscono la creazione del file oggetto (con un messaggio error), oppure invia un warning quando rivela errori che consentono comunque di creare il file oggetto; i warning sono avvertimenti di situazioni anomale che potrebbero creare problemi in fase di esecuzione. Linking del programma oggetto con le librerie standard del linguaggio dichiarate nel codice sorgente a opera di un particolare programma chiamato linker. Il risultato sarà il programma eseguibile memorizzato in un file caratterizzato dall’estensione .exe.