Il primo programma C++

Documenti analoghi
Assegnazione di una variabile

Programmazione Procedurale in Linguaggio C++

STRUTTURE DI CONTROLLO DEL C++

Laboratorio di Programmazione e Calcolo

PROGRAMMAZIONE: Le strutture di controllo

Qualsiasi programma in C++ segue lo schema:

Programmazione Procedurale in Linguaggio C++

Lezione 5 e 6. Fabio Scotti ( ) Laboratorio di programmazione per la sicurezza. Valentina Ciriani ( ) Laboratorio di programmazione

Espressioni logiche. Espressioni logiche. Operatori logici. Operatori logici. Operatori logici. Espressioni Logiche e Istruzione di Test

Introduzione alla programmazione in C

Istruzioni Condizionali

Linguaggio Testuale. E un formalismo che consente di rappresentare gli algoritmi mediante semplici istruzioni in linguaggio «parlato»

Elementi di Informatica A. A. 2016/2017

Università degli Studi di Milano

PROGRAMMAZIONE: La selezione

INTRODUZIONE ALLA PROGRAMMAZIONE

Programmazione Procedurale in Linguaggio C++

Struttura di un. Struttura dei programmi C

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

Dati due punti sul piano calcolare la loro distanza

Paolo Bison. Fondamenti di Informatica Ingegneria Meccanica Università di Padova A.A. 2008/09

Ing. Lorenzo Vismara

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

Introduzione alla programmazione in linguaggio C

Laboratorio di informatica Ingegneria meccanica

Lezione 6 Introduzione al C++ Mauro Piccolo

Unità Didattica 2 Linguaggio C. Espressioni, Operatori e Strutture linguistiche per il controllo del flusso

Introduzione al MATLAB c Parte 2

Università degli Studi di Ferrara

Costrutti di iterazione

Programmazione Procedurale in Linguaggio C++

Istruzioni Condizionali

L AMBIENTE CODE BLOCKS E L IO

Nozioni fondamentali su Algoritmi e programmazione

Corso di Fondamenti di Informatica

Fondamenti di Informatica

Istruzioni di Ciclo. Unità 4. Domenico Daniele Bloisi. Corso di Programmazione e Metodi Numerici Ingegneria Aerospaziale BAER

Strutture di Controllo

Informatica (A-K) 5. Algoritmi e pseudocodifica

Corso: Fondamenti di Informatica 1 (gruppo 8-9) Corsi di laurea: Area dell'informazione Simulazione del Questionario a Risposte Multiple.

Fondamenti di Informatica 6. Algoritmi e pseudocodifica

Istruzioni semplici e strutturate

Programmazione in Java (I modulo) Lezione 4

PROGRAMMAZIONE: I sottoprogrammi

INTRODUZIONE ALLA PROGRAMMAZIONE AD ALTO LIVELLO IL LINGUAGGIO JAVA. Struttura di un programma Java

ciclo di vita della soluzione (informatica) di un problema

VBA è un linguaggio di scripting derivato da Visual Basic, da cui prende il nome. Come ogni linguaggio ha le sue regole.

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

Programmazione Procedurale in Linguaggio C++

Istruzioni di controllo

Introduzione alla programmazione in C(++)

Istruzioni di Controllo in C. Emilio Di Giacomo

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 - Programma

Programmazione Procedurale in Linguaggio C++

Informatica 2 modulo C Massimo Callisto De Donato

Il linguaggio C. Prof. E. Occhiuto INFORMATICA 242AA a.a. 2010/11 pag. 1

Istruzioni di Controllo

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

Università degli Studi di Ferrara

Linguaggio C: Espressioni

$QDOLVLGHOSURJUDPPDTXDGUDWR

Laboratorio di Informatica I

Paolo Bison. Fondamenti di Informatica A.A. 2006/07 Università di Padova

Introduzione alla programmazione

print((math.floor(1345/10)%10); print (Math.floor(1345/100)%10); Le funzioni in JavaScript

Le basi del linguaggio Java

C array. Problema: scrivere un programma che, ricevuto in input un intero n ed n interi positivi, li stampi in ordine inverso.

Algoritmi e basi del C

Corso di Matematica per la Chimica. Dott.ssa Maria Carmela De Bonis a.a

L assegnamento. Andrea Marin. a.a. 2011/2012. Università Ca Foscari Venezia Laurea in Informatica Corso di Programmazione part-time

Prof. Pagani Corrado LINGUAGGIO C: SELEZIONE E CICLI

Programmazione C Massimo Callisto De Donato

02/03/2016. LABORATORIO DI PROGRAMMAZIONE Corso di laurea in matematica 8 STRUTTURE DI CONTROLLO (1)

Pag. 1. La formalizzazione dell informazione: Dati e Diagrammi di Flusso. Codifica degli algoritmi

Cos è un algoritmo. Si dice algoritmo la descrizione di un metodo di soluzione di un problema che sia

Programmazione in Java (I modulo)

Errori frequenti Cicli iterativi Array. Cicli e array. Laboratorio di Programmazione I. Corso di Laurea in Informatica A.A.

Il C nel C++ Struttura di un linguaggio. regole per la definizione i simboli. regole per la composizione dei simboli

Struttura di un linguaggio

Le strutture di controllo

Iterazione determinata e indeterminata

ANALIZZIAMO NEI DETTAGLI GLI STATEMENTS DI SELEZIONE E DI RIPETIZIONE FORNITI DAL LINGUAGGIO C STATEMENT SEMPLICE STATEMENT COMPOSTO BLOCCO

Introduzione alla programmazione Algoritmi e diagrammi di flusso. Sviluppo del software

Dichiarazione di variabili

Corso di PHP. Prerequisiti. 3 - Le strutture di controllo. Istruzioni semplici Controllo del flusso di programma

Unità F1. Obiettivi. Il linguaggio C. Il linguaggio C++ Linguaggio C. Pseudolinguaggio. Primi programmi

Laboratorio di Programmazione Laurea in Ingegneria Civile e Ambientale

Linguaggi, Traduttori e le Basi della Programmazione

Inf matica C.I. Metodologia Scientifica & Linguistica Mario&Pavone& &

direttive del preprocessore simboli speciali parole chiave identificatori costanti

Sistemi a microprocessore

Scheme: struttura del programma e campo di azione

Linguaggio C++ 5. Strutture cicliche

Laboratorio di Programmazione

Informatica/ Ing. Meccanica/ Prof. Verdicchio/ 14/02/2012 / Foglio delle domande / VERSIONE 1

Sunto della scorsa lezione Il linguaggio C. Un Programma con Errori. Il preprocessore. Linguaggi di Programmazione I.

Introduzione alla programmazione C++ Argomenti. Macchina astratta C

Transcript:

Il primo programma C++ Un programma in qualsiasi linguaggio evoluto è una sequenza di istruzioni che la CPU dopo opportune conversioni esegue. La sintassi dei linguaggi di programmazione è molto piu rigida del linguaggio comune. Nel linguaggio parlato le frasi quei jeans costano75 e il prezzo di quei jeans è 75 sono equivalenti e ambedue comprensibili. In programmazione dovrei dire per esempio: jeans_levis= 75; La sintassi viene controllata da un programma che si chiama compilatore che comunica tutti gli errori. Fino a che tutti gli errori di sintassi non si sono corretti il programma non potrà essere eseguito. My first C++ program Un semplice programma C++ ha un aspetto di questo genere: a = 12; a e b sono due variabili, Una sequenza di comandi (function) è identificata da un nome, una coppia di parentesi tonde che contiene i parametri, e una coppia di parentesi graffe che contiene le istruzioni. Il nome main è quello che caratterizza la prima funzione che viene eseguita. 1

Cos è una variabile? Una variabile (in programmazione) è una scatola che contiene un numero (intero o in virgola mobile) a cui è associato un nome. È lo strumento che il computer usa per manipolare i numeri. Differisce dalla variabile matematica per il fatto che, mentre in matematica le variabili compaiono nel contesto di equazioni o disequazioni, ovvero di regole che ne limitano i possibili valori, in informatica una variabile è solo una scatola e non è associata a nessuna regola che ne limiti il valore. Inoltre in matematica una variabile rappresenta sempre un insieme di possibili valori, mentre una variabile in un programma possiede sempre, in ogni particolare istante, un solo valore numerico. Assegnazione di una variabile Per scrivere un valore dentro una variabile si usa l operatore di assegnazione, che è rappresentato dal simbolo =. Quindi, se scrivo int a; a = 12; assegno alla variabile intera a il valore numerico 12. L assegnazione ha sempre la forma: variabile = espressione; Ad esempio: a = 2*b + c; e si applica da sinistra a destra A differenza di quanto avviene in matematica, la scrittura 2*b + c = a; non ha senso. 2

My first C++ program Un semplice programma C++ ha un aspetto di questo genere: a = 12; Dichiariamo due variabili intere a e b. La dichiarazione è obbligatoria. Il valore iniziale delle due variabili non è definito. Questo programma dichiara due variabili intere, a e b. Assegna ad a il valore 12, e a b il valore ottenuto sommando due al quadrato di a (146). My first C++ program Un semplice programma C++ ha un aspetto di questo genere: a = 12; Assegnamo ad a il valore 12. Questo programma dichiara due variabili intere, a e b. Assegna ad a il valore 12, e a b il valore ottenuto sommando due al quadrato di a (146). 3

My first C++ program Un semplice programma C++ ha un aspetto di questo genere: a = 12; Assegnamo a b il valore pari a 2 più il quadrato del valore di a. Questo programma dichiara due variabili intere, a e b. Assegna ad a il valore 12, e a b il valore ottenuto sommando due al quadrato di a (146). Bello, ma a che serve? Il nostro primo programma non serve ovviamente a nulla, nel senso che non ci dice il risultato e non ci consente di variare il valore iniziale di a. Per fare input/output di variabili si deve modificare così: #include <iostream.h> cout << a = ; cout << b = << b << endl; Il file iostream.h (che fa parte del linguaggio) contiene le definizioni degli identificatori dei canali di input/output che vengono associati alla tastiera e al terminale. 4

Bello, ma a che serve? Il nostro primo programma non serve ovviamente a nulla, nel senso che non ci dice il risultato e non ci consente di variare il valore iniziale di a. Per fare input/output di variabili si deve modificare così: #include <iostream.h> Scriviamo sul terminale a = cout << a = ; cout << b = << b << endl; Bello, ma a che serve? Il nostro primo programma non serve ovviamente a nulla, nel senso che non ci dice il risultato e non ci consente di variare il valore iniziale di a. Per fare input/output di variabili si deve modificare così: #include <iostream.h> cout << a = ; cout << b = << b << endl; Leggiamo il valore di a dalla tastiera 5

Bello, ma a che serve? Il nostro primo programma non serve ovviamente a nulla, nel senso che non ci dice il risultato e non ci consente di variare il valore iniziale di a. Per fare input/output di variabili si deve modificare così: #include <iostream.h> cout << a = ; cout << b = << b << endl; Scriviamo il risultato (il valore di b) sul terminale. Si possono concatenare gli operatori <<. Il simbolo endl fa andare a capo. Un po di sintassi A dispetto delle apparenze, le istruzioni dei linguaggi di programmazione non sono totalmente arbitrarie, e quindi non vanno semplicemente imparate a memoria. Ci sono, come nei linguaggi tradizionali, delle regole sintattiche che sono valide in generale. Ne abbiamo visto già alcune: la coppia di parentesi graffe { raggruppa blocchi di istruzioni; sintatticamente equivale ad una istruzione singola. ogni istruzione termina con un punto e virgola; il punto e virgola può essere omesso dopo la parentesi che chiude un blocco di istruzioni. ogni variabile deve essere dichiarata prima di essere utilizzata; la dichiarazione ha la forma tipo nome1, nome2,...; 6

Un po di sintassi Fino ad ora abbiamo accennato all esistenza di variabili di tipo intero (int) e a virgola mobile (double). In realtà cin e cout sono variabili di tipo istream e ostream che identificano dispositivi di ingresso e uscita. Sono dichiarate all interno di iostream.h. In C++ è possibile definire nuovi tipi di variabili. Esistono operatori che consentono di costruire delle espressioni; gli operatori più comuni sono quelli aritmetici (+,-, *, /). Abbiamo visto che esiste un operatore di assegnazione (=) e due operatori di lettura e scrittura da stream (>> e <<). In C++ è possibile definire nuovi operatori o ridefinire il comportamento di quelli esistenti su particolari tipi di varibili. Oltre alle variabili si possono utilizzare nelle espressioni delle costanti, sia numeriche (12, 4.566) che alfanumeriche ( a = ). Il blocco if-then then-elseelse Serve ad eseguire certe istruzioni solo se si verificano date condizioni if (Espressione) Istruzione1; else Istruzione2; Istruzione1 viene eseguita se Espressione ha un valore diverso da zero; Istruzione2 viene eseguita se Espressione vale zero. Espressione può essere una espressione qualunque. Esistono però degli operatori speciali che valgono 0 o 1 a seconda del verificarsi di date condizioni logiche. 0 = falso (false), 1 =vero (true) I principali sono == uguale if (a==b) e non if (a=b)!!!!!= diverso if (a!=b) > maggiore < minore, >= maggiore o uguale, <= minore o uguale && and; cioè è 1 solo quando tutte le espressioni logiche sono vere), or; cioè il risultato è 1 se una o l altra delle espressioni logiche sono vere 7

Il blocco if-then then-elseelse if (a > 0) { else { b = 2 a*a; if ( (a==0) && (b!=c)) { blocco di istruzioni 1; else { blocco di istruzioni 2; Il ciclo while Serve a ripetere un blocco di istruzioni fino a quando una determinata espressione vale zero; Esiste in due forme: oppure Ad esempio: while (Espressione) Istruzione; do Istruzione while (Espressione); int a; while (a >= 0) { a = a - 1; int a, sum=0; do { sum = sum + a; while (a!= 0); 8

Incremento e decremento Abbiamo visto che l espressione a = a + 1; serve ad incrementare di uno il contenuto di a. In generale la presenza di una variabile sia a sinistra che a destra del segno di uguale indica che il valore di quella variabile viene modificato e che il nuovo valore dipende in qualche modo da quello vecchio; ad esempio: a = 2*x a*a; In C/C++ esistono due operatori specifici per l incremento (++) ed il decremento (--). Di conseguenza le seguenti istruzioni sono equivalenti: a = a + 1; a++; a = a 1; a--; Il ciclo for Serve a ripetere una serie di istruzioni un numero fissato di volte. In questa struttura si una usa una variabile intera, detta indice del loop, che ad ogni iterazione conta il numero di ripetizioni effettuate. La sintassi è: for (assegnazione iniziale; condizione; modifica indice) { istruzioni; Eseguita prima del primo ciclo Ad esempio: int i; int sum = 0; Controllata ad ogni ciclo for (i=0; i<10; i++) { sum = sum + i; Eseguita alla fine di ogni ciclo 9

Analogia for/while Il ciclo for può essere realizzato anche con while. int i=0; while (i<10) {...; i++; è equivalente a int i; for (i=0; i<10; i++) {...; Vettori Una collezione di n variabili si chiama vettore. Come al solito dobbiamo prendere le distanze dall omonima entità matematica. Nel contesto dei linguaggi di programmazione un vettore è solo una collezione di scatole con un nome; ovvero una scatola con un nome e stanti scomparti. Il nome identifica la collezione nel suo complesso, mentre ogni singola scomparto è identificato dal nome e da un numero progressivo da 0 a n-1. Vediamo in parallelo la sintassi delle varie operazioni su un vettore e su una variabile scalare. int a; // Dichiarazione int a[47]; int a = 0; // Inizializzazione int a[3] = { 0, 2, 4 ; a = 2; // Assegnazione a[2] = 19; x = 2*a; // Uso in espressioni x = a[7]*a[9]; 10

Utilizzo dei vettori nei cicli L uso dei vettori in programmazione si estende ben oltre la realizzazione di calcoli vettoriali in senso matematico. Si può dire che vettori e cicli sono due cose che vanno di pari passo. In pratica è piuttosto raro dover ripetere n volte la stessa operazione sugli stessi dati. Usualmente si deve ripetere un operazione su diversi insiemi di dati e ricavare un insieme di risultati distinti. I vettori consentono appunto di indicizzare dati, risultati e variabili intermedie in modo che siano facilmente utilizzabili all interno dei loops. int i, a[10], b[10]; Lettura della componenti i-ma di a for (i=0; i<10; i++) { cin >> a[i]; Calcolo della componente i-ma di b b[i] = a[i]*a[i]; 11