• Non ci sono risultati.

Programmazione Procedurale in Linguaggio C++

N/A
N/A
Protected

Academic year: 2021

Condividi "Programmazione Procedurale in Linguaggio C++"

Copied!
18
0
0

Testo completo

(1)

G. Mecca – Università della Basilicata – mecca@unibas.it

Programmazione Procedurale in Linguaggio C++

Concetti Introduttivi Parte 2

Linguaggi di Programmazione

versione 2.2

Questo lavoro è concesso in uso secondo i termini di una licenza Creative Commons (vedi ultima pagina)

2

Sommario

m

Linguaggi di Programmazione

ðSintassi e Semantica

m

Ciclo di Vita del Programma

ðConcetto di Algoritmo

ðCompilazione e Caricamento ðMetodologia di Programmazione

m

Utilizzo degli Strumenti

m

Appendice: Strumenti per il FORTRAN

Concetti Introduttivi: Linguaggi >> Sommario

(2)

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

Linguaggi di Programmazione

m

Linguaggi per impartire istruzioni al processore

m

Programma

ðsequenza di istruzioni

ðnormalmente pensato per risolvere un problema di calcolo

ðal programma vengono forniti dei dati

ðil programma calcola eseguendo le istruzioni ðil programma restituisce i risultati

Concetti Introduttivi: Linguaggi >> Linguaggi di Programmazione

Linguaggi Orientati agli Oggetti Linguaggi

Ibridi Linguaggi di

Programmazione Procedurale

Evoluzione dei Linguaggi

m

Esistono numerosi linguaggi

ðdifferenti per funzionalità e tecnologia

Concetti Introduttivi: Linguaggi >> Linguaggi di Programmazione

metà anni ’50 FORTRAN

metà anni ’60 BASIC

1968 Pascal

1974 C

1990 C++

1994 Java

2000 C#, VB.NET 1991

VB anni ‘60

COBOL

(3)

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

Linguaggi di Programmazione

Concetti Introduttivi: Linguaggi >> Linguaggi di Programmazione

C

C++

Java, C#

“clean C”

programmazione procedurale

programmazione orientata agli oggetti

linguaggio di questo corso - sostanzialmente equivalente ma più semplice del C

ATTENZIONE al linguaggio di riferimento

6

Linguaggi di Programmazione

m

Attenzione

ði linguaggi della stessa famiglia sono normalmente basati sugli stessi concetti

m

Differenze

ðalcuni linguaggi forniscono funzionalità che altri non hanno

ð“sintassi”

ð“semantica”

Concetti Introduttivi: Linguaggi >> Linguaggi di Programmazione

(4)

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

Sintassi e Semantica

m

Simile al linguaggio naturale

ðsintassi e semantica

m

Sintassi

ð“grammatica” del linguaggio

ðinsieme delle regole che stabiliscono quali frasi (programmi) sono corretti

ðin Italiano: “maiuscola dopo il punto”

ðin C++: “le istruzioni si concludono con ;”

Concetti Introduttivi: Linguaggi >> Linguaggi di Programmazione

Sintassi e Semantica

m

Semantica

ð“significato” del linguaggio

ðinsieme delle regole che stabiliscono come il calcolatore esegue i programmi corretti

ðin italiano: “andrò è un’azione nel futuro”

ðin C++: cout << “Ciao”;

m

Attenzione

ðsintassi e semantica dei linguaggi di programmazione sono rigorose

Concetti Introduttivi: Linguaggi >> Linguaggi di Programmazione

(5)

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

Sintassi e Semantica

m

Attenzione

ðci sono due diverse nozioni di correttezza

m

Correttezza Sintattica

ðassenza di errori sintattici ðil programma è eseguibile

m

Correttezza Semantica (o Logica)

ðimplica la correttezza sintattica

ðil prog. risolve correttamente il problema

Concetti Introduttivi: Linguaggi >> Linguaggi di Programmazione

ATTENZIONE al concetto di

correttezza

10

Sintassi e Semantica

m

Verifica della correttezza sintattica

ðviene verificata dal compilatore

ðconsente di eliminare gli errori sintattici

m

Verifica della correttezza semantica

ðesecuzione e “test” del programma

ðprove di funzionamento per controllare che il programma si comporti correttamente

ðprocesso più complesso e delicato

Concetti Introduttivi: Linguaggi >> Linguaggi di Programmazione

(6)

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

Ciclo di Vita di un Programma

m

Per programmare

ðè necessario conoscere almeno un linguaggio (sintassi e semantica)

m

Ma questo non basta

ðil processo di sviluppo del software è complesso

ðè necessario un metodo (ovvero una

“metodologia”) per affrontare questa complessità

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

Ciclo di Vita di un Programma

m

Il punto di partenza

ðla descrizione del problema, normalmente fornita in linguaggio naturale

ðè opportuno analizzarla accuratamente

m

Il punto di arrivo

ðl’applicazione correttamente funzionante

m

Un passo intermedio fondamentale

ðconcepire una strategia per la soluzione del problema

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

(7)

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

Il Concetto di Algoritmo

m

Algoritmo

ðstrategia per la soluzione del problema

m

Il problema centrale

ðcapito il problema, decidere attraverso quale sequenza di passi costruire la soluzione ðè un problema ricorrente, che capita in molti

altri contesti

m

Esempio: lavare i panni

Concetti Introduttivi: Linguaggi >> Il Concetto di Algoritmo

14

Il Concetto di Algoritmo

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

Problema di Calcolo

-dati in ingresso -risultati attesi Es: lavare i panni

Tecnologia

Algoritmo Programma

dati in ingresso

dati in uscita

Es: lavatrice

Es: strategia di lavaggio (colore, delicati)

Es: programmi di lavaggio

(8)

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

Il Concetto di Algoritmo

m

Strategia di soluzione del problema

ðdeve essere concretamente eseguibile

usando la tecnologia disponibile;

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

Ciclo di Vita di un Programma

m

Avendo concepito l’algoritmo

ðè possibile procedere alla scrittura del codice

m

Codice sorgente

ðistruzioni del linguaggio di programmazione ðnon è direttamente eseguibile dal processore

m

Linguaggio macchina

ðlinguaggio di comandi eseguibili dal processore (molto semplici)

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

(9)

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

Ciclo di Vita di un Programma

m

Processo di compilazione

ðverifica della correttezza sintattica ðtrasforma il codice sorgente in codice

“oggetto”

m

Processo di collegamento

ðcollega il codice oggetto a quello delle

“librerie” esterne (es: op. matematiche) ðproduce il codice eseguibile completo

dell’applicazione

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

18

Ciclo di Vita di un Programma

m

A questo punto

ðl’applicazione è eseguibile

ðè necessario verificarne la correttezza logica

m

Fase di test

ðesecuzione ripetuta dell’applicazione su dati di test

ðper verificarne il funzionamento

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

(10)

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

Ciclo di Vita di Un Programma

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

Analisi del Problema

Scelta dell’

Algoritmo

Scrittura del Programma

Compilazione e Collegamento

Verifica Uso e

Manutenzione errori

sintattici

errori logici errori

nella strategia

codice sorgente

codice eseguibile ATTENZIONE

queste fasi non si svolgono “in cascata”

Compilazione e Collegamento

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

Compilazione codice

sorgente es:primo.cpp

Collegamento codice oggetto (ling. macchina) es: primo.obj librerie

esterne precompilate es: iostream

Compilatore

Collegatore (“linker”)

codice eseguibile es: primo.exe

(11)

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

Metodologia di Programmazione

m

Metodo per affrontare il ciclo di vita

ðpassi e tecniche per analizzare il problema ðpassi e tecniche per scegliere l’algoritmo ðpassi e tecniche per scrivere il codice ðpassi e tecniche per verificare il codice ðpassi e tecniche per manutenere il codice

m

La metodologia è importante

ðaltrettanto che la conoscenza del linguaggio

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

22

Utilizzo degli Strumenti

m

E’ necessario disporre di vari strumenti

m

Scrittura del programma

ðeditor di testi (es: Blocco Note o TextPad)

m

Compilatore e Collegatore

ðCompilatore Borland BCC 5.5 – e relativo collegatore

ðcollegamenti sul sito del corso (>>) ðsi utilizzano dalla finestra del DOS

Concetti Introduttivi: Linguaggi >> Utilizzo degli Strumenti

(12)

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

Utilizzo degli Strumenti

m

Il Primo Passo

ðeseguire le installazioni di tutti gli strumenti ðconfigurare il sistema per l’utilizzo degli

strumenti

m

Configurazione di Windows

ðabilitare la visualizzazione delle estensioni ðRisorse del Computer >> Strumenti >>

Opzioni Cartella >> Visualizzazione >>

Nascondi le estensioni

Concetti Introduttivi: Linguaggi >> Utilizzo degli Strumenti

>>

Installazioni

m

Installazione di TextPad

ðscaricare il file dal sito corrispondente ðeseguire la procedura di installazione ðconfigurare le opzioni di visualizzazione

Configura >> Preferenze

ðFile: estensione predefinita vuota ðVisualizza: numero righe

Concetti Introduttivi: Linguaggi >> Utilizzo degli Strumenti

(13)

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

Installazioni

m

Installazione del Compilatore Borland

ðscaricare il file dal sito corrispondente ðeseguire la procedura di installazione

m

Post-configurazione

ðconfigurare la variabile di ambiente PATH per rendere localizzabile il compilatore ðsu Win2000/XP: Pannello di Controllo >>

Sistema >> Variabili di Ambiente

aggiungendo il valore c:\Borland\bcc55\bin

Concetti Introduttivi: Linguaggi >> Utilizzo degli Strumenti

>>

26

Installazioni

m

Post-configurazione (continua)

ðconfigurare i parametri per eseguire il compilatore ed il collegatore

ðcartella delle librerie di sistema e dei file di inclusione

ðfile 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 >> Utilizzo degli Strumenti

>>

(14)

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

Un Semplice Programma

// Primo programma

#include <iostream.h>

void main () {

cout << "Primo programma" << endl;

}

Concetti Introduttivi: Linguaggi >> Utilizzo degli Strumenti

>>

Borland BCC 5.5

Concetti Introduttivi: Linguaggi >> Utilizzo degli Strumenti

(15)

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

Riassumendo

m

Varie tecnologie per la programmazione

ðci concentriamo sulla prog. procedurale ðsintassi e semantica

m

Ciclo di Vita del Programma

ðProblema-Algoritmo-Programma ðCompilazione e Collegamento ðImportanza della Metodologia

m

Utilizzo degli Strumenti (ATTENZIONE)

Concetti Introduttivi: Linguaggi >> Sommario

30

Appendice: Strumenti per il FORTRAN

m

FORTRAN

ðlinguaggio di programmazione procedurale ðsimile al “clean C” nell’impostazione

m

Compilatore e Collegatore

ðCompilatore FORTRAN FTN77 (>> sito) ðanche questo si utilizza dalla finestra del

DOS

Concetti Introduttivi: Linguaggi >> Appendice: Strumenti per il FORTRAN

(16)

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

Appendice: Strumenti per il FORTRAN

m

Installazione del Compilatore Salford

ðscaricare il file dal sito corrispondente ðeseguire la procedura di installazione

m

Post-configurazione

ðconfigurare la variabile di ambiente PATH su Win2000/XP: Pannello di Controllo >>

Sistema >> Variabili di Ambiente ðaggiungendo c:\win32app\salford

Concetti Introduttivi: Linguaggi >> Appendice: Strumenti per il FORTRAN

>>

Un Semplice Programma in FORTRAN

C---- Primo programma

program primo

write (*,*) 'Primo programma'

stop end

Concetti Introduttivi: Linguaggi >> Appendice: Strumenti per il FORTRAN

(17)

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

Salford FTN77

Concetti Introduttivi: Linguaggi >> Appendice: Strumenti per il FORTRAN

>>

34

Appendice: Strumenti per il FORTRAN

m

Nota

ðnella configurazione di TextPad può essere utile definire una nuova classe di documenti ðper l’evidenziazione della sintassi

m

Nuova classe FORTRAN

ðestensione dei file *.FOR

ðfile di evidenziazione della sintassi f.syn

Concetti Introduttivi: Linguaggi >> Appendice: Strumenti per il FORTRAN

>>

(18)

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

Termini della Licenza

m 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

m 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.

Riferimenti

Documenti correlati

Strutture di Controllo: Conclusioni &gt;&gt; Convenzioni di Stile.. Mecca - Programmazione Procedurale in Linguaggio C++ 11. Convenzioni

il sottoprogramma lavora su tre dati di tipo float chiamati a,b,c attraverso cui è possibile modificare i corrispondenti argomenti. istruzione

ðil numero e il tipo degli argomenti (1 argomento di tipo double) &gt;&gt; parametri ðil tipo del risultato restituito (double). m Intestazione di

Sottoprogrammi: Metodologia di Sviluppo &gt;&gt; Tecniche di Test e

ðDefinizione di Funzioni ðDefinizione di Procedure ðChiamata di Funzioni ðChiamata di Procedure ðPassaggio dei Parametri ðProgrammazione Modulare. Termini

Strutture di Dati: Lista &gt;&gt; Rappresentazione con Record e Array. ATTENZIONE ai

Strutture di Dati: Lista &gt;&gt; Inserimenti e Cancellazioni. Mecca - Programmazione Procedurale in Linguaggio

Strutture di Dati: Lista &gt;&gt; Gestione dei File. i conta il numero di valori prelevati dal