Copyright © Istituto Italiano Edizioni Atlas

Slides:



Advertisements
Presentazioni simili
C C++ &.
Advertisements

Puntatori Linguaggio C.
© 2007 SEI-Società Editrice Internazionale, Apogeo Unità F1 Primi programmi.
Introduzione al linguaggio C++
INFORMATICA Altre Istruzioni di I/O
LINGUAGGIO DI PROGRAMMAZIONE C
Puntatori in C e C++.
© 2007 SEI-Società Editrice Internazionale, Apogeo Unità F2 Selezione.
Iterazione while – do while - for.
Struttura di un programma
Array multidimensionali
Introduzione alla programmazione A. Ferrari. Il linguaggio C Nel 1972 Dennis Ritchie nei Bell Laboratories progettò il linguaggio C Il linguaggio possiede.
Selezione - approfondimento
Procedure e funzioni In linguaggio C.
LE FUNZIONI IN C Sommario 1 Introduzione 2 Moduli di programma in C
PHP.
© 2007 SEI-Società Editrice Internazionale, Apogeo Unità F3 Iterazione.
Introduzione al linguaggio C
Introduzione al linguaggio C Dr. Francesco Fabozzi Corso di Informatica.
Introduzione al linguaggio C
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
Fondamenti di Informatica II Ingegneria Informatica / Automatica (A-I) Meccanica Prof. M.T. PAZIENZA a.a – 3° ciclo.
Argomenti dalla linea dei comandi Gli argomenti possono essere passati a qualsiasi funzione di un programma, compresa la main(), direttamente dalla linea.
Funzioni definite dall’utente
Prof.ssa Chiara Petrioli -- Fondamenti di programmazione, a.a. 2009/2010 Corso di Fondamenti di programmazione a.a. 2009/2010 Prof.ssa Chiara Petrioli.
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Puntatori Marco D. Santambrogio – Ver. aggiornata al 21 Marzo 2013.
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Stringhe e Puntatori Marco D. Santambrogio – Ver. aggiornata al 18 Marzo 2013.
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Funzioni e Procedure Marco D. Santambrogio – Ver. aggiornata al 15 Marzo 2013.
Informatica 2. Concetti fondamentali di programmazione Programmare vuol dire scrivere un algoritmo in un linguaggio che faccia funzionare un calcolatore.
1 Corso di Laurea in Biotecnologie Informatica (Programmazione) Introduzione a JAVA Anno Accademico 2009/2010.
Fondamenti di Informatica I a.a Il linguaggio C Il controllo di flusso La selezione condizionale Listruzione switch I cicli Le istruzioni break,
Esercizi FUNZIONI Passaggio di parametri per valore, variabili e tipi locali e globali, prototipo.
Esercizi Puntatori, struct con campi puntatore, puntatori a struct, rapporto tra array e puntatori. FUNZIONI Passaggio di parametri per indirizzo, passaggio.
Algebra Lineare Esercizi assegnati.
I File.
Le funzioni.
Espressioni condizionali
Lezione 2 Programmare in ASP
CODIFICA Da flow-chart a C++.
TURBOPASCAL …. ripassiamo - prof. V. Riboldi -.
Il linguaggio C Le funzioni C Language Il passaggio dei parametri
ISTITUTO STATALE DI ISTRUZIONE SUPERIORE F. ENRIQUES CORSO JAVA – PROVA INTERMEDIA DEL 12 MARZO 2007 NOME: COGNOME: ________________________________________________________________________________.
Prof.ssa Chiara Petrioli -- Fondamenti di programmazione, a.a. 2009/2010 Corso di Fondamenti di programmazione a.a. 2009/2010 Prof.ssa Chiara Petrioli.
Unità Didattica 3 Linguaggio C
2000 Prentice Hall, Inc. All rights reserved. Attivazione di funzioni La chiamata/attivazione di funzione viene indicata citando il nome della funzione.
ISTITUTO STATALE DI ISTRUZIONE SUPERIORE F. ENRIQUES CORSO JAVA – PROVA INTERMEDIA DEL 12 MARZO 2007 NOME: COGNOME: ________________________________________________________________________________.
Appunti di Java (J2SDK 1.4.2, JDK 1.6.0) prof. Antonella Schiavon settembre 2009.
Anno accademico Le istruzioni di controllo in C.
1 Fabio Scotti ( ) Laboratorio di programmazione per la sicurezza Valentina Ciriani ( ) Laboratorio di programmazione Lezione 11 e 12 -
Programmazione in linguaggio C
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Funzioni e Procedure Marco D. Santambrogio – Ver. aggiornata al 3 Aprile 2015.
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Puntatori Marco D. Santambrogio – Ver. aggiornata al 11 Ottobre 2014.
Corso di Algoritmi e Strutture Dati APPUNTI SUL LINGUAGGIO C
Fondamenti di Informatica 2 Ingegneria Informatica Docente: Giovanni Macchia a.a
Fondamenti di Informatica II Ingegneria Informatica (A-I) Prof. M.T. PAZIENZA a.a – 3° ciclo.
Informatica 4 Funzioni. FUNZIONE: definizione MATEMATICA Relazione (o applicazione) binaria tra due insiemi A e B che associa a ogni elemento di A un.
1 Fabio Scotti – Università degli Studi di Milano Fabio Scotti ( ) Laboratorio di programmazione per la sicurezza Valentina Ciriani ( )
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Puntatori Marco D. Santambrogio – Ver. aggiornata al 11 Marzo 2014.
1 Il linguaggio C Precisazioni sull’esperienza in laboratorio.
Scrivere e compilare programmi
Lezione I Alessandro Dal Palu’ Laboratorio di Programmazione.
Linguaggio C: Le basi Stefano Cagnoni e Monica Mordonini
C++:Strutture di Controllo
Informatica B Allievi Elettrici - AA Fondamenti della programmazione in linguaggio C (III)
Eprogram informatica V anno. Introduzione a PHP Introduzione La diffusione di PHP ha avuto un notevole incremento dalla fine degli anni Novanta a oggi,
Il C `e un linguaggio di programmazione di uso generale, originariamente sviluppato per la scrittura del sistema operativo Unix, ed oggi disponibile su.
Basi di Java Strutture base di Java. Basi di java ▪Variabili ▪Operatori ▪Condizioni e Cicli ▪Array.
Linguaggio C: Funzioni e Puntatori Laboratorio di Programmazione Gruppo 1.
Transcript della presentazione:

Copyright © Istituto Italiano Edizioni Atlas Linguaggio C++ Lorenzi – V. Moriggia C++. TEORIA E AMBIENTE DI PROGRAMMAZIONE Atlas Copyright © Istituto Italiano Edizioni Atlas

Il programma C++ Un programma in C++ per la somma di due numeri // Somma.cpp: somma di due numeri #include <iostream> using namespace std; int main() { int a, b, s; cin >> a; cin >> b; s = a + b; cout << s; return 0; }

Input e output standard cin >> a; cin >> b; s = a + b; cout << s ; cin>> indica la lettura dei dati (input) s = a + b specifica che il risultato deve essere assegnato alla variabile s cout<< ordina la visualizzazione del risultato (output)

Tipi di dati numerici I principali tipi standard delle variabili sono:

const tipo nome = valore; Costanti e variabili Le variabili devono essere dichiarate indicando il tipo e il nome: tipo nome; Le costanti vengono dichiarate attraverso la parola chiave const: const tipo nome = valore; int anni; float statura; const double PIGRECO = 3.14; const int SCONTO = 20;

Le frasi di commento int eta; // età di una persona Le frasi di commento iniziano con i delimitatori // I commenti possono essere posti all’inizio di una nuova riga oppure accanto ad un’istruzione: int eta; // età di una persona

Istruzione di assegnazione L’istruzione di assegnazione ha una sintassi del tipo: variabile = valore; Il valore viene assegnato alla variabile scritta a sinistra del simbolo = area = raggio * raggio * 3.14; nome = "Rossi";

Operatori di assegnamento

Il casting Il casting è l’azione che consente di trasformare la rappresentazione di un dato dal suo tipo originale a un altro. L’operatore cast è rappresentato da una coppia di parentesi tonde che racchiudono il tipo di dato: (tipo) espressione; b = (int) a;

Gli operatori di relazione e logici Simboli per indicare gli operatori di confronto : I connettivi logici che possono essere utilizzati: && indica l’operazione di congiunzione (And) || indica l’operazione di disgiunzione (Or) ! indica la negazione (Not).

Istruzioni di input e output cin >> indica un’operazione sullo standard input cout << indica un’operazione sullo standard output cin >> raggio; cout << area;

Fasi del lavoro di programmazione codifica Il risultato della fase di codifica si chiama programma sorgente; i file hanno l’estensione .cpp. consiste nel tradurre il programma sorgente in un programma oggetto, attraverso il compilatore. il programma, linker, effettua il collegamento tra il programma oggetto e le librerie del linguaggio necessarie per l’esecuzione del programma. viene creato il file eseguibile con l’estensione .exe. compilazione linking exe

Errori di programmazione non sono state rispettate le regole per la costruzione corretta delle frasi del linguaggio. è stata utilizzata una parola che non esiste nel dizionario del linguaggio C++. blocca l’avanzamento del processo di elaborazione. riguarda la correttezza dell’algoritmo. Per individuarlo si utilizza il debugger. errore sintattico errore lessicale errore di run-time errore logico

Importanza della documentazione Alcuni accorgimenti per una buona documentazione: usare per le variabili nomi significativi; esplicitare quali sono i tipi previsti per i dati; utilizzare le strutture di controllo; organizzare i programmi in modo strutturato; inserire frequenti frasi di commento; effettuare prove di esecuzione; fornire un manuale per l’utente.

La sequenza La sequenza si rappresenta costruendo un blocco di istruzioni delimitato da una coppia di parentesi graffe { … }. #include <iostream> using namespace std; int main() { int num1, num2, differenza; cout << "Due numeri: "; cin >> num1 >> num2; differenza = num1 - num2; cout << "Risultato = " << differenza << endl; return 0; };

La struttura di alternativa Per la selezione si usa l’istruzione if che ha la seguente sintassi: if (condizione) { istruzioni-a; } else { istruzioni-b;

Strutture annidate di alternativa Dopo la condizione o dopo else, può essere presente un gruppo di istruzioni, contenente a sua volta altre strutture if interne alla struttura più esterna. if (condizione1) istruzioni-a; else if (condizione2) istruzioni-b; istruzioni-c;

La struttura di ripetizione La struttura di ripetizione si rappresenta con l’istruzione do … while do { istruzioni; } while (condizione);

Ripetizione precondizionale La ripetizione precondizionale si rappresenta con l’istruzione while. while (condizione) { istruzioni; }

Ripetizione con contatore La struttura di ripetizione con contatore viene rappresentata con la struttura for. for (int i=min; i<=max; i++) { istruzioni; }

Struttura di scelta multipla La struttura di scelta multipla è realizzata dall’istruzione switch. switch(variabile) { case valore1: istruzioni1; break; case valore2: istruzioni2; . . . . . . case valoren: Istruzionin; default: istruzioni; }

tipo di dato restituito nome funzione (elenco parametri) Funzioni Una funzione è un procedimento che riceve valori come argomenti in ingresso e restituisce un valore come risultato. La sintassi generale di una funzione è: tipo di dato restituito nome funzione (elenco parametri) { istruzioni; return valore restituito; }

Funzioni Se il tipo restituito dalla funzione non è specificato si assume per default il tipo int. Se si vuole invece che la funzione non restituisca alcun valore, specificare il tipo void.

Funzioni con parametri L’operazione, con la quale il main (o un’altra funzione chiamante) invia i valori alla funzione, assegnandoli ai parametri, si chiama passaggio di parametri. le variabili indicate nell’intestazione della funzione si chiamano parametri formali; le variabili che forniscono i valori ai parametri si chiamano parametri attuali.

Passaggio di parametri il passaggio di parametri per valore avviene indicando nell’intestazione della funzione il tipo e il nome di ciascun parametro formale. per indicare il passaggio di un parametro per referenza, si deve aggiungere il carattere & subito dopo la dichiarazione del tipo del parametro.

Dichiarazione dei prototipi di funzione Per una migliore organizzazione dei programmi: • dichiarazione delle funzioni per mezzo dei loro prototipi; va posta in testa al programma stesso. Questa dichiarazione si chiama prototipo della funzione. • definizione (o implementazione) delle funzioni; viene posta dopo la funzione main.

Risorse globali e locali In un programma si possono distinguere: variabili globali, che vengono dichiarate all’inizio del programma e che possono essere usate dal programma principale e da tutte le funzioni; variabili locali, che vengono dichiarate all’interno della funzione che le utilizza e che non sono visibili alle altre funzioni (main compreso).

Regole di visibilità le proprie risorse locali Ogni ambiente vede le proprie risorse locali quelle definite all’esterno e che precedono l’ambiente stesso.

Funzioni predefinite #include <cmath> Funzioni predefinite (built-in): sono funzioni che possono essere usate dal programmatore senza dichiarazione. Tali funzioni sono richiamabili inserendo all’inizio del programma la direttiva #include. Esempi di funzioni built-in della libreria cmath: pow, exp, sqrt, log, log10 sin, cos, tan #include <cmath>

Namespace e librerie di inclusione namespace (spazio dei nomi) è un raggruppamento di dati e di funzioni che hanno tra loro un nesso logico namespace spazioglobale1 { // esempi di variabili e funzioni globali int totale; int Calcolo(int a, int b); }

Namespace e librerie di inclusione Per un impiego permanente di tutte le componenti di un namespace si deve utilizzare il comando using namespace. using namespace spazioglobale1; ..... cout << totale << endl;

Function overloading Function overloading consente di definire due funzioni con lo stesso nome che differiscono tra loro solamente per l’elenco dei parametri. float pow (float, float); long double pow (long double, long double);

Funzioni ricorsive Con il termine ricorsione (o ricorsività) si indica la possibilità che una funzione ha di chiamare se stessa, cioè la chiamata della funzione è contenuta all’interno della funzione stessa.

Enumerazioni Le enumerazioni sono una serie di valori interi che vengono associati a nomi di costanti, dichiarate attraverso la parola chiave enum. La sintassi è la seguente: enum identificatore {lista delle costanti}; enum Lista {C1, C2, C3, C4}; enum SecondoTrimestre {APR=4, MAG=5, GIU=6};

Array L’array è un insieme di elementi omogenei tra loro. Con una variabile possiamo indicare solo un dato, con l’array possiamo indicare tanti dati dello stesso tipo con un solo nome collettivo di variabile: l’identificatore dell’array. Gli elementi si distinguono uno dall’altro attraverso l’indice che viene assegnato nell’array, e che viene posto accanto all’identificatore dell’array. In matematica con il termine vettore si fa riferimento agli array a una dimensione.

tipo NomeArray[dimensione]; Un array si definisce con la seguente dichiarazione: tipo NomeArray[dimensione]; double coeff[10]; Quando un array viene passato come parametro ad una funzione, in realtà viene passata la locazione (cioè l’indirizzo) della prima componente dell’array.

tipo NomeMatrice[N][M]; Array a due dimensioni La matrice (o array a due dimensioni) è un insieme di elementi dello stesso tipo che sono in corrispondenza biunivoca con un insieme di coppie ordinate di numeri interi, che rappresentano rispettivamente il numero della riga e il numero della colonna della matrice. Viene così definita: tipo NomeMatrice[N][M]; const int MAX = 20; int matrice1[MAX][MAX];

Strutture struct NomeStruttura { tipo1 campo1; tipo2 campo2; La struttura serve a contenere dati di tipo diverso. Viene dichiarata con la parola chiave struct. struct NomeStruttura { tipo1 campo1; tipo2 campo2; tipo3 campo3; };

Puntatori int* puntatore; char* s; struct data* ricorrenza; Una variabile di tipo puntatore contiene l’indirizzo di memoria di un’altra variabile. è possibile creare un puntatore scrivendo il carattere * (asterisco o star) accanto al tipo. int* puntatore; char* s; struct data* ricorrenza;

Puntatori Per conoscere l’indirizzo di memoria di una variabile si usa l’operatore &. Per accedere alla memoria puntata da un puntatore si usa l’operatore *. int num; int* pInteri; pInteri = &num; int a, b; int* pInteri; a = 5; pInteri = &a; b = *pInteri; cout << b;