INTRODUZIONE ALLA PROGRAMMAZIONE. Cosimo Laneve
|
|
- Renzo Vanni
- 6 anni fa
- Visualizzazioni
Transcript
1 INTRODUZIONE ALLA PROGRAMMAZIONE Cosimo Laneve 1
2 argomenti (Capitolo 1 Savitch) 1. sistemi di calcolo 2. programmazione e problem solving 3. introduzione a C++ 4. testing e debugging 2
3 sistema di calcolo (computing system) 3
4 sistema di calcolo (computing system) sistema di calcolo = software + hardware 3
5 sistema di calcolo (computing system) sistema di calcolo = software + hardware programma è una sequenza di istruzioni che deve eseguire un calcolatore 3
6 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 eseguono esempi: editors, compilatori, browsers, sistemi operativi 3
7 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 eseguono esempi: editors, compilatori, browsers, sistemi operativi hardware 3
8 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 eseguono esempi: editors, compilatori, browsers, sistemi operativi hardware sono i calcolatori (pc, tablet, laptop, mainframe, etc.) 3
9 organizzazione di un calcolatore 5 componenti principali 1. 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) 4
10 organizzazione di un calcolatore processore (CPU) dispositivo di input memoria ram dispositivo di output memoria secondaria 5
11 memoria principale è una lunga sequenza di locazioni ognuna contiene un byte = 8 bits, ogni bit è 0 oppure 1 indirizzo: numero che identifica la locazione di memoria dati grandi: alcuni dati sono troppo grandi per stare in un byte molti interi e reali gli indirizzi fanno riferimento al primo byte i byte seguenti servono a memorizzare la parte restante del dato 6
12 memoria principale byte 1 byte 2 byte 3 byte 4 byte 5 byte 6 byte 7 byte 8 byte 9 byte 10 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 7
13 dato o codice? 8
14 dato o codice? A può essere memorizzato come
15 dato o codice? A può essere memorizzato come può essere memorizzato come
16 dato o codice? A può essere memorizzato come può essere memorizzato come una istruzione può essere memorizzata come
17 dato o codice? A può essere memorizzato come può essere memorizzato come una istruzione può essere memorizzata come come fa il computer a sapere cosa significa ? 8
18 dato o codice? A può essere memorizzato come può essere memorizzato come una istruzione può essere memorizzata come come fa il computer a sapere cosa significa ? - l interpretazione dipende dalla istruzione che si sta eseguendo 8
19 dato o codice? A può essere memorizzato come può essere memorizzato come una istruzione può essere memorizzata come come fa il computer a sapere cosa significa ? - 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 8
20 memoria secondaria e memoria 9
21 memoria secondaria e memoria la memoria principale memorizza il programma in esecuzione e i relativi dati 9
22 memoria secondaria e memoria la memoria principale memorizza il programma in esecuzione e i relativi dati la memoria secondaria memorizza i programmi non in esecuzione, vecchi memorizza dati in maniera permanente (è necessaria una esplicita cancellazione per eliminarli) 9
23 il processore 10
24 il processore chiamato anche CPU Central Processing Unit 10
25 il processore chiamato anche CPU Central Processing Unit esegue le istruzioni del programma: tipiche istruzioni sono add 34 R3 sub 2 R1 mul R1 R2 R3 div 42 R0 R1 mov loc1 loc2 10
26 esecuzione di un programma (versione semplificata) 11
27 esecuzione di un programma (versione semplificata) programma dati 11
28 esecuzione di un programma (versione semplificata) programma dati computer 11
29 esecuzione di un programma (versione semplificata) programma dati computer output 11
30 linguaggi di programmazione di alto 12
31 linguaggi di programmazione di alto linguaggi ben noti sono C C++ Java Visual Basic PHP C# Python Objective C 12
32 linguaggi di programmazione di alto linguaggi ben noti sono C C++ Java Visual Basic PHP C# Python Objective C questi linguaggi 12
33 linguaggi di programmazione di alto linguaggi ben noti sono C C++ Java Visual Basic PHP C# Python Objective C questi linguaggi assomigliano ai linguaggi naturali (utilizzano costrutti facilmente comprensibili 12
34 linguaggi di programmazione di alto linguaggi ben noti sono C C++ Java Visual Basic PHP C# Python Objective C questi linguaggi assomigliano ai linguaggi naturali (utilizzano costrutti facilmente comprensibili consentono di programmare in maniera semplice 12
35 linguaggi di programmazione di alto linguaggi ben noti sono C C++ Java Visual Basic PHP C# Python Objective C questi linguaggi assomigliano ai linguaggi naturali (utilizzano costrutti facilmente comprensibili consentono di programmare in maniera semplice usano istruzioni che sono troppo complicate per le CPU 12
36 linguaggi di programmazione di alto linguaggi ben noti sono C C++ Java Visual Basic PHP C# Python Objective C questi linguaggi assomigliano ai linguaggi naturali (utilizzano costrutti facilmente comprensibili consentono di programmare in maniera semplice usano istruzioni che sono troppo complicate per le CPU i programmi devono essere tradotti in sequenze di 0 e di 1 che la CPU può eseguire 12
37 linguaggi di programmazione di basso livello 13
38 linguaggi di programmazione di basso livello sono linguaggi per programmare in maniera facilmente comprensibile al calcolatore (linguaggi assembler) 13
39 linguaggi di programmazione di basso livello sono 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 13
40 linguaggi di programmazione di basso livello sono 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 1 esempio:
41 linguaggi di programmazione di basso livello sono 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 1 esempio: le CPU eseguono SOLAMENTE codice macchina 13
42 i compilatori e i linker 14
43 i compilatori e i linker i compilatori traducono programmi in linguaggi ad alto livello in programmi in codice macchina 14
44 i compilatori e i linker i compilatori traducono programmi in linguaggi ad alto livello in programmi in codice macchina source code: è il codice del linguaggio ad alto livello 14
45 i compilatori e i linker i compilatori traducono programmi in linguaggi ad alto livello in programmi in codice macchina source code: è il codice del linguaggio ad alto livello object code: è il codice in linguaggio macchina 14
46 i compilatori e i linker i compilatori traducono programmi in linguaggi ad alto livello in programmi in codice macchina source code: è il codice del linguaggio ad alto livello object 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 14
47 i compilatori e i linker i compilatori traducono programmi in linguaggi ad alto livello in programmi in codice macchina source code: è il codice del linguaggio ad alto livello object 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 14
48 15 compilazione ed esecuzione di un programma C++
49 compilazione ed esecuzione di un programma C++ programma C++ 15
50 compilazione ed esecuzione di un programma C++ programma C++ dati per programma C++ 15
51 compilazione ed esecuzione di un programma C++ programma C++ dati per programma C++ 15
52 compilazione ed esecuzione di un programma C++ programma C++ dati per programma C++ compilatore computer 15
53 compilazione ed esecuzione di un programma C++ programma C++ dati per programma C++ compilatore computer codice oggetto per programma C++ 15
54 compilazione ed esecuzione di un programma C++ programma C++ dati per programma C++ compilatore computer codice oggetto per programma C++ codice oggetto per funzioni di libreria 15
55 compilazione ed esecuzione di un programma C++ programma C++ dati per programma C++ compilatore computer codice oggetto per programma C++ codice oggetto per funzioni di libreria linker 15
56 compilazione ed esecuzione di un programma C++ programma C++ dati per programma C++ compilatore computer codice oggetto per programma C++ codice oggetto per funzioni di libreria linker computer 15
57 compilazione ed esecuzione di un programma C++ programma C++ dati per programma C++ compilatore computer codice oggetto per programma C++ codice oggetto per funzioni di libreria linker computer codice macchina eseguibile (.exe) 15
58 compilazione ed esecuzione di un programma C++ programma C++ dati per programma C++ compilatore computer codice oggetto per programma C++ codice oggetto per funzioni di libreria linker computer codice macchina eseguibile (.exe) 15 computer
59 compilazione ed esecuzione di un programma C++ programma C++ dati per programma C++ compilatore computer codice oggetto per programma C++ codice oggetto per funzioni di libreria linker computer 15 codice macchina eseguibile (.exe) computer OUTPUT
60 algoritmi e programmi
61 algoritmi e programmi un algoritmo è una sequenza di istruzioni che risolve un dato problema
62 algoritmi e programmi un algoritmo è una sequenza di istruzioni che risolve un dato problema un programma è un algoritmo espresso in un linguaggio di programmazione
63 algoritmi e programmi un 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
64 algoritmi e programmi un 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
65 algoritmi e programmi un 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
66 algoritmi e programmi un 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
67 fase di problem solving 17
68 fase di problem solving occorre che il processo sottostante al problema sia completamente specificato 17
69 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? 17
70 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 17
71 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 17
72 fase di implementazione 18
73 fase di implementazione 1. tradurre un algoritmo in un linguaggio di programmazione diventa più semplice quando si diventa esperti del linguaggio 18
74 fase di implementazione 1. tradurre un algoritmo in un linguaggio di programmazione diventa più semplice quando si diventa esperti del linguaggio 2. compilare il codice sorgente controllare e rimuovere gli errori segnalati dal compilatore 18
75 fase di implementazione 1. tradurre un algoritmo in un linguaggio di programmazione diventa più semplice quando si diventa esperti del linguaggio 2. compilare il codice sorgente controllare e rimuovere gli errori segnalati dal compilatore 3. esegui il codice su alcuni casi di test verifica la correttezza dei risultati 18
76 fase di implementazione 1. tradurre un algoritmo in un linguaggio di programmazione diventa più semplice quando si diventa esperti del linguaggio 2. compilare il codice sorgente controllare 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 18
77 programmazione object-oriented 19
78 programmazione object-oriented abbreviata in OOP 19
79 programmazione object-oriented abbreviata in OOP è usata in molti linguaggi di programmazione moderni 19
80 programmazione object-oriented abbreviata in OOP è usata in molti linguaggi di programmazione moderni un programma è visto come un insieme di oggetti che contengono valori e le funzioni che possono modificare tali valori 19
81 programmazione object-oriented abbreviata in OOP è usata in molti linguaggi di programmazione moderni un programma è visto come un insieme di oggetti che contengono valori e le funzioni che possono modificare tali valori progettare un programma significa definire gli oggetti e gli algoritmi delle funzioni corrispondenti 19
82 caratteristiche di OOP 20
83 caratteristiche di OOP encapsulation ogni oggetto contiene i propri dati e le funzioni che possono accedere/modificare i dati nessun altra funzione può accedere (information hiding) 20
84 caratteristiche di OOP encapsulation ogni oggetto contiene i propri dati e le funzioni che possono accedere/modificare i dati nessun altra funzione può accedere (information hiding) inheritance (ereditarietà) il codice può essere riutilizzato un oggetto può essere definito utilizzando codice di altri oggetti (con modifiche/con aggiunte di nuove funzioni) 20
85 caratteristiche di OOP encapsulation ogni oggetto contiene i propri dati e le funzioni che possono accedere/modificare i dati nessun altra funzione può accedere (information hiding) inheritance (ereditarietà) il codice può essere riutilizzato un oggetto può essere definito utilizzando codice di altri oggetti (con modifiche/con aggiunte di nuove funzioni) polimorfismo un nome di funzione può avere diversi significati a seconda del contesto dove è definito 20
86 introduzione a C++ 21
87 introduzione a C++ da dove salta fuori C++? 21
88 introduzione a C++ da dove salta fuori C++? è una estensione di C con gli oggetti sviluppata da Bjarne Stroustrup ai Bell Labs nel
89 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 21
90 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) 21
91 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) 21
92 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 ++? 21
93 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++ 21
94 il primo programma: hello_world 22
95 il primo programma: hello_world int main(){ // main() è dove inizia un // programma C++ 22
96 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 22
97 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 22
98 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 22
99 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) ; osservazioni: // ritorna un valore che indica // successo 22
100 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 22
101 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 22
102 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 22
103 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) ; osservazioni: // ritorna un valore che indica // successo 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 main è una funzione che non prende argomenti ( ) e ritorna un intero (per denotare successo o fallimento) 22
104 il primo programma: hello_world completo 23
105 il primo programma: hello_world completo #include <iostream> // usa le librerie necessarie per input/output 23
106 il primo programma: hello_world completo #include <iostream> using namespace std; // usa le librerie necessarie per input/output // 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) 23
107 il primo programma: hello_world completo #include <iostream> using namespace std; // usa le librerie necessarie per input/output // 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) ; } 23
108 esecuzione di hello_world 24
109 esecuzione di hello_world tre passi: 24
110 esecuzione di hello_world tre passi: 1. il compilatore traduce le istruzioni eseguibili dal C++ al linguaggio macchina 24
111 esecuzione di hello_world tre passi: 1. il compilatore traduce le istruzioni eseguibili dal C++ al linguaggio macchina 2. il linker include la libreria iostream 24
112 esecuzione di hello_world tre passi: 1. il compilatore traduce le istruzioni eseguibili dal C++ al linguaggio macchina 2. il linker include la libreria iostream 3. il computer esegue la versione in linguaggio macchina delle istruzioni 24
113 esecuzione di hello_world tre passi: 1. il compilatore traduce le istruzioni eseguibili dal C++ al linguaggio macchina 2. il linker include la libreria iostream 3. il computer esegue la versione in linguaggio macchina delle istruzioni esempio di esecuzione codice oggetto del programma hello_world codice oggetto libreria iostream memoria prima dell esecuzione 24
114 esecuzione di hello_world tre passi: 1. il compilatore traduce le istruzioni eseguibili dal C++ al linguaggio macchina 2. il linker include la libreria iostream 3. il computer esegue la versione in linguaggio macchina delle istruzioni esempio di esecuzione codice oggetto del programma hello_world codice oggetto libreria iostream output > Hello, world! memoria prima dell esecuzione 24 memoria dopo dell esecuzione
115 importanza di hello_world 25
116 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 25
117 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. 25
118 testing e debugging 26
119 testing e debugging un bug è un errore nel programma 26
120 testing e debugging un bug è un errore nel programma - è un termine introdotto quando una falena causò un guasto in un relay del calcolatore Mark I1 (1947) 26
121 testing e debugging un 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 26
122 testing e debugging un 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 26
123 testing e debugging un 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 26
124 testing e debugging un 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) 26
125 testing e debugging un 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 26
126 esercizi 1. scaricare i lucidi e studiarli 2. studiare il capitolo 1 del Savitch e fare gli esercizi alla fine del capitolo 3. provare a installare Eclipse 27
C O P Y R I G H T ( C ) W W W. F O N D A M E N T I. I N F O
Il linguaggio C C O P Y R I G H T ( C ) 2 0 0 8 W W W. F O N D A M E N T I. I N F O P E R M I S S I O N I S G R A N T E D T O C O P Y, D I S T R I B U T E A N D / O R M O D I F Y T H I S D O C U M E N
DettagliIl calcolatore. Architettura di un calcolatore (Hardware)
Il calcolatore Prima parlare della programmazione, e' bene fare una brevissima introduzione su come sono strutturati i calcolatori elettronici. I calcolatori elettronici sono stati progettati e costruiti
DettagliInformatica. Dipartimento di Economia. Ing. Cristiano Gregnanin. 20 ottobre Corso di laurea in Economia
Informatica Dipartimento di Economia Ing. Cristiano Gregnanin Corso di laurea in Economia 20 ottobre 2016 1 / 19 Linguaggi 2 / 19 Linguaggi 3 / 19 Linguaggi di alto livello Si basano su una macchina virtuale
DettagliCalcolo numerico e programmazione Programmazione
Calcolo numerico e programmazione Programmazione Tullio Facchinetti 11 maggio 2012 14:05 http://robot.unipv.it/toolleeo La programmazione la programmazione è l insieme delle
DettagliElementi di Informatica A. A. 2016/2017
Elementi di Informatica A. A. 2016/2017 Ing. Nicola Amatucci Università degli studi di Napoli Federico II Scuola Politecnica e Delle Scienze di Base nicola.amatucci@unina.it Programmazione C++ Parte 1
DettagliEsempio. Le istruzioni corrispondono a quelle di sopra, ma sono scritte in modo simbolico. E indipendente dalla machina
Il compilatore C Astrazione Linguaggio macchina implica la conoscenza dei metodi usati per la rappresentazione dell informazioni nella CPU Linguaggio Assembly è il linguaggio delle istruzioni che possono
DettagliIl linguaggio C Il linguaggio C. Caratteristiche del C. Caratteristiche del C. Linguaggi di Programmazione I. Ferdinando Cicalese
03-10-2003 Il linguaggio C Linguaggio general-purpose Il linguaggio C Creato nel 1972 nei Bell Labs da Dennis Ritchie su PDP11 Usato per il Sistema Operativo Unix da Ken Thompson Negli anni 80 nasce ANSI
DettagliINFORMATICA. L informatica comprende:
Varie definizioni: INFORMATICA Scienza degli elaboratori elettronici (Computer Science) Scienza dell informazione Definizione proposta: Scienza della rappresentazione e dell elaborazione dell informazione
DettagliProgrammazione in Java e gestione della grafica (I modulo) Lezione 2: Prime nozioni di Java
Programmazione in Java e gestione della grafica (I modulo) Lezione 2: Prime nozioni di Java Programmi Un programma è un insieme di istruzioni che il computer deve seguire Usiamo programmi in continuazione
DettagliProgrammazione. Dipartimento di Matematica. Ing. Cristiano Gregnanin. 29 febbraio Corso di laurea in Matematica
Programmazione Dipartimento di Matematica Ing. Cristiano Gregnanin Corso di laurea in Matematica 29 febbraio 2016 1 / 28 Linguaggi 2 / 28 Linguaggi 3 / 28 Linguaggi di alto livello Si basano su una macchina
Dettagliciclo di vita della soluzione (informatica) di un problema
Università di Roma Tor Vergata L2-1 ciclo di vita della soluzione (informatica) di un problema errori run-time errori sintattici codice editor codice C++ compilatore esegui eseguibile OK risultati scorretti
DettagliFondamenti di Informatica. Ingegneria elettronica
Fondamenti di Informatica Ingegneria elettronica Prima esercitazione Cecilia Catalano Sistema Operativo Il S.O. è costituito da un insieme di programmi che permettono di utilizzare e gestire tutte le risorse
DettagliLINGUAGGI DI ALTO LIVELLO
LINGUAGGI DI ALTO LIVELLO Si basano su una macchina virtuale le cui mosse non sono quelle della macchina hardware Linguaggi di alto livello Barriera di astrazione C Fortran Modula-2 Cobol Algol Basic Ada
DettagliCosa è un programma. Informatica di Base -- R.Gaeta 18
Cosa è un programma Il programma è la scatola nera che risolve il problema computazionale; Il programma è una sequenza di istruzioni che devono essere eseguite; Il programma è la traduzione per il computer
DettagliIntroduzione alla programmazione. Walter Didimo
Introduzione alla programmazione Walter Didimo Programmi Un programma è una frase (anche molto lunga) che descrive delle azioni che devono essere svolte da un calcolatore La frase deve essere dettagliata
DettagliCorso di Fondamenti di Informatica Linguaggi di Programmazione
Corso di Informatica Linguaggi di Programmazione Anno Accademico 2011/2012 Francesco Tortorella Linguaggi di programmazione Un calcolatore basato sul modello di von Neumann permette l esecuzione di un
DettagliLinguaggi di Programmazione
Linguaggi di Programmazione 1 C-Introduzione.tex: Versione 1.0, aa 2005-2006 Linguaggi di programmazione (1) Sono linguaggi che permettono la codifica di algoritmi in modo da renderli eseguibili, direttamente
DettagliIntroduzione al C. InformaticaB. Daniele Loiacono
Introduzione al C InformaticaB Facciamo un passo indietro Compilare o Interpretare? q Come rendo comprensibili al calcolatore i programmi scritti in un linguaggio di programmazione (ad es. C, C++, Java)?
DettagliIl linguaggio di programmazione Python
Università Roma Tre Dipartimento di Matematica e Fisica Percorso Abilitante Speciale Classe A048 Matematica Applicata Corso di Informatica Il linguaggio di programmazione Python Marco Liverani (liverani@mat.uniroma3.it)
DettagliIntroduzione a Java. Prof. Francesco Accarino IIS Altiero Spinelli Via Leopardi132 Sesto San Giovanni
Introduzione a Java IIS Altiero Spinelli Via Leopardi132 Sesto San Giovanni Linguaggi di programmazione Ogni programma viene scritto utilizzando un linguaggio specializzato, formale e comprensibile da
DettagliI Fondamenti del Linguaggio
Linguaggio C I Fondamenti del Linguaggio Linguaggio di Programmazione Linguaggio formale per la descrizione di programmi per calcolatori Sintassi vicina al linguaggio umano Se non ci fossero, bisognerebbe
DettagliIntroduzione alla programmazione. Alice Pavarani
Introduzione alla programmazione Alice Pavarani Il linguaggio C Creato da Dennis Ritchie nel 1972 presso i Bell Laboratories Linguaggio di programmazione procedurale, strutturato Linguaggio ad alto livello
DettagliAlgoritmi, Strutture Dati e Programmi. UD 2.d: Linguaggi Procedurali
Algoritmi, Strutture Dati e Programmi : Linguaggi Procedurali Prof. Alberto Postiglione AA 2007-2008 Università degli Studi di Salerno LINGUAGGI PROCEDURALI Curtin, cap. 12.3 1 Linguaggi di Programmazione
DettagliLinguaggi di programmazione
Lezione 1 e 2 Fabio Scotti Laboratorio di programmazione per la sicurezza 1 Lezione 1 e 2 Fabio Scotti Laboratorio di programmazione per la sicurezza Introduzione al linguaggio C e significato della compilazione
DettagliProgrammazione Procedurale in Linguaggio C++
Programmazione Procedurale in Linguaggio C++ Elementi di Base Parte 1 Introduzione G. Mecca M. Samela Università della Basilicata Elementi di Base >> Sommario Sommario Linguaggi di Programmazione Sintassi
DettagliLezione 6 Introduzione al C++ Mauro Piccolo
Lezione 6 Introduzione al C++ Mauro Piccolo piccolo@di.unito.it Linguaggi di programmazione Un linguaggio formale disegnato per descrivere la computazione Linguaggi ad alto livello C, C++, Pascal, Java,
DettagliDAGLI ALGORITMI AI LINGUAGGI. Linguaggi di Programmazione
DAGLI ALGORITMI AI LINGUAGGI Linguaggi di Programmazione E` una notazione con cui e` possibile descrivere gli algoritmi. Programma: e` la rappresentazione di un algoritmo in un particolare linguaggio di
DettagliProf. Pagani Corrado INTRODUZIONE AL LINGUAGGIO C
Prof. Pagani Corrado INTRODUZIONE AL LINGUAGGIO C IL LINGUAGGIO C Nel 1972 Dennis Ritchie nei Bell Laboratories progettò il linguaggio C Il linguaggio possiede tutti i costrutti di controllo dei linguaggi
DettagliProgrammazione C Massimo Callisto De Donato
Università degli studi di Camerino Scuola di scienze e tecnologia - Sezione Informatica Programmazione C Massimo Callisto De Donato massimo.callisto@unicam.it www.cs.unicam.it/massimo.callisto LEZIONE
DettagliC: primi elementi. Lezione 4
C: primi elementi Lezione 4 Evoluzione del BCPL (1967) e B (1970), entrambi typeless Sviluppato da Dennis Ritchie nel 1972 ed implementato per il PDP-11 Usato per lo sviluppo del sistema operativo UNIX
DettagliLaboratorio di Programmazione 1. Docente: dr. Damiano Macedonio Lezione 4 24/10/2013
Laboratorio di Programmazione 1 1 Docente: dr. Damiano Macedonio Lezione 4 24/10/2013 Original work Copyright Sara Migliorini, University of Verona Modifications Copyright Damiano Macedonio, University
DettagliLo scopo. Il primo esperimento. Soluzione informale. Le variabili
Lo scopo 2 Il primo esperimento Si vuole scrivere un programma in linguaggio C che chieda all utente di introdurre da tastiera due numeri interi e visualizzi il valore della loro somma sul video Ver. 2.4
DettagliIntroduzione C++ Compilatori Librerie Usare oggetti
Introduzione C++ Compilatori Librerie Usare oggetti Introduzione a C, C++ e Java 1977 C 1986 C++ a better C con estensioni agli oggetti oggi uno standard industriale 1994 Java C ++ -- C++ C Java programmazione
DettagliLinguaggi di programmazione
Linguaggi di programmazione Fondamenti di Informatica Daniele Loiacono Ho definito un algoritmo e adesso? Daniele Loiacono Dall algoritmo all esecuzione q Come deve essere formalizzato un algoritmo affinché
DettagliIntroduzione C++ Compilatori Librerie Usare oggetti. Introduzione a C, C++ e Java
Introduzione C++ Compilatori Librerie Usare oggetti Introduzione a C, C++ e Java 1977 C 1986 C++ a better C con estensioni agli oggetti oggi uno standard industriale 1994 Java C ++ -- C++ C Java programmazione
DettagliIntroduzione al C. Informatica Generale - Introduzione al C Versione 1.0, aa p.1/17
Introduzione al C Informatica Generale - Introduzione al C Versione 1.0, aa 2005-2006 p.1/17 Linguaggi di programmazione Sono linguaggi che permettono la codifica di algoritmi in modo da renderli eseguibili,
DettagliL AMBIENTE CODE BLOCKS E L IO
L AMBIENTE CODE BLOCKS E L IO Il primo programma in C++ #include using namespace std; main() { cout
DettagliIL PRIMO PROGRAMMA IN C
IL PRIMO PROGRAMMA IN C LO SCOPO Si vuole scrivere un programma in linguaggio C che chieda all utente di introdurre da tastiera due numeri interi e visualizzi il valore della loro somma sul video SOLUZIONE
DettagliBurocrazia: Primi passi con il linguaggio C. Diversi tipi di linguaggio. Un solo linguaggio
Burocrazia: Università degli Studi di Ferrara Laurea triennale in Matematica Corso di Programmazione Primi passi con il linguaggio C Filippo Mantovani 1 Ottobre 009 Per ora nessun cambio di orario e/o
DettagliInformatica/ Ing. Meccanica/ Ing. Edile/ Prof. Verdicchio/ 02/04/2014/ Appello straordinario/ Foglio delle domande / VERSIONE 1
Informatica/ Ing. Meccanica/ Ing. Edile/ Prof. Verdicchio/ 02/04/2014/ Appello straordinario/ Foglio delle domande/ VERSIONE 1 1) Nell uso dei puntatori in C++ la scrittura -> vuol dire: a) riferimento
DettagliASTRAZIONE. Sono indipendenti dalla macchina hardware sottostante ASTRAZIONE 1
ASTRAZIONE Esistono linguaggi a vari livelli di astrazione Linguaggio Macchina: implica la conoscenza dei metodi utilizzati per la rappresentazione delle informazioni Linguaggio Macchina e Assembler: implica
DettagliInformatica! Appunti dal laboratorio 1!
Informatica Appunti dal laboratorio 1 Sistema Operativo Windows Vista, Windows 7, Mac OS X, Linux, Debian, Red Hat, etc etc Il sistema operativo è un programma che serve a gestire TUTTE le risorse presenti
DettagliLezione n. 2i Informatica e tecnologia informatica Sistema di elaborazione Algoritmo Linguaggi di programmazione Realizzazione di un programma
Lezione2i Lezione n. 2i Informatica e tecnologia informatica Sistema di elaborazione Algoritmo Linguaggi di programmazione Realizzazione di un programma Informatica e tecnologia informatica Il termine
DettagliCorso di Architettura (Prof. Scarano) 10/05/2002
Lezione 0 Il Set di Istruzioni (6) Vittorio Scarano Architettura Corso di Laurea in Informatica Università degli Studi di Salerno Le procedure Prima della chiamata di una procedura In ogni linguaggio di
DettagliInformatica ALGORITMI E LINGUAGGI DI PROGRAMMAZIONE. Francesco Tura. F. Tura
Informatica ALGORITMI E LINGUAGGI DI PROGRAMMAZIONE Francesco Tura francesco.tura@unibo.it 1 Lo strumento dell informatico: ELABORATORE ELETTRONICO [= calcolatore = computer] Macchina multifunzionale Macchina
DettagliProgrammazione per BioInformatica Introduzione. Docente. Programma del corso. Nicola Drago
Programmazione per BioInformatica Introduzione Nicola Drago nicoladrago@univrit Dipartimento di Informatica Università di Verona Docente Nicola Drago Dip Di Informatica e-mail: nicoladrago@univrit Programma
Dettagli1 PANORAMICA SUL LINGUAGGIO C
1 PANORAMICA SUL LINGUAGGIO C 1.1 Le origini del linguaggio C Il C fu inventato e implementato da Dennis Ritchie negli anni 70 su una macchina che impiegava il sistema operativo Unix. Il C è il risultato
Dettaglio Introduzione agli algoritmi o Rappresentazione delle Informazioni o Architettura del calcolatore o Reti di Calcolatori
Programma del corso o Introduzione agli algoritmi o Rappresentazione delle Informazioni o Architettura del calcolatore o Reti di Calcolatori o Elementi di Programmazione Algoritmi e programmi o Algoritmo
DettagliLinguaggi di Programmazione
Linguaggi di Programmazione E una notazione con cui e possibile descrivere gli algoritmi. Programma: e la rappresentazione di un algoritmo in un particolare linguaggio di programmazione. In generale, ogni
DettagliUnità F1. Obiettivi. Il linguaggio C. Il linguaggio C++ Linguaggio C. Pseudolinguaggio. Primi programmi
Obiettivi Unità F1 Primi programmi Conoscere il significato di dichiarazione e definizione di variabili Conoscere i tipi di dato numerici Essere in grado di realizzare semplici algoritmi in pseudolinguaggio
DettagliIntroduzione C++ Il compilatore. La compilazione in g++ Introduzione a C, C++ e Java. C++ C Java 1977 C 1986 C++ Compilatori Librerie Usare oggetti
Introduzione a C, C++ e Java Introduzione C++ Compilatori Librerie Usare oggetti 1977 C 1986 C++ a better C con estensioni agli oggetti oggi uno standard industriale 1994 Java C ++ -- C++ C Java programmazione
DettagliELABORAZIONE DELLE INFORMAZIONI (ALGORITMI E LINGUAGGI DI PROGRAMMAZIONE)
1 LEZIONE 9 ELABORAZIONE DELLE INFORMAZIONI (ALGORITMI E LINGUAGGI DI PROGRAMMAZIONE) Laboratorio di Informatica per l Educazione A. A. 2014/2015 IN SINTESI (ELABORAZIONE) Con i COMPUTER, le macchine diventano
DettagliI Linguaggi di Programmazione
I Linguaggi di Programmazione 1 Linguaggio naturale e linguaggio macchina La comunicazione uomo-macchina avviene attraverso formalismi che assumono la forma di un linguaggio. Caratteristiche del Linguaggio
DettagliFondamenti di Informatica T. Il Software
Il Software TECNOLOGIA DIGITALE CPU, memoria centrale e dispositivi sono realizzati con tecnologia elettronica digitale. Dati ed operazioni vengono codificati a partire da due valori distinti di grandezze
DettagliTecnologie dell'informazione e della comunicazione
Tecnologie dell'informazione e della comunicazione Introduzione al corso e Linguaggi di programmazione ad alto livello Prof. Mauro Gaspari: gaspari@cs.unibo.it Tutor: Elisa Del Bianco: elisadelbianco@gmail.com
DettagliINTRODUZIONE ALLA PROGRAMMAZIONE
INTRODUZIONE ALLA PROGRAMMAZIONE Prof. Enrico Terrone A. S: 2008/09 Definizioni Programmare significa risolvere problemi col computer, cioè far risolvere problemi al computer attraverso un insieme di informazioni
DettagliASTRAZIONE ASTRAZIONE
ASTRAZIONE Esistono linguaggi a vari livelli di astrazione Linguaggio Macchina: implica la conoscenza dei metodi utilizzati per la rappresentazione delle informazioni Linguaggio Macchina e Assembler: implica
DettagliPrimi passi col linguaggio C
Andrea Marin Università Ca Foscari Venezia Laurea in Informatica Corso di Programmazione part-time a.a. 2011/2012 Come introdurre un linguaggio di programmazione? Obiettivi: Introduciamo una macchina astratta
DettagliIntroduzione al Linguaggio C ed all IDE DEV-C++
Microsoft Windows e Dev-C++ Introduzione al Linguaggio C ed all IDE DEV-C++ Le Esercitazioni in Laboratorio Laboratorio M1 + MLAB1/2: Edificio Via Valotti, primo piano e piano interrato Orario: Mercoledì
DettagliLinguaggio di Riferimento: C
Programmazione procedurale Linguaggio di Riferimento: C 1 Linguaggio macchina Il linguaggio macchina costituisce la forma espressiva atta a descrivere programmi e ad essere direttamente interpretata dall
DettagliLaboratorio di linguaggi
lezioni: lunedi 9-11, aula A al corso Laboratorio di linguaggi laboratorio in tre turni: martedi 11-13 () giovedi 9-11 () venerdi 11-13 (Andrea Grosso) laboratorio: iscriversi all esame Corso A LABORATORIO
DettagliInformatica Problema Algoritmo Programma
Informatica Problema Algoritmo Programma 2^ PARTE I linguaggi di programmazione I linguaggi di programmazione si possono suddividere fondamentalmente in tre categorie: 1. Linguaggio Macchina 2. Linguaggio
DettagliIntroduzione al Linguaggio C ed all IDE DEV-C++
Microsoft Windows e Dev-C++ Introduzione al Linguaggio C ed all IDE DEV-C++ 1 Le Esercitazioni in Laboratorio! MTA + MLAB1/2: Edificio Via Valotti, primo piano e piano interrato! Orario: Giovedì 14:30-17:30!
DettagliSTORIA E CARATTERISTICHE
IL LINGUAGGIO C STORIA E CARATTERISTICHE STORIA E VERSIONI Sviluppato da Dennis Ritchie ai Bell Labs nel 1972 per realizzare il sistema operativo UNIX K&R C: 1978 (prima versione, K&R dal nome degli autori
DettagliLinguaggi di programmazione
Parte 2 Linguaggi di programmazione Livello di Astrazione per la Codifica di un Algoritmo Si può risolvere un problema senza prima fissare un insieme di azioni, di mosse elementari possibili per l elaboratore?
DettagliIntroduzione alla programmazione A. Ferrari
Introduzione alla programmazione A. Ferrari Il linguaggio C Nel 1972 Dennis Ritchie nei Bell Laboratories progettò il linguaggio C Il linguaggio possiede tutti i costrutti di controllo dei linguaggi ad
DettagliSommario FONDAMENTI DI INFORMATICA. Definizione formale di algoritmo. Informatica e algoritmi. ALGORITMI E LINGUAGGIO PYTHON Introduzione
Università degli Studi di Cagliari Corsi di Laurea in Ingegneria Chimica e Ingegneria Meccanica FONDAMENTI DI INFORMATICA http://www.diee.unica.it/~marcialis/fi A.A. 2017/2018 Sommario Algoritmi, linguaggi
DettagliLinguaggi di alto livello, compilatori e interpreti
Linguaggi di alto livello, compilatori e interpreti Ingegneria Meccanica e dei Materiali Università degli Studi di Brescia Prof. Massimiliano Giacomin Limiti del linguaggio assembler Esempio: gestione
DettagliProgrammazione. Fondamenti di Informatica
Programmazione Fondamenti di Informatica Linguaggio macchina 11111010 11111100 01101110 10000110 00010001 01101110 11001001 11111100 10101011 11010101 00100101 11110001 11000011 11100011 10100001 10000010
DettagliAlgoritmo. La programmazione. Algoritmo. Programmare. Procedimento di risoluzione di un problema
Algoritmo 2 Procedimento di risoluzione di un problema La programmazione Ver. 2.4 Permette di ottenere un risultato eseguendo una sequenza finita di operazioni elementari Esempi: Una ricetta di cucina
DettagliIntroduzione ai linguaggi di programmazione
Università degli Studi di Milano Laurea Specialistica in Genomica Funzionale e Bioinformatica Corso di Linguaggi di Programmazione per la Bioinformatica Introduzione ai linguaggi di programmazione Giorgio
DettagliLe istruzioni corrispondono univocamente a quelle macchina, ma vengono espresse tramite nomi simbolici i (parole chiave)
ASTRAZIONE Esistono linguaggi a vari livelli di astrazione Linguaggio Macchina: implica la conoscenza dei metodi utilizzati per la rappresentazione delle informazioni Linguaggio Macchina e Assembler: implica
DettagliLinguaggio C: introduzione
Dipartimento di Elettronica ed Informazione Politecnico di Milano Informatica e CAD (c.i.) - ICA Prof. Pierluigi Plebani A.A. 2008/2009 Linguaggio C: introduzione La presente dispensa e da utilizzarsi
DettagliPag. 1. Informatica Facoltà di Medicina Veterinaria a.a. 2012/13 prof. Stefano Cagnoni. Architettura del calcolatore (parte II)
1 Università degli studi di Parma Dipartimento di Ingegneria dell Informazione Informatica a.a. 2012/13 La inserita nella architettura dell elaboratore Informatica Facoltà di Medicina Veterinaria a.a.
DettagliProgramma del corso. Elementi di Programmazione. Introduzione agli algoritmi. Rappresentazione delle Informazioni. Architettura del calcolatore
Programma del corso Introduzione agli algoritmi Rappresentazione delle Informazioni Architettura del calcolatore Reti di Calcolatori Elementi di Programmazione Algoritmi e programmi Algoritmo Sequenza
DettagliIntroduzione alla programmazione
Introduzione alla programmazione Risolvere un problema Per risolvere un problema si procede innanzitutto all individuazione Delle informazioni, dei dati noti Dei risultati desiderati Il secondo passo consiste
DettagliCPU. ALU e Registri della CPU. Elementi della CPU. CPU e programmazione (Parte 1) Central Processing Unit, processore
CPU CPU e programmazione (Parte 1) La CPU (Central Processing Unit) e` in grado di eseguire dei programmi, cioe` sequenze di istruzioni elementari ( istruzioni macchina ) Idea fondamentale dell'architettura
DettagliIl Software programmabili programma algoritmo
Il Software La proprietà fondamentale dei calcolatori e` quella di essere programmabili cioè in grado di svolgere compiti diversi a seconda delle istruzioni fornite dall utente mediante un programma, ossia
DettagliLezione 1. Sistemi operativi. Marco Cesati System Programming Research Group Università degli Studi di Roma Tor Vergata.
Lezione 1 Sistemi operativi 4 marzo 2014 System Programming Research Group Università degli Studi di Roma Tor Vergata SO 14 1.1 Di cosa parliamo in questa lezione? È una introduzione generale ai sistemi
DettagliCorso di Fondamenti di Informatica Linguaggi di Programmazione
Corso di Fondamenti di Informatica Linguaggi di Programmazione Anno Accademico Francesco Tortorella Linguaggi di programmazione Un calcolatore basato sul modello di von Neumann permette l esecuzione di
DettagliFondamenti di informatica T-1 (A K) Esercitazione 2 Basi del linguaggio Java
Fondamenti di informatica T-1 (A K) Esercitazione 2 Basi del linguaggio Java AA 2018/2019 Tutor Lorenzo Rosa lorenzo.rosa@unibo.it 2 Programma Introduzione al calcolatore e Java Linguaggio Java, basi e
Dettagli28/02/2016. LABORATORIO DI PROGRAMMAZIONE Corso di laurea in matematica 5 LA RAPPRESENTAZIONE DELLE ISTRUZIONI
LABORATORIO DI PROGRAMMAZIONE Corso di laurea in matematica 5 LA RAPPRESENTAZIONE DELLE ISTRUZIONI Marco Lapegna Dipartimento di Matematica e Applicazioni Universita degli Studi di Napoli Federico II wpage.unina.it/lapegna
DettagliLinguaggi di Programmazione
Linguaggi di Programmazione 1 Linguaggio naturale e linguaggio macchina La comunicazione uomo-macchina avviene attraverso formalismi che assumono la forma di un linguaggio. Caratteristiche del Linguaggio
DettagliFondamenti di Programmazione -Presentazione del Corso-
Fondamenti di Programmazione -Presentazione del Corso- CdL Ingegneria Informatica e dell'informazione Sara Brunetti sara.brunetti@unisi.it 0577 234850 1168 Ufficio 236 Fondamenti di Programmazione Orario
DettagliFONDAMENTI DI INFORMATICA
FONDAMENTI DI INFORMATICA Prof. Alfredo Accattatis Slide (rielaborate) del prof. Emiliano Casalicchio accattatis@ing.uniroma2.it Esercizio (1) Dati due vettori V1 e V2 scrivere un algoritmo che permetta
DettagliIntroduzione al funzionamento di un calcolatore elettronico
1 / 21 Introduzione al funzionamento di un calcolatore elettronico Natascia Piroso 23 settembre 2009 2 / 21 Sommario Che cos è un calcolatore? 1 Che cos è un calcolatore? Definizioni preliminari Il calcolatore
DettagliIntroduzione a Java A. FERRARI
Introduzione a Java A. FERRARI La nascita di Java 1991 - James Gosling lavora al Green Project (SUN) per studiare la convergenza tra dispositivi di elettronica di consumo e computer 1992 il Green Project
DettagliLa programmazione in linguaggio C
FONDAMENTI DI INFORMATICA Prof. PIER LUCA MONTESSORO Ing. DAVIDE PIERATTONI Facoltà di Ingegneria Università degli Studi di Udine La programmazione in linguaggio C 2001 Pier Luca Montessoro - Davide Pierattoni
DettagliPROBLEMI E ALGORITMI
Fondamenti di Informatica PROBLEMI E ALGORITMI Fondamenti di Informatica - D. Talia - UNICAL 1 Specifica di un algoritmo Primo approccio, scrittura diretta del programma: la soluzione coincide con la codifica
DettagliLezione 2. Introduzione al linguaggio C/C++ Tipi di dato e numeri interi Variabili e costanti con nome Struttura di un programma
Lezione 2 Introduzione al linguaggio C/C++ Tipi di dato e numeri interi Variabili e costanti con nome Struttura di un programma Programmazione I Paolo Valente - 2010/2011 Storia essenziale del C Definito
DettagliIntroduzione al Linguaggio C Corso di Informatica Laurea in Fisica
Introduzione al Linguaggio C Corso di Informatica Laurea in Fisica prof. ing. Corrado Santoro A.A. 2009-10 Dai flow-chart ai linguaggi... Abbiamo imparato ad usare uno strumento formale i flowchart per
DettagliMacchine Astratte. Luca Abeni. February 22, 2017
Macchine Astratte February 22, 2017 Architettura dei Calcolatori - 1 Un computer è composto almeno da: Un processore (CPU) Esegue le istruzioni macchina Per fare questo, può muovere dati da/verso la memoria
DettagliSommario Linguaggi, messaggi e comunicazione. Introduzione ai Linguaggi di Programmazione. Linguaggio (1) Linguaggio (2)
Sommario Linguaggi, messaggi e comunicazione Traduzione di programmi Interpreti e compilatori Introduzione al processo di compilazione 1 2 Linguaggio (1) Linguaggio (2) Insieme di sequenze di simboli,
DettagliC++ Barriera di astrazione. Barriera di astrazione. Basic. Basic. Lisp. Lisp. Pascal. Prolog. Pascal. Prolog. Cobol. Fortran IMPERATIVI FUNZIONALI
Linguaggi di alto livello Barriera di astrazione C Fortran Cobol Modula-2 Basic Pascal Algol Ada Lisp Smalltalk Simula67 Scheme C++ Prolog ML AN - 1995 Linguaggi di alto livello IMPERATIVI C Fortran Modula-2
DettagliArchitettura di un calcolatore
Architettura di un calcolatore Processore: CPU Componente elettronico costituito da minuscole componenti di silicio, chiamate CHIP. Esegue le istruzioni implementate nel SW, tramite una serie di operazioni
DettagliLinguaggi di alto livello. Barriera di astrazione. Pascal. Cobol. Fortran. Basic. Modula-2. Lisp. Simula67 Scheme. Smalltalk C++ Prolog AN
Linguaggi di alto livello Barriera di astrazione C Fortran Modula-2 Cobol Basic Pascal Algol Ada Lisp Smalltalk Simula67 Scheme C++ Prolog ML AN - 1995 Linguaggi di alto livello IMPERATIVI Fortran Cobol
DettagliConcetto di stream. c i a o \0. c i a o \0. c i a o \0
Concetto di stream Uno stream è un flusso di byte che permette al programma di comunicare con l esterno (es. con periferiche di input/output) c i a o \0 c i a o \0 c i a o \0 Stream di uscita standard
Dettagli