G. Mecca – Università della Basilicata – [email protected] Programmazione Procedurale in...

30
G. Mecca – Università della Basilicata – G. Mecca – Università della Basilicata – [email protected] [email protected] Programmazione Procedurale in Linguaggio C++ Concetti Introduttivi Parte 2 Linguaggi di Programmazione versione 2.0 Questo lavoro è concesso in uso secondo i termini di una licenza Creative Commons (vedi ultima pagina)

Transcript of G. Mecca – Università della Basilicata – [email protected] Programmazione Procedurale in...

Page 1: G. Mecca – Università della Basilicata – mecca@unibas.it Programmazione Procedurale in Linguaggio C++ Concetti Introduttivi Parte 2 Linguaggi di Programmazione.

G. Mecca – Università della Basilicata – [email protected] G. Mecca – Università della Basilicata – [email protected]

Programmazione Procedurale in Linguaggio C++

Concetti Introduttivi

Parte 2

Linguaggi di Programmazione

versione 2.0Questo lavoro è concesso in uso secondo i termini di una licenza Creative Commons

(vedi ultima pagina)

Page 2: G. Mecca – Università della Basilicata – mecca@unibas.it Programmazione Procedurale in Linguaggio C++ Concetti Introduttivi Parte 2 Linguaggi di Programmazione.

2G. Mecca - Programmazione Procedurale in Linguaggio C++G. Mecca - Programmazione Procedurale in Linguaggio C++

Sommario

Linguaggi di ProgrammazioneSintassiSemantica

Ciclo di Vita del ProgrammaConcetto di AlgoritmoCompilazione e CaricamentoMetodologia di Programmazione

In Pratica

Concetti Introduttivi: Linguaggi >> Sommario

Page 3: G. Mecca – Università della Basilicata – mecca@unibas.it Programmazione Procedurale in Linguaggio C++ Concetti Introduttivi Parte 2 Linguaggi di Programmazione.

3G. Mecca - Programmazione Procedurale in Linguaggio C++G. Mecca - Programmazione Procedurale in Linguaggio C++

Linguaggi di Programmazione

Linguaggi per impartire istruzioni al processore

Programmasequenza di istruzioninormalmente pensato per risolvere un

problema di calcoloal programma vengono forniti dei datiil programma calcola eseguendo le istruzioniil programma restituisce i risultati

Concetti Introduttivi: Linguaggi >> Linguaggi di Programmazione

Page 4: G. Mecca – Università della Basilicata – mecca@unibas.it Programmazione Procedurale in Linguaggio C++ Concetti Introduttivi Parte 2 Linguaggi di Programmazione.

4G. Mecca - Programmazione Procedurale in Linguaggio C++G. Mecca - Programmazione Procedurale in Linguaggio C++

Linguaggi Orientati

agli Oggetti

LinguaggiIbridi

Linguaggi di Programmazione Procedurale Strutturata

Evoluzione dei Linguaggi

Esistono numerosi linguaggidifferenti per funzionalità e tecnologia

Concetti Introduttivi: Linguaggi >> Linguaggi di Programmazione

metà anni ’50FORTRAN

metà anni ’60BASIC

1968Pascal

1974C

1990C++

1994Java

2000C#, VB.NET

1991VB

Page 5: G. Mecca – Università della Basilicata – mecca@unibas.it Programmazione Procedurale in Linguaggio C++ Concetti Introduttivi Parte 2 Linguaggi di Programmazione.

5G. Mecca - Programmazione Procedurale in Linguaggio C++G. Mecca - Programmazione Procedurale in Linguaggio C++

Linguaggi di Programmazione

Concetti Introduttivi: Linguaggi >> Linguaggi di Programmazione

C

C++Java,C#,

VB.NET

“clean C”programmazioneprocedurale

programmazioneorientata aglioggetti

sostanzialmenteequivalente ma più semplice del C

Page 6: G. Mecca – Università della Basilicata – mecca@unibas.it Programmazione Procedurale in Linguaggio C++ Concetti Introduttivi Parte 2 Linguaggi di Programmazione.

6G. Mecca - Programmazione Procedurale in Linguaggio C++G. Mecca - Programmazione Procedurale in Linguaggio C++

Linguaggi di Programmazione

Attenzionei linguaggi della stessa famiglia sono

normalmente basati sugli stessi concetti Differenze

alcuni linguaggi forniscono funzionalità che altri non hanno

“sintassi”“semantica”

Concetti Introduttivi: Linguaggi >> Linguaggi di Programmazione

Page 7: G. Mecca – Università della Basilicata – mecca@unibas.it Programmazione Procedurale in Linguaggio C++ Concetti Introduttivi Parte 2 Linguaggi di Programmazione.

7G. Mecca - Programmazione Procedurale in Linguaggio C++G. Mecca - Programmazione Procedurale in Linguaggio C++

Linguaggio di Programmazione

Simile al linguaggio naturalesintassi e semantica

Sintassi“grammatica” del linguaggioinsieme delle regole che stabiliscono quali

frasi (programmi) sono correttiin Italiano: “maiuscola dopo il punto”in C++: “le istruzioni si concludono con ;”

Concetti Introduttivi: Linguaggi >> Linguaggi di Programmazione

Page 8: G. Mecca – Università della Basilicata – mecca@unibas.it Programmazione Procedurale in Linguaggio C++ Concetti Introduttivi Parte 2 Linguaggi di Programmazione.

8G. Mecca - Programmazione Procedurale in Linguaggio C++G. Mecca - Programmazione Procedurale in Linguaggio C++

Linguaggio di Programmazione

Processo di compilazioneil codice del programma (codice sorgente)

viene sottoposto ad analisi sintatticaviene trasformato in codice eseguibile dal

processore (codice oggetto) Compilatore

analisi lessicale: divide il codice in frammenti detti “token” (parole chiave, nomi ecc.)

analisi sintattica: verifica la correttezza

Concetti Introduttivi: Linguaggi >> Linguaggi di Programmazione

Page 9: G. Mecca – Università della Basilicata – mecca@unibas.it Programmazione Procedurale in Linguaggio C++ Concetti Introduttivi Parte 2 Linguaggi di Programmazione.

9G. Mecca - Programmazione Procedurale in Linguaggio C++G. Mecca - Programmazione Procedurale in Linguaggio C++

Linguaggio di Programmazione

Semantica“significato” del linguaggioinsieme delle regole che stabiliscono come il

calcolatore esegue i programmi correttiin italiano: “andrò è un’azione nel futuro”in C++: cout << “Ciao”; cout << “Ciao”;

Attenzionesintassi e semantica dei linguaggi di

programmazione sono rigorose

Concetti Introduttivi: Linguaggi >> Linguaggi di Programmazione

Page 10: G. Mecca – Università della Basilicata – mecca@unibas.it Programmazione Procedurale in Linguaggio C++ Concetti Introduttivi Parte 2 Linguaggi di Programmazione.

10G. Mecca - Programmazione Procedurale in Linguaggio C++G. Mecca - Programmazione Procedurale in Linguaggio C++

Linguaggio di Programmazione

Attenzioneci sono due diverse nozioni di correttezza

Correttezza Sintatticaassenza di errori sintatticiil programma è eseguibile

Correttezza Semantica (o Logica)implica la correttezza sintatticail prog. risolve correttamente il problema

Concetti Introduttivi: Linguaggi >> Linguaggi di Programmazione

Page 11: G. Mecca – Università della Basilicata – mecca@unibas.it Programmazione Procedurale in Linguaggio C++ Concetti Introduttivi Parte 2 Linguaggi di Programmazione.

11G. Mecca - Programmazione Procedurale in Linguaggio C++G. Mecca - Programmazione Procedurale in Linguaggio C++

Linguaggio di Programmazione

Verifica della correttezza sintatticacompilazioneconsente di eliminare gli errori sintattici

Verifica della correttezza semanticaesecuzione e “test” del programmaprove di funzionamento per controllare che il

programma si comporti correttamenteprocesso più complesso e delicato

Concetti Introduttivi: Linguaggi >> Linguaggi di Programmazione

Page 12: G. Mecca – Università della Basilicata – mecca@unibas.it Programmazione Procedurale in Linguaggio C++ Concetti Introduttivi Parte 2 Linguaggi di Programmazione.

12G. Mecca - Programmazione Procedurale in Linguaggio C++G. Mecca - Programmazione Procedurale in Linguaggio C++

Ciclo di Vita di un Programma

Programmasequenza di istruzioni che risolve un

problema di calcolo Per programmare

è necessario conoscere almeno un linguaggio

ma questo non bastaè necessario conoscere “tecniche”, ovvero

“metodologie” di programmazione

Concetti Introduttivi: Linguaggi >> Ciclo di Vita di un Programma

Page 13: G. Mecca – Università della Basilicata – mecca@unibas.it Programmazione Procedurale in Linguaggio C++ Concetti Introduttivi Parte 2 Linguaggi di Programmazione.

13G. Mecca - Programmazione Procedurale in Linguaggio C++G. Mecca - Programmazione Procedurale in Linguaggio C++

Dal Problema al Programma

Concetti Introduttivi: Linguaggi >> Ciclo di Vita di un Programma

Problema di Calcolo

-dati in ingresso-risultati attesiEs: lavare i panni

Calcolatore

Algoritmo Programma

dati in ingresso

dati in uscita

Es: lavatrice

Es: strategia di lavaggio (colore, delicati)

Es: programmi di lavaggio

Page 14: G. Mecca – Università della Basilicata – mecca@unibas.it Programmazione Procedurale in Linguaggio C++ Concetti Introduttivi Parte 2 Linguaggi di Programmazione.

14G. Mecca - Programmazione Procedurale in Linguaggio C++G. Mecca - Programmazione Procedurale in Linguaggio C++

Algoritmo

Strategia di soluzione del problemadeve essere concretamente eseguibile dal

calcolatore; es: “separa i bianchi dai colorati”deve essere corretta

es: “lava bianchi e colorati a 60 gradi”deve essere efficiente, ovvero produrre la

soluzione utilizzando le minori risorse possibili (es: tempo, memoria)es: “lava ciascun capo separatamente”

Concetti Introduttivi: Linguaggi >> Ciclo di Vita di un Programma

Page 15: G. Mecca – Università della Basilicata – mecca@unibas.it Programmazione Procedurale in Linguaggio C++ Concetti Introduttivi Parte 2 Linguaggi di Programmazione.

15G. Mecca - Programmazione Procedurale in Linguaggio C++G. Mecca - Programmazione Procedurale in Linguaggio C++

Programma

Scritturacodice sorgente

Compilazioneverifica della correttezza sintatticacodice “oggetto”

Collegamentoogni programma richiede codice esternocodice eseguibile

Esecuzioneverifica degli errori logici

Concetti Introduttivi: Linguaggi >> Ciclo di Vita di un Programma

Page 16: G. Mecca – Università della Basilicata – mecca@unibas.it Programmazione Procedurale in Linguaggio C++ Concetti Introduttivi Parte 2 Linguaggi di Programmazione.

16G. Mecca - Programmazione Procedurale in Linguaggio C++G. Mecca - Programmazione Procedurale in Linguaggio C++

Ciclo di Vita di Un Programma

Concetti Introduttivi: Linguaggi >> Ciclo di Vita di un Programma

Analisi del Problema

Scelta dell’Algoritmo

Scrittura delProgramma

Compilazionee

Collegamento

VerificaUso e

Manutenzione

errorisintattici

errorilogici

errorinellastrategia

codicesorgente

codiceeseguibile

Page 17: G. Mecca – Università della Basilicata – mecca@unibas.it Programmazione Procedurale in Linguaggio C++ Concetti Introduttivi Parte 2 Linguaggi di Programmazione.

17G. Mecca - Programmazione Procedurale in Linguaggio C++G. Mecca - Programmazione Procedurale in Linguaggio C++

Compilazione e Collegamento

Concetti Introduttivi: Linguaggi >> Ciclo di Vita di un Programma

Compilazionecodicesorgentees:primo.cpp

Collegamento

codiceoggetto(ling. macchina)es: primo.obj

librerieesterneprecompilatees: iostream

Compilatore

Collegatore(“linker”)

codiceeseguibilees: primo.exe

Page 18: G. Mecca – Università della Basilicata – mecca@unibas.it Programmazione Procedurale in Linguaggio C++ Concetti Introduttivi Parte 2 Linguaggi di Programmazione.

18G. Mecca - Programmazione Procedurale in Linguaggio C++G. Mecca - Programmazione Procedurale in Linguaggio C++

Metodologia di Programmazione

Metodo per affrontare il ciclo di vitapassi e tecniche per analizzare il problemapassi e tecniche per scegliere l’algoritmopassi e tecniche per scrivere il codicepassi e tecniche per verificare il codicepassi e tecniche per manutenere il codice

La metodologia è importantealtrettanto che la conoscenza del linguaggio

Concetti Introduttivi: Linguaggi >> Ciclo di Vita di un Programma

Page 19: G. Mecca – Università della Basilicata – mecca@unibas.it Programmazione Procedurale in Linguaggio C++ Concetti Introduttivi Parte 2 Linguaggi di Programmazione.

19G. Mecca - Programmazione Procedurale in Linguaggio C++G. Mecca - Programmazione Procedurale in Linguaggio C++

In Pratica

E’ necessario disporre di vari strumenti Scrittura del programma

editor di testi (es: Blocco Note o TextPad) Compilatore e Collegatore

Compilatore Borland BCC 5.5 (>> sito)Compilatore FORTRAN FTN77 (>> sito)si utilizzano dalla finestra del DOS

Concetti Introduttivi: Linguaggi >> In Pratica

Page 20: G. Mecca – Università della Basilicata – mecca@unibas.it Programmazione Procedurale in Linguaggio C++ Concetti Introduttivi Parte 2 Linguaggi di Programmazione.

20G. Mecca - Programmazione Procedurale in Linguaggio C++G. Mecca - Programmazione Procedurale in Linguaggio C++

In Pratica

Il Primo Passoeseguire le installazioni di tutti gli strumenticonfigurare il sistema per l’utilizzo degli

strumenti Configurazione di Windows

abilitare la visualizzazione delle estensioniRisorse del Computer >> Strumenti >>

Opzioni Cartella >> Visualizzazione >> Nascondi le estensioni

Concetti Introduttivi: Linguaggi >> In Pratica

>>

Page 21: G. Mecca – Università della Basilicata – mecca@unibas.it Programmazione Procedurale in Linguaggio C++ Concetti Introduttivi Parte 2 Linguaggi di Programmazione.

21G. Mecca - Programmazione Procedurale in Linguaggio C++G. Mecca - Programmazione Procedurale in Linguaggio C++

Installazioni

Installazione di TextPadscaricare il file dal sito corrispondenteeseguire la procedura di installazioneconfigurare le opzioni di visualizzazione

Configura >> PreferenzeFile: estensione predefinita vuotaVisualizza: numero righe

Nuova classe di documenti: FORTRAN

Concetti Introduttivi: Linguaggi >> In Pratica

>>

Page 22: G. Mecca – Università della Basilicata – mecca@unibas.it Programmazione Procedurale in Linguaggio C++ Concetti Introduttivi Parte 2 Linguaggi di Programmazione.

22G. Mecca - Programmazione Procedurale in Linguaggio C++G. Mecca - Programmazione Procedurale in Linguaggio C++

Installazioni

Installazione del Compilatore Borlandscaricare il file dal sito corrispondenteeseguire la procedura di installazione

Post-configurazioneconfigurare la variabile di ambiente PATH

per rendere localizzabile il compilatoresu Win2000/XP: Pannello di Controllo >>

Sistema >> Variabili di Ambiente aggiungendo il valore c:\Borland\bcc55\bin

Concetti Introduttivi: Linguaggi >> In Pratica

>>

Page 23: G. Mecca – Università della Basilicata – mecca@unibas.it Programmazione Procedurale in Linguaggio C++ Concetti Introduttivi Parte 2 Linguaggi di Programmazione.

23G. Mecca - Programmazione Procedurale in Linguaggio C++G. Mecca - Programmazione Procedurale in Linguaggio C++

Installazioni

Post-configurazione (continua)configurare i parametri per eseguire il

compilatore ed il collegatorecartella delle librerie di sistema e dei file di

inclusionefile di configurazione bcc32.cfg nella cartella

bin (vedi il file README.txt)-I”c:\borland\bcc55\Include”

-L”c:\borland\bcc55\Lib”

Concetti Introduttivi: Linguaggi >> In Pratica

>>

Page 24: G. Mecca – Università della Basilicata – mecca@unibas.it Programmazione Procedurale in Linguaggio C++ Concetti Introduttivi Parte 2 Linguaggi di Programmazione.

24G. Mecca - Programmazione Procedurale in Linguaggio C++G. Mecca - Programmazione Procedurale in Linguaggio C++

Un Semplice Programma

// Primo programma// Primo programma

#include <iostream.h>#include <iostream.h>

void main () {void main () {

cout << "Primo programma" << endl;cout << "Primo programma" << endl;

}}

Concetti Introduttivi: Linguaggi >> In Pratica

>>

Page 25: G. Mecca – Università della Basilicata – mecca@unibas.it Programmazione Procedurale in Linguaggio C++ Concetti Introduttivi Parte 2 Linguaggi di Programmazione.

25G. Mecca - Programmazione Procedurale in Linguaggio C++G. Mecca - Programmazione Procedurale in Linguaggio C++

Borland BCC 5.5

Concetti Introduttivi: Linguaggi >> In Pratica

Page 26: G. Mecca – Università della Basilicata – mecca@unibas.it Programmazione Procedurale in Linguaggio C++ Concetti Introduttivi Parte 2 Linguaggi di Programmazione.

26G. Mecca - Programmazione Procedurale in Linguaggio C++G. Mecca - Programmazione Procedurale in Linguaggio C++

Installazioni

Installazione del Compilatore Salfordscaricare il file dal sito corrispondenteeseguire la procedura di installazione

Post-configurazioneconfigurare la variabile di ambiente PATH

su Win2000/XP: Pannello di Controllo >> Sistema >> Variabili di Ambiente

aggiungendo c:\win32apps\salford

Concetti Introduttivi: Linguaggi >> In Pratica

>>

Page 27: G. Mecca – Università della Basilicata – mecca@unibas.it Programmazione Procedurale in Linguaggio C++ Concetti Introduttivi Parte 2 Linguaggi di Programmazione.

27G. Mecca - Programmazione Procedurale in Linguaggio C++G. Mecca - Programmazione Procedurale in Linguaggio C++

Un Semplice Programma in FORTRANC---- Primo programmaC---- Primo programma program primoprogram primo write (*,*) 'Primo programma'write (*,*) 'Primo programma' stopstop endend

Concetti Introduttivi: Linguaggi >> In Pratica

Page 28: G. Mecca – Università della Basilicata – mecca@unibas.it Programmazione Procedurale in Linguaggio C++ Concetti Introduttivi Parte 2 Linguaggi di Programmazione.

28G. Mecca - Programmazione Procedurale in Linguaggio C++G. Mecca - Programmazione Procedurale in Linguaggio C++

Salford FTN77

Concetti Introduttivi: Linguaggi >> In Pratica

>>

Page 29: G. Mecca – Università della Basilicata – mecca@unibas.it Programmazione Procedurale in Linguaggio C++ Concetti Introduttivi Parte 2 Linguaggi di Programmazione.

29G. Mecca - Programmazione Procedurale in Linguaggio C++G. Mecca - Programmazione Procedurale in Linguaggio C++

Riassumendo

Varie tecnologie per la programmazioneci concentriamo sulla prog. proceduralesintassi e semantica

Ciclo di Vita del ProgrammaProblema-Algoritmo-ProgrammaCompilazione e CollegamentoImportanza della Metodologia

Utilizzo degli Strumenti (ATTENZIONE)

Concetti Introduttivi: Linguaggi >> Sommario

Page 30: G. Mecca – Università della Basilicata – mecca@unibas.it Programmazione Procedurale in Linguaggio C++ Concetti Introduttivi Parte 2 Linguaggi di Programmazione.

30G. Mecca - Programmazione Procedurale in Linguaggio C++G. Mecca - Programmazione Procedurale in Linguaggio C++

Termini della Licenza

This work is licensed under the Creative Commons Attribution-ShareAlike License. To view a copy of this license, visit http://creativecommons.org/licenses/by-sa/1.0/ or send a letter to Creative Commons, 559 Nathan Abbott Way, Stanford, California 94305, USA.

Termini della Licenza

Questo lavoro viene concesso in uso secondo i termini della licenza “Attribution-ShareAlike” di Creative Commons. Per ottenere una copia della licenza, è possibile visitare http://creativecommons.org/licenses/by-sa/1.0/ oppure inviare una lettera all’indirizzo Creative Commons, 559 Nathan Abbott Way, Stanford, California 94305, USA.