![Page 1: INTRODUZIONE ALLA PROGRAMMAZIONE - cs.unibo.itlaneve/html/lez0bis-INTRO.pdf · linguaggi di programmazione di alto linguaggi ben noti sono CC++ Java Visual Basic PHP C# Python Objective](https://reader030.vdocumenti.com/reader030/viewer/2022020416/5c68b7f709d3f263648bf424/html5/thumbnails/1.jpg)
1
INTRODUZIONE ALLA PROGRAMMAZIONE
Cosimo Laneve
![Page 2: INTRODUZIONE ALLA PROGRAMMAZIONE - cs.unibo.itlaneve/html/lez0bis-INTRO.pdf · linguaggi di programmazione di alto linguaggi ben noti sono CC++ Java Visual Basic PHP C# Python Objective](https://reader030.vdocumenti.com/reader030/viewer/2022020416/5c68b7f709d3f263648bf424/html5/thumbnails/2.jpg)
2
argomenti (Capitolo 1 Savitch)
1. sistemi di calcolo
2. programmazione e problem solving
3. introduzione a C++
4. testing e debugging
![Page 3: INTRODUZIONE ALLA PROGRAMMAZIONE - cs.unibo.itlaneve/html/lez0bis-INTRO.pdf · linguaggi di programmazione di alto linguaggi ben noti sono CC++ Java Visual Basic PHP C# Python Objective](https://reader030.vdocumenti.com/reader030/viewer/2022020416/5c68b7f709d3f263648bf424/html5/thumbnails/3.jpg)
3
sistema di calcolo (computing system)
![Page 4: INTRODUZIONE ALLA PROGRAMMAZIONE - cs.unibo.itlaneve/html/lez0bis-INTRO.pdf · linguaggi di programmazione di alto linguaggi ben noti sono CC++ Java Visual Basic PHP C# Python Objective](https://reader030.vdocumenti.com/reader030/viewer/2022020416/5c68b7f709d3f263648bf424/html5/thumbnails/4.jpg)
3
sistema di calcolo (computing system)sistema di calcolo = software + hardware
![Page 5: INTRODUZIONE ALLA PROGRAMMAZIONE - cs.unibo.itlaneve/html/lez0bis-INTRO.pdf · linguaggi di programmazione di alto linguaggi ben noti sono CC++ Java Visual Basic PHP C# Python Objective](https://reader030.vdocumenti.com/reader030/viewer/2022020416/5c68b7f709d3f263648bf424/html5/thumbnails/5.jpg)
3
sistema di calcolo (computing system)sistema di calcolo = software + hardware
programmaè una sequenza di istruzioni che deve eseguire un calcolatore
![Page 6: INTRODUZIONE ALLA PROGRAMMAZIONE - cs.unibo.itlaneve/html/lez0bis-INTRO.pdf · linguaggi di programmazione di alto linguaggi ben noti sono CC++ Java Visual Basic PHP C# Python Objective](https://reader030.vdocumenti.com/reader030/viewer/2022020416/5c68b7f709d3f263648bf424/html5/thumbnails/6.jpg)
3
sistema di calcolo (computing system)sistema di calcolo = software + hardware
programmaè una sequenza di istruzioni che deve eseguire un calcolatore
software è la collezione di programmi che i calcolatori eseguonoesempi: editors, compilatori, browsers, sistemi operativi
![Page 7: INTRODUZIONE ALLA PROGRAMMAZIONE - cs.unibo.itlaneve/html/lez0bis-INTRO.pdf · linguaggi di programmazione di alto linguaggi ben noti sono CC++ Java Visual Basic PHP C# Python Objective](https://reader030.vdocumenti.com/reader030/viewer/2022020416/5c68b7f709d3f263648bf424/html5/thumbnails/7.jpg)
3
sistema di calcolo (computing system)sistema di calcolo = software + hardware
programmaè una sequenza di istruzioni che deve eseguire un calcolatore
software è la collezione di programmi che i calcolatori eseguonoesempi: editors, compilatori, browsers, sistemi operativi
hardware
![Page 8: INTRODUZIONE ALLA PROGRAMMAZIONE - cs.unibo.itlaneve/html/lez0bis-INTRO.pdf · linguaggi di programmazione di alto linguaggi ben noti sono CC++ Java Visual Basic PHP C# Python Objective](https://reader030.vdocumenti.com/reader030/viewer/2022020416/5c68b7f709d3f263648bf424/html5/thumbnails/8.jpg)
3
sistema di calcolo (computing system)sistema di calcolo = software + hardware
programmaè una sequenza di istruzioni che deve eseguire un calcolatore
software è la collezione di programmi che i calcolatori eseguonoesempi: editors, compilatori, browsers, sistemi operativi
hardware sono i calcolatori (pc, tablet, laptop, mainframe, etc.)
![Page 9: INTRODUZIONE ALLA PROGRAMMAZIONE - cs.unibo.itlaneve/html/lez0bis-INTRO.pdf · linguaggi di programmazione di alto linguaggi ben noti sono CC++ Java Visual Basic PHP C# Python Objective](https://reader030.vdocumenti.com/reader030/viewer/2022020416/5c68b7f709d3f263648bf424/html5/thumbnails/9.jpg)
4
organizzazione di un calcolatore5 componenti principali1. dispositivi di input (consentono la comunicazione al
computer : tastiera, cd, etc.)2. dispositivi di output (consentono la comunicazione
dal computer : video, stampante, etc.)3. processore o CPU (esegue le istruzioni)4. memoria principale o RAM (le locazioni di memoria
contengono i programmi in esecuzione)5. memoria secondaria (memorizza i dati in maniera
permanente, di solito su disco)
![Page 10: INTRODUZIONE ALLA PROGRAMMAZIONE - cs.unibo.itlaneve/html/lez0bis-INTRO.pdf · linguaggi di programmazione di alto linguaggi ben noti sono CC++ Java Visual Basic PHP C# Python Objective](https://reader030.vdocumenti.com/reader030/viewer/2022020416/5c68b7f709d3f263648bf424/html5/thumbnails/10.jpg)
5
organizzazione di un calcolatoreprocessore (CPU)
memoria ramdispositivo
di inputdispositivodi output
memoriasecondaria
![Page 11: INTRODUZIONE ALLA PROGRAMMAZIONE - cs.unibo.itlaneve/html/lez0bis-INTRO.pdf · linguaggi di programmazione di alto linguaggi ben noti sono CC++ Java Visual Basic PHP C# Python Objective](https://reader030.vdocumenti.com/reader030/viewer/2022020416/5c68b7f709d3f263648bf424/html5/thumbnails/11.jpg)
6
memoria principaleè una lunga sequenza di locazioni
ognuna contiene un byte = 8 bits, ogni bit è 0 oppure 1indirizzo: numero che identifica la locazione di memoria
dati grandi: alcuni dati sono troppo grandi per stare in un byte
molti interi e realigli indirizzi fanno riferimento al primo byte i byte seguenti servono a memorizzare la parte restante del dato
![Page 12: INTRODUZIONE ALLA PROGRAMMAZIONE - cs.unibo.itlaneve/html/lez0bis-INTRO.pdf · linguaggi di programmazione di alto linguaggi ben noti sono CC++ Java Visual Basic PHP C# Python Objective](https://reader030.vdocumenti.com/reader030/viewer/2022020416/5c68b7f709d3f263648bf424/html5/thumbnails/12.jpg)
7
memoria principale
locazione di 3 byte ad indirizzo 1
locazione di 2 byte ad indirizzo 4
locazione di 1 byte ad indirizzo 6
locazione di 3 byte ad indirizzo 7
byte 2
byte 1
byte 4byte 3
byte 7
byte 5
byte 10
byte 8byte 9
byte 6
![Page 13: INTRODUZIONE ALLA PROGRAMMAZIONE - cs.unibo.itlaneve/html/lez0bis-INTRO.pdf · linguaggi di programmazione di alto linguaggi ben noti sono CC++ Java Visual Basic PHP C# Python Objective](https://reader030.vdocumenti.com/reader030/viewer/2022020416/5c68b7f709d3f263648bf424/html5/thumbnails/13.jpg)
8
dato o codice?
![Page 14: INTRODUZIONE ALLA PROGRAMMAZIONE - cs.unibo.itlaneve/html/lez0bis-INTRO.pdf · linguaggi di programmazione di alto linguaggi ben noti sono CC++ Java Visual Basic PHP C# Python Objective](https://reader030.vdocumenti.com/reader030/viewer/2022020416/5c68b7f709d3f263648bf424/html5/thumbnails/14.jpg)
8
dato o codice?‘A’ può essere memorizzato come 01000001
![Page 15: INTRODUZIONE ALLA PROGRAMMAZIONE - cs.unibo.itlaneve/html/lez0bis-INTRO.pdf · linguaggi di programmazione di alto linguaggi ben noti sono CC++ Java Visual Basic PHP C# Python Objective](https://reader030.vdocumenti.com/reader030/viewer/2022020416/5c68b7f709d3f263648bf424/html5/thumbnails/15.jpg)
8
dato o codice?‘A’ può essere memorizzato come 0100000165 può essere memorizzato come 01000001
![Page 16: INTRODUZIONE ALLA PROGRAMMAZIONE - cs.unibo.itlaneve/html/lez0bis-INTRO.pdf · linguaggi di programmazione di alto linguaggi ben noti sono CC++ Java Visual Basic PHP C# Python Objective](https://reader030.vdocumenti.com/reader030/viewer/2022020416/5c68b7f709d3f263648bf424/html5/thumbnails/16.jpg)
8
dato o codice?‘A’ può essere memorizzato come 0100000165 può essere memorizzato come 01000001una istruzione può essere memorizzata come 01000001
![Page 17: INTRODUZIONE ALLA PROGRAMMAZIONE - cs.unibo.itlaneve/html/lez0bis-INTRO.pdf · linguaggi di programmazione di alto linguaggi ben noti sono CC++ Java Visual Basic PHP C# Python Objective](https://reader030.vdocumenti.com/reader030/viewer/2022020416/5c68b7f709d3f263648bf424/html5/thumbnails/17.jpg)
8
dato o codice?‘A’ può essere memorizzato come 0100000165 può essere memorizzato come 01000001una istruzione può essere memorizzata come 01000001
come fa il computer a sapere cosa significa 01000001?
![Page 18: INTRODUZIONE ALLA PROGRAMMAZIONE - cs.unibo.itlaneve/html/lez0bis-INTRO.pdf · linguaggi di programmazione di alto linguaggi ben noti sono CC++ Java Visual Basic PHP C# Python Objective](https://reader030.vdocumenti.com/reader030/viewer/2022020416/5c68b7f709d3f263648bf424/html5/thumbnails/18.jpg)
8
dato o codice?‘A’ può essere memorizzato come 0100000165 può essere memorizzato come 01000001una istruzione può essere memorizzata come 01000001
come fa il computer a sapere cosa significa 01000001?- l’interpretazione dipende dalla istruzione che si sta
eseguendo
![Page 19: INTRODUZIONE ALLA PROGRAMMAZIONE - cs.unibo.itlaneve/html/lez0bis-INTRO.pdf · linguaggi di programmazione di alto linguaggi ben noti sono CC++ Java Visual Basic PHP C# Python Objective](https://reader030.vdocumenti.com/reader030/viewer/2022020416/5c68b7f709d3f263648bf424/html5/thumbnails/19.jpg)
8
dato o codice?‘A’ può essere memorizzato come 0100000165 può essere memorizzato come 01000001una istruzione può essere memorizzata come 01000001
come fa il computer a sapere cosa significa 01000001?- l’interpretazione dipende dalla istruzione che si sta
eseguendo
i programmatori non debbono affrontare queste problematiche (sono troppo di “basso livello”)
- i programmatori ragionano come se le celle di memoria contenessero lettere o numeri, piuttosto che zeri e uni
![Page 20: INTRODUZIONE ALLA PROGRAMMAZIONE - cs.unibo.itlaneve/html/lez0bis-INTRO.pdf · linguaggi di programmazione di alto linguaggi ben noti sono CC++ Java Visual Basic PHP C# Python Objective](https://reader030.vdocumenti.com/reader030/viewer/2022020416/5c68b7f709d3f263648bf424/html5/thumbnails/20.jpg)
9
memoria secondaria e memoria
![Page 21: INTRODUZIONE ALLA PROGRAMMAZIONE - cs.unibo.itlaneve/html/lez0bis-INTRO.pdf · linguaggi di programmazione di alto linguaggi ben noti sono CC++ Java Visual Basic PHP C# Python Objective](https://reader030.vdocumenti.com/reader030/viewer/2022020416/5c68b7f709d3f263648bf424/html5/thumbnails/21.jpg)
9
memoria secondaria e memoria
la memoria principale memorizza il programma in esecuzione e i relativi dati
![Page 22: INTRODUZIONE ALLA PROGRAMMAZIONE - cs.unibo.itlaneve/html/lez0bis-INTRO.pdf · linguaggi di programmazione di alto linguaggi ben noti sono CC++ Java Visual Basic PHP C# Python Objective](https://reader030.vdocumenti.com/reader030/viewer/2022020416/5c68b7f709d3f263648bf424/html5/thumbnails/22.jpg)
9
memoria secondaria e memoria
la memoria principale memorizza il programma in esecuzione e i relativi dati
la memoria secondariamemorizza i programmi non in esecuzione, “vecchi”memorizza dati in maniera permanente (è necessaria una esplicita cancellazione per eliminarli)
![Page 23: INTRODUZIONE ALLA PROGRAMMAZIONE - cs.unibo.itlaneve/html/lez0bis-INTRO.pdf · linguaggi di programmazione di alto linguaggi ben noti sono CC++ Java Visual Basic PHP C# Python Objective](https://reader030.vdocumenti.com/reader030/viewer/2022020416/5c68b7f709d3f263648bf424/html5/thumbnails/23.jpg)
10
il processore
![Page 24: INTRODUZIONE ALLA PROGRAMMAZIONE - cs.unibo.itlaneve/html/lez0bis-INTRO.pdf · linguaggi di programmazione di alto linguaggi ben noti sono CC++ Java Visual Basic PHP C# Python Objective](https://reader030.vdocumenti.com/reader030/viewer/2022020416/5c68b7f709d3f263648bf424/html5/thumbnails/24.jpg)
10
il processorechiamato anche CPU — Central Processing Unit
![Page 25: INTRODUZIONE ALLA PROGRAMMAZIONE - cs.unibo.itlaneve/html/lez0bis-INTRO.pdf · linguaggi di programmazione di alto linguaggi ben noti sono CC++ Java Visual Basic PHP C# Python Objective](https://reader030.vdocumenti.com/reader030/viewer/2022020416/5c68b7f709d3f263648bf424/html5/thumbnails/25.jpg)
10
il processorechiamato anche CPU — Central Processing Unitesegue le istruzioni del programma: tipiche istruzioni sono
add 34 R3 sub 2 R1 mul R1 R2 R3 div 42 R0 R1 mov loc1 loc2
![Page 26: INTRODUZIONE ALLA PROGRAMMAZIONE - cs.unibo.itlaneve/html/lez0bis-INTRO.pdf · linguaggi di programmazione di alto linguaggi ben noti sono CC++ Java Visual Basic PHP C# Python Objective](https://reader030.vdocumenti.com/reader030/viewer/2022020416/5c68b7f709d3f263648bf424/html5/thumbnails/26.jpg)
11
esecuzione di un programma (versione semplificata)
![Page 27: INTRODUZIONE ALLA PROGRAMMAZIONE - cs.unibo.itlaneve/html/lez0bis-INTRO.pdf · linguaggi di programmazione di alto linguaggi ben noti sono CC++ Java Visual Basic PHP C# Python Objective](https://reader030.vdocumenti.com/reader030/viewer/2022020416/5c68b7f709d3f263648bf424/html5/thumbnails/27.jpg)
11
esecuzione di un programma (versione semplificata)
programma dati
![Page 28: INTRODUZIONE ALLA PROGRAMMAZIONE - cs.unibo.itlaneve/html/lez0bis-INTRO.pdf · linguaggi di programmazione di alto linguaggi ben noti sono CC++ Java Visual Basic PHP C# Python Objective](https://reader030.vdocumenti.com/reader030/viewer/2022020416/5c68b7f709d3f263648bf424/html5/thumbnails/28.jpg)
11
esecuzione di un programma (versione semplificata)
programma dati
computer
![Page 29: INTRODUZIONE ALLA PROGRAMMAZIONE - cs.unibo.itlaneve/html/lez0bis-INTRO.pdf · linguaggi di programmazione di alto linguaggi ben noti sono CC++ Java Visual Basic PHP C# Python Objective](https://reader030.vdocumenti.com/reader030/viewer/2022020416/5c68b7f709d3f263648bf424/html5/thumbnails/29.jpg)
11
esecuzione di un programma (versione semplificata)
programma dati
computer
output
![Page 30: INTRODUZIONE ALLA PROGRAMMAZIONE - cs.unibo.itlaneve/html/lez0bis-INTRO.pdf · linguaggi di programmazione di alto linguaggi ben noti sono CC++ Java Visual Basic PHP C# Python Objective](https://reader030.vdocumenti.com/reader030/viewer/2022020416/5c68b7f709d3f263648bf424/html5/thumbnails/30.jpg)
12
linguaggi di programmazione di alto
![Page 31: INTRODUZIONE ALLA PROGRAMMAZIONE - cs.unibo.itlaneve/html/lez0bis-INTRO.pdf · linguaggi di programmazione di alto linguaggi ben noti sono CC++ Java Visual Basic PHP C# Python Objective](https://reader030.vdocumenti.com/reader030/viewer/2022020416/5c68b7f709d3f263648bf424/html5/thumbnails/31.jpg)
12
linguaggi di programmazione di alto linguaggi ben noti sonoC C++ Java Visual Basic PHP C# Python Objective C
![Page 32: INTRODUZIONE ALLA PROGRAMMAZIONE - cs.unibo.itlaneve/html/lez0bis-INTRO.pdf · linguaggi di programmazione di alto linguaggi ben noti sono CC++ Java Visual Basic PHP C# Python Objective](https://reader030.vdocumenti.com/reader030/viewer/2022020416/5c68b7f709d3f263648bf424/html5/thumbnails/32.jpg)
12
linguaggi di programmazione di alto linguaggi ben noti sonoC C++ Java Visual Basic PHP C# Python Objective C
questi linguaggi
![Page 33: INTRODUZIONE ALLA PROGRAMMAZIONE - cs.unibo.itlaneve/html/lez0bis-INTRO.pdf · linguaggi di programmazione di alto linguaggi ben noti sono CC++ Java Visual Basic PHP C# Python Objective](https://reader030.vdocumenti.com/reader030/viewer/2022020416/5c68b7f709d3f263648bf424/html5/thumbnails/33.jpg)
12
linguaggi di programmazione di alto linguaggi ben noti sonoC C++ Java Visual Basic PHP C# Python Objective C
questi linguaggiassomigliano ai linguaggi naturali (utilizzano costrutti facilmente comprensibili
![Page 34: INTRODUZIONE ALLA PROGRAMMAZIONE - cs.unibo.itlaneve/html/lez0bis-INTRO.pdf · linguaggi di programmazione di alto linguaggi ben noti sono CC++ Java Visual Basic PHP C# Python Objective](https://reader030.vdocumenti.com/reader030/viewer/2022020416/5c68b7f709d3f263648bf424/html5/thumbnails/34.jpg)
12
linguaggi di programmazione di alto linguaggi ben noti sonoC C++ Java Visual Basic PHP C# Python Objective C
questi linguaggiassomigliano ai linguaggi naturali (utilizzano costrutti facilmente comprensibiliconsentono di programmare in maniera semplice
![Page 35: INTRODUZIONE ALLA PROGRAMMAZIONE - cs.unibo.itlaneve/html/lez0bis-INTRO.pdf · linguaggi di programmazione di alto linguaggi ben noti sono CC++ Java Visual Basic PHP C# Python Objective](https://reader030.vdocumenti.com/reader030/viewer/2022020416/5c68b7f709d3f263648bf424/html5/thumbnails/35.jpg)
12
linguaggi di programmazione di alto linguaggi ben noti sonoC C++ Java Visual Basic PHP C# Python Objective C
questi linguaggiassomigliano ai linguaggi naturali (utilizzano costrutti facilmente comprensibiliconsentono di programmare in maniera sempliceusano istruzioni che sono troppo complicate per le CPU
![Page 36: INTRODUZIONE ALLA PROGRAMMAZIONE - cs.unibo.itlaneve/html/lez0bis-INTRO.pdf · linguaggi di programmazione di alto linguaggi ben noti sono CC++ Java Visual Basic PHP C# Python Objective](https://reader030.vdocumenti.com/reader030/viewer/2022020416/5c68b7f709d3f263648bf424/html5/thumbnails/36.jpg)
12
linguaggi di programmazione di alto linguaggi ben noti sonoC C++ Java Visual Basic PHP C# Python Objective C
questi linguaggiassomigliano ai linguaggi naturali (utilizzano costrutti facilmente comprensibiliconsentono di programmare in maniera sempliceusano istruzioni che sono troppo complicate per le CPUi programmi devono essere tradotti in sequenze di 0 e di 1 che la CPU può eseguire
![Page 37: INTRODUZIONE ALLA PROGRAMMAZIONE - cs.unibo.itlaneve/html/lez0bis-INTRO.pdf · linguaggi di programmazione di alto linguaggi ben noti sono CC++ Java Visual Basic PHP C# Python Objective](https://reader030.vdocumenti.com/reader030/viewer/2022020416/5c68b7f709d3f263648bf424/html5/thumbnails/37.jpg)
13
linguaggi di programmazione di basso livello
![Page 38: INTRODUZIONE ALLA PROGRAMMAZIONE - cs.unibo.itlaneve/html/lez0bis-INTRO.pdf · linguaggi di programmazione di alto linguaggi ben noti sono CC++ Java Visual Basic PHP C# Python Objective](https://reader030.vdocumenti.com/reader030/viewer/2022020416/5c68b7f709d3f263648bf424/html5/thumbnails/38.jpg)
13
linguaggi di programmazione di basso livellosono linguaggi per programmare in maniera “facilmente comprensibile” al calcolatore (linguaggi assembler)
![Page 39: INTRODUZIONE ALLA PROGRAMMAZIONE - cs.unibo.itlaneve/html/lez0bis-INTRO.pdf · linguaggi di programmazione di alto linguaggi ben noti sono CC++ Java Visual Basic PHP C# Python Objective](https://reader030.vdocumenti.com/reader030/viewer/2022020416/5c68b7f709d3f263648bf424/html5/thumbnails/39.jpg)
13
linguaggi di programmazione di basso livellosono linguaggi per programmare in maniera “facilmente comprensibile” al calcolatore (linguaggi assembler)ADD X Y Z
significa: somma il valore nella locazione X al valore nella locazione Y e memorizza il risultato nella locazione Z
![Page 40: INTRODUZIONE ALLA PROGRAMMAZIONE - cs.unibo.itlaneve/html/lez0bis-INTRO.pdf · linguaggi di programmazione di alto linguaggi ben noti sono CC++ Java Visual Basic PHP C# Python Objective](https://reader030.vdocumenti.com/reader030/viewer/2022020416/5c68b7f709d3f263648bf424/html5/thumbnails/40.jpg)
13
linguaggi di programmazione di basso livellosono linguaggi per programmare in maniera “facilmente comprensibile” al calcolatore (linguaggi assembler)ADD X Y Z
significa: somma il valore nella locazione X al valore nella locazione Y e memorizza il risultato nella locazione Z• il codice dei linguaggi assembler deve essere tradotto in codice
macchina — sequenze di 0 e 1esempio: 0110 1001 1010 1011
![Page 41: INTRODUZIONE ALLA PROGRAMMAZIONE - cs.unibo.itlaneve/html/lez0bis-INTRO.pdf · linguaggi di programmazione di alto linguaggi ben noti sono CC++ Java Visual Basic PHP C# Python Objective](https://reader030.vdocumenti.com/reader030/viewer/2022020416/5c68b7f709d3f263648bf424/html5/thumbnails/41.jpg)
13
linguaggi di programmazione di basso livellosono linguaggi per programmare in maniera “facilmente comprensibile” al calcolatore (linguaggi assembler)ADD X Y Z
significa: somma il valore nella locazione X al valore nella locazione Y e memorizza il risultato nella locazione Z• il codice dei linguaggi assembler deve essere tradotto in codice
macchina — sequenze di 0 e 1esempio: 0110 1001 1010 1011
• le CPU eseguono SOLAMENTE codice macchina
![Page 42: INTRODUZIONE ALLA PROGRAMMAZIONE - cs.unibo.itlaneve/html/lez0bis-INTRO.pdf · linguaggi di programmazione di alto linguaggi ben noti sono CC++ Java Visual Basic PHP C# Python Objective](https://reader030.vdocumenti.com/reader030/viewer/2022020416/5c68b7f709d3f263648bf424/html5/thumbnails/42.jpg)
14
i compilatori e i linker
![Page 43: INTRODUZIONE ALLA PROGRAMMAZIONE - cs.unibo.itlaneve/html/lez0bis-INTRO.pdf · linguaggi di programmazione di alto linguaggi ben noti sono CC++ Java Visual Basic PHP C# Python Objective](https://reader030.vdocumenti.com/reader030/viewer/2022020416/5c68b7f709d3f263648bf424/html5/thumbnails/43.jpg)
14
i compilatori e i linkeri compilatori traducono programmi in linguaggi ad alto livello in programmi in codice macchina
![Page 44: INTRODUZIONE ALLA PROGRAMMAZIONE - cs.unibo.itlaneve/html/lez0bis-INTRO.pdf · linguaggi di programmazione di alto linguaggi ben noti sono CC++ Java Visual Basic PHP C# Python Objective](https://reader030.vdocumenti.com/reader030/viewer/2022020416/5c68b7f709d3f263648bf424/html5/thumbnails/44.jpg)
14
i compilatori e i linkeri compilatori traducono programmi in linguaggi ad alto livello in programmi in codice macchina
source code: è il codice del linguaggio ad alto livello
![Page 45: INTRODUZIONE ALLA PROGRAMMAZIONE - cs.unibo.itlaneve/html/lez0bis-INTRO.pdf · linguaggi di programmazione di alto linguaggi ben noti sono CC++ Java Visual Basic PHP C# Python Objective](https://reader030.vdocumenti.com/reader030/viewer/2022020416/5c68b7f709d3f263648bf424/html5/thumbnails/45.jpg)
14
i compilatori e i linkeri compilatori traducono programmi in linguaggi ad alto livello in programmi in codice macchina
source code: è il codice del linguaggio ad alto livelloobject code: è il codice in linguaggio macchina
![Page 46: INTRODUZIONE ALLA PROGRAMMAZIONE - cs.unibo.itlaneve/html/lez0bis-INTRO.pdf · linguaggi di programmazione di alto linguaggi ben noti sono CC++ Java Visual Basic PHP C# Python Objective](https://reader030.vdocumenti.com/reader030/viewer/2022020416/5c68b7f709d3f263648bf424/html5/thumbnails/46.jpg)
14
i compilatori e i linkeri compilatori traducono programmi in linguaggi ad alto livello in programmi in codice macchina
source code: è il codice del linguaggio ad alto livelloobject code: è il codice in linguaggio macchina
alcuni programmi che usiamo sono già tradotti in codice oggetto
• funzioni di libreria come le funzioni di input e output
![Page 47: INTRODUZIONE ALLA PROGRAMMAZIONE - cs.unibo.itlaneve/html/lez0bis-INTRO.pdf · linguaggi di programmazione di alto linguaggi ben noti sono CC++ Java Visual Basic PHP C# Python Objective](https://reader030.vdocumenti.com/reader030/viewer/2022020416/5c68b7f709d3f263648bf424/html5/thumbnails/47.jpg)
14
i compilatori e i linkeri compilatori traducono programmi in linguaggi ad alto livello in programmi in codice macchina
source code: è il codice del linguaggio ad alto livelloobject code: è il codice in linguaggio macchina
alcuni programmi che usiamo sono già tradotti in codice oggetto
• funzioni di libreria come le funzioni di input e output
il linker combina ✓ il codice oggetto del programma che noi scriviamo✓ il codice oggetto pre-compilato delle funzioni di libreria
![Page 48: INTRODUZIONE ALLA PROGRAMMAZIONE - cs.unibo.itlaneve/html/lez0bis-INTRO.pdf · linguaggi di programmazione di alto linguaggi ben noti sono CC++ Java Visual Basic PHP C# Python Objective](https://reader030.vdocumenti.com/reader030/viewer/2022020416/5c68b7f709d3f263648bf424/html5/thumbnails/48.jpg)
15
compilazione ed esecuzione di un programma C++
![Page 49: INTRODUZIONE ALLA PROGRAMMAZIONE - cs.unibo.itlaneve/html/lez0bis-INTRO.pdf · linguaggi di programmazione di alto linguaggi ben noti sono CC++ Java Visual Basic PHP C# Python Objective](https://reader030.vdocumenti.com/reader030/viewer/2022020416/5c68b7f709d3f263648bf424/html5/thumbnails/49.jpg)
15
compilazione ed esecuzione di un programma C++programma C++
![Page 50: INTRODUZIONE ALLA PROGRAMMAZIONE - cs.unibo.itlaneve/html/lez0bis-INTRO.pdf · linguaggi di programmazione di alto linguaggi ben noti sono CC++ Java Visual Basic PHP C# Python Objective](https://reader030.vdocumenti.com/reader030/viewer/2022020416/5c68b7f709d3f263648bf424/html5/thumbnails/50.jpg)
15
compilazione ed esecuzione di un programma C++programma C++ dati per programma C++
![Page 51: INTRODUZIONE ALLA PROGRAMMAZIONE - cs.unibo.itlaneve/html/lez0bis-INTRO.pdf · linguaggi di programmazione di alto linguaggi ben noti sono CC++ Java Visual Basic PHP C# Python Objective](https://reader030.vdocumenti.com/reader030/viewer/2022020416/5c68b7f709d3f263648bf424/html5/thumbnails/51.jpg)
15
compilazione ed esecuzione di un programma C++programma C++ dati per programma C++
![Page 52: INTRODUZIONE ALLA PROGRAMMAZIONE - cs.unibo.itlaneve/html/lez0bis-INTRO.pdf · linguaggi di programmazione di alto linguaggi ben noti sono CC++ Java Visual Basic PHP C# Python Objective](https://reader030.vdocumenti.com/reader030/viewer/2022020416/5c68b7f709d3f263648bf424/html5/thumbnails/52.jpg)
15
compilazione ed esecuzione di un programma C++programma C++ dati per programma C++
computer
compilatore
![Page 53: INTRODUZIONE ALLA PROGRAMMAZIONE - cs.unibo.itlaneve/html/lez0bis-INTRO.pdf · linguaggi di programmazione di alto linguaggi ben noti sono CC++ Java Visual Basic PHP C# Python Objective](https://reader030.vdocumenti.com/reader030/viewer/2022020416/5c68b7f709d3f263648bf424/html5/thumbnails/53.jpg)
15
compilazione ed esecuzione di un programma C++programma C++ dati per programma C++
computer
compilatore
codice oggetto per programma C++
![Page 54: INTRODUZIONE ALLA PROGRAMMAZIONE - cs.unibo.itlaneve/html/lez0bis-INTRO.pdf · linguaggi di programmazione di alto linguaggi ben noti sono CC++ Java Visual Basic PHP C# Python Objective](https://reader030.vdocumenti.com/reader030/viewer/2022020416/5c68b7f709d3f263648bf424/html5/thumbnails/54.jpg)
15
compilazione ed esecuzione di un programma C++programma C++ dati per programma C++
computer
compilatore
codice oggetto per programma C++
codice oggetto per funzioni di libreria
![Page 55: INTRODUZIONE ALLA PROGRAMMAZIONE - cs.unibo.itlaneve/html/lez0bis-INTRO.pdf · linguaggi di programmazione di alto linguaggi ben noti sono CC++ Java Visual Basic PHP C# Python Objective](https://reader030.vdocumenti.com/reader030/viewer/2022020416/5c68b7f709d3f263648bf424/html5/thumbnails/55.jpg)
15
compilazione ed esecuzione di un programma C++programma C++ dati per programma C++
computer
compilatore
codice oggetto per programma C++
codice oggetto per funzioni di libreria
linker
![Page 56: INTRODUZIONE ALLA PROGRAMMAZIONE - cs.unibo.itlaneve/html/lez0bis-INTRO.pdf · linguaggi di programmazione di alto linguaggi ben noti sono CC++ Java Visual Basic PHP C# Python Objective](https://reader030.vdocumenti.com/reader030/viewer/2022020416/5c68b7f709d3f263648bf424/html5/thumbnails/56.jpg)
15
compilazione ed esecuzione di un programma C++programma C++ dati per programma C++
computer
compilatore
codice oggetto per programma C++
codice oggetto per funzioni di libreria
linker computer
![Page 57: INTRODUZIONE ALLA PROGRAMMAZIONE - cs.unibo.itlaneve/html/lez0bis-INTRO.pdf · linguaggi di programmazione di alto linguaggi ben noti sono CC++ Java Visual Basic PHP C# Python Objective](https://reader030.vdocumenti.com/reader030/viewer/2022020416/5c68b7f709d3f263648bf424/html5/thumbnails/57.jpg)
15
compilazione ed esecuzione di un programma C++programma C++ dati per programma C++
computer
compilatore
codice oggetto per programma C++
codice oggetto per funzioni di libreria
linker
codice macchinaeseguibile (.exe)
computer
![Page 58: INTRODUZIONE ALLA PROGRAMMAZIONE - cs.unibo.itlaneve/html/lez0bis-INTRO.pdf · linguaggi di programmazione di alto linguaggi ben noti sono CC++ Java Visual Basic PHP C# Python Objective](https://reader030.vdocumenti.com/reader030/viewer/2022020416/5c68b7f709d3f263648bf424/html5/thumbnails/58.jpg)
15
compilazione ed esecuzione di un programma C++programma C++ dati per programma C++
computer
compilatore
codice oggetto per programma C++
codice oggetto per funzioni di libreria
linker
computer
codice macchinaeseguibile (.exe)
computer
![Page 59: INTRODUZIONE ALLA PROGRAMMAZIONE - cs.unibo.itlaneve/html/lez0bis-INTRO.pdf · linguaggi di programmazione di alto linguaggi ben noti sono CC++ Java Visual Basic PHP C# Python Objective](https://reader030.vdocumenti.com/reader030/viewer/2022020416/5c68b7f709d3f263648bf424/html5/thumbnails/59.jpg)
15
compilazione ed esecuzione di un programma C++programma C++ dati per programma C++
computer
compilatore
codice oggetto per programma C++
codice oggetto per funzioni di libreria
linker
computerOUTPUT
codice macchinaeseguibile (.exe)
computer
![Page 60: INTRODUZIONE ALLA PROGRAMMAZIONE - cs.unibo.itlaneve/html/lez0bis-INTRO.pdf · linguaggi di programmazione di alto linguaggi ben noti sono CC++ Java Visual Basic PHP C# Python Objective](https://reader030.vdocumenti.com/reader030/viewer/2022020416/5c68b7f709d3f263648bf424/html5/thumbnails/60.jpg)
algoritmi e programmi
![Page 61: INTRODUZIONE ALLA PROGRAMMAZIONE - cs.unibo.itlaneve/html/lez0bis-INTRO.pdf · linguaggi di programmazione di alto linguaggi ben noti sono CC++ Java Visual Basic PHP C# Python Objective](https://reader030.vdocumenti.com/reader030/viewer/2022020416/5c68b7f709d3f263648bf424/html5/thumbnails/61.jpg)
algoritmi e programmiun algoritmo è una sequenza di istruzioni che risolve un dato problema
![Page 62: INTRODUZIONE ALLA PROGRAMMAZIONE - cs.unibo.itlaneve/html/lez0bis-INTRO.pdf · linguaggi di programmazione di alto linguaggi ben noti sono CC++ Java Visual Basic PHP C# Python Objective](https://reader030.vdocumenti.com/reader030/viewer/2022020416/5c68b7f709d3f263648bf424/html5/thumbnails/62.jpg)
algoritmi e programmiun algoritmo è una sequenza di istruzioni che risolve un dato problema un programma è un algoritmo espresso in un linguaggio di programmazione
![Page 63: INTRODUZIONE ALLA PROGRAMMAZIONE - cs.unibo.itlaneve/html/lez0bis-INTRO.pdf · linguaggi di programmazione di alto linguaggi ben noti sono CC++ Java Visual Basic PHP C# Python Objective](https://reader030.vdocumenti.com/reader030/viewer/2022020416/5c68b7f709d3f263648bf424/html5/thumbnails/63.jpg)
algoritmi e programmiun algoritmo è una sequenza di istruzioni che risolve un dato problema un programma è un algoritmo espresso in un linguaggio di programmazione
la programmazione è un processo creativo che consta di due fasi
![Page 64: INTRODUZIONE ALLA PROGRAMMAZIONE - cs.unibo.itlaneve/html/lez0bis-INTRO.pdf · linguaggi di programmazione di alto linguaggi ben noti sono CC++ Java Visual Basic PHP C# Python Objective](https://reader030.vdocumenti.com/reader030/viewer/2022020416/5c68b7f709d3f263648bf424/html5/thumbnails/64.jpg)
algoritmi e programmiun algoritmo è una sequenza di istruzioni che risolve un dato problema un programma è un algoritmo espresso in un linguaggio di programmazione
la programmazione è un processo creativo che consta di due fasi
• problem solving: si individua un algoritmo che risolve un dato problema
![Page 65: INTRODUZIONE ALLA PROGRAMMAZIONE - cs.unibo.itlaneve/html/lez0bis-INTRO.pdf · linguaggi di programmazione di alto linguaggi ben noti sono CC++ Java Visual Basic PHP C# Python Objective](https://reader030.vdocumenti.com/reader030/viewer/2022020416/5c68b7f709d3f263648bf424/html5/thumbnails/65.jpg)
algoritmi e programmiun algoritmo è una sequenza di istruzioni che risolve un dato problema un programma è un algoritmo espresso in un linguaggio di programmazione
la programmazione è un processo creativo che consta di due fasi
• problem solving: si individua un algoritmo che risolve un dato problema
• implementazione: si traduce l’algoritmo in un programma
![Page 66: INTRODUZIONE ALLA PROGRAMMAZIONE - cs.unibo.itlaneve/html/lez0bis-INTRO.pdf · linguaggi di programmazione di alto linguaggi ben noti sono CC++ Java Visual Basic PHP C# Python Objective](https://reader030.vdocumenti.com/reader030/viewer/2022020416/5c68b7f709d3f263648bf424/html5/thumbnails/66.jpg)
algoritmi e programmiun algoritmo è una sequenza di istruzioni che risolve un dato problema un programma è un algoritmo espresso in un linguaggio di programmazione
la programmazione è un processo creativo che consta di due fasi
• problem solving: si individua un algoritmo che risolve un dato problema
• implementazione: si traduce l’algoritmo in un programma
OSSERVAZIONE: non ci sono regole per “creare”, ma solo indicazioni Knuth: The art of computer programming
![Page 67: INTRODUZIONE ALLA PROGRAMMAZIONE - cs.unibo.itlaneve/html/lez0bis-INTRO.pdf · linguaggi di programmazione di alto linguaggi ben noti sono CC++ Java Visual Basic PHP C# Python Objective](https://reader030.vdocumenti.com/reader030/viewer/2022020416/5c68b7f709d3f263648bf424/html5/thumbnails/67.jpg)
17
fase di problem solving
![Page 68: INTRODUZIONE ALLA PROGRAMMAZIONE - cs.unibo.itlaneve/html/lez0bis-INTRO.pdf · linguaggi di programmazione di alto linguaggi ben noti sono CC++ Java Visual Basic PHP C# Python Objective](https://reader030.vdocumenti.com/reader030/viewer/2022020416/5c68b7f709d3f263648bf424/html5/thumbnails/68.jpg)
17
fase di problem solving occorre che il processo sottostante al problema sia completamente specificato
![Page 69: INTRODUZIONE ALLA PROGRAMMAZIONE - cs.unibo.itlaneve/html/lez0bis-INTRO.pdf · linguaggi di programmazione di alto linguaggi ben noti sono CC++ Java Visual Basic PHP C# Python Objective](https://reader030.vdocumenti.com/reader030/viewer/2022020416/5c68b7f709d3f263648bf424/html5/thumbnails/69.jpg)
17
fase di problem solving occorre che il processo sottostante al problema sia completamente specificato
quale è l’input?cosa contiene l’output?come sono organizzati l’input e l’output?
![Page 70: INTRODUZIONE ALLA PROGRAMMAZIONE - cs.unibo.itlaneve/html/lez0bis-INTRO.pdf · linguaggi di programmazione di alto linguaggi ben noti sono CC++ Java Visual Basic PHP C# Python Objective](https://reader030.vdocumenti.com/reader030/viewer/2022020416/5c68b7f709d3f263648bf424/html5/thumbnails/70.jpg)
17
fase di problem solving occorre che il processo sottostante al problema sia completamente specificato
quale è l’input?cosa contiene l’output?come sono organizzati l’input e l’output?
definire un algoritmo prima dell’ implementazione
![Page 71: INTRODUZIONE ALLA PROGRAMMAZIONE - cs.unibo.itlaneve/html/lez0bis-INTRO.pdf · linguaggi di programmazione di alto linguaggi ben noti sono CC++ Java Visual Basic PHP C# Python Objective](https://reader030.vdocumenti.com/reader030/viewer/2022020416/5c68b7f709d3f263648bf424/html5/thumbnails/71.jpg)
17
fase di problem solving occorre che il processo sottostante al problema sia completamente specificato
quale è l’input?cosa contiene l’output?come sono organizzati l’input e l’output?
definire un algoritmo prima dell’ implementazione
l’esperienza dice che ciò ci fa guadagnare tempoè più semplice da scrivereè più facile verificarne la correttezza
![Page 72: INTRODUZIONE ALLA PROGRAMMAZIONE - cs.unibo.itlaneve/html/lez0bis-INTRO.pdf · linguaggi di programmazione di alto linguaggi ben noti sono CC++ Java Visual Basic PHP C# Python Objective](https://reader030.vdocumenti.com/reader030/viewer/2022020416/5c68b7f709d3f263648bf424/html5/thumbnails/72.jpg)
18
fase di implementazione
![Page 73: INTRODUZIONE ALLA PROGRAMMAZIONE - cs.unibo.itlaneve/html/lez0bis-INTRO.pdf · linguaggi di programmazione di alto linguaggi ben noti sono CC++ Java Visual Basic PHP C# Python Objective](https://reader030.vdocumenti.com/reader030/viewer/2022020416/5c68b7f709d3f263648bf424/html5/thumbnails/73.jpg)
18
fase di implementazione1. tradurre un algoritmo in un linguaggio di
programmazionediventa più semplice quando si diventa esperti del linguaggio
![Page 74: INTRODUZIONE ALLA PROGRAMMAZIONE - cs.unibo.itlaneve/html/lez0bis-INTRO.pdf · linguaggi di programmazione di alto linguaggi ben noti sono CC++ Java Visual Basic PHP C# Python Objective](https://reader030.vdocumenti.com/reader030/viewer/2022020416/5c68b7f709d3f263648bf424/html5/thumbnails/74.jpg)
18
fase di implementazione1. tradurre un algoritmo in un linguaggio di
programmazionediventa più semplice quando si diventa esperti del linguaggio
2. compilare il codice sorgentecontrollare e rimuovere gli errori segnalati dal compilatore
![Page 75: INTRODUZIONE ALLA PROGRAMMAZIONE - cs.unibo.itlaneve/html/lez0bis-INTRO.pdf · linguaggi di programmazione di alto linguaggi ben noti sono CC++ Java Visual Basic PHP C# Python Objective](https://reader030.vdocumenti.com/reader030/viewer/2022020416/5c68b7f709d3f263648bf424/html5/thumbnails/75.jpg)
18
fase di implementazione1. tradurre un algoritmo in un linguaggio di
programmazionediventa più semplice quando si diventa esperti del linguaggio
2. compilare il codice sorgentecontrollare e rimuovere gli errori segnalati dal compilatore
3. esegui il codice su alcuni casi di test verifica la correttezza dei risultati
![Page 76: INTRODUZIONE ALLA PROGRAMMAZIONE - cs.unibo.itlaneve/html/lez0bis-INTRO.pdf · linguaggi di programmazione di alto linguaggi ben noti sono CC++ Java Visual Basic PHP C# Python Objective](https://reader030.vdocumenti.com/reader030/viewer/2022020416/5c68b7f709d3f263648bf424/html5/thumbnails/76.jpg)
18
fase di implementazione1. tradurre un algoritmo in un linguaggio di
programmazionediventa più semplice quando si diventa esperti del linguaggio
2. compilare il codice sorgentecontrollare e rimuovere gli errori segnalati dal compilatore
3. esegui il codice su alcuni casi di test verifica la correttezza dei risultati
4. i risultati possono rivelare errori nell’algoritmo o nel programma (bugs) e quindi causare modifiche
![Page 77: INTRODUZIONE ALLA PROGRAMMAZIONE - cs.unibo.itlaneve/html/lez0bis-INTRO.pdf · linguaggi di programmazione di alto linguaggi ben noti sono CC++ Java Visual Basic PHP C# Python Objective](https://reader030.vdocumenti.com/reader030/viewer/2022020416/5c68b7f709d3f263648bf424/html5/thumbnails/77.jpg)
19
programmazione object-oriented
![Page 78: INTRODUZIONE ALLA PROGRAMMAZIONE - cs.unibo.itlaneve/html/lez0bis-INTRO.pdf · linguaggi di programmazione di alto linguaggi ben noti sono CC++ Java Visual Basic PHP C# Python Objective](https://reader030.vdocumenti.com/reader030/viewer/2022020416/5c68b7f709d3f263648bf424/html5/thumbnails/78.jpg)
19
programmazione object-oriented
abbreviata in OOP
![Page 79: INTRODUZIONE ALLA PROGRAMMAZIONE - cs.unibo.itlaneve/html/lez0bis-INTRO.pdf · linguaggi di programmazione di alto linguaggi ben noti sono CC++ Java Visual Basic PHP C# Python Objective](https://reader030.vdocumenti.com/reader030/viewer/2022020416/5c68b7f709d3f263648bf424/html5/thumbnails/79.jpg)
19
programmazione object-oriented
abbreviata in OOP
è usata in molti linguaggi di programmazione moderni
![Page 80: INTRODUZIONE ALLA PROGRAMMAZIONE - cs.unibo.itlaneve/html/lez0bis-INTRO.pdf · linguaggi di programmazione di alto linguaggi ben noti sono CC++ Java Visual Basic PHP C# Python Objective](https://reader030.vdocumenti.com/reader030/viewer/2022020416/5c68b7f709d3f263648bf424/html5/thumbnails/80.jpg)
19
programmazione object-oriented
abbreviata in OOP
è usata in molti linguaggi di programmazione moderniun programma è visto come un insieme di oggetti che contengono valori e le funzioni che possono modificare tali valori
![Page 81: INTRODUZIONE ALLA PROGRAMMAZIONE - cs.unibo.itlaneve/html/lez0bis-INTRO.pdf · linguaggi di programmazione di alto linguaggi ben noti sono CC++ Java Visual Basic PHP C# Python Objective](https://reader030.vdocumenti.com/reader030/viewer/2022020416/5c68b7f709d3f263648bf424/html5/thumbnails/81.jpg)
19
programmazione object-oriented
abbreviata in OOP
è usata in molti linguaggi di programmazione moderniun programma è visto come un insieme di oggetti che contengono valori e le funzioni che possono modificare tali valori
progettare un programma significadefinire gli oggetti e gli algoritmi delle funzioni corrispondenti
![Page 82: INTRODUZIONE ALLA PROGRAMMAZIONE - cs.unibo.itlaneve/html/lez0bis-INTRO.pdf · linguaggi di programmazione di alto linguaggi ben noti sono CC++ Java Visual Basic PHP C# Python Objective](https://reader030.vdocumenti.com/reader030/viewer/2022020416/5c68b7f709d3f263648bf424/html5/thumbnails/82.jpg)
20
caratteristiche di OOP
![Page 83: INTRODUZIONE ALLA PROGRAMMAZIONE - cs.unibo.itlaneve/html/lez0bis-INTRO.pdf · linguaggi di programmazione di alto linguaggi ben noti sono CC++ Java Visual Basic PHP C# Python Objective](https://reader030.vdocumenti.com/reader030/viewer/2022020416/5c68b7f709d3f263648bf424/html5/thumbnails/83.jpg)
20
caratteristiche di OOPencapsulation
ogni oggetto contiene i propri dati e le funzioni che possono accedere/modificare i datinessun’altra funzione può accedere (information hiding)
![Page 84: INTRODUZIONE ALLA PROGRAMMAZIONE - cs.unibo.itlaneve/html/lez0bis-INTRO.pdf · linguaggi di programmazione di alto linguaggi ben noti sono CC++ Java Visual Basic PHP C# Python Objective](https://reader030.vdocumenti.com/reader030/viewer/2022020416/5c68b7f709d3f263648bf424/html5/thumbnails/84.jpg)
20
caratteristiche di OOPencapsulation
ogni oggetto contiene i propri dati e le funzioni che possono accedere/modificare i datinessun’altra funzione può accedere (information hiding)
inheritance (ereditarietà)il codice può essere riutilizzatoun oggetto può essere definito utilizzando codice di altri oggetti (con modifiche/con aggiunte di nuove funzioni)
![Page 85: INTRODUZIONE ALLA PROGRAMMAZIONE - cs.unibo.itlaneve/html/lez0bis-INTRO.pdf · linguaggi di programmazione di alto linguaggi ben noti sono CC++ Java Visual Basic PHP C# Python Objective](https://reader030.vdocumenti.com/reader030/viewer/2022020416/5c68b7f709d3f263648bf424/html5/thumbnails/85.jpg)
20
caratteristiche di OOPencapsulation
ogni oggetto contiene i propri dati e le funzioni che possono accedere/modificare i datinessun’altra funzione può accedere (information hiding)
inheritance (ereditarietà)il codice può essere riutilizzatoun oggetto può essere definito utilizzando codice di altri oggetti (con modifiche/con aggiunte di nuove funzioni)
polimorfismoun nome di funzione può avere diversi significati a seconda del contesto dove è definito
![Page 86: INTRODUZIONE ALLA PROGRAMMAZIONE - cs.unibo.itlaneve/html/lez0bis-INTRO.pdf · linguaggi di programmazione di alto linguaggi ben noti sono CC++ Java Visual Basic PHP C# Python Objective](https://reader030.vdocumenti.com/reader030/viewer/2022020416/5c68b7f709d3f263648bf424/html5/thumbnails/86.jpg)
21
introduzione a C++
![Page 87: INTRODUZIONE ALLA PROGRAMMAZIONE - cs.unibo.itlaneve/html/lez0bis-INTRO.pdf · linguaggi di programmazione di alto linguaggi ben noti sono CC++ Java Visual Basic PHP C# Python Objective](https://reader030.vdocumenti.com/reader030/viewer/2022020416/5c68b7f709d3f263648bf424/html5/thumbnails/87.jpg)
21
introduzione a C++da dove salta fuori C++ ?
![Page 88: INTRODUZIONE ALLA PROGRAMMAZIONE - cs.unibo.itlaneve/html/lez0bis-INTRO.pdf · linguaggi di programmazione di alto linguaggi ben noti sono CC++ Java Visual Basic PHP C# Python Objective](https://reader030.vdocumenti.com/reader030/viewer/2022020416/5c68b7f709d3f263648bf424/html5/thumbnails/88.jpg)
21
introduzione a C++da dove salta fuori C++ ?• è una estensione di C con gli oggetti sviluppata da Bjarne
Stroustrup ai Bell Labs nel 1983
![Page 89: INTRODUZIONE ALLA PROGRAMMAZIONE - cs.unibo.itlaneve/html/lez0bis-INTRO.pdf · linguaggi di programmazione di alto linguaggi ben noti sono CC++ Java Visual Basic PHP C# Python Objective](https://reader030.vdocumenti.com/reader030/viewer/2022020416/5c68b7f709d3f263648bf424/html5/thumbnails/89.jpg)
21
introduzione a C++da dove salta fuori C++ ?• è una estensione di C con gli oggetti sviluppata da Bjarne
Stroustrup ai Bell Labs nel 1983• C, definito da Dennis Ritchie ai Bell Labs nel 1972, è (stato)
usato per manutenere sistemi UNIX e per scrivere molte applicazioni commerciali
![Page 90: INTRODUZIONE ALLA PROGRAMMAZIONE - cs.unibo.itlaneve/html/lez0bis-INTRO.pdf · linguaggi di programmazione di alto linguaggi ben noti sono CC++ Java Visual Basic PHP C# Python Objective](https://reader030.vdocumenti.com/reader030/viewer/2022020416/5c68b7f709d3f263648bf424/html5/thumbnails/90.jpg)
21
introduzione a C++da dove salta fuori C++ ?• è una estensione di C con gli oggetti sviluppata da Bjarne
Stroustrup ai Bell Labs nel 1983• C, definito da Dennis Ritchie ai Bell Labs nel 1972, è (stato)
usato per manutenere sistemi UNIX e per scrivere molte applicazioni commerciali
• C deriva dal linguaggio B (Ken Thompson, Bell Labs,1969)
![Page 91: INTRODUZIONE ALLA PROGRAMMAZIONE - cs.unibo.itlaneve/html/lez0bis-INTRO.pdf · linguaggi di programmazione di alto linguaggi ben noti sono CC++ Java Visual Basic PHP C# Python Objective](https://reader030.vdocumenti.com/reader030/viewer/2022020416/5c68b7f709d3f263648bf424/html5/thumbnails/91.jpg)
21
introduzione a C++da dove salta fuori C++ ?• è una estensione di C con gli oggetti sviluppata da Bjarne
Stroustrup ai Bell Labs nel 1983• C, definito da Dennis Ritchie ai Bell Labs nel 1972, è (stato)
usato per manutenere sistemi UNIX e per scrivere molte applicazioni commerciali
• C deriva dal linguaggio B (Ken Thompson, Bell Labs,1969)• B deriva dal linguaggio BCPL (Basic Combined Programming
Language, Martin Richards dell'Università di Cambridge, 1966)
![Page 92: INTRODUZIONE ALLA PROGRAMMAZIONE - cs.unibo.itlaneve/html/lez0bis-INTRO.pdf · linguaggi di programmazione di alto linguaggi ben noti sono CC++ Java Visual Basic PHP C# Python Objective](https://reader030.vdocumenti.com/reader030/viewer/2022020416/5c68b7f709d3f263648bf424/html5/thumbnails/92.jpg)
21
introduzione a C++da dove salta fuori C++ ?• è una estensione di C con gli oggetti sviluppata da Bjarne
Stroustrup ai Bell Labs nel 1983• C, definito da Dennis Ritchie ai Bell Labs nel 1972, è (stato)
usato per manutenere sistemi UNIX e per scrivere molte applicazioni commerciali
• C deriva dal linguaggio B (Ken Thompson, Bell Labs,1969)• B deriva dal linguaggio BCPL (Basic Combined Programming
Language, Martin Richards dell'Università di Cambridge, 1966)
perchè il “++” ?
![Page 93: INTRODUZIONE ALLA PROGRAMMAZIONE - cs.unibo.itlaneve/html/lez0bis-INTRO.pdf · linguaggi di programmazione di alto linguaggi ben noti sono CC++ Java Visual Basic PHP C# Python Objective](https://reader030.vdocumenti.com/reader030/viewer/2022020416/5c68b7f709d3f263648bf424/html5/thumbnails/93.jpg)
21
introduzione a C++da dove salta fuori C++ ?• è una estensione di C con gli oggetti sviluppata da Bjarne
Stroustrup ai Bell Labs nel 1983• C, definito da Dennis Ritchie ai Bell Labs nel 1972, è (stato)
usato per manutenere sistemi UNIX e per scrivere molte applicazioni commerciali
• C deriva dal linguaggio B (Ken Thompson, Bell Labs,1969)• B deriva dal linguaggio BCPL (Basic Combined Programming
Language, Martin Richards dell'Università di Cambridge, 1966)
perchè il “++” ?• è una abbreviazione molto utilizzata in C++
![Page 94: INTRODUZIONE ALLA PROGRAMMAZIONE - cs.unibo.itlaneve/html/lez0bis-INTRO.pdf · linguaggi di programmazione di alto linguaggi ben noti sono CC++ Java Visual Basic PHP C# Python Objective](https://reader030.vdocumenti.com/reader030/viewer/2022020416/5c68b7f709d3f263648bf424/html5/thumbnails/94.jpg)
22
il primo programma: hello_world
![Page 95: INTRODUZIONE ALLA PROGRAMMAZIONE - cs.unibo.itlaneve/html/lez0bis-INTRO.pdf · linguaggi di programmazione di alto linguaggi ben noti sono CC++ Java Visual Basic PHP C# Python Objective](https://reader030.vdocumenti.com/reader030/viewer/2022020416/5c68b7f709d3f263648bf424/html5/thumbnails/95.jpg)
22
il primo programma: hello_world int main(){ // main() è dove inizia un
// programma C++
![Page 96: INTRODUZIONE ALLA PROGRAMMAZIONE - cs.unibo.itlaneve/html/lez0bis-INTRO.pdf · linguaggi di programmazione di alto linguaggi ben noti sono CC++ Java Visual Basic PHP C# Python Objective](https://reader030.vdocumenti.com/reader030/viewer/2022020416/5c68b7f709d3f263648bf424/html5/thumbnails/96.jpg)
22
il primo programma: hello_world int main(){ // main() è dove inizia un
// programma C++
cout << "Hello, world!\n"; // see_out: stampa sul video i 13 // caratteri Hello, world!// seguiti da un “vai a capo”
![Page 97: INTRODUZIONE ALLA PROGRAMMAZIONE - cs.unibo.itlaneve/html/lez0bis-INTRO.pdf · linguaggi di programmazione di alto linguaggi ben noti sono CC++ Java Visual Basic PHP C# Python Objective](https://reader030.vdocumenti.com/reader030/viewer/2022020416/5c68b7f709d3f263648bf424/html5/thumbnails/97.jpg)
22
il primo programma: hello_world int main(){ // main() è dove inizia un
// programma C++
cout << "Hello, world!\n"; // see_out: stampa sul video i 13 // caratteri Hello, world!// seguiti da un “vai a capo”
return(0) ; // ritorna un valore che indica// successo
![Page 98: INTRODUZIONE ALLA PROGRAMMAZIONE - cs.unibo.itlaneve/html/lez0bis-INTRO.pdf · linguaggi di programmazione di alto linguaggi ben noti sono CC++ Java Visual Basic PHP C# Python Objective](https://reader030.vdocumenti.com/reader030/viewer/2022020416/5c68b7f709d3f263648bf424/html5/thumbnails/98.jpg)
22
il primo programma: hello_world int main(){ // main() è dove inizia un
// programma C++
cout << "Hello, world!\n"; // see_out: stampa sul video i 13 // caratteri Hello, world!// seguiti da un “vai a capo”
return(0) ; // ritorna un valore che indica// successo
}
![Page 99: INTRODUZIONE ALLA PROGRAMMAZIONE - cs.unibo.itlaneve/html/lez0bis-INTRO.pdf · linguaggi di programmazione di alto linguaggi ben noti sono CC++ Java Visual Basic PHP C# Python Objective](https://reader030.vdocumenti.com/reader030/viewer/2022020416/5c68b7f709d3f263648bf424/html5/thumbnails/99.jpg)
22
il primo programma: hello_world int main(){ // main() è dove inizia un
// programma C++
cout << "Hello, world!\n"; // see_out: stampa sul video i 13 // caratteri Hello, world!// seguiti da un “vai a capo”
return(0) ; // ritorna un valore che indica// successo
}
osservazioni:
![Page 100: INTRODUZIONE ALLA PROGRAMMAZIONE - cs.unibo.itlaneve/html/lez0bis-INTRO.pdf · linguaggi di programmazione di alto linguaggi ben noti sono CC++ Java Visual Basic PHP C# Python Objective](https://reader030.vdocumenti.com/reader030/viewer/2022020416/5c68b7f709d3f263648bf424/html5/thumbnails/100.jpg)
22
il primo programma: hello_world int main(){ // main() è dove inizia un
// programma C++
cout << "Hello, world!\n"; // see_out: stampa sul video i 13 // caratteri Hello, world!// seguiti da un “vai a capo”
return(0) ; // ritorna un valore che indica// successo
}
osservazioni: i doppi apici delimitano una stringa \n è la notazione per il “vai a capo”
![Page 101: INTRODUZIONE ALLA PROGRAMMAZIONE - cs.unibo.itlaneve/html/lez0bis-INTRO.pdf · linguaggi di programmazione di alto linguaggi ben noti sono CC++ Java Visual Basic PHP C# Python Objective](https://reader030.vdocumenti.com/reader030/viewer/2022020416/5c68b7f709d3f263648bf424/html5/thumbnails/101.jpg)
22
il primo programma: hello_world int main(){ // main() è dove inizia un
// programma C++
cout << "Hello, world!\n"; // see_out: stampa sul video i 13 // caratteri Hello, world!// seguiti da un “vai a capo”
return(0) ; // ritorna un valore che indica// successo
}
osservazioni: i doppi apici delimitano una stringa \n è la notazione per il “vai a capo”notare i “;” che sono usati per terminare i comandi
![Page 102: INTRODUZIONE ALLA PROGRAMMAZIONE - cs.unibo.itlaneve/html/lez0bis-INTRO.pdf · linguaggi di programmazione di alto linguaggi ben noti sono CC++ Java Visual Basic PHP C# Python Objective](https://reader030.vdocumenti.com/reader030/viewer/2022020416/5c68b7f709d3f263648bf424/html5/thumbnails/102.jpg)
22
il primo programma: hello_world int main(){ // main() è dove inizia un
// programma C++
cout << "Hello, world!\n"; // see_out: stampa sul video i 13 // caratteri Hello, world!// seguiti da un “vai a capo”
return(0) ; // ritorna un valore che indica// successo
}
osservazioni: i doppi apici delimitano una stringa \n è la notazione per il “vai a capo”notare i “;” che sono usati per terminare i comandi le parentesi graffe servono per raggruppare comandi in blocchi
![Page 103: INTRODUZIONE ALLA PROGRAMMAZIONE - cs.unibo.itlaneve/html/lez0bis-INTRO.pdf · linguaggi di programmazione di alto linguaggi ben noti sono CC++ Java Visual Basic PHP C# Python Objective](https://reader030.vdocumenti.com/reader030/viewer/2022020416/5c68b7f709d3f263648bf424/html5/thumbnails/103.jpg)
22
il primo programma: hello_world int main(){ // main() è dove inizia un
// programma C++
cout << "Hello, world!\n"; // see_out: stampa sul video i 13 // caratteri Hello, world!// seguiti da un “vai a capo”
return(0) ; // ritorna un valore che indica// successo
}
osservazioni: i doppi apici delimitano una stringa \n è la notazione per il “vai a capo”notare i “;” che sono usati per terminare i comandi le parentesi graffe servono per raggruppare comandi in blocchimain è una funzione che non prende argomenti “( )” e ritorna un intero (per denotare successo o fallimento)
![Page 104: INTRODUZIONE ALLA PROGRAMMAZIONE - cs.unibo.itlaneve/html/lez0bis-INTRO.pdf · linguaggi di programmazione di alto linguaggi ben noti sono CC++ Java Visual Basic PHP C# Python Objective](https://reader030.vdocumenti.com/reader030/viewer/2022020416/5c68b7f709d3f263648bf424/html5/thumbnails/104.jpg)
23
il primo programma: hello_world completo
![Page 105: INTRODUZIONE ALLA PROGRAMMAZIONE - cs.unibo.itlaneve/html/lez0bis-INTRO.pdf · linguaggi di programmazione di alto linguaggi ben noti sono CC++ Java Visual Basic PHP C# Python Objective](https://reader030.vdocumenti.com/reader030/viewer/2022020416/5c68b7f709d3f263648bf424/html5/thumbnails/105.jpg)
23
il primo programma: hello_world completo
#include <iostream> // usa le librerie necessarie per input/output
![Page 106: INTRODUZIONE ALLA PROGRAMMAZIONE - cs.unibo.itlaneve/html/lez0bis-INTRO.pdf · linguaggi di programmazione di alto linguaggi ben noti sono CC++ Java Visual Basic PHP C# Python Objective](https://reader030.vdocumenti.com/reader030/viewer/2022020416/5c68b7f709d3f263648bf424/html5/thumbnails/106.jpg)
23
il primo programma: hello_world completo
#include <iostream> // usa le librerie necessarie per input/output
using namespace std; // nell’ultima versione dello standard C++, // i nomi (come cin e cout) sono // partizionati in namespaces. Questa // direttiva using dice che i nomi che usa // il programma sono definiti nel namespace // std (in questo caso l’iostream definisce // il significato di cout e cin in std)
![Page 107: INTRODUZIONE ALLA PROGRAMMAZIONE - cs.unibo.itlaneve/html/lez0bis-INTRO.pdf · linguaggi di programmazione di alto linguaggi ben noti sono CC++ Java Visual Basic PHP C# Python Objective](https://reader030.vdocumenti.com/reader030/viewer/2022020416/5c68b7f709d3f263648bf424/html5/thumbnails/107.jpg)
23
il primo programma: hello_world completo
#include <iostream> // usa le librerie necessarie per input/output
using namespace std; // nell’ultima versione dello standard C++, // i nomi (come cin e cout) sono // partizionati in namespaces. Questa // direttiva using dice che i nomi che usa // il programma sono definiti nel namespace // std (in questo caso l’iostream definisce // il significato di cout e cin in std)
int main(){ cout << "Hello, world!\n” ;return(0) ;
}
![Page 108: INTRODUZIONE ALLA PROGRAMMAZIONE - cs.unibo.itlaneve/html/lez0bis-INTRO.pdf · linguaggi di programmazione di alto linguaggi ben noti sono CC++ Java Visual Basic PHP C# Python Objective](https://reader030.vdocumenti.com/reader030/viewer/2022020416/5c68b7f709d3f263648bf424/html5/thumbnails/108.jpg)
24
esecuzione di hello_world
![Page 109: INTRODUZIONE ALLA PROGRAMMAZIONE - cs.unibo.itlaneve/html/lez0bis-INTRO.pdf · linguaggi di programmazione di alto linguaggi ben noti sono CC++ Java Visual Basic PHP C# Python Objective](https://reader030.vdocumenti.com/reader030/viewer/2022020416/5c68b7f709d3f263648bf424/html5/thumbnails/109.jpg)
24
esecuzione di hello_world
tre passi:
![Page 110: INTRODUZIONE ALLA PROGRAMMAZIONE - cs.unibo.itlaneve/html/lez0bis-INTRO.pdf · linguaggi di programmazione di alto linguaggi ben noti sono CC++ Java Visual Basic PHP C# Python Objective](https://reader030.vdocumenti.com/reader030/viewer/2022020416/5c68b7f709d3f263648bf424/html5/thumbnails/110.jpg)
24
esecuzione di hello_world
tre passi:1. il compilatore traduce le istruzioni eseguibili dal C++ al
linguaggio macchina
![Page 111: INTRODUZIONE ALLA PROGRAMMAZIONE - cs.unibo.itlaneve/html/lez0bis-INTRO.pdf · linguaggi di programmazione di alto linguaggi ben noti sono CC++ Java Visual Basic PHP C# Python Objective](https://reader030.vdocumenti.com/reader030/viewer/2022020416/5c68b7f709d3f263648bf424/html5/thumbnails/111.jpg)
24
esecuzione di hello_world
tre passi:1. il compilatore traduce le istruzioni eseguibili dal C++ al
linguaggio macchina2. il linker include la libreria iostream
![Page 112: INTRODUZIONE ALLA PROGRAMMAZIONE - cs.unibo.itlaneve/html/lez0bis-INTRO.pdf · linguaggi di programmazione di alto linguaggi ben noti sono CC++ Java Visual Basic PHP C# Python Objective](https://reader030.vdocumenti.com/reader030/viewer/2022020416/5c68b7f709d3f263648bf424/html5/thumbnails/112.jpg)
24
esecuzione di hello_world
tre passi:1. il compilatore traduce le istruzioni eseguibili dal C++ al
linguaggio macchina2. il linker include la libreria iostream3. il computer esegue la versione in linguaggio macchina delle
istruzioni
![Page 113: INTRODUZIONE ALLA PROGRAMMAZIONE - cs.unibo.itlaneve/html/lez0bis-INTRO.pdf · linguaggi di programmazione di alto linguaggi ben noti sono CC++ Java Visual Basic PHP C# Python Objective](https://reader030.vdocumenti.com/reader030/viewer/2022020416/5c68b7f709d3f263648bf424/html5/thumbnails/113.jpg)
24
esecuzione di hello_world
tre passi:1. il compilatore traduce le istruzioni eseguibili dal C++ al
linguaggio macchina2. il linker include la libreria iostream3. il computer esegue la versione in linguaggio macchina delle
istruzioniesempio di esecuzione
codice oggetto del programma hello_world
memoria prima dell’esecuzione
codice oggetto libreria iostream
![Page 114: INTRODUZIONE ALLA PROGRAMMAZIONE - cs.unibo.itlaneve/html/lez0bis-INTRO.pdf · linguaggi di programmazione di alto linguaggi ben noti sono CC++ Java Visual Basic PHP C# Python Objective](https://reader030.vdocumenti.com/reader030/viewer/2022020416/5c68b7f709d3f263648bf424/html5/thumbnails/114.jpg)
24
esecuzione di hello_world
tre passi:1. il compilatore traduce le istruzioni eseguibili dal C++ al
linguaggio macchina2. il linker include la libreria iostream3. il computer esegue la versione in linguaggio macchina delle
istruzioniesempio di esecuzione
codice oggetto del programma hello_world
memoria prima dell’esecuzione
codice oggetto libreria iostream
memoria dopo dell’esecuzione
> Hello, world!
output
![Page 115: INTRODUZIONE ALLA PROGRAMMAZIONE - cs.unibo.itlaneve/html/lez0bis-INTRO.pdf · linguaggi di programmazione di alto linguaggi ben noti sono CC++ Java Visual Basic PHP C# Python Objective](https://reader030.vdocumenti.com/reader030/viewer/2022020416/5c68b7f709d3f263648bf424/html5/thumbnails/115.jpg)
25
importanza di hello_world
![Page 116: INTRODUZIONE ALLA PROGRAMMAZIONE - cs.unibo.itlaneve/html/lez0bis-INTRO.pdf · linguaggi di programmazione di alto linguaggi ben noti sono CC++ Java Visual Basic PHP C# Python Objective](https://reader030.vdocumenti.com/reader030/viewer/2022020416/5c68b7f709d3f263648bf424/html5/thumbnails/116.jpg)
25
importanza di hello_world
hello_world è un programma molto importante:il suo obiettivo è di aiutare a familiarizzare con i tool– compilatore– ambiente di sviluppo (Eclipse)– ambiente di esecuzione
![Page 117: INTRODUZIONE ALLA PROGRAMMAZIONE - cs.unibo.itlaneve/html/lez0bis-INTRO.pdf · linguaggi di programmazione di alto linguaggi ben noti sono CC++ Java Visual Basic PHP C# Python Objective](https://reader030.vdocumenti.com/reader030/viewer/2022020416/5c68b7f709d3f263648bf424/html5/thumbnails/117.jpg)
25
importanza di hello_world
hello_world è un programma molto importante:il suo obiettivo è di aiutare a familiarizzare con i tool– compilatore– ambiente di sviluppo (Eclipse)– ambiente di esecuzione
(quando installerete Eclipse) scrivete il programma accuratamente– dopo aver visto cosa accade, provate a fare qualche errore e controllate le
risposte di Eclipse, ad esempio
• dimenticate il main()
• dimenticate di terminare la stringa Hello, world! con i doppi apici
• scrivete in maniera errata return
• dimenticate una parentesi graffa
• dimenticate un “;”, etc.
![Page 118: INTRODUZIONE ALLA PROGRAMMAZIONE - cs.unibo.itlaneve/html/lez0bis-INTRO.pdf · linguaggi di programmazione di alto linguaggi ben noti sono CC++ Java Visual Basic PHP C# Python Objective](https://reader030.vdocumenti.com/reader030/viewer/2022020416/5c68b7f709d3f263648bf424/html5/thumbnails/118.jpg)
26
testing e debugging
![Page 119: INTRODUZIONE ALLA PROGRAMMAZIONE - cs.unibo.itlaneve/html/lez0bis-INTRO.pdf · linguaggi di programmazione di alto linguaggi ben noti sono CC++ Java Visual Basic PHP C# Python Objective](https://reader030.vdocumenti.com/reader030/viewer/2022020416/5c68b7f709d3f263648bf424/html5/thumbnails/119.jpg)
26
testing e debuggingun bug è un errore nel programma
![Page 120: INTRODUZIONE ALLA PROGRAMMAZIONE - cs.unibo.itlaneve/html/lez0bis-INTRO.pdf · linguaggi di programmazione di alto linguaggi ben noti sono CC++ Java Visual Basic PHP C# Python Objective](https://reader030.vdocumenti.com/reader030/viewer/2022020416/5c68b7f709d3f263648bf424/html5/thumbnails/120.jpg)
26
testing e debuggingun bug è un errore nel programma- è un termine introdotto quando una falena causò un guasto in un relay del
calcolatore Mark I1 (1947)
![Page 121: INTRODUZIONE ALLA PROGRAMMAZIONE - cs.unibo.itlaneve/html/lez0bis-INTRO.pdf · linguaggi di programmazione di alto linguaggi ben noti sono CC++ Java Visual Basic PHP C# Python Objective](https://reader030.vdocumenti.com/reader030/viewer/2022020416/5c68b7f709d3f263648bf424/html5/thumbnails/121.jpg)
26
testing e debuggingun bug è un errore nel programma- è un termine introdotto quando una falena causò un guasto in un relay del
calcolatore Mark I1 (1947)- debugging è l’attività di eliminazione degli errori
![Page 122: INTRODUZIONE ALLA PROGRAMMAZIONE - cs.unibo.itlaneve/html/lez0bis-INTRO.pdf · linguaggi di programmazione di alto linguaggi ben noti sono CC++ Java Visual Basic PHP C# Python Objective](https://reader030.vdocumenti.com/reader030/viewer/2022020416/5c68b7f709d3f263648bf424/html5/thumbnails/122.jpg)
26
testing e debuggingun bug è un errore nel programma- è un termine introdotto quando una falena causò un guasto in un relay del
calcolatore Mark I1 (1947)- debugging è l’attività di eliminazione degli errori
tipi di errori
![Page 123: INTRODUZIONE ALLA PROGRAMMAZIONE - cs.unibo.itlaneve/html/lez0bis-INTRO.pdf · linguaggi di programmazione di alto linguaggi ben noti sono CC++ Java Visual Basic PHP C# Python Objective](https://reader030.vdocumenti.com/reader030/viewer/2022020416/5c68b7f709d3f263648bf424/html5/thumbnails/123.jpg)
26
testing e debuggingun bug è un errore nel programma- è un termine introdotto quando una falena causò un guasto in un relay del
calcolatore Mark I1 (1947)- debugging è l’attività di eliminazione degli errori
tipi di errori• errori di sintassi
- violazione delle regole grammaticali del linguaggio- sono scoperti dal compilatore, la cui messaggistica è spesso
imprecisa
![Page 124: INTRODUZIONE ALLA PROGRAMMAZIONE - cs.unibo.itlaneve/html/lez0bis-INTRO.pdf · linguaggi di programmazione di alto linguaggi ben noti sono CC++ Java Visual Basic PHP C# Python Objective](https://reader030.vdocumenti.com/reader030/viewer/2022020416/5c68b7f709d3f263648bf424/html5/thumbnails/124.jpg)
26
testing e debuggingun bug è un errore nel programma- è un termine introdotto quando una falena causò un guasto in un relay del
calcolatore Mark I1 (1947)- debugging è l’attività di eliminazione degli errori
tipi di errori• errori di sintassi
- violazione delle regole grammaticali del linguaggio- sono scoperti dal compilatore, la cui messaggistica è spesso
imprecisa• errori a run-time: si verificano durante l’esecuzione (out-of-memory)
![Page 125: INTRODUZIONE ALLA PROGRAMMAZIONE - cs.unibo.itlaneve/html/lez0bis-INTRO.pdf · linguaggi di programmazione di alto linguaggi ben noti sono CC++ Java Visual Basic PHP C# Python Objective](https://reader030.vdocumenti.com/reader030/viewer/2022020416/5c68b7f709d3f263648bf424/html5/thumbnails/125.jpg)
26
testing e debuggingun bug è un errore nel programma- è un termine introdotto quando una falena causò un guasto in un relay del
calcolatore Mark I1 (1947)- debugging è l’attività di eliminazione degli errori
tipi di errori• errori di sintassi
- violazione delle regole grammaticali del linguaggio- sono scoperti dal compilatore, la cui messaggistica è spesso
imprecisa• errori a run-time: si verificano durante l’esecuzione (out-of-memory)• errori logici (sono i più difficili da scoprire)
- errori nell’algoritmo - il computer non è in grado di fornire alcun aiuto
![Page 126: INTRODUZIONE ALLA PROGRAMMAZIONE - cs.unibo.itlaneve/html/lez0bis-INTRO.pdf · linguaggi di programmazione di alto linguaggi ben noti sono CC++ Java Visual Basic PHP C# Python Objective](https://reader030.vdocumenti.com/reader030/viewer/2022020416/5c68b7f709d3f263648bf424/html5/thumbnails/126.jpg)
27
esercizi1. scaricare i lucidi e studiarli2. studiare il capitolo 1 del Savitch e fare gli esercizi
alla fine del capitolo3. provare a installare Eclipse