ESE - 2016.10.14 - Matteo Ferroni

Prima&esercitazione&
Esercitazione:
tabelle di verità, costrutti
condizionali e cicli
Riccardo(Ca*aneo(
(
Dipar/mento(di(Ele*ronica,(Informazione(e(Biomedica(
[email protected]
Politecnico(di(Milano&
Alessandro A. Nacci
Prima&esercitazione&
Prima&esercitazione&
1
Ciao!
Agenda
(5’) Algebra di Boole e gli operatori logici
(20’) Esercizio 1: Tabella di verità
Riccardo Cattaneo
(20’) Esercizio 2: Tabella di-  verità
Studente PhD al NECSTLab
-  Autonomic (Operating) Systems
(5’) Un programma in C
(CHANGE project)
-  Reconfigurable architectures for HPC
(15’) Esercizio 3: caratteri MaIuScOli
systems (FASTER project)
(15’) Pausa
- exaFPGA (accelerazione hardware)
(20’) Esercizio 3: caratteri MaIuScOli con ciclo while
(20’) Esercizio 4: ciclo while con contatori
(30’) Esercizio 5: trova il maggiore
Prima&esercitazione&
2
Ciao!
Algebra di Boole e gli operatori logici
Riccardo Cattaneo
-  Studente PhD al NECSTLab
-  Autonomic (Operating) Systems
(CHANGE project)
-  Reconfigurable architectures for HPC
systems (FASTER project)
- exaFPGA (accelerazione hardware)
G. Boole
Prima&esercitazione&
3
Ciao!
Algebra di Boole e gli operatori logici
Un breve ripasso…
Riccardo Cattaneo
-  Studente PhD al NECSTLab
-  Autonomic (Operating) Systems
(CHANGE project)
-  Reconfigurable architectures for HPC
systems (FASTER project)
- exaFPGA (accelerazione hardware)
G. Boole
Prima&esercitazione&
3
Ciao!
Algebra di Boole e gli operatori logici
Un breve ripasso…
A
not A
0
1
1
0
Riccardo Cattaneo
-  Studente PhD al NECSTLab
-  Autonomic (Operating) Systems
(CHANGE project)
-  Reconfigurable architectures for HPC
systems (FASTER project)
- exaFPGA (accelerazione hardware)
G. Boole
Prima&esercitazione&
3
Ciao!
Algebra di Boole e gli operatori logici
Un breve ripasso…
A B A and B
A
not A
0 0
0
0
1
0 1
0
1
0
1 0
Riccardo Cattaneo
-  Studente
PhD al NECSTLab
0
1- 1 Autonomic
1
(Operating) Systems
(CHANGE project)
-  Reconfigurable architectures for HPC
systems (FASTER project)
- exaFPGA (accelerazione hardware)
G. Boole
Prima&esercitazione&
3
Ciao!
Algebra di Boole e gli operatori logici
Un breve ripasso…
A B A and B
A B A or B
A
not A
0 0
0
0 0
0
0
1
0 1
0
0 1
1
1
0
1 0
Riccardo Cattaneo
-  Studente
PhD
al
0
1 0
1 NECSTLab
1- 1 Autonomic
1
1 1(Operating)
1
Systems
(CHANGE project)
-  Reconfigurable architectures for HPC
systems (FASTER project)
- exaFPGA (accelerazione hardware)
G. Boole
Prima&esercitazione&
3
Ciao!
Algebra di Boole e gli operatori logici
Un breve ripasso…
A B A and B
A B A or B
A
not A
0 0
0
0 0
0
0
1
0 1
0
0 1
1
1
0
Riccardo Cattaneo
-  Studente
PhD
al
0
1 0
1 NECSTLab
1- 1 Autonomic
1
1 1(Operating)
1
Systems
(CHANGE project)
C’è
-  altro?
Reconfigurable architectures for HPC
systems (FASTER project)
- exaFPGA (accelerazione hardware)
1 0
G. Boole
Prima&esercitazione&
3
Ciao!
Algebra di Boole e gli operatori logici
Un breve ripasso…
A B A and B
A B A or B
A
not A
0 0
0
0 0
0
0
1
0 1
0
0 1
1
1
0
Riccardo Cattaneo
-  Studente
PhD
al
0
1 0
1 NECSTLab
1- 1 Autonomic
1
1 1(Operating)
1
Systems
(CHANGE project)
C’è
-  altro?
Reconfigurable architectures for HPC
systems (FASTER project)
- exaFPGA (accelerazione hardware)
1 0
A B A nand B
0 0
1
0 1
1
1 0
1
1 1
0
G. Boole
Prima&esercitazione&
3
Ciao!
Algebra di Boole e gli operatori logici
Un breve ripasso…
A B A and B
A B A or B
A
not A
0 0
0
0 0
0
0
1
0 1
0
0 1
1
1
0
Riccardo Cattaneo
-  Studente
PhD
al
0
1 0
1 NECSTLab
1- 1 Autonomic
1
1 1(Operating)
1
Systems
(CHANGE project)
C’è
-  altro?
Reconfigurable architectures for HPC
systems (FASTER project)
A B A nor B
- exaFPGA (accelerazione hardware)
1 0
A B A nand B
0 0
1
0 0
1
0 1
1
0 1
0
1 0
1
1 0
0
1 1
0
1 1
0
G. Boole
Prima&esercitazione&
3
Ciao!
Algebra di Boole e gli operatori logici
Un breve ripasso…
A B A and B
A B A or B
A
not A
0 0
0
0 0
0
0
1
0 1
0
0 1
1
1
0
Riccardo Cattaneo
-  Studente
PhD
al
0
1 0
1 NECSTLab
1- 1 Autonomic
1
1 1(Operating)
1
Systems
(CHANGE project)
C’è
-  altro?
Reconfigurable architectures for HPC
systems (FASTER project)
A B A nor B
A B A xor B
- exaFPGA (accelerazione
hardware)
1 0
A B A nand B
0 0
1
0 0
1
0 0
0
0 1
1
0 1
0
0 1
1
1 0
1
1 0
0
1 0
1
1 1
0
1 1
0
1 1
0
G. Boole
Prima&esercitazione&
3
Ciao!
Agenda
(5’) Algebra di Boole e gli operatori logici
(20’) Esercizio 1: Tabella di verità
Riccardo Cattaneo
(20’) Esercizio 2: Tabella di-  verità
Studente PhD al NECSTLab
-  Autonomic (Operating) Systems
(5’) Un programma in C
(CHANGE project)
-  Reconfigurable architectures for HPC
(15’) Esercizio 3: caratteri MaIuScOli
systems (FASTER project)
(15’) Pausa
- exaFPGA (accelerazione hardware)
(20’) Esercizio 3: caratteri MaIuScOli con ciclo while
(20’) Esercizio 4: ciclo while con contatori
(30’) Esercizio 5: trova il maggiore
Prima&esercitazione&
4
Ciao!
Esercizio 1
Ipotesi: l’utente deve inserire un intero pari e divisibile per 9
oppure un numero che non é primo e contemporaneamente pari
Riccardo Cattaneo
-  Studente PhD al NECSTLab
-  Autonomic (Operating) Systems
(CHANGE project)
-  Reconfigurable architectures for HPC
systems (FASTER project)
- exaFPGA (accelerazione hardware)
Prima&esercitazione&
5
Ciao!
Esercizio 1
Ipotesi: l’utente deve inserire un intero pari e divisibile per 9
oppure un numero che non é primo e contemporaneamente pari
Riccardo Cattaneo
-  Studente PhD al NECSTLab
-  Autonomic (Operating) Systems
(CHANGE project)
-  Reconfigurable architectures for HPC
systems (FASTER project)
- exaFPGA (accelerazione hardware)
Prima&esercitazione&
5
Ciao!
Esercizio 1
Ipotesi: l’utente deve inserire un intero pari e divisibile per 9
oppure un numero che non é primo e contemporaneamente pari
Riccardo Cattaneo
-  Studente PhD al NECSTLab
A e divisibile per 9B
Ipotesi: l’utente deve inserire
un
intero
pari
-  Autonomic (Operating) Systems
C e contemporaneamente pariA
oppure un numero che non é primo
(CHANGE project)
-  Reconfigurable architectures for HPC
systems (FASTER project)
- exaFPGA (accelerazione hardware)
Prima&esercitazione&
5
Ciao!
Esercizio 1
Ipotesi: l’utente deve inserire un intero pari e divisibile per 9
oppure un numero che non é primo e contemporaneamente pari
Riccardo Cattaneo
-  Studente PhD al NECSTLab
A e divisibile per 9B
Ipotesi: l’utente deve inserire
un
intero
pari
-  Autonomic (Operating) Systems
C e contemporaneamente pariA
oppure un numero che non é primo
(CHANGE project)
-  Reconfigurable architectures for HPC
systems (FASTER project)
- exaFPGA (accelerazione hardware)
Prima&esercitazione&
5
Ciao!
Esercizio 1
Ipotesi: l’utente deve inserire un intero pari e divisibile per 9
oppure un numero che non é primo e contemporaneamente pari
Riccardo Cattaneo
-  Studente PhD al NECSTLab
A e divisibile per 9B
Ipotesi: l’utente deve inserire
un
intero
pari
-  Autonomic (Operating) Systems
C e contemporaneamente pariA
oppure un numero che non é primo
(CHANGE project)
-  Reconfigurable architectures for HPC
systems (FASTER project)
- exaFPGA (accelerazione hardware)
Ipotesi: l’utente deve inserire un intero pariA e divisibile per 9B
oppure un numero che non é primoC e contemporaneamente pariA
Prima&esercitazione&
5
Ciao!
Esercizio 1
Ipotesi: l’utente deve inserire un intero pari e divisibile per 9
oppure un numero che non é primo e contemporaneamente pari
Riccardo Cattaneo
-  Studente PhD al NECSTLab
A e divisibile per 9B
Ipotesi: l’utente deve inserire
un
intero
pari
-  Autonomic (Operating) Systems
C e contemporaneamente pariA
oppure un numero che non é primo
(CHANGE project)
-  Reconfigurable architectures for HPC
systems (FASTER project)
- exaFPGA (accelerazione hardware)
Ipotesi: l’utente deve inserire un intero pariA e divisibile per 9B
oppure un numero che non é primoC e contemporaneamente pariA
Prima&esercitazione&
5
Ciao!
Esercizio 1
Ipotesi: l’utente deve inserire un intero pari e divisibile per 9
oppure un numero che non é primo e contemporaneamente pari
Riccardo Cattaneo
-  Studente PhD al NECSTLab
A e divisibile per 9B
Ipotesi: l’utente deve inserire
un
intero
pari
-  Autonomic (Operating) Systems
C e contemporaneamente pariA
oppure un numero che non é primo
(CHANGE project)
-  Reconfigurable architectures for HPC
systems (FASTER project)
- exaFPGA (accelerazione hardware)
Ipotesi: l’utente deve inserire un intero pariA e divisibile per 9B
oppure un numero che non é primoC e contemporaneamente pariA
D = (A and B) or (not(C) and A)
Prima&esercitazione&
5
Ciao!
Esercizio 1: Tabella di verità
Riccardo Cattaneo
-  Studente PhD al NECSTLab
-  Autonomic (Operating) Systems
(CHANGE project)
-  Reconfigurable architectures for HPC
systems (FASTER project)
- exaFPGA (accelerazione hardware)
Prima&esercitazione&
6
Ciao!
Esercizio 1: Tabella di verità
D = (A and B) or (not(C) and A)
Riccardo Cattaneo
-  Studente PhD al NECSTLab
-  Autonomic (Operating) Systems
(CHANGE project)
-  Reconfigurable architectures for HPC
systems (FASTER project)
- exaFPGA (accelerazione hardware)
Prima&esercitazione&
6
Ciao!
Esercizio 1: Tabella di verità
D = (A and B) or (not(C) and A)
Riccardo Cattaneo
-  Studente PhD al NECSTLab
-  Autonomic (Operating) Systems
(CHANGE project)
-  Reconfigurable architectures for HPC
systems (FASTER project)
- exaFPGA (accelerazione hardware)
Prima&esercitazione&
6
Ciao!
Esercizio 1: Tabella di verità
D = (A and B) or (not(C) and A)
Riccardo Cattaneo
A B C
-  Studente PhD al NECSTLab
-  Autonomic (Operating) Systems
(CHANGE project)
-  Reconfigurable architectures for HPC
systems (FASTER project)
- exaFPGA (accelerazione hardware)
Prima&esercitazione&
6
Ciao!
Esercizio 1: Tabella di verità
D = (A and B) or (not(C) and A)
Riccardo Cattaneo
A B C A and B
-  Studente PhD al NECSTLab
-  Autonomic (Operating) Systems
(CHANGE project)
-  Reconfigurable architectures for HPC
systems (FASTER project)
- exaFPGA (accelerazione hardware)
Prima&esercitazione&
6
Ciao!
Esercizio 1: Tabella di verità
D = (A and B) or (not(C) and A)
Riccardo Cattaneo
A B C A and B not(C)
-  Studente PhD al NECSTLab
-  Autonomic (Operating) Systems
(CHANGE project)
-  Reconfigurable architectures for HPC
systems (FASTER project)
- exaFPGA (accelerazione hardware)
Prima&esercitazione&
6
Ciao!
Esercizio 1: Tabella di verità
D = (A and B) or (not(C) and A)
Riccardo Cattaneo
-  Studente PhD al NECSTLab
-  Autonomic (Operating) Systems
A B C A and B not(C) not(C) and A
(CHANGE project)
-  Reconfigurable architectures for HPC
systems (FASTER project)
- exaFPGA (accelerazione hardware)
Prima&esercitazione&
6
Ciao!
Esercizio 1: Tabella di verità
D = (A and B) or (not(C) and A)
Riccardo Cattaneo
-  Studente PhD al NECSTLab
-  Autonomic (Operating) Systems
A B C A and B not(C) not(C) and A (A and B) or not(C) and A
(CHANGE project)
-  Reconfigurable architectures for HPC
systems (FASTER project)
- exaFPGA (accelerazione hardware)
Prima&esercitazione&
6
Ciao!
Esercizio 1: Tabella di verità
D = (A and B) or (not(C) and A)
Riccardo Cattaneo
-  Studente PhD al NECSTLab
-  Autonomic (Operating) Systems
A B C A and B not(C) not(C) and A (A and B) or not(C) and A
(CHANGE project)
0 0 0
-  Reconfigurable architectures for HPC
systems (FASTER project)
- exaFPGA (accelerazione hardware)
Prima&esercitazione&
6
Ciao!
Esercizio 1: Tabella di verità
D = (A and B) or (not(C) and A)
Riccardo Cattaneo
-  Studente PhD al NECSTLab
-  Autonomic (Operating) Systems
A B C A and B not(C) not(C) and A (A and B) or not(C) and A
(CHANGE project)
0 0 0
0
-  Reconfigurable architectures for HPC
systems (FASTER project)
- exaFPGA (accelerazione hardware)
Prima&esercitazione&
6
Ciao!
Esercizio 1: Tabella di verità
D = (A and B) or (not(C) and A)
Riccardo Cattaneo
-  Studente PhD al NECSTLab
-  Autonomic (Operating) Systems
A B C A and B not(C) not(C) and A (A and B) or not(C) and A
(CHANGE project)
0 0 0
0
1
-  Reconfigurable architectures for HPC
systems (FASTER project)
- exaFPGA (accelerazione hardware)
Prima&esercitazione&
6
Ciao!
Esercizio 1: Tabella di verità
D = (A and B) or (not(C) and A)
Riccardo Cattaneo
-  Studente PhD al NECSTLab
-  Autonomic (Operating) Systems
A B C A and B not(C) not(C) and A (A and B) or not(C) and A
(CHANGE project)
0 0 0
0
1
0
-  Reconfigurable architectures for HPC
systems (FASTER project)
- exaFPGA (accelerazione hardware)
Prima&esercitazione&
6
Ciao!
Esercizio 1: Tabella di verità
D = (A and B) or (not(C) and A)
Riccardo Cattaneo
-  Studente PhD al NECSTLab
-  Autonomic (Operating) Systems
A B C A and B not(C) not(C) and A (A and B) or not(C) and A
(CHANGE project)
0 0 0
0
1
0
0
-  Reconfigurable architectures for HPC
systems (FASTER project)
- exaFPGA (accelerazione hardware)
Prima&esercitazione&
6
Ciao!
Esercizio 1: Tabella di verità
D = (A and B) or (not(C) and A)
Riccardo Cattaneo
-  Studente PhD al NECSTLab
-  Autonomic (Operating) Systems
A B C A and B not(C) not(C) and A (A and B) or not(C) and A
(CHANGE project)
0 0 0
0
1
0
0
-  Reconfigurable architectures for HPC
0 0 1
systems (FASTER project)
- exaFPGA (accelerazione hardware)
Prima&esercitazione&
6
Ciao!
Esercizio 1: Tabella di verità
D = (A and B) or (not(C) and A)
Riccardo Cattaneo
-  Studente PhD al NECSTLab
-  Autonomic (Operating) Systems
A B C A and B not(C) not(C) and A (A and B) or not(C) and A
(CHANGE project)
0 0 0
0
1
0
0
-  Reconfigurable architectures for HPC
0 0 1
0
systems (FASTER project)
- exaFPGA (accelerazione hardware)
Prima&esercitazione&
6
Ciao!
Esercizio 1: Tabella di verità
D = (A and B) or (not(C) and A)
Riccardo Cattaneo
-  Studente PhD al NECSTLab
-  Autonomic (Operating) Systems
A B C A and B not(C) not(C) and A (A and B) or not(C) and A
(CHANGE project)
0 0 0
0
1
0
0
-  Reconfigurable architectures for HPC
0 0 1
0
0
systems (FASTER project)
- exaFPGA (accelerazione hardware)
Prima&esercitazione&
6
Ciao!
Esercizio 1: Tabella di verità
D = (A and B) or (not(C) and A)
Riccardo Cattaneo
-  Studente PhD al NECSTLab
-  Autonomic (Operating) Systems
A B C A and B not(C) not(C) and A (A and B) or not(C) and A
(CHANGE project)
0 0 0
0
1
0
0
-  0Reconfigurable architectures for HPC
0 0 1
0
0
systems (FASTER project)
- exaFPGA (accelerazione hardware)
Prima&esercitazione&
6
Ciao!
Esercizio 1: Tabella di verità
D = (A and B) or (not(C) and A)
Riccardo Cattaneo
-  Studente PhD al NECSTLab
-  Autonomic (Operating) Systems
A B C A and B not(C) not(C) and A (A and B) or not(C) and A
(CHANGE project)
0 0 0
0
1
0
0
-  0Reconfigurable
architectures for HPC
0 0 1
0
0
0
systems (FASTER project)
- exaFPGA (accelerazione hardware)
Prima&esercitazione&
6
Ciao!
Esercizio 1: Tabella di verità
D = (A and B) or (not(C) and A)
Riccardo Cattaneo
-  Studente PhD al NECSTLab
-  Autonomic (Operating) Systems
A B C A and B not(C) not(C) and A (A and B) or not(C) and A
(CHANGE project)
0 0 0
0
1
0
0
-  0Reconfigurable
architectures for HPC
0 0 1
0
0
0
systems (FASTER project)
0 1 0
- exaFPGA (accelerazione hardware)
Prima&esercitazione&
6
Ciao!
Esercizio 1: Tabella di verità
D = (A and B) or (not(C) and A)
Riccardo Cattaneo
-  Studente PhD al NECSTLab
-  Autonomic (Operating) Systems
A B C A and B not(C) not(C) and A (A and B) or not(C) and A
(CHANGE project)
0 0 0
0
1
0
0
-  0Reconfigurable
architectures for HPC
0 0 1
0
0
0
systems (FASTER project)
0 1 0
0
- exaFPGA (accelerazione hardware)
Prima&esercitazione&
6
Ciao!
Esercizio 1: Tabella di verità
D = (A and B) or (not(C) and A)
Riccardo Cattaneo
-  Studente PhD al NECSTLab
-  Autonomic (Operating) Systems
A B C A and B not(C) not(C) and A (A and B) or not(C) and A
(CHANGE project)
0 0 0
0
1
0
0
-  0Reconfigurable
architectures for HPC
0 0 1
0
0
0
systems (FASTER project)
0 1 0
0
1
- exaFPGA (accelerazione hardware)
Prima&esercitazione&
6
Ciao!
Esercizio 1: Tabella di verità
D = (A and B) or (not(C) and A)
Riccardo Cattaneo
-  Studente PhD al NECSTLab
-  Autonomic (Operating) Systems
A B C A and B not(C) not(C) and A (A and B) or not(C) and A
(CHANGE project)
0 0 0
0
1
0
0
-  0Reconfigurable
architectures for HPC
0 0 1
0
0
0
0 1 0
0
1
0systems (FASTER project)
- exaFPGA (accelerazione hardware)
Prima&esercitazione&
6
Ciao!
Esercizio 1: Tabella di verità
D = (A and B) or (not(C) and A)
Riccardo Cattaneo
-  Studente PhD al NECSTLab
-  Autonomic (Operating) Systems
A B C A and B not(C) not(C) and A (A and B) or not(C) and A
(CHANGE project)
0 0 0
0
1
0
0
-  0Reconfigurable
architectures for HPC
0 0 1
0
0
0
project)
0 1 0
0
1
0systems (FASTER
0
- exaFPGA (accelerazione hardware)
Prima&esercitazione&
6
Ciao!
Esercizio 1: Tabella di verità
D = (A and B) or (not(C) and A)
Riccardo Cattaneo
-  Studente PhD al NECSTLab
-  Autonomic (Operating) Systems
A B C A and B not(C) not(C) and A (A and B) or not(C) and A
(CHANGE project)
0 0 0
0
1
0
0
-  0Reconfigurable
architectures for HPC
0 0 1
0
0
0
project)
0 1 0
0
1
0systems (FASTER
0
0 1 1
- exaFPGA (accelerazione hardware)
Prima&esercitazione&
6
Ciao!
Esercizio 1: Tabella di verità
D = (A and B) or (not(C) and A)
Riccardo Cattaneo
-  Studente PhD al NECSTLab
-  Autonomic (Operating) Systems
A B C A and B not(C) not(C) and A (A and B) or not(C) and A
(CHANGE project)
0 0 0
0
1
0
0
-  0Reconfigurable
architectures for HPC
0 0 1
0
0
0
project)
0 1 0
0
1
0systems (FASTER
0
0 1 1
0
- exaFPGA (accelerazione hardware)
Prima&esercitazione&
6
Ciao!
Esercizio 1: Tabella di verità
D = (A and B) or (not(C) and A)
Riccardo Cattaneo
-  Studente PhD al NECSTLab
-  Autonomic (Operating) Systems
A B C A and B not(C) not(C) and A (A and B) or not(C) and A
(CHANGE project)
0 0 0
0
1
0
0
-  0Reconfigurable
architectures for HPC
0 0 1
0
0
0
project)
0 1 0
0
1
0systems (FASTER
0
0 1 1
0
0
- exaFPGA (accelerazione hardware)
Prima&esercitazione&
6
Ciao!
Esercizio 1: Tabella di verità
D = (A and B) or (not(C) and A)
Riccardo Cattaneo
-  Studente PhD al NECSTLab
-  Autonomic (Operating) Systems
A B C A and B not(C) not(C) and A (A and B) or not(C) and A
(CHANGE project)
0 0 0
0
1
0
0
-  0Reconfigurable
architectures for HPC
0 0 1
0
0
0
project)
0 1 0
0
1
0systems (FASTER
0
0 1 1
0
0
- 0exaFPGA (accelerazione hardware)
Prima&esercitazione&
6
Ciao!
Esercizio 1: Tabella di verità
D = (A and B) or (not(C) and A)
Riccardo Cattaneo
-  Studente PhD al NECSTLab
-  Autonomic (Operating) Systems
A B C A and B not(C) not(C) and A (A and B) or not(C) and A
(CHANGE project)
0 0 0
0
1
0
0
-  0Reconfigurable
architectures for HPC
0 0 1
0
0
0
project)
0 1 0
0
1
0systems (FASTER
0
0 1 1
0
0
0
- 0exaFPGA (accelerazione
hardware)
Prima&esercitazione&
6
Ciao!
Esercizio 1: Tabella di verità
D = (A and B) or (not(C) and A)
Riccardo Cattaneo
-  Studente PhD al NECSTLab
-  Autonomic (Operating) Systems
A B C A and B not(C) not(C) and A (A and B) or not(C) and A
(CHANGE project)
0 0 0
0
1
0
0
-  0Reconfigurable
architectures for HPC
0 0 1
0
0
0
project)
0 1 0
0
1
0systems (FASTER
0
0 1 1
0
0
0
- 0exaFPGA (accelerazione
hardware)
1 0 0
Prima&esercitazione&
6
Ciao!
Esercizio 1: Tabella di verità
D = (A and B) or (not(C) and A)
Riccardo Cattaneo
-  Studente PhD al NECSTLab
-  Autonomic (Operating) Systems
A B C A and B not(C) not(C) and A (A and B) or not(C) and A
(CHANGE project)
0 0 0
0
1
0
0
-  0Reconfigurable
architectures for HPC
0 0 1
0
0
0
project)
0 1 0
0
1
0systems (FASTER
0
0 1 1
0
0
0
- 0exaFPGA (accelerazione
hardware)
1 0 0
0
Prima&esercitazione&
6
Ciao!
Esercizio 1: Tabella di verità
D = (A and B) or (not(C) and A)
Riccardo Cattaneo
-  Studente PhD al NECSTLab
-  Autonomic (Operating) Systems
A B C A and B not(C) not(C) and A (A and B) or not(C) and A
(CHANGE project)
0 0 0
0
1
0
0
-  0Reconfigurable
architectures for HPC
0 0 1
0
0
0
project)
0 1 0
0
1
0systems (FASTER
0
0 1 1
0
0
0
- 0exaFPGA (accelerazione
hardware)
1 0 0
0
1
Prima&esercitazione&
6
Ciao!
Esercizio 1: Tabella di verità
D = (A and B) or (not(C) and A)
Riccardo Cattaneo
-  Studente PhD al NECSTLab
-  Autonomic (Operating) Systems
A B C A and B not(C) not(C) and A (A and B) or not(C) and A
(CHANGE project)
0 0 0
0
1
0
0
-  0Reconfigurable
architectures for HPC
0 0 1
0
0
0
project)
0 1 0
0
1
0systems (FASTER
0
0 1 1
0
0
0
- 0exaFPGA (accelerazione
hardware)
1 0 0
0
1
1
Prima&esercitazione&
6
Ciao!
Esercizio 1: Tabella di verità
D = (A and B) or (not(C) and A)
Riccardo Cattaneo
-  Studente PhD al NECSTLab
-  Autonomic (Operating) Systems
A B C A and B not(C) not(C) and A (A and B) or not(C) and A
(CHANGE project)
0 0 0
0
1
0
0
-  0Reconfigurable
architectures for HPC
0 0 1
0
0
0
project)
0 1 0
0
1
0systems (FASTER
0
0 1 1
0
0
0
- 0exaFPGA (accelerazione
hardware)
1 0 0
0
1
1
Prima&esercitazione&
1
6
Ciao!
Esercizio 1: Tabella di verità
D = (A and B) or (not(C) and A)
Riccardo Cattaneo
-  Studente PhD al NECSTLab
-  Autonomic (Operating) Systems
A B C A and B not(C) not(C) and A (A and B) or not(C) and A
(CHANGE project)
0 0 0
0
1
0
0
-  0Reconfigurable
architectures for HPC
0 0 1
0
0
0
project)
0 1 0
0
1
0systems (FASTER
0
0 1 1
0
0
0
- 0exaFPGA (accelerazione
hardware)
1 0 0
0
1
1
1
1 0 1
Prima&esercitazione&
6
Ciao!
Esercizio 1: Tabella di verità
D = (A and B) or (not(C) and A)
Riccardo Cattaneo
-  Studente PhD al NECSTLab
-  Autonomic (Operating) Systems
A B C A and B not(C) not(C) and A (A and B) or not(C) and A
(CHANGE project)
0 0 0
0
1
0
0
-  0Reconfigurable
architectures for HPC
0 0 1
0
0
0
project)
0 1 0
0
1
0systems (FASTER
0
0 1 1
0
0
0
- 0exaFPGA (accelerazione
hardware)
1 0 0
0
1 0 1
0
1
1
Prima&esercitazione&
1
6
Ciao!
Esercizio 1: Tabella di verità
D = (A and B) or (not(C) and A)
Riccardo Cattaneo
-  Studente PhD al NECSTLab
-  Autonomic (Operating) Systems
A B C A and B not(C) not(C) and A (A and B) or not(C) and A
(CHANGE project)
0 0 0
0
1
0
0
-  0Reconfigurable
architectures for HPC
0 0 1
0
0
0
project)
0 1 0
0
1
0systems (FASTER
0
0 1 1
0
0
0
- 0exaFPGA (accelerazione
hardware)
1 0 0
0
1
1 0 1
0
0
1
Prima&esercitazione&
1
6
Ciao!
Esercizio 1: Tabella di verità
D = (A and B) or (not(C) and A)
Riccardo Cattaneo
-  Studente PhD al NECSTLab
-  Autonomic (Operating) Systems
A B C A and B not(C) not(C) and A (A and B) or not(C) and A
(CHANGE project)
0 0 0
0
1
0
0
-  0Reconfigurable
architectures for HPC
0 0 1
0
0
0
project)
0 1 0
0
1
0systems (FASTER
0
0 1 1
0
0
0
- 0exaFPGA (accelerazione
hardware)
1 0 0
0
1
1
1 0 1
0
0
0
Prima&esercitazione&
1
6
Ciao!
Esercizio 1: Tabella di verità
D = (A and B) or (not(C) and A)
Riccardo Cattaneo
-  Studente PhD al NECSTLab
-  Autonomic (Operating) Systems
A B C A and B not(C) not(C) and A (A and B) or not(C) and A
(CHANGE project)
0 0 0
0
1
0
0
-  0Reconfigurable
architectures for HPC
0 0 1
0
0
0
project)
0 1 0
0
1
0systems (FASTER
0
0 1 1
0
0
0
- 0exaFPGA (accelerazione
hardware)
1 0 0
0
1
1
1
1 0 1
0
0
0
0
Prima&esercitazione&
6
Ciao!
Esercizio 1: Tabella di verità
D = (A and B) or (not(C) and A)
Riccardo Cattaneo
-  Studente PhD al NECSTLab
-  Autonomic (Operating) Systems
A B C A and B not(C) not(C) and A (A and B) or not(C) and A
(CHANGE project)
0 0 0
0
1
0
0
-  0Reconfigurable
architectures for HPC
0 0 1
0
0
0
project)
0 1 0
0
1
0systems (FASTER
0
0 1 1
0
0
0
- 0exaFPGA (accelerazione
hardware)
1 0 0
0
1
1
1
1 0 1
0
0
0
0
1 1 0
Prima&esercitazione&
6
Ciao!
Esercizio 1: Tabella di verità
D = (A and B) or (not(C) and A)
Riccardo Cattaneo
-  Studente PhD al NECSTLab
-  Autonomic (Operating) Systems
A B C A and B not(C) not(C) and A (A and B) or not(C) and A
(CHANGE project)
0 0 0
0
1
0
0
-  0Reconfigurable
architectures for HPC
0 0 1
0
0
0
project)
0 1 0
0
1
0systems (FASTER
0
0 1 1
0
0
0
- 0exaFPGA (accelerazione
hardware)
1 0 0
0
1
1
1
1 0 1
0
0
0
0
1 1 0
1
Prima&esercitazione&
6
Ciao!
Esercizio 1: Tabella di verità
D = (A and B) or (not(C) and A)
Riccardo Cattaneo
-  Studente PhD al NECSTLab
-  Autonomic (Operating) Systems
A B C A and B not(C) not(C) and A (A and B) or not(C) and A
(CHANGE project)
0 0 0
0
1
0
0
-  0Reconfigurable
architectures for HPC
0 0 1
0
0
0
project)
0 1 0
0
1
0systems (FASTER
0
0 1 1
0
0
0
- 0exaFPGA (accelerazione
hardware)
1 0 0
0
1
1
1
1 0 1
0
0
0
0
1 1 0
1
1
Prima&esercitazione&
6
Ciao!
Esercizio 1: Tabella di verità
D = (A and B) or (not(C) and A)
Riccardo Cattaneo
-  Studente PhD al NECSTLab
-  Autonomic (Operating) Systems
A B C A and B not(C) not(C) and A (A and B) or not(C) and A
(CHANGE project)
0 0 0
0
1
0
0
-  0Reconfigurable
architectures for HPC
0 0 1
0
0
0
project)
0 1 0
0
1
0systems (FASTER
0
0 1 1
0
0
0
- 0exaFPGA (accelerazione
hardware)
1 0 0
0
1
1
1
1 0 1
0
0
0
0
1 1 0
1
1
1
Prima&esercitazione&
6
Ciao!
Esercizio 1: Tabella di verità
D = (A and B) or (not(C) and A)
Riccardo Cattaneo
-  Studente PhD al NECSTLab
-  Autonomic (Operating) Systems
A B C A and B not(C) not(C) and A (A and B) or not(C) and A
(CHANGE project)
0 0 0
0
1
0
0
-  0Reconfigurable
architectures for HPC
0 0 1
0
0
0
project)
0 1 0
0
1
0systems (FASTER
0
0 1 1
0
0
0
- 0exaFPGA (accelerazione
hardware)
1 0 0
0
1
1
1
1 0 1
0
0
0
0
1 1 0
1
1
1
1
Prima&esercitazione&
6
Ciao!
Esercizio 1: Tabella di verità
D = (A and B) or (not(C) and A)
Riccardo Cattaneo
-  Studente PhD al NECSTLab
-  Autonomic (Operating) Systems
A B C A and B not(C) not(C) and A (A and B) or not(C) and A
(CHANGE project)
0 0 0
0
1
0
0
-  0Reconfigurable
architectures for HPC
0 0 1
0
0
0
project)
0 1 0
0
1
0systems (FASTER
0
0 1 1
0
0
0
- 0exaFPGA (accelerazione
hardware)
1 0 0
0
1
1
1
1 0 1
0
0
0
0
1 1 0
1
1
1
1
1 1 1
Prima&esercitazione&
6
Ciao!
Esercizio 1: Tabella di verità
D = (A and B) or (not(C) and A)
Riccardo Cattaneo
-  Studente PhD al NECSTLab
-  Autonomic (Operating) Systems
A B C A and B not(C) not(C) and A (A and B) or not(C) and A
(CHANGE project)
0 0 0
0
1
0
0
-  0Reconfigurable
architectures for HPC
0 0 1
0
0
0
project)
0 1 0
0
1
0systems (FASTER
0
0 1 1
0
0
0
- 0exaFPGA (accelerazione
hardware)
1 0 0
0
1
1
1
1 0 1
0
0
0
0
1 1 0
1
1
1
1
1 1 1
1
Prima&esercitazione&
6
Ciao!
Esercizio 1: Tabella di verità
D = (A and B) or (not(C) and A)
Riccardo Cattaneo
-  Studente PhD al NECSTLab
-  Autonomic (Operating) Systems
A B C A and B not(C) not(C) and A (A and B) or not(C) and A
(CHANGE project)
0 0 0
0
1
0
0
-  0Reconfigurable
architectures for HPC
0 0 1
0
0
0
project)
0 1 0
0
1
0systems (FASTER
0
0 1 1
0
0
0
- 0exaFPGA (accelerazione
hardware)
1 0 0
0
1
1
1
1 0 1
0
0
0
0
1 1 0
1
1
1
1
1 1 1
1
0
Prima&esercitazione&
6
Ciao!
Esercizio 1: Tabella di verità
D = (A and B) or (not(C) and A)
Riccardo Cattaneo
-  Studente PhD al NECSTLab
-  Autonomic (Operating) Systems
A B C A and B not(C) not(C) and A (A and B) or not(C) and A
(CHANGE project)
0 0 0
0
1
0
0
-  0Reconfigurable
architectures for HPC
0 0 1
0
0
0
project)
0 1 0
0
1
0systems (FASTER
0
0 1 1
0
0
0
- 0exaFPGA (accelerazione
hardware)
1 0 0
0
1
1
1
1 0 1
0
0
0
0
1 1 0
1
1
1
1
1 1 1
1
0
0
Prima&esercitazione&
6
Ciao!
Esercizio 1: Tabella di verità
D = (A and B) or (not(C) and A)
Riccardo Cattaneo
-  Studente PhD al NECSTLab
-  Autonomic (Operating) Systems
A B C A and B not(C) not(C) and A (A and B) or not(C) and A
(CHANGE project)
0 0 0
0
1
0
0
-  0Reconfigurable
architectures for HPC
0 0 1
0
0
0
project)
0 1 0
0
1
0systems (FASTER
0
0 1 1
0
0
0
- 0exaFPGA (accelerazione
hardware)
1 0 0
0
1
1
1
1 0 1
0
0
0
0
1 1 0
1
1
1
1
1 1 1
1
0
0
1
Prima&esercitazione&
6
Ciao!
Agenda
(5’) Algebra di Boole e gli operatori logici
(20’) Esercizio 1: Tabella di verità
Riccardo Cattaneo
(20’) Esercizio 2: Tabella di-  verità
Studente PhD al NECSTLab
-  Autonomic (Operating) Systems
(5’) Un programma in C
(CHANGE project)
-  Reconfigurable architectures for HPC
(15’) Esercizio 3: caratteri MaIuScOli
systems (FASTER project)
(15’) Pausa
- exaFPGA (accelerazione hardware)
(20’) Esercizio 3: caratteri MaIuScOli con ciclo while
(20’) Esercizio 4: ciclo while con contatori
(30’) Esercizio 5: trova il maggiore
Prima&esercitazione&
7
Ciao!
Esercizio 2
Riccardo Cattaneo
-  Studente PhD al NECSTLab
-  Autonomic (Operating) Systems
(CHANGE project)
-  Reconfigurable architectures for HPC
systems (FASTER project)
- exaFPGA (accelerazione hardware)
Prima&esercitazione&
8
Ciao!
Esercizio 2
Ipotesi: l’utente deve inserire un intero pari e divisibile per 9 oppure primo; e
contemporaneamente uno che non sia: pari e divisibile per 9 oppure primo
Riccardo Cattaneo
-  Studente PhD al NECSTLab
-  Autonomic (Operating) Systems
(CHANGE project)
-  Reconfigurable architectures for HPC
systems (FASTER project)
- exaFPGA (accelerazione hardware)
Prima&esercitazione&
8
Ciao!
Esercizio 2
Ipotesi: l’utente deve inserire un intero pari e divisibile per 9 oppure primo; e
contemporaneamente uno che non sia: pari e divisibile per 9 oppure primo
Riccardo Cattaneo
-  Studente PhD al NECSTLab
-  Autonomic (Operating) Systems
(CHANGE project)
-  Reconfigurable architectures for HPC
systems (FASTER project)
- exaFPGA (accelerazione hardware)
Prima&esercitazione&
8
Ciao!
Esercizio 2
Ipotesi: l’utente deve inserire un intero pari e divisibile per 9 oppure primo; e
contemporaneamente uno che non sia: pari e divisibile per 9 oppure primo
Riccardo Cattaneo
-  pari
Studente
PhD alper
NECSTLab
A e divisibile
Ipotesi: l’utente deve inserire un intero
9B oppure primoC;
e contemporaneamente uno che - nonAutonomic
sia: pariA e (Operating)
divisibile perSystems
9B oppure
C
(CHANGE
project)
primo
-  Reconfigurable architectures for HPC
systems (FASTER project)
- exaFPGA (accelerazione hardware)
Prima&esercitazione&
8
Ciao!
Esercizio 2
Ipotesi: l’utente deve inserire un intero pari e divisibile per 9 oppure primo; e
contemporaneamente uno che non sia: pari e divisibile per 9 oppure primo
Riccardo Cattaneo
-  pari
Studente
PhD alper
NECSTLab
A e divisibile
Ipotesi: l’utente deve inserire un intero
9B oppure primoC;
e contemporaneamente uno che - nonAutonomic
sia: pariA e (Operating)
divisibile perSystems
9B oppure
C
(CHANGE
project)
primo
-  Reconfigurable architectures for HPC
systems (FASTER project)
- exaFPGA (accelerazione hardware)
Prima&esercitazione&
8
Ciao!
Esercizio 2
Ipotesi: l’utente deve inserire un intero pari e divisibile per 9 oppure primo; e
contemporaneamente uno che non sia: pari e divisibile per 9 oppure primo
Riccardo Cattaneo
-  pari
Studente
PhD alper
NECSTLab
A e divisibile
Ipotesi: l’utente deve inserire un intero
9B oppure primoC;
e contemporaneamente uno che - nonAutonomic
sia: pariA e (Operating)
divisibile perSystems
9B oppure
C
(CHANGE
project)
primo
-  Reconfigurable architectures for HPC
systems (FASTER project)
- exaFPGA (accelerazione hardware)
Ipotesi: l’utente deve inserire un intero pariA e divisibile per 9B oppure primoC;
e contemporaneamente uno che non sia: pariA e divisibile per 9B oppure
primoC
Prima&esercitazione&
8
Ciao!
Esercizio 2
Ipotesi: l’utente deve inserire un intero pari e divisibile per 9 oppure primo; e
contemporaneamente uno che non sia: pari e divisibile per 9 oppure primo
Riccardo Cattaneo
-  pari
Studente
PhD alper
NECSTLab
A e divisibile
Ipotesi: l’utente deve inserire un intero
9B oppure primoC;
e contemporaneamente uno che - nonAutonomic
sia: pariA e (Operating)
divisibile perSystems
9B oppure
C
(CHANGE
project)
primo
-  Reconfigurable architectures for HPC
systems (FASTER project)
- exaFPGA (accelerazione hardware)
Ipotesi: l’utente deve inserire un intero pariA e divisibile per 9B oppure primoC;
e contemporaneamente uno che non sia: pariA e divisibile per 9B oppure
primoC
Prima&esercitazione&
8
Ciao!
Esercizio 2
Ipotesi: l’utente deve inserire un intero pari e divisibile per 9 oppure primo; e
contemporaneamente uno che non sia: pari e divisibile per 9 oppure primo
Riccardo Cattaneo
-  pari
Studente
PhD alper
NECSTLab
A e divisibile
Ipotesi: l’utente deve inserire un intero
9B oppure primoC;
e contemporaneamente uno che - nonAutonomic
sia: pariA e (Operating)
divisibile perSystems
9B oppure
C
(CHANGE
project)
primo
-  Reconfigurable architectures for HPC
systems (FASTER project)
- exaFPGA (accelerazione hardware)
Ipotesi: l’utente deve inserire un intero pariA e divisibile per 9B oppure primoC;
e contemporaneamente uno che non sia: pariA e divisibile per 9B oppure
primoC
D=[(A and B) or C] and {not[(A and B) or C]}
Prima&esercitazione&
8
Ciao!
Esercizio 2: Tabella di verità
Riccardo Cattaneo
-  Studente PhD al NECSTLab
-  Autonomic (Operating) Systems
(CHANGE project)
-  Reconfigurable architectures for HPC
systems (FASTER project)
- exaFPGA (accelerazione hardware)
Prima&esercitazione&
9
Ciao!
Esercizio 2: Tabella di verità
D=[(A and B) or C] and {not[(A and B) or C]}
Riccardo Cattaneo
-  Studente PhD al NECSTLab
-  Autonomic (Operating) Systems
(CHANGE project)
-  Reconfigurable architectures for HPC
systems (FASTER project)
- exaFPGA (accelerazione hardware)
Prima&esercitazione&
9
Ciao!
Esercizio 2: Tabella di verità
D=[(A and B) or C] and {not[(A and B) or C]}
Riccardo Cattaneo
-  Studente PhD al NECSTLab
-  Autonomic (Operating) Systems
(CHANGE project)
-  Reconfigurable architectures for HPC
systems (FASTER project)
- exaFPGA (accelerazione hardware)
Prima&esercitazione&
9
Ciao!
Esercizio 2: Tabella di verità
D=[(A and B) or C] and {not[(A and B) or C]}
Riccardo Cattaneo
A B C
0 0 0
0 0 1
0 1 0
0 1 1
1 0 0
-  Studente PhD al NECSTLab
-  Autonomic (Operating) Systems
(CHANGE project)
-  Reconfigurable architectures for HPC
systems (FASTER project)
- exaFPGA (accelerazione hardware)
1 0 1
1 1 0
1 1 1
Prima&esercitazione&
9
Ciao!
Esercizio 2: Tabella di verità
D=[(A and B) or C] and {not[(A and B) or C]}
Riccardo Cattaneo
A B C A and B
0 0 0
0
0 0 1
0
0 1 0
0
0 1 1
0
1 0 0
0
1 0 1
0
1 1 0
1
1 1 1
1
-  Studente PhD al NECSTLab
-  Autonomic (Operating) Systems
(CHANGE project)
-  Reconfigurable architectures for HPC
systems (FASTER project)
- exaFPGA (accelerazione hardware)
Prima&esercitazione&
9
Ciao!
Esercizio 2: Tabella di verità
D=[(A and B) or C] and {not[(A and B) or C]}
Riccardo Cattaneo
A B C A and B
(A and B) or C
0 0 0
0
0
0 0 1
0
1
0 1 0
0
0
0 1 1
0
1
1 0 0
0
0
1 0 1
0
1
1 1 0
1
1
1 1 1
1
1
-  Studente PhD al NECSTLab
-  Autonomic (Operating) Systems
(CHANGE project)
-  Reconfigurable architectures for HPC
systems (FASTER project)
- exaFPGA (accelerazione hardware)
Prima&esercitazione&
9
Ciao!
Esercizio 2: Tabella di verità
D=[(A and B) or C] and {not[(A and B) or C]}
Riccardo Cattaneo
A B C A and B
(A and B) or C
-  Studente PhD al NECSTLab
not[(A and
or C]
-  B)Autonomic
(Operating) Systems
1
(CHANGE project)
0
- 1 Reconfigurable architectures for HPC
0 systems (FASTER project)
- 1 exaFPGA (accelerazione hardware)
0 0 0
0
0
0 0 1
0
1
0 1 0
0
0
0 1 1
0
1
1 0 0
0
0
1 0 1
0
1
0
1 1 0
1
1
0
1 1 1
1
1
0
Prima&esercitazione&
9
Ciao!
Esercizio 2: Tabella di verità
D=[(A and B) or C] and {not[(A and B) or C]}
Riccardo Cattaneo
A B C A and B
(A and B) or C
-  Studente PhD al NECSTLab
not[(A and
or C] [(A and B) or C]
and {not[(A and B) orSystems
C]}
-  B)Autonomic
(Operating)
1
0
(CHANGE project)
0
0
- 1 Reconfigurable0 architectures for HPC
project)
0 systems (FASTER
0
0
- 1 exaFPGA (accelerazione
hardware)
0 0 0
0
0
0 0 1
0
1
0 1 0
0
0
0 1 1
0
1
1 0 0
0
0
1 0 1
0
1
0
0
1 1 0
1
1
0
0
1 1 1
1
1
0
0
Prima&esercitazione&
9
Ciao!
Esercizio 2: Tabella di verità
D=[(A and B) or C] and {not[(A and B) or C]}
Riccardo Cattaneo
A B C A and B
(A and B) or C
-  Studente PhD al NECSTLab
not[(A and
or C] [(A and B) or C]
and {not[(A and B) orSystems
C]}
-  B)Autonomic
(Operating)
1
0
(CHANGE project)
0
0
- 1 Reconfigurable0 architectures for HPC
project)
0 systems (FASTER
0
0
- 1 exaFPGA (accelerazione
hardware)
0 0 0
0
0
0 0 1
0
1
0 1 0
0
0
0 1 1
0
1
1 0 0
0
0
1 0 1
0
1
0
0
1 1 0
1
1
0
0
1 1 1
1
1
0
0
Take away: leggete il testo prima di lanciarvi sui calcoli!
Prima&esercitazione&
9
Ciao!
Agenda
(5’) Algebra di Boole e gli operatori logici
(20’) Esercizio 1: Tabella di verità
Riccardo Cattaneo
(20’) Esercizio 2: Tabella di-  verità
Studente PhD al NECSTLab
-  Autonomic (Operating) Systems
(5’) Un programma in C
(CHANGE project)
-  Reconfigurable architectures for HPC
(15’) Esercizio 3: caratteri MaIuScOli
systems (FASTER project)
(15’) Pausa
- exaFPGA (accelerazione hardware)
(20’) Esercizio 3: caratteri MaIuScOli con ciclo while
(20’) Esercizio 4: ciclo while con contatori
(30’) Esercizio 5: trova il maggiore
Prima&esercitazione&
10
Ciao!
Un programma in C
Riccardo Cattaneo
-  Studente PhD al NECSTLab
-  Autonomic (Operating) Systems
(CHANGE project)
-  Reconfigurable architectures for HPC
systems (FASTER project)
- exaFPGA (accelerazione hardware)
Prima&esercitazione&
11
Ciao!
Un programma in C
parte dichiarativa globale
inclusione librerie
/ per poter invocare funzioni utili (i/o, ...) /
dichiarazione di variabili globali e funzioni
Riccardo Cattaneo
-  Studente PhD al NECSTLab
-  Autonomic (Operating) Systems
(CHANGE project)
-  Reconfigurable architectures for HPC
systems (FASTER project)
- exaFPGA (accelerazione hardware)
Prima&esercitazione&
11
Ciao!
Un programma in C
parte dichiarativa globale
inclusione librerie
/ per poter invocare funzioni utili (i/o, ...) /
dichiarazione di variabili globali e funzioni
int main ( ) {
Riccardo Cattaneo
-  Studente PhD al NECSTLab
-  Autonomic (Operating) Systems
(CHANGE project)
-  Reconfigurable architectures for HPC
systems (FASTER project)
- exaFPGA (accelerazione hardware)
Prima&esercitazione&
11
Ciao!
Un programma in C
parte dichiarativa globale
inclusione librerie
/ per poter invocare funzioni utili (i/o, ...) /
dichiarazione di variabili globali e funzioni
int main ( ) {
Riccardo Cattaneo
-  locale
Studente
parte dichiarativa
PhD al NECSTLab
-  Autonomic (Operating) Systems
dichiarazione di variabili locali
(CHANGE project)
-  Reconfigurable architectures for HPC
systems (FASTER project)
- exaFPGA (accelerazione hardware)
Prima&esercitazione&
11
Ciao!
Un programma in C
parte dichiarativa globale
inclusione librerie
/ per poter invocare funzioni utili (i/o, ...) /
dichiarazione di variabili globali e funzioni
int main ( ) {
Riccardo Cattaneo
PhD al NECSTLab
-  Autonomic (Operating) Systems
dichiarazione di variabili locali
(CHANGE project)
architectures
for HPC
istruzione 1;
/ tutti i tipi-  diReconfigurable
operazioni, e cioè:
/
istruzione 2;
/ istr. di assegnamento
/
systems (FASTER
project)
istruzione 3;
/ istr. di input
/ output(accelerazione
/
- exaFPGA
hardware)
istruzione 4;
...
istruzione N;
-  locale
Studente
parte dichiarativa
/ istr. di controllo (condizionali, cicli) /
parte esecutiva
Prima&esercitazione&
11
Ciao!
Un programma in C
parte dichiarativa globale
inclusione librerie
/ per poter invocare funzioni utili (i/o, ...) /
dichiarazione di variabili globali e funzioni
int main ( ) {
Riccardo Cattaneo
PhD al NECSTLab
-  Autonomic (Operating) Systems
dichiarazione di variabili locali
(CHANGE project)
architectures
for HPC
istruzione 1;
/ tutti i tipi-  diReconfigurable
operazioni, e cioè:
/
istruzione 2;
/ istr. di assegnamento
/
systems (FASTER
project)
istruzione 3;
/ istr. di input
/ output(accelerazione
/
- exaFPGA
hardware)
istruzione 4;
...
istruzione N;
-  locale
Studente
parte dichiarativa
/ istr. di controllo (condizionali, cicli) /
parte esecutiva
return 0;
}
Prima&esercitazione&
11
Ciao!
Agenda
(5’) Algebra di Boole e gli operatori logici
(20’) Esercizio 1: Tabella di verità
Riccardo Cattaneo
(20’) Esercizio 2: Tabella di-  verità
Studente PhD al NECSTLab
-  Autonomic (Operating) Systems
(5’) Un programma in C
(CHANGE project)
-  Reconfigurable architectures for HPC
(15’) Esercizio 3: caratteri MaIuScOli
systems (FASTER project)
(15’) Pausa
- exaFPGA (accelerazione hardware)
(20’) Esercizio 3: caratteri MaIuScOli con ciclo while
(20’) Esercizio 4: ciclo while con contatori
(30’) Esercizio 5: trova il maggiore
Prima&esercitazione&
12
Ciao!
Esercizio 3: caratteri MaIuScOli
Si scriva un programma che, preso un carattere minuscolo da tastiera,
ne riporta a video l’equivalente maiuscolo
Riccardo Cattaneo
-  Studente PhD al NECSTLab
-  Autonomic (Operating) Systems
(CHANGE project)
-  Reconfigurable architectures for HPC
systems (FASTER project)
- exaFPGA (accelerazione hardware)
13
Prima&esercitazione&
Ciao!
Esercizio 3: caratteri MaIuScOli
Si scriva un programma che, preso un carattere minuscolo da tastiera,
ne riporta a video l’equivalente maiuscolo
Riccardo Cattaneo
-  Studente PhD al NECSTLab
-  Autonomic (Operating) Systems
(CHANGE project)
-  Reconfigurable architectures for HPC
systems (FASTER project)
- exaFPGA (accelerazione hardware)
14
Prima&esercitazione&
Ciao!
Esercizio 3: caratteri MaIuScOli
Si scriva un programma che, preso un carattere minuscolo da tastiera,
ne riporta a video l’equivalente maiuscolo
Riccardo Cattaneo
Dato l’insieme dei caratteri ammissibili:
-  Studente PhD al NECSTLab
-  Autonomic (Operating) Systems
(CHANGE project)
-  Reconfigurable architectures for HPC
systems (FASTER project)
- exaFPGA (accelerazione hardware)
14
Prima&esercitazione&
Ciao!
Esercizio 3: caratteri MaIuScOli
Si scriva un programma che, preso un carattere minuscolo da tastiera,
ne riporta a video l’equivalente maiuscolo
Riccardo Cattaneo
Dato l’insieme dei caratteri ammissibili:
• {a, b, c, …, z}
-  Studente PhD al NECSTLab
-  Autonomic (Operating) Systems
(CHANGE project)
-  Reconfigurable architectures for HPC
systems (FASTER project)
- exaFPGA (accelerazione hardware)
14
Prima&esercitazione&
Ciao!
Esercizio 3: caratteri MaIuScOli
Si scriva un programma che, preso un carattere minuscolo da tastiera,
ne riporta a video l’equivalente maiuscolo
Riccardo Cattaneo
Dato l’insieme dei caratteri ammissibili:
• {a, b, c, …, z}
-  Studente PhD al NECSTLab
Pseudocodice:
-  Autonomic (Operating) Systems
(CHANGE project)
-  Reconfigurable architectures for HPC
systems (FASTER project)
- exaFPGA (accelerazione hardware)
14
Prima&esercitazione&
Ciao!
Esercizio 3: caratteri MaIuScOli
Si scriva un programma che, preso un carattere minuscolo da tastiera,
ne riporta a video l’equivalente maiuscolo
Riccardo Cattaneo
Dato l’insieme dei caratteri ammissibili:
• {a, b, c, …, z}
-  Studente PhD al NECSTLab
-  Autonomic (Operating) Systems
Pseudocodice:
(CHANGE project)
• Richiedere l’inserimento di un carattere:
-  Reconfigurable architectures for HPC
systems (FASTER project)
- exaFPGA (accelerazione hardware)
14
Prima&esercitazione&
Ciao!
Esercizio 3: caratteri MaIuScOli
Si scriva un programma che, preso un carattere minuscolo da tastiera,
ne riporta a video l’equivalente maiuscolo
Riccardo Cattaneo
Dato l’insieme dei caratteri ammissibili:
• {a, b, c, …, z}
-  Studente PhD al NECSTLab
-  Autonomic (Operating) Systems
Pseudocodice:
(CHANGE project)
• Richiedere l’inserimento di un carattere:
-  Reconfigurable architectures for HPC
systems (FASTER project)
• Acquisire il carattere
- exaFPGA (accelerazione hardware)
14
Prima&esercitazione&
Ciao!
Esercizio 3: caratteri MaIuScOli
Si scriva un programma che, preso un carattere minuscolo da tastiera,
ne riporta a video l’equivalente maiuscolo
Riccardo Cattaneo
Dato l’insieme dei caratteri ammissibili:
• {a, b, c, …, z}
-  Studente PhD al NECSTLab
-  Autonomic (Operating) Systems
Pseudocodice:
(CHANGE project)
• Richiedere l’inserimento di un carattere:
-  Reconfigurable architectures for HPC
systems (FASTER project)
• Acquisire il carattere
- exaFPGA (accelerazione hardware)
•
Se carattere inserito corretto
14
Prima&esercitazione&
Ciao!
Esercizio 3: caratteri MaIuScOli
Si scriva un programma che, preso un carattere minuscolo da tastiera,
ne riporta a video l’equivalente maiuscolo
Riccardo Cattaneo
Dato l’insieme dei caratteri ammissibili:
• {a, b, c, …, z}
-  Studente PhD al NECSTLab
-  Autonomic (Operating) Systems
Pseudocodice:
(CHANGE project)
• Richiedere l’inserimento di un carattere:
-  Reconfigurable architectures for HPC
systems (FASTER project)
• Acquisire il carattere
- exaFPGA (accelerazione hardware)
•
Se carattere inserito corretto
•
Allora stampa a video carattere-32
14
Prima&esercitazione&
Ciao!
Esercizio 3: caratteri MaIuScOli
Si scriva un programma che, preso un carattere minuscolo da tastiera,
ne riporta a video l’equivalente maiuscolo
Riccardo Cattaneo
Dato l’insieme dei caratteri ammissibili:
• {a, b, c, …, z}
-  Studente PhD al NECSTLab
-  Autonomic (Operating) Systems
Pseudocodice:
(CHANGE project)
• Richiedere l’inserimento di un carattere:
-  Reconfigurable architectures for HPC
systems (FASTER project)
• Acquisire il carattere
- exaFPGA (accelerazione hardware)
•
Se carattere inserito corretto
•
•
Allora stampa a video carattere-32
Altrimenti
14
Prima&esercitazione&
Ciao!
Esercizio 3: caratteri MaIuScOli
Si scriva un programma che, preso un carattere minuscolo da tastiera,
ne riporta a video l’equivalente maiuscolo
Riccardo Cattaneo
Dato l’insieme dei caratteri ammissibili:
• {a, b, c, …, z}
-  Studente PhD al NECSTLab
-  Autonomic (Operating) Systems
Pseudocodice:
(CHANGE project)
• Richiedere l’inserimento di un carattere:
-  Reconfigurable architectures for HPC
systems (FASTER project)
• Acquisire il carattere
- exaFPGA (accelerazione hardware)
•
Se carattere inserito corretto
•
•
Allora stampa a video carattere-32
Altrimenti
•
stampa a video un messaggio di errore
14
Prima&esercitazione&
Ciao!
Esercizio 3: caratteri MaIuScOli
Si scriva un programma che, preso un carattere minuscolo da tastiera,
ne riporta a video l’equivalente maiuscolo
Riccardo Cattaneo
-  Studente PhD al NECSTLab
-  Autonomic (Operating) Systems
(CHANGE project)
-  Reconfigurable architectures for HPC
systems (FASTER project)
- exaFPGA (accelerazione hardware)
15
Prima&esercitazione&
Ciao!
Esercizio 3: caratteri MaIuScOli
Si scriva un programma che, preso un carattere minuscolo da tastiera,
ne riporta a video l’equivalente maiuscolo
Riccardo Cattaneo
-  Studente PhD al NECSTLab
-  Autonomic (Operating) Systems
(CHANGE project)
-  Reconfigurable architectures for HPC
systems (FASTER project)
- exaFPGA (accelerazione hardware)
16
Prima&esercitazione&
Ciao!
Esercizio 3: caratteri MaIuScOli
Si scriva un programma che, preso un carattere minuscolo da tastiera,
ne riporta a video l’equivalente maiuscolo
Riccardo Cattaneo
-  Studente PhD al NECSTLab
-  Autonomic (Operating) Systems
(CHANGE project)
-  Reconfigurable architectures for HPC
systems (FASTER project)
- exaFPGA (accelerazione hardware)
17
Prima&esercitazione&
Ciao!
Esercizio 3: caratteri MaIuScOli
Si scriva un programma che, preso un carattere minuscolo da tastiera,
ne riporta a video l’equivalente maiuscolo
Riccardo Cattaneo
-  Studente PhD al NECSTLab
-  Autonomic (Operating) Systems
(CHANGE project)
-  Reconfigurable architectures for HPC
systems (FASTER project)
- exaFPGA (accelerazione hardware)
18
Prima&esercitazione&
Ciao!
Esercizio 3: caratteri MaIuScOli
Si scriva un programma che, preso un carattere minuscolo da tastiera,
ne riporta a video l’equivalente maiuscolo
Riccardo Cattaneo
-  Studente PhD al NECSTLab
-  Autonomic (Operating) Systems
(CHANGE project)
-  Reconfigurable architectures for HPC
systems (FASTER project)
- exaFPGA (accelerazione hardware)
19
Prima&esercitazione&
Ciao!
Esercizio 3: caratteri MaIuScOli
Si scriva un programma che, preso un carattere minuscolo da tastiera,
ne riporta a video l’equivalente maiuscolo
Riccardo Cattaneo
-  Studente PhD al NECSTLab
-  Autonomic (Operating) Systems
(CHANGE project)
-  Reconfigurable architectures for HPC
systems (FASTER project)
- exaFPGA (accelerazione hardware)
20
Prima&esercitazione&
Ciao!
Esercizio 3: caratteri MaIuScOli
Si scriva un programma che, preso un carattere minuscolo da tastiera,
ne riporta a video l’equivalente maiuscolo
Riccardo Cattaneo
-  Studente PhD al NECSTLab
-  Autonomic (Operating) Systems
(CHANGE project)
-  Reconfigurable architectures for HPC
systems (FASTER project)
- exaFPGA (accelerazione hardware)
21
Prima&esercitazione&
Ciao!
Esercizio 3: caratteri MaIuScOli
Si scriva un programma che, preso un carattere minuscolo da tastiera,
ne riporta a video l’equivalente maiuscolo
Riccardo Cattaneo
-  Studente PhD al NECSTLab
-  Autonomic (Operating) Systems
(CHANGE project)
-  Reconfigurable architectures for HPC
systems (FASTER project)
- exaFPGA (accelerazione hardware)
22
Prima&esercitazione&
Ciao!
Esercizio 3: caratteri MaIuScOli
Si scriva un programma che, preso un carattere minuscolo da tastiera,
ne riporta a video l’equivalente maiuscolo
Riccardo Cattaneo
-  Studente PhD al NECSTLab
-  Autonomic (Operating) Systems
(CHANGE project)
-  Reconfigurable architectures for HPC
systems (FASTER project)
- exaFPGA (accelerazione hardware)
23
Prima&esercitazione&
Ciao!
Esercizio 3: caratteri MaIuScOli
Si scriva un programma che, preso un carattere minuscolo da tastiera,
ne riporta a video l’equivalente maiuscolo
Riccardo Cattaneo
-  Studente PhD al NECSTLab
-  Autonomic (Operating) Systems
(CHANGE project)
-  Reconfigurable architectures for HPC
systems (FASTER project)
- exaFPGA (accelerazione hardware)
24
Prima&esercitazione&
Ciao!
Esercizio 3: caratteri MaIuScOli
Si scriva un programma che, preso un carattere minuscolo da tastiera,
ne riporta a video l’equivalente maiuscolo
Riccardo Cattaneo
-  Studente PhD al NECSTLab
-  Autonomic (Operating) Systems
(CHANGE project)
-  Reconfigurable architectures for HPC
systems (FASTER project)
- exaFPGA (accelerazione hardware)
25
Prima&esercitazione&
Ciao!
Esercizio 3: caratteri MaIuScOli
Si scriva un programma che, preso un carattere minuscolo da tastiera,
ne riporta a video l’equivalente maiuscolo
+
Riccardo Cattaneo
Si continui a chiedere
del carattere,
-  l’inserimento
Studente PhD
al NECSTLab
fino a quando questo non è corretto
-  Autonomic (Operating) Systems
(CHANGE project)
-  Reconfigurable architectures for HPC
systems (FASTER project)
- exaFPGA (accelerazione hardware)
26
Prima&esercitazione&
Ciao!
Giochiamo con ASCII e Char
Riccardo Cattaneo
-  Studente PhD al NECSTLab
-  Autonomic (Operating) Systems
(CHANGE project)
-  Reconfigurable architectures for HPC
systems (FASTER project)
- exaFPGA (accelerazione hardware)
Prima&esercitazione&
27
Ciao!
Agenda
(5’) Algebra di Boole e gli operatori logici
(20’) Esercizio 1: Tabella di verità
Riccardo Cattaneo
(20’) Esercizio 2: Tabella di-  verità
Studente PhD al NECSTLab
-  Autonomic (Operating) Systems
(5’) Un programma in C
(CHANGE project)
-  Reconfigurable architectures for HPC
(15’) Esercizio 3: caratteri MaIuScOli
systems (FASTER project)
(15’) Pausa
- exaFPGA (accelerazione hardware)
(20’) Esercizio 3: caratteri MaIuScOli con ciclo while
(20’) Esercizio 4: ciclo while con contatori
(30’) Esercizio 5: trova il maggiore
Prima&esercitazione&
28
Ciao!
Esercizio 3: caratteri MaIuScOli
Si scriva un programma che, preso un carattere minuscolo da tastiera,
ne riporta a video l’equivalente maiuscolo
+
Riccardo Cattaneo
Si continui a chiedere
del carattere,
-  l’inserimento
Studente PhD
al NECSTLab
fino a quando questo non è corretto
-  Autonomic (Operating) Systems
(CHANGE project)
-  Reconfigurable architectures for HPC
systems (FASTER project)
- exaFPGA (accelerazione hardware)
29
Prima&esercitazione&
Ciao!
Esercizio 3: caratteri MaIuScOli con ciclo
Si scriva un programma che, preso un carattere minuscolo da tastiera,
ne riporta a video l’equivalente maiuscolo
+
Riccardo Cattaneo
Si continui a chiedere
del al
carattere,
-  l’inserimento
Studente PhD
NECSTLab
fino a quando questo non è corretto
-  Autonomic (Operating) Systems
(CHANGE project)
-  Reconfigurable architectures for HPC
systems (FASTER project)
- exaFPGA (accelerazione hardware)
30
Prima&esercitazione&
Ciao!
Esercizio 3: caratteri MaIuScOli con ciclo
Si scriva un programma che, preso un carattere minuscolo da tastiera,
ne riporta a video l’equivalente maiuscolo
+
Riccardo Cattaneo
Si continui a chiedere
del al
carattere,
-  l’inserimento
Studente PhD
NECSTLab
fino a quando questo non è corretto
-  Autonomic (Operating) Systems
(CHANGE project)
-  Reconfigurable architectures for HPC
systems (FASTER project)
- exaFPGA (accelerazione hardware)
31
Prima&esercitazione&
Ciao!
Esercizio 3: caratteri MaIuScOli con ciclo
Si scriva un programma che, preso un carattere minuscolo da tastiera,
ne riporta a video l’equivalente maiuscolo
+
Riccardo Cattaneo
Si continui a chiedere
del al
carattere,
-  l’inserimento
Studente PhD
NECSTLab
fino a quando questo non è corretto
-  Autonomic (Operating) Systems
(CHANGE project)
-  Reconfigurable architectures for HPC
systems (FASTER project)
- exaFPGA (accelerazione hardware)
32
Prima&esercitazione&
Ciao!
Esercizio 3: caratteri MaIuScOli con ciclo
Si scriva un programma che, preso un carattere minuscolo da tastiera,
ne riporta a video l’equivalente maiuscolo
+
Riccardo Cattaneo
Si continui a chiedere
del al
carattere,
-  l’inserimento
Studente PhD
NECSTLab
fino a quando questo non è corretto
-  Autonomic (Operating) Systems
(CHANGE
project)
Dato l’insieme dei caratteri ammissibili:
-  Reconfigurable architectures for HPC
systems (FASTER project)
- exaFPGA (accelerazione hardware)
32
Prima&esercitazione&
Ciao!
Esercizio 3: caratteri MaIuScOli con ciclo
Si scriva un programma che, preso un carattere minuscolo da tastiera,
ne riporta a video l’equivalente maiuscolo
+
Riccardo Cattaneo
Si continui a chiedere
del al
carattere,
-  l’inserimento
Studente PhD
NECSTLab
fino a quando questo non è corretto
-  Autonomic (Operating) Systems
(CHANGE
project)
Dato l’insieme dei caratteri ammissibili:
-  Reconfigurable architectures for HPC
• {a, b, c, …, z}
systems (FASTER project)
- exaFPGA (accelerazione hardware)
32
Prima&esercitazione&
Ciao!
Esercizio 3: caratteri MaIuScOli con ciclo
Si scriva un programma che, preso un carattere minuscolo da tastiera,
ne riporta a video l’equivalente maiuscolo
+
Riccardo Cattaneo
Si continui a chiedere
del al
carattere,
-  l’inserimento
Studente PhD
NECSTLab
fino a quando questo non è corretto
-  Autonomic (Operating) Systems
(CHANGE
project)
Dato l’insieme dei caratteri ammissibili:
-  Reconfigurable architectures for HPC
• {a, b, c, …, z}
systems (FASTER project)
- exaFPGA (accelerazione hardware)
Pseudocodice:
32
Prima&esercitazione&
Ciao!
Esercizio 3: caratteri MaIuScOli con ciclo
Si scriva un programma che, preso un carattere minuscolo da tastiera,
ne riporta a video l’equivalente maiuscolo
+
Riccardo Cattaneo
Si continui a chiedere
del al
carattere,
-  l’inserimento
Studente PhD
NECSTLab
fino a quando questo non è corretto
-  Autonomic (Operating) Systems
(CHANGE
project)
Dato l’insieme dei caratteri ammissibili:
-  Reconfigurable architectures for HPC
• {a, b, c, …, z}
systems (FASTER project)
- exaFPGA (accelerazione hardware)
Pseudocodice:
•
Fino a quando questo non è corretto
32
Prima&esercitazione&
Ciao!
Esercizio 3: caratteri MaIuScOli con ciclo
Si scriva un programma che, preso un carattere minuscolo da tastiera,
ne riporta a video l’equivalente maiuscolo
+
Riccardo Cattaneo
Si continui a chiedere
del al
carattere,
-  l’inserimento
Studente PhD
NECSTLab
fino a quando questo non è corretto
-  Autonomic (Operating) Systems
(CHANGE
project)
Dato l’insieme dei caratteri ammissibili:
-  Reconfigurable architectures for HPC
• {a, b, c, …, z}
systems (FASTER project)
- exaFPGA (accelerazione hardware)
Pseudocodice:
•
Fino a quando questo non è corretto
•
Richiedere l’inserimento di un carattere:
32
Prima&esercitazione&
Ciao!
Esercizio 3: caratteri MaIuScOli con ciclo
Si scriva un programma che, preso un carattere minuscolo da tastiera,
ne riporta a video l’equivalente maiuscolo
+
Riccardo Cattaneo
Si continui a chiedere
del al
carattere,
-  l’inserimento
Studente PhD
NECSTLab
fino a quando questo non è corretto
-  Autonomic (Operating) Systems
(CHANGE
project)
Dato l’insieme dei caratteri ammissibili:
-  Reconfigurable architectures for HPC
• {a, b, c, …, z}
systems (FASTER project)
- exaFPGA (accelerazione hardware)
Pseudocodice:
•
Fino a quando questo non è corretto
•
Richiedere l’inserimento di un carattere:
•
Acquisire il carattere
32
Prima&esercitazione&
Ciao!
Esercizio 3: caratteri MaIuScOli con ciclo
Si scriva un programma che, preso un carattere minuscolo da tastiera,
ne riporta a video l’equivalente maiuscolo
+
Riccardo Cattaneo
Si continui a chiedere
del al
carattere,
-  l’inserimento
Studente PhD
NECSTLab
fino a quando questo non è corretto
-  Autonomic (Operating) Systems
(CHANGE
project)
Dato l’insieme dei caratteri ammissibili:
-  Reconfigurable architectures for HPC
• {a, b, c, …, z}
systems (FASTER project)
- exaFPGA (accelerazione hardware)
Pseudocodice:
•
•
Fino a quando questo non è corretto
•
Richiedere l’inserimento di un carattere:
•
Acquisire il carattere
Se carattere inserito corretto
32
Prima&esercitazione&
Ciao!
Esercizio 3: caratteri MaIuScOli con ciclo
Si scriva un programma che, preso un carattere minuscolo da tastiera,
ne riporta a video l’equivalente maiuscolo
+
Riccardo Cattaneo
Si continui a chiedere
del al
carattere,
-  l’inserimento
Studente PhD
NECSTLab
fino a quando questo non è corretto
-  Autonomic (Operating) Systems
(CHANGE
project)
Dato l’insieme dei caratteri ammissibili:
-  Reconfigurable architectures for HPC
• {a, b, c, …, z}
systems (FASTER project)
- exaFPGA (accelerazione hardware)
Pseudocodice:
•
•
Fino a quando questo non è corretto
•
Richiedere l’inserimento di un carattere:
•
Acquisire il carattere
Se carattere inserito corretto
•
Allora stampa a video carattere-32
Prima&esercitazione&
32
Ciao!
Esercizio 3: caratteri MaIuScOli con ciclo
Si scriva un programma che, preso un carattere minuscolo da tastiera,
ne riporta a video l’equivalente maiuscolo
+
Riccardo Cattaneo
Si continui a chiedere
del al
carattere,
-  l’inserimento
Studente PhD
NECSTLab
fino a quando questo non è corretto
-  Autonomic (Operating) Systems
(CHANGE
project)
Dato l’insieme dei caratteri ammissibili:
-  Reconfigurable architectures for HPC
• {a, b, c, …, z}
systems (FASTER project)
- exaFPGA (accelerazione hardware)
Pseudocodice:
•
•
Fino a quando questo non è corretto
•
Richiedere l’inserimento di un carattere:
•
Acquisire il carattere
Se carattere inserito corretto
•
Allora stampa a video carattere-32
Prima&esercitazione&
32
Ciao!
Esercizio 3: caratteri MaIuScOli con ciclo
Si scriva un programma che, preso un carattere minuscolo da tastiera,
ne riporta a video l’equivalente maiuscolo
+
Riccardo Cattaneo
Si continui a chiedere
del al
carattere,
-  l’inserimento
Studente PhD
NECSTLab
fino a quando questo non è corretto
-  Autonomic (Operating) Systems
(CHANGE
project)
Dato l’insieme dei caratteri ammissibili:
-  Reconfigurable architectures for HPC
• {a, b, c, …, z}
systems (FASTER project)
- exaFPGA (accelerazione hardware)
Pseudocodice:
•
•
Fino a quando questo non è corretto
•
Richiedere l’inserimento di un carattere:
•
Acquisire il carattere
Se carattere inserito corretto
•
Allora stampa a video carattere-32
Prima&esercitazione&
32
Ciao!
Esercizio 3: caratteri MaIuScOli con ciclo
Riccardo Cattaneo
-  Studente PhD al NECSTLab
-  Autonomic (Operating) Systems
(CHANGE project)
-  Reconfigurable architectures for HPC
systems (FASTER project)
- exaFPGA (accelerazione hardware)
33
Prima&esercitazione&
Ciao!
Esercizio 3: caratteri MaIuScOli con ciclo
Riccardo Cattaneo
-  Studente PhD al NECSTLab
-  Autonomic (Operating) Systems
(CHANGE project)
-  Reconfigurable architectures for HPC
systems (FASTER project)
- exaFPGA (accelerazione hardware)
34
Prima&esercitazione&
Ciao!
Esercizio 3: caratteri MaIuScOli con ciclo
Riccardo Cattaneo
-  Studente PhD al NECSTLab
-  Autonomic (Operating) Systems
(CHANGE project)
-  Reconfigurable architectures for HPC
systems (FASTER project)
- exaFPGA (accelerazione hardware)
35
Prima&esercitazione&
Ciao!
Esercizio 3: caratteri MaIuScOli con ciclo
Riccardo Cattaneo
-  Studente PhD al NECSTLab
-  Autonomic (Operating) Systems
(CHANGE project)
-  Reconfigurable architectures for HPC
systems (FASTER project)
- exaFPGA (accelerazione hardware)
35
Prima&esercitazione&
Ciao!
Esercizio 3: caratteri MaIuScOli con ciclo
Riccardo Cattaneo
-  Studente PhD al NECSTLab
-  Autonomic (Operating) Systems
(CHANGE project)
-  Reconfigurable architectures for HPC
systems (FASTER project)
- exaFPGA (accelerazione hardware)
35
Prima&esercitazione&
Ciao!
Esercizio 3: caratteri MaIuScOli con ciclo
Riccardo Cattaneo
-  Studente PhD al NECSTLab
-  Autonomic (Operating) Systems
(CHANGE project)
-  Reconfigurable architectures for HPC
systems (FASTER project)
- exaFPGA (accelerazione hardware)
36
Prima&esercitazione&
Ciao!
Esercizio 3: caratteri MaIuScOli con ciclo
Riccardo Cattaneo
-  Studente PhD al NECSTLab
-  Autonomic (Operating) Systems
(CHANGE project)
-  Reconfigurable architectures for HPC
systems (FASTER project)
- exaFPGA (accelerazione hardware)
37
Prima&esercitazione&
Ciao!
Esercizio 3: caratteri MaIuScOli con ciclo
Riccardo Cattaneo
-  Studente PhD al NECSTLab
-  Autonomic (Operating) Systems
(CHANGE project)
-  Reconfigurable architectures for HPC
systems (FASTER project)
- exaFPGA (accelerazione hardware)
38
Prima&esercitazione&
Ciao!
Esercizio 3: caratteri MaIuScOli con ciclo
Riccardo Cattaneo
-  Studente PhD al NECSTLab
-  Autonomic (Operating) Systems
(CHANGE project)
-  Reconfigurable architectures for HPC
systems (FASTER project)
- exaFPGA (accelerazione hardware)
39
Prima&esercitazione&
Ciao!
Esercizio 3: caratteri MaIuScOli con ciclo
Riccardo Cattaneo
-  Studente PhD al NECSTLab
-  Autonomic (Operating) Systems
(CHANGE project)
-  Reconfigurable architectures for HPC
systems (FASTER project)
- exaFPGA (accelerazione hardware)
40
Prima&esercitazione&
Ciao!
Esercizio 3: caratteri MaIuScOli con ciclo
Ripeti l’esecuzione di una istruzione
finché una certa condizione è vera
Riccardo Cattaneo
-  Studente PhD al NECSTLab
-  Autonomic (Operating) Systems
(CHANGE project)
…ISTRUZIONI - DAReconfigurable
RIPETERE…
architectures for HPC
systems (FASTER project)
- exaFPGA (accelerazione hardware)
41
Prima&esercitazione&
Ciao!
Agenda
(5’) Algebra di Boole e gli operatori logici
(20’) Esercizio 1: Tabella di verità
Riccardo Cattaneo
(20’) Esercizio 2: Tabella di-  verità
Studente PhD al NECSTLab
-  Autonomic (Operating) Systems
(5’) Un programma in C
(CHANGE project)
-  Reconfigurable architectures for HPC
(15’) Esercizio 3: caratteri MaIuScOli
systems (FASTER project)
(15’) Pausa
- exaFPGA (accelerazione hardware)
(20’) Esercizio 3: caratteri MaIuScOli con ciclo while
(20’) Esercizio 4: ciclo while con contatori
(30’) Esercizio 5: trova il maggiore
Prima&esercitazione&
42
Ciao!
Esercizio 4: ciclo while con contatori
Cosa calcola
questo codice?
Riccardo Cattaneo
-  Studente PhD al NECSTLab
-  Autonomic (Operating) Systems
(CHANGE project)
-  Reconfigurable architectures for HPC
systems (FASTER project)
- exaFPGA (accelerazione hardware)
43
Prima&esercitazione&
Ciao!
Esercizio 4: ciclo while con contatori
Cosa calcola
questo codice?
Riccardo Cattaneo
-  Studente PhD al NECSTLab
-  Autonomic (Operating) Systems
(CHANGE project)
SIMULAZIONE
-  Reconfigurable
architectures
for
HPC
ALLA LAVAGNA!
systems (FASTER project)
- exaFPGA (accelerazione hardware)
43
Prima&esercitazione&
Ciao!
Esercizio 4: ciclo while con contatori
Cosa calcola
questo codice?
Riccardo Cattaneo
-  Studente PhD al NECSTLab
-  Autonomic (Operating) Systems
(CHANGE project)
SIMULAZIONE
-  Reconfigurable
architectures
for
HPC
ALLA LAVAGNA!
systems (FASTER project)
- exaFPGA (accelerazione hardware)
{
a*2b
a
se b>0
se b≤0
43
Prima&esercitazione&
Ciao!
Agenda
(5’) Algebra di Boole e gli operatori logici
(20’) Esercizio 1: Tabella di verità
Riccardo Cattaneo
(20’) Esercizio 2: Tabella di-  verità
Studente PhD al NECSTLab
-  Autonomic (Operating) Systems
(5’) Un programma in C
(CHANGE project)
-  Reconfigurable architectures for HPC
(15’) Esercizio 3: caratteri MaIuScOli
systems (FASTER project)
(15’) Pausa
- exaFPGA (accelerazione hardware)
(20’) Esercizio 3: caratteri MaIuScOli con ciclo while
(20’) Esercizio 4: ciclo while con contatori
(30’) Esercizio 5: trova il maggiore
Prima&esercitazione&
44
Ciao!
Esercizio 5: trova il maggiore
Trovare il maggiore tra N numeri positivi inseriti da tastiera
Riccardo Cattaneo
-  Studente PhD al NECSTLab
-  Autonomic (Operating) Systems
(CHANGE project)
-  Reconfigurable architectures for HPC
systems (FASTER project)
- exaFPGA (accelerazione hardware)
45
Prima&esercitazione&
Ciao!
Esercizio 5: trova il maggiore
Trovare il maggiore tra N numeri positivi inseriti da tastiera
Riccardo Cattaneo
Pseudocodice:
-  Studente PhD al NECSTLab
-  Autonomic (Operating) Systems
(CHANGE project)
-  Reconfigurable architectures for HPC
systems (FASTER project)
- exaFPGA (accelerazione hardware)
45
Prima&esercitazione&
Ciao!
Esercizio 5: trova il maggiore
Trovare il maggiore tra N numeri positivi inseriti da tastiera
Riccardo Cattaneo
- 
Studente
PhD
al
NECSTLab
Pseudocodice:
-  Autonomic (Operating) Systems
• Richiedere quanti numeri si vogliono inserire
(CHANGE project)
-  Reconfigurable architectures for HPC
systems (FASTER project)
- exaFPGA (accelerazione hardware)
45
Prima&esercitazione&
Ciao!
Esercizio 5: trova il maggiore
Trovare il maggiore tra N numeri positivi inseriti da tastiera
Riccardo Cattaneo
- 
Studente
PhD
al
NECSTLab
Pseudocodice:
-  Autonomic (Operating) Systems
• Richiedere quanti numeri si vogliono inserire
(CHANGE project)
• Acquisire il numero di numeri da
-  inserire
Reconfigurable
architectures for HPC
(= contatore)
systems (FASTER project)
- exaFPGA (accelerazione hardware)
45
Prima&esercitazione&
Ciao!
Esercizio 5: trova il maggiore
Trovare il maggiore tra N numeri positivi inseriti da tastiera
Riccardo Cattaneo
- 
Studente
PhD
al
NECSTLab
Pseudocodice:
-  Autonomic (Operating) Systems
• Richiedere quanti numeri si vogliono inserire
(CHANGE project)
• Acquisire il numero di numeri da
-  inserire
Reconfigurable
architectures for HPC
(= contatore)
systems (FASTER project)
• Finché ho ancora numeri da inserire
- exaFPGA (accelerazione hardware)
45
Prima&esercitazione&
Ciao!
Esercizio 5: trova il maggiore
Trovare il maggiore tra N numeri positivi inseriti da tastiera
Riccardo Cattaneo
- 
Studente
PhD
al
NECSTLab
Pseudocodice:
-  Autonomic (Operating) Systems
• Richiedere quanti numeri si vogliono inserire
(CHANGE project)
• Acquisire il numero di numeri da
-  inserire
Reconfigurable
architectures for HPC
(= contatore)
systems (FASTER project)
• Finché ho ancora numeri da inserire
- exaFPGA (accelerazione hardware)
•
Richiedo un numero
45
Prima&esercitazione&
Ciao!
Esercizio 5: trova il maggiore
Trovare il maggiore tra N numeri positivi inseriti da tastiera
Riccardo Cattaneo
- 
Studente
PhD
al
NECSTLab
Pseudocodice:
-  Autonomic (Operating) Systems
• Richiedere quanti numeri si vogliono inserire
(CHANGE project)
• Acquisire il numero di numeri da
-  inserire
Reconfigurable
architectures for HPC
(= contatore)
systems (FASTER project)
• Finché ho ancora numeri da inserire
- exaFPGA (accelerazione hardware)
•
Richiedo un numero
•
Acquisisco il numero
45
Prima&esercitazione&
Ciao!
Esercizio 5: trova il maggiore
Trovare il maggiore tra N numeri positivi inseriti da tastiera
Riccardo Cattaneo
- 
Studente
PhD
al
NECSTLab
Pseudocodice:
-  Autonomic (Operating) Systems
• Richiedere quanti numeri si vogliono inserire
(CHANGE project)
• Acquisire il numero di numeri da
-  inserire
Reconfigurable
architectures for HPC
(= contatore)
systems (FASTER project)
• Finché ho ancora numeri da inserire
- exaFPGA (accelerazione hardware)
•
Richiedo un numero
•
Acquisisco il numero
•
se è il più grande che ho visto fino ad ora
45
Prima&esercitazione&
Ciao!
Esercizio 5: trova il maggiore
Trovare il maggiore tra N numeri positivi inseriti da tastiera
Riccardo Cattaneo
- 
Studente
PhD
al
NECSTLab
Pseudocodice:
-  Autonomic (Operating) Systems
• Richiedere quanti numeri si vogliono inserire
(CHANGE project)
• Acquisire il numero di numeri da
-  inserire
Reconfigurable
architectures for HPC
(= contatore)
systems (FASTER project)
• Finché ho ancora numeri da inserire
- exaFPGA (accelerazione hardware)
•
Richiedo un numero
•
Acquisisco il numero
•
se è il più grande che ho visto fino ad ora
•
è il mio nuovo massimo
45
Prima&esercitazione&
Ciao!
Esercizio 5: trova il maggiore
Riccardo Cattaneo
-  Studente PhD al NECSTLab
-  Autonomic (Operating) Systems
(CHANGE project)
-  Reconfigurable architectures for HPC
systems (FASTER project)
- exaFPGA (accelerazione hardware)
46
Prima&esercitazione&
Ciao!
Esercizio 5: trova il maggiore
Riccardo Cattaneo
-  Studente PhD al NECSTLab
-  Autonomic (Operating) Systems
(CHANGE project)
-  Reconfigurable architectures for HPC
systems (FASTER project)
- exaFPGA (accelerazione hardware)
47
Prima&esercitazione&
Ciao!
Esercizio 5: trova il maggiore
Riccardo Cattaneo
-  Studente PhD al NECSTLab
-  Autonomic (Operating) Systems
(CHANGE project)
-  Reconfigurable architectures for HPC
systems (FASTER project)
- exaFPGA (accelerazione hardware)
48
Prima&esercitazione&
Ciao!
Esercizio 5: trova il maggiore
Riccardo Cattaneo
-  Studente PhD al NECSTLab
-  Autonomic (Operating) Systems
(CHANGE project)
-  Reconfigurable architectures for HPC
systems (FASTER project)
- exaFPGA (accelerazione hardware)
49
Prima&esercitazione&
Ciao!
Esercizio 5: trova il maggiore
Riccardo Cattaneo
-  Studente PhD al NECSTLab
-  Autonomic (Operating) Systems
(CHANGE project)
-  Reconfigurable architectures for HPC
systems (FASTER project)
- exaFPGA (accelerazione hardware)
50
Prima&esercitazione&
Ciao!
Esercizio 5: trova il maggiore
Riccardo Cattaneo
-  Studente PhD al NECSTLab
-  Autonomic (Operating) Systems
(CHANGE project)
-  Reconfigurable architectures for HPC
systems (FASTER project)
- exaFPGA (accelerazione hardware)
51
Prima&esercitazione&
Ciao!
Esercizio 5: trova il maggiore
Riccardo Cattaneo
-  Studente PhD al NECSTLab
-  Autonomic (Operating) Systems
(CHANGE project)
-  Reconfigurable architectures for HPC
systems (FASTER project)
- exaFPGA (accelerazione hardware)
52
Prima&esercitazione&
Ciao!
Esercizio 5: trova il maggiore
Riccardo Cattaneo
-  Studente PhD al NECSTLab
-  Autonomic (Operating) Systems
(CHANGE project)
-  Reconfigurable architectures for HPC
systems (FASTER project)
- exaFPGA (accelerazione hardware)
53
Prima&esercitazione&
Ciao!
Esercizio 5: trova il maggiore
Riccardo Cattaneo
-  Studente PhD al NECSTLab
-  Autonomic (Operating) Systems
(CHANGE project)
-  Reconfigurable architectures for HPC
systems (FASTER project)
- exaFPGA (accelerazione hardware)
54
Prima&esercitazione&
Ciao!
Agenda
(5’) Algebra di Boole e gli operatori logici
(20’) Esercizio 1: Tabella di verità
Riccardo Cattaneo
(20’) Esercizio 2: Tabella di-  verità
Studente PhD al NECSTLab
-  Autonomic (Operating) Systems
(5’) Un programma in C
(CHANGE project)
-  Reconfigurable architectures for HPC
(15’) Esercizio 3: caratteri MaIuScOli
systems (FASTER project)
(15’) Pausa
- exaFPGA (accelerazione hardware)
(20’) Esercizio 3: caratteri MaIuScOli con ciclo while
(20’) Esercizio 4: ciclo while con contatori
(30’) Esercizio 5: trova il maggiore
Prima&esercitazione&
55