Programmazione Procedurale in Linguaggio C Concetti Introduttivi Parte

  • Slides: 30
Download presentation
Programmazione Procedurale in Linguaggio C++ Concetti Introduttivi Parte 2 Linguaggi di Programmazione versione 2.

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) G. Mecca – Università della Basilicata – mecca@unibas. it

Concetti Introduttivi: Linguaggi >> Sommario m Linguaggi di Programmazione ðSintassi ðSemantica m Ciclo di

Concetti Introduttivi: Linguaggi >> Sommario m Linguaggi di Programmazione ðSintassi ðSemantica m Ciclo di Vita del Programma ðConcetto di Algoritmo ðCompilazione e Caricamento ðMetodologia di Programmazione m In Pratica G. Mecca - Programmazione Procedurale in Linguaggio C++ 2

Concetti Introduttivi: Linguaggi >> Linguaggi di Programmazione m Linguaggi per impartire istruzioni al processore

Concetti Introduttivi: Linguaggi >> 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 G. Mecca - Programmazione Procedurale in Linguaggio C++ 3

Concetti Introduttivi: Linguaggi >> Linguaggi di Programmazione Evoluzione dei Linguaggi m Esistono numerosi linguaggi

Concetti Introduttivi: Linguaggi >> Linguaggi di Programmazione Evoluzione dei Linguaggi m Esistono numerosi linguaggi ðdifferenti per funzionalità e tecnologia metà anni ’ 60 BASIC metà anni ’ 50 FORTRAN 1974 C 1991 VB 1968 Pascal Linguaggi di Programmazione Procedurale Strutturata 1990 C++ Linguaggi Ibridi G. Mecca - Programmazione Procedurale in Linguaggio C++ 1994 Java 2000 C#, VB. NET Linguaggi Orientati agli Oggetti 4

Concetti Introduttivi: Linguaggi >> Linguaggi di Programmazione programmazione procedurale C sostanzialmente equivalente ma più

Concetti Introduttivi: Linguaggi >> Linguaggi di Programmazione programmazione procedurale C sostanzialmente equivalente ma più semplice del C “clean C” C++ programmazione orientata agli oggetti G. Mecca - Programmazione Procedurale in Linguaggio C++ Java, C#, VB. NET 5

Concetti Introduttivi: Linguaggi >> Linguaggi di Programmazione m Attenzione ði linguaggi della stessa famiglia

Concetti Introduttivi: Linguaggi >> 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” G. Mecca - Programmazione Procedurale in Linguaggio C++ 6

Concetti Introduttivi: Linguaggi >> Linguaggi di Programmazione Linguaggio di Programmazione m Simile al linguaggio

Concetti Introduttivi: Linguaggi >> Linguaggi di Programmazione Linguaggio di Programmazione 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 ; ” G. Mecca - Programmazione Procedurale in Linguaggio C++ 7

Concetti Introduttivi: Linguaggi >> Linguaggi di Programmazione Linguaggio di Programmazione m Processo di compilazione

Concetti Introduttivi: Linguaggi >> Linguaggi di Programmazione Linguaggio di Programmazione m Processo di compilazione ðil codice del programma (codice sorgente) viene sottoposto ad analisi sintattica ðviene trasformato in codice eseguibile dal processore (codice oggetto) m Compilatore ðanalisi lessicale: divide il codice in frammenti detti “token” (parole chiave, nomi ecc. ) ðanalisi sintattica: verifica la correttezza G. Mecca - Programmazione Procedurale in Linguaggio C++ 8

Concetti Introduttivi: Linguaggi >> Linguaggi di Programmazione Linguaggio di Programmazione m Semantica ð“significato” del

Concetti Introduttivi: Linguaggi >> Linguaggi di Programmazione Linguaggio di Programmazione 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 G. Mecca - Programmazione Procedurale in Linguaggio C++ 9

Concetti Introduttivi: Linguaggi >> Linguaggi di Programmazione Linguaggio di Programmazione m Attenzione ðci sono

Concetti Introduttivi: Linguaggi >> Linguaggi di Programmazione Linguaggio di Programmazione 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 G. Mecca - Programmazione Procedurale in Linguaggio C++ 10

Concetti Introduttivi: Linguaggi >> Linguaggi di Programmazione Linguaggio di Programmazione m Verifica della correttezza

Concetti Introduttivi: Linguaggi >> Linguaggi di Programmazione Linguaggio di Programmazione m Verifica della correttezza sintattica ðcompilazione ð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 G. Mecca - Programmazione Procedurale in Linguaggio C++ 11

Concetti Introduttivi: Linguaggi >> Ciclo di Vita di un Programma m Programma ðsequenza di

Concetti Introduttivi: Linguaggi >> Ciclo di Vita di un Programma m Programma ðsequenza di istruzioni che risolve un problema di calcolo m Per programmare ðè necessario conoscere almeno un linguaggio ðma questo non basta ðè necessario conoscere “tecniche”, ovvero “metodologie” di programmazione G. Mecca - Programmazione Procedurale in Linguaggio C++ 12

Concetti Introduttivi: Linguaggi >> Ciclo di Vita di un Programma Dal Problema al Programma

Concetti Introduttivi: Linguaggi >> Ciclo di Vita di un Programma Dal Problema al Programma Problema di Calcolo -dati in ingresso -risultati attesi Es: lavare i panni Calcolatore dati in ingresso Algoritmo Es: strategia di lavaggio (colore, delicati) Es: lavatrice G. Mecca - Programmazione Procedurale in Linguaggio C++ Programma dati in uscita Es: programmi di lavaggio 13

Concetti Introduttivi: Linguaggi >> Ciclo di Vita di un Programma Algoritmo m Strategia di

Concetti Introduttivi: Linguaggi >> Ciclo di Vita di un Programma Algoritmo m 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” G. Mecca - Programmazione Procedurale in Linguaggio C++ 14

Concetti Introduttivi: Linguaggi >> Ciclo di Vita di un Programma m Scrittura ðcodice sorgente

Concetti Introduttivi: Linguaggi >> Ciclo di Vita di un Programma m Scrittura ðcodice sorgente m Compilazione ðverifica della correttezza sintattica ðcodice “oggetto” m Collegamento ðogni programma richiede codice esterno ðcodice eseguibile m Esecuzione ðverifica degli errori logici G. Mecca - Programmazione Procedurale in Linguaggio C++ 15

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

Concetti Introduttivi: Linguaggi >> 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 errori e Collegamento sintattici errori logici codice eseguibile Verifica G. Mecca - Programmazione Procedurale in Linguaggio C++ Uso e Manutenzione 16

Concetti Introduttivi: Linguaggi >> Ciclo di Vita di un Programma Compilazione e Collegamento codice

Concetti Introduttivi: Linguaggi >> Ciclo di Vita di un Programma Compilazione e Collegamento codice sorgente es: primo. cpp Compilazione Compilatore librerie esterne precompilate es: iostream codice oggetto (ling. macchina) es: primo. obj Collegamento codice eseguibile es: primo. exe Collegatore (“linker”) G. Mecca - Programmazione Procedurale in Linguaggio C++ 17

Concetti Introduttivi: Linguaggi >> Ciclo di Vita di un Programma Metodologia di Programmazione m

Concetti Introduttivi: Linguaggi >> Ciclo di Vita di un Programma 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 G. Mecca - Programmazione Procedurale in Linguaggio C++ 18

Concetti Introduttivi: Linguaggi >> In Pratica m E’ necessario disporre di vari strumenti m

Concetti Introduttivi: Linguaggi >> In Pratica m E’ necessario disporre di vari strumenti m Scrittura del programma ðeditor di testi (es: Blocco Note o Text. Pad) m Compilatore e Collegatore ðCompilatore Borland BCC 5. 5 (>> sito) ðCompilatore FORTRAN FTN 77 (>> sito) ðsi utilizzano dalla finestra del DOS G. Mecca - Programmazione Procedurale in Linguaggio C++ 19

Concetti Introduttivi: Linguaggi >> In Pratica m Il Primo Passo ðeseguire le installazioni di

Concetti Introduttivi: Linguaggi >> In Pratica 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 >> G. Mecca - Programmazione Procedurale in Linguaggio C++ 20

Concetti Introduttivi: Linguaggi >> In Pratica Installazioni m Installazione di Text. Pad ðscaricare il

Concetti Introduttivi: Linguaggi >> In Pratica Installazioni m Installazione di Text. Pad ð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 m Nuova classe di documenti: FORTRAN >> G. Mecca - Programmazione Procedurale in Linguaggio C++ 21

Concetti Introduttivi: Linguaggi >> In Pratica Installazioni m Installazione del Compilatore Borland ðscaricare il

Concetti Introduttivi: Linguaggi >> In Pratica 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 Win 2000/XP: Pannello di Controllo >> Sistema >> Variabili di Ambiente aggiungendo il valore c: Borlandbcc 55bin >> G. Mecca - Programmazione Procedurale in Linguaggio C++ 22

Concetti Introduttivi: Linguaggi >> In Pratica Installazioni m Post-configurazione (continua) ðconfigurare i parametri per

Concetti Introduttivi: Linguaggi >> In Pratica 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 bcc 32. cfg nella cartella bin (vedi il file README. txt) ð-I”c: borlandbcc 55Include” -L”c: borlandbcc 55Lib” >> G. Mecca - Programmazione Procedurale in Linguaggio C++ 23

Concetti Introduttivi: Linguaggi >> In Pratica Un Semplice Programma // Primo programma #include <iostream.

Concetti Introduttivi: Linguaggi >> In Pratica Un Semplice Programma // Primo programma #include <iostream. h> void main () { cout << "Primo programma" << endl; } >> G. Mecca - Programmazione Procedurale in Linguaggio C++ 24

Concetti Introduttivi: Linguaggi >> In Pratica Borland BCC 5. 5 G. Mecca - Programmazione

Concetti Introduttivi: Linguaggi >> In Pratica Borland BCC 5. 5 G. Mecca - Programmazione Procedurale in Linguaggio C++ 25

Concetti Introduttivi: Linguaggi >> In Pratica Installazioni m Installazione del Compilatore Salford ðscaricare il

Concetti Introduttivi: Linguaggi >> In Pratica Installazioni 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 Win 2000/XP: Pannello di Controllo >> Sistema >> Variabili di Ambiente ðaggiungendo c: win 32 appssalford >> G. Mecca - Programmazione Procedurale in Linguaggio C++ 26

Concetti Introduttivi: Linguaggi >> In Pratica Un Semplice Programma in FORTRAN C---- Primo programma

Concetti Introduttivi: Linguaggi >> In Pratica Un Semplice Programma in FORTRAN C---- Primo programma program primo write (*, *) 'Primo programma' stop end G. Mecca - Programmazione Procedurale in Linguaggio C++ 27

Concetti Introduttivi: Linguaggi >> In Pratica Salford FTN 77 G. Mecca - Programmazione Procedurale

Concetti Introduttivi: Linguaggi >> In Pratica Salford FTN 77 G. Mecca - Programmazione Procedurale in Linguaggio C++ >> 28

Concetti Introduttivi: Linguaggi >> Sommario Riassumendo m Varie tecnologie per la programmazione ðci concentriamo

Concetti Introduttivi: Linguaggi >> Sommario 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) G. Mecca - Programmazione Procedurale in Linguaggio C++ 29

Termini della Licenza m This work is licensed under the Creative Commons Attribution. Share.

Termini della Licenza m This work is licensed under the Creative Commons Attribution. Share. Alike 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. m Questo lavoro viene concesso in uso secondo i termini della licenza “Attribution-Share. Alike” 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. G. Mecca - Programmazione Procedurale in Linguaggio C++ 30