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
Sommario Linguaggi di Programmazione Ciclo di Vita del Programma Concetti Introduttivi: Linguaggi >> Sommario Sommario Linguaggi di Programmazione Sintassi Semantica Ciclo di Vita del Programma Concetto di Algoritmo Compilazione e Caricamento Metodologia di Programmazione In Pratica G. Mecca - Programmazione Procedurale in Linguaggio C++
Linguaggi di Programmazione Concetti Introduttivi: Linguaggi >> 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 G. Mecca - Programmazione Procedurale in Linguaggio C++
Evoluzione dei Linguaggi Concetti Introduttivi: Linguaggi >> Linguaggi di Programmazione Evoluzione dei Linguaggi Esistono numerosi linguaggi differenti per funzionalità e tecnologia Linguaggi di Programmazione Procedurale Strutturata Linguaggi Ibridi Linguaggi Orientati agli Oggetti metà anni ’60 BASIC 1974 C 1994 Java 1991 VB metà anni ’50 FORTRAN 1968 Pascal 1990 C++ 2000 C#, VB.NET G. Mecca - Programmazione Procedurale in Linguaggio C++
Linguaggi di Programmazione Concetti Introduttivi: Linguaggi >> Linguaggi di Programmazione Linguaggi di Programmazione sostanzialmente equivalente ma più semplice del C C C++ “clean C” programmazione procedurale Java, C#, VB.NET programmazione orientata agli oggetti G. Mecca - Programmazione Procedurale in Linguaggio C++
Linguaggi di Programmazione Concetti Introduttivi: Linguaggi >> Linguaggi di Programmazione Linguaggi di Programmazione Attenzione i linguaggi della stessa famiglia sono normalmente basati sugli stessi concetti Differenze alcuni linguaggi forniscono funzionalità che altri non hanno “sintassi” “semantica” G. Mecca - Programmazione Procedurale in Linguaggio C++
Linguaggio di Programmazione Concetti Introduttivi: Linguaggi >> 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 ;” G. Mecca - Programmazione Procedurale in Linguaggio C++
Linguaggio di Programmazione Concetti Introduttivi: Linguaggi >> 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 dal processore (codice oggetto) 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++
Linguaggio di Programmazione Concetti Introduttivi: Linguaggi >> 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 G. Mecca - Programmazione Procedurale in Linguaggio C++
Linguaggio di Programmazione Concetti Introduttivi: Linguaggi >> 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 G. Mecca - Programmazione Procedurale in Linguaggio C++
Linguaggio di Programmazione Concetti Introduttivi: Linguaggi >> 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 G. Mecca - Programmazione Procedurale in Linguaggio C++
Ciclo di Vita di un Programma Concetti Introduttivi: Linguaggi >> 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 G. Mecca - Programmazione Procedurale in Linguaggio C++
Dal Problema al Programma Concetti Introduttivi: Linguaggi >> 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: strategia di lavaggio (colore, delicati) dati in uscita Es: programmi di lavaggio Es: lavatrice G. Mecca - Programmazione Procedurale in Linguaggio C++
Algoritmo Strategia di soluzione del problema Concetti Introduttivi: Linguaggi >> Ciclo di Vita di un Programma 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” G. Mecca - Programmazione Procedurale in Linguaggio C++
Programma Scrittura Compilazione Collegamento Esecuzione Concetti Introduttivi: Linguaggi >> 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 G. Mecca - Programmazione Procedurale in Linguaggio C++
Ciclo di Vita di Un Programma 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 Compilazione e Collegamento errori nella strategia errori sintattici errori logici codice eseguibile Verifica Uso e Manutenzione G. Mecca - Programmazione Procedurale in Linguaggio C++
Compilazione e Collegamento Concetti Introduttivi: Linguaggi >> Ciclo di Vita di un Programma Compilazione e Collegamento codice sorgente es:primo.cpp Compilazione codice oggetto (ling. macchina) es: primo.obj Compilatore librerie esterne precompilate es: iostream Collegamento codice eseguibile es: primo.exe Collegatore (“linker”) G. Mecca - Programmazione Procedurale in Linguaggio C++
Metodologia di Programmazione Concetti Introduttivi: Linguaggi >> 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 G. Mecca - Programmazione Procedurale in Linguaggio C++
In Pratica E’ necessario disporre di vari strumenti Concetti Introduttivi: Linguaggi >> In Pratica 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 G. Mecca - Programmazione Procedurale in Linguaggio C++
In Pratica Il Primo Passo Configurazione di Windows Concetti Introduttivi: Linguaggi >> In Pratica In Pratica Il Primo Passo eseguire le installazioni di tutti gli strumenti configurare il sistema per l’utilizzo degli strumenti 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++
Installazioni Installazione di TextPad Concetti Introduttivi: Linguaggi >> In Pratica Installazioni 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 Nuova classe di documenti: FORTRAN >> G. Mecca - Programmazione Procedurale in Linguaggio C++
Installazioni Installazione del Compilatore Borland Concetti Introduttivi: Linguaggi >> In Pratica Installazioni Installazione del Compilatore Borland scaricare il file dal sito corrispondente eseguire la procedura di installazione 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 >> G. Mecca - Programmazione Procedurale in Linguaggio C++
Installazioni Post-configurazione (continua) Concetti Introduttivi: Linguaggi >> In Pratica Installazioni 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” >> G. Mecca - Programmazione Procedurale in Linguaggio C++
Un Semplice Programma // Primo programma #include <iostream.h> 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++
Borland BCC 5.5 Concetti Introduttivi: Linguaggi >> In Pratica G. Mecca - Programmazione Procedurale in Linguaggio C++
Installazioni Installazione del Compilatore Salford Concetti Introduttivi: Linguaggi >> In Pratica Installazioni Installazione del Compilatore Salford scaricare il file dal sito corrispondente eseguire la procedura di installazione Post-configurazione configurare la variabile di ambiente PATH su Win2000/XP: Pannello di Controllo >> Sistema >> Variabili di Ambiente aggiungendo c:\win32apps\salford >> G. Mecca - Programmazione Procedurale in Linguaggio C++
Un Semplice Programma in FORTRAN 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++
Concetti Introduttivi: Linguaggi >> In Pratica Salford FTN77 >> G. Mecca - Programmazione Procedurale in Linguaggio C++
Riassumendo Varie tecnologie per la programmazione Concetti Introduttivi: Linguaggi >> 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 Utilizzo degli Strumenti (ATTENZIONE) G. Mecca - Programmazione Procedurale in Linguaggio C++
Termini della Licenza 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. 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. G. Mecca - Programmazione Procedurale in Linguaggio C++