Elementi di C++ di base

Documenti analoghi
Breve Manuale di Riferimento sulla Sintassi Linguaggi C++ e FORTRAN

Lezione 6 Introduzione al C++ Mauro Piccolo

Introduzione alla programmazione in C++

Linguaggio C: le funzioni

Istituto Tecnico Industriale M. M. Milano Polistena. Classe III D a.s. 2015/2016 C++ Guida Base

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

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

Linguaggio C++ Linguaggi di terza generazione

INFORMATICA. Strutture iterative

PROGRAMMAZIONE: Le strutture di controllo

Introduzione alla programmazione in C(++)

Unità Didattica 1 Linguaggio C. Fondamenti. Struttura di un programma.

Le basi del linguaggio Java

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

#include <iostream> // libreria che gestisce flusso di input e output. using namespace std; // uso di librerie standard del C++

Laboratorio di programmazione

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

Il sistema C è formato dal linguaggio C, dal preprocessore, dal compilatore, dalle librerie e da altri strumenti di supporto.

Introduzione a Matlab

Funzioni in C. Funzioni. Strategie di programmazione. Funzioni in C. Come riusare il codice? (2/3) Come riusare il codice? (1/3)

Fondamenti di Informatica T-1 Modulo 2

Qualsiasi programma in C++ segue lo schema:

Programmazione modulare

Appunti, esempi ed esercizi sui linguaggi C/C++

Un esempio per iniziare. Il controllo del programma in C. Altri cenni su printf() Esercizi (printf) printf( 8!=%d, fatt);

Gli Array. Dichiarazione di un array

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

Primi passi col linguaggio C

Cicli annidati ed Array multidimensionali

19 - Eccezioni. Programmazione e analisi di dati Modulo A: Programmazione in Java. Paolo Milazzo

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

Modulo 2: Strutture fondamentali della programmazione Java

Strutture dati e loro organizzazione. Gabriella Trucco

Alcune funzioni matematiche utili della libreria <math.h>:

APPELLO SCRITTO DI PROGRAMMAZIONE 1 CORSO DI LAUREA IN MATEMATICA UNIVERSITÀ DEGLI STUDI DI MILANO VI.2015

Ripasso R1. Dati strutturati. Esempi. Array. Dichiarazione di un array. Dichiarazione di un array in C

Indice PARTE A. Prefazione Gli Autori Ringraziamenti dell Editore La storia del C. Capitolo 1 Computer 1. Capitolo 2 Sistemi operativi 21 XVII XXIX

STRUTTURE DI CONTROLLO DEL C++

Il linguaggio C. Notate che...

Pr1: determinare il maggiore di n numeri interi n. Fondamenti di Informatica Prof. Vittoria de Nitto Personè

5. Codifica degli Algoritmi in C

Linguaggio C - le strutture di controllo: sequenza, selezione, iterazione

IL LINGUAGGIO JAVA Input, Tipi Elementari e Istruzione Condizionale

Array multidimensionali e stringhe

Struttura dei programmi C

Caratteristiche di un linguaggio ad alto livello

C: panoramica. Violetta Lonati

Compitino di Laboratorio di Informatica CdL in Matematica 13/11/2007 Teoria Compito A

3 Costrutti while, for e switch

Introduzione al C. Esercitazione 6. Raffaele Nicolussi. Corso di Fondamenti di Informatica Ingegneria Clinica

Le strutture di controllo in C++

Il Linguaggio C. Caratteristiche. Caratteristiche. Esempio di programma in C. Tipi di dato primitivi in C. Dati

6 - Blocchi e cicli. Programmazione e analisi di dati Modulo A: Programmazione in Java. Paolo Milazzo

Istruzioni iterative (o cicliche)

Linguaggio C - sezione dichiarativa: costanti e variabili

ESECUZIONE DI PROGRAMMI C SU MACCHINE REALI. Docente: Giorgio Giacinto AA 2008/2009. formalizzazione degli algoritmi in linguaggio C

Lezione 10. L arte della programmazione

L Allocazione Dinamica della Memoria

Programmazione Procedurale in Linguaggio C++

Corso sul linguaggio Java

Input/Output di numeri

Esercizi di riepilogo (Fondamenti di Informatica 1 Walter Didimo)

Alcuni esercizi. 1. Valutazione in cortocircuito 2. If e if innestati 3. Switch 4. Cicli

UNIVERSITÀ DEGLI STUDI DI PAVIA FACOLTÀ DI INGEGNERIA. Matlab: esempi ed esercizi

Programmazione Procedurale in Linguaggio C++

Esercitazione 11. Liste semplici

Transcript:

Elementi di C++ di base Corso di Programmazione 3 - Ingegneria dell Informazione e dell Organizzazione 10 ottobre, 2001 Gino Perna

Esempi di semplici programmi in C++ Il programma più semplice consiste semplicemente di una sequenza di istruzioni, senza cicli, scelte o funzioni (eccetto quelle per le operazioni di I/O od operazioni matematiche). Questi non sono certo programmi interessanti. Praticamente eseguono le stesse operazioni che potrebbero essere fatte su un calcolatore tascabile. Il problema risolto è quindi volutamente semplice in modo che ci si possa concentrare sulla sintassi. STRUTTURA GENERALE //arith.cpp -- aritmetica in C++ int main(void) { float x,y; cout << Dammi un numero: ; cin >> x; cout << Dammi il secondo numero: ; cin >> y; cout << x = <<x<< y = <<y<< \n ; cout << x+y = << x+y << \n ; cout << x-y = << x-y << \n ; cout << x*y = << x*y << \n ; cout << x/y = << x/y << \n ; return 0;

struttura generale Compilazione La compilazione sara effettuata sulla macchina UNIX con il comando g++ -o arith arith.cpp ove arith.cpp e il nome del programma appena immesso, arith e il nome dell eseguibile che verra generato. Per lanciare il programma digitare arith #include Gli include servono ad indicare al compilatore quali classi/funzioni dovranno essere usate. (Normalmente si userà la iostream.h e la math.h). commenti I commenti possono essere di due tipi: sulla riga: il commento parte dalla sequenza // fino a fine riga a blocchi: il commento è tutto ciò che è contenuto tra /* e */, anche quindi su più righe; attenzione che commenti annidati non sono possibili. corpo programma Normalmente tutto ciò che è compreso tra int main {... return 0; il significato del valore 0 ritornato e interpretato dal sistema operativo. (0 indica normalmente che non ci sono stati errori). Il programma presentato esegue le quattro operazioni sui due numeri dati dall utente. Si tenga presente che la rappresentazione interna dei numeri non e esatta e quindi possono esserci errori di arrotondamento. Si provi ad esempio con i numero 1.23 ed 1.18 I limiti numerici dei vari tipi di dati sono molto importanti per un corretto utilizzo della RAM e la correttezza dei risultati (Esempio di approccio diverso AUTOCAD- MICROSTATION). Esempi di semplici programmi in C++ 1

Tipi di DATI TIPI DI DATI float e double Si provi ora a cambiare il programma sostituendo al tipo float il tipo double e si riprovi l esempio. funzioni trigonometriche // esempio con funzione matematica #include <math.h> int main () { double pi = 3.1415926;// pi = atan(1)*4; for ( double x = 0; x <= 2 * pi; x += (pi / 4) ){ cout << sin( << x << ) = << sin(x) << \n ; return 0; Questo esempio stampa il seno dell angolo ogni pi/4 di radiante (Le funzioni trigonometriche hanno l argomento in radianti!). Si noti che la stampa del seno di pi non e esattamente zero in quanto si e commesso un banale errore di inizializzazione della variabile pi. La corretta inizializzazione si ha con l istruzione commentata o specificando il valore con 18 cifre sigificative. Cosa succede se dimentico <math.h>? char Il tipo char e forlmalmente un tipo derivato, corrispondente normalmente ad un intero. Esso contiene uno ed un solo carattere. // Stampa i caratteri dal codice 32 al 127 for (int i = 32; i < 127; i++) { char c = i; cout << c << \t ; if ((i % 10) == 2) cout << \n ; 2 Esempi di semplici programmi in C++

Tipi di DATI In questo modo si stampano tutti i caratteri dal codice ASCII 32 al codice 126, ovvero tutti i caratteri stampabili. Si noti il codice if ((i % 10) == 2) cout << \n ; che permette di mandare A CAPO ogni 10 caratteri stampati. funzioni semplici Si scriva un programma che dato un numero ne restituisca il suo cubo (x*x*x) // calcola il cubo di un numero double cubo (double x) { return x * x * x; void main () { double x; cout << x = ; cin >> x; int n = (int)x; int m = (int)cubo(x); cout << n = << n << \n ; cout << m = << m << \n ; Si noti il CAST ovvero la forzatura a trasformare un tipo di dato in un altro. funzioni con piu argomenti // funzioni: calcolo della potenza #include <math.h> double potenza (double base, double esponente) { double x = exp (esponente * log(base) ); return x; double base, esponente; while (true) { // infinite loop cout << \n\nscrivi base = 0 per terminare\n ; cout << base? ; cin >> base; if (base == 0) break; cout << esponente? ; cin >> esponente; double x = potenza (base, esponente); cout << risultato = << x; Esempi di semplici programmi in C++ 3

Tipi di dati DERIVATI Questo programma contiene le seguenti novita : 1. funzione con piu argomenti; 2. loop infinito; 3. uscita condizionata ; 4. utilizzo di funzioni matematiche di libreria. Ovviamente e cura del programmatore (o dell utente?) non dare condizioni non valide al programma/funzioni. TIPI DI DATI DERIVATI Stringhe, vettori e matrici sono tipi di dati derivati in C++. I vettori sono collezioni di elementi omogenei identificati da un indice (che parte da 0) ai quali si puo accedere direttamente specificando l elemento di interesse. Ogni singolo elemento puo essere quindi utilizzato come semplice variabile. Attenzione: 1. Il numero di elementi e deciso in fase di compilazione 2. Il numero di elementi non puo variare 3. Non esiste controllo sugli indici durante l esecuzione (eventuali programmi commerciali esterni). 4. Prestare attenzione agli indici (diversi da PASCAL, FORTRAN,BASIC)!!!!! Inizializzazione di vettori //esempi di inizializzazione di vettori double a[5] = {0, 2.0, 4.0, 6.0, 8.0; int b[] = {1, 3, 5, 7, 9; for (int i = 0; i < 5; i++) cout << a[i] << \t << b[i] << \n ; I vettori possono essere dimensionati automaticamente (vettore b) oppure esplicitamente (vettore a). funzioni con vettori // Esempio di dichiarazione inizializzazione e stampa vettore #include <math.h> 4 Esempi di semplici programmi in C++

Tipi di dati DERIVATI const double PI = 3.14159265358979323846264338327; const int N_ELEM = 9; void sin (double v[], int n) { for (int i = 0; i < n; i++) v[i] = sin(v[i]); void stampa (double v[], int n) { for (int i = 0; i < n; i++) cout << v[i] << \n ; double v[n_elem]; for (int i = 0; i < N_ELEM; i++) v[i] = PI/4 * i; sin (v, N_ELEM); stampa (v, N_ELEM); Cosa stampa l esempio? Stringhe Le stringhe sono dei vettori di caratteri. La fine della stringa e determinata dal carattere corrispondento al codice ASCII 0 indicato come \0. // attenzione il programma e ERRATO char s[5]; // s = ciao ; // NO: solo per l inizializzazione s[0] = c ; s[1] = i ; s[2] = a ; s[3] = o ; // senza carattere \0 a fine stringa cout << s; Cosa accade? char s[20]; cout << parola (min 7, max 20)? ; cin >> s; cout << seconda lettera: << s[1] << \n ; cout << terza lettera: << s[2] << \n ; cout << settima lettera: << s[6] << \n ; Esempi di semplici programmi in C++ 5

Tipi di dati DERIVATI Cosa accade se non rispetto i limiti? Calcolo della media // calcola la media dei voti di uno studente // il vettore contiene al massimo 50 voti const int MAX_VOTI = 50; double voti[max_voti]; int i; // dichiariamo l indice i prima // del for perche ci servira // all esterno di esso cout << inserisci un numero negativo per terminare\n ; for (i = 0; i < MAX_VOTI; i++) { double x; cout << voto? ; cin >> x; if (x < 0) break; voti[i] = x; // i e il numero dei voti immessi // sommiamo tutti i voti // utilizzando un nuovo indice j double somma = 0; for (int j = 0; j < i; j++) somma += voti[j]; double media = somma / i; cout << la media dei voti e : << media << \n ; Ricordarsi di prestare attenzione al fatto che la media deve essere di tipo double mentre il vettore voti potrebbe essere intero. Provare a riscrivere il programma creando una funzione che inserisce i dati ed una che calcola la media. 6 Esempi di semplici programmi in C++