MAKKAH MECCA uS JA -MECCA · MAKKAH MECCA uS JA -MECCA . Created Date: 5/28/2009 9:28:15 PM
G. Mecca – Università della Basilicata – [email protected] Programmazione Procedurale in...
-
Upload
samanta-valsecchi -
Category
Documents
-
view
222 -
download
6
Transcript of G. Mecca – Università della Basilicata – [email protected] Programmazione Procedurale in...
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)
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
>>
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
>>
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
>>
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
>>
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
>>
25G. Mecca - Programmazione Procedurale in Linguaggio C++G. Mecca - Programmazione Procedurale in Linguaggio C++
Borland BCC 5.5
Concetti Introduttivi: Linguaggi >> In Pratica
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
>>
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
28G. Mecca - Programmazione Procedurale in Linguaggio C++G. Mecca - Programmazione Procedurale in Linguaggio C++
Salford FTN77
Concetti Introduttivi: Linguaggi >> In Pratica
>>
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
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.