Programmazione Procedurale in Linguaggio C++ Elementi di Base Parte 1 Introduzione G. Mecca M. Samela Università della Basilicata Elementi di Base >> Sommario Sommario Linguaggi di Programmazione Sintassi Semantica Ciclo di Vita del Programma Concetto di Algoritmo Compilazione e Caricamento Metodologia di Programmazione 2
Elementi di Base >> Linguaggi di Programmazione Linguaggi di Programmazione Linguaggi per impartire istruzioni al processore 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 3 Elementi di Base >> Linguaggi di Programmazione Evoluzione dei Linguaggi Esistono numerosi linguaggi differenti per funzionalità e tecnologia metà anni 60 BASIC 1974 C 1991 VB 1994 Java metà anni 50 FORTRAN 1968 Pascal 1990 C++ 2000 C#, VB.NET Linguaggi di Programmazione Procedurale Strutturata Linguaggi Ibridi Linguaggi Orientati agli Oggetti 4
Elementi di Base >> Linguaggi di Programmazione Linguaggi di Programmazione programmazione procedurale C clean C sostanzialmente equivalente ma più semplice del C programmazione orientata agli oggetti C++ Java, C# 5 Elementi di Base >> Linguaggi di Programmazione Linguaggi di Programmazione Attenzione i linguaggi della stessa famiglia sono normalmente basati sugli stessi concetti Differenze funzionalità: alcuni linguaggi forniscono funzionalità che altri non hanno sintassi semantica 6
Elementi di Base >> Linguaggi di Programmazione Linguaggio di Programmazione Simile al linguaggio naturale sintassi e semantica 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 ; 7 Elementi di Base >> Linguaggi di Programmazione Linguaggio di Programmazione Processo di compilazione il codice del programma (codice sorgente) viene sottoposto ad analisi sintattica viene trasformato in codice eseguibile (codice oggetto) Compilatore divide il codice in frammenti detti token (parole chiave main, void, nomi ecc.) verifica la correttezza sintattica 8
Elementi di Base >> Linguaggi di Programmazione Linguaggio di Programmazione 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 ; Attenzione sintassi e semantica dei linguaggi di programmazione sono rigorose 9 Elementi di Base >> Linguaggi di Programmazione Linguaggio di Programmazione Attenzione ci sono due diverse nozioni di correttezza Correttezza Sintattica assenza di errori sintattici il programma è eseguibile Correttezza Semantica (o Logica) implica la correttezza sintattica il prog. risolve correttamente il problema 10
Elementi di Base >> Linguaggi di Programmazione Linguaggio di Programmazione Verifica della correttezza sintattica compilazione consente di eliminare gli errori sintattici 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 11 Elementi di Base >> Ciclo di Vita di un Programma Ciclo di Vita di un Programma Programma sequenza 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 12
Elementi di Base >> Ciclo di Vita di un Programma Dal Problema al Programma Problema di Calcolo dati in ingresso -dati in ingresso -risultati attesi Es: lavare i panni Algoritmo Programma Calcolatore Es: lavatrice Es: strategia di lavaggio (colore, delicati) dati in uscita Es: programmi di lavaggio 13 Elementi di Base >> Ciclo di Vita di un Programma >> Algoritmo Algoritmo Strategia di soluzione del problema deve 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 14
Elementi di Base >> Ciclo di Vita di un Programma Programma Scrittura codice sorgente Compilazione verifica della correttezza sintattica codice oggetto Collegamento ogni programma richiede codice esterno codice eseguibile Esecuzione verifica degli errori logici 15 Elementi di Base >> Ciclo di Vita di un Programma Ciclo di Vita di Un Programma Analisi del Problema Scelta dell Algoritmo Scrittura del Programma codice sorgente errori nella strategia Compilazione e Collegamento codice eseguibile errori sintattici errori logici Verifica Uso e Manutenzione 16
Elementi di Base >> Ciclo di Vita di un Programma Compilazione e Collegamento codice sorgente es:primo.cpp Compilazione Compilatore librerie esterne precompilate es: iostream Collegamento Collegatore ( linker ) codice oggetto (ling. macchina) es: primo.obj codice eseguibile es: primo.exe 17 Elementi di Base >> Ciclo di Vita di un Programma In Pratica Scrittura del programma editor di testi (es: Blocco Note o TextPad) Compilazione e Collegamento è necessario un compilatore del linguaggio Compilatore Borland BCC 5.5 (vedi sito) si utilizza dalla finestra del DOS Compilatore FORTRAN FTN77 (vedi sito) si utilizza dalla finestra del DOS 18
Elementi di Base >> Ciclo di Vita di un Programma Un Semplice Programma // Primo programma #include <iostream.h> void main () { cout << "Primo programma" << endl; } 19 Elementi di Base >> Ciclo di Vita di un Programma Borland BCC 5.5 >> 20
Elementi di Base >> Ciclo di Vita di un Programma Un Semplice Programma in FORTRAN C---- Primo programma program primo write (*,*) 'Primo programma' stop end 21 Elementi di Base >> Ciclo di Vita di un Programma Salford FTN77 >> 22
Elementi di Base >> Ciclo di Vita di un Programma Metodologia di Programmazione 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 La metodologia è importante altrettanto che la conoscenza del linguaggio 23 Elementi di Base >> Sommario Riassumendo Varie tecnologie per la programmazione ci concentriamo sulla prog. procedurale sintassi e semantica Ciclo di Vita del Programma Problema-Algoritmo-Programma Compilazione e Collegamento Importanza della Metodologia 24