• Non ci sono risultati.

IEIM 2014-2015

N/A
N/A
Protected

Academic year: 2021

Condividi "IEIM 2014-2015"

Copied!
12
0
0

Testo completo

(1)

IEIM 2014-2015

Esercitazione 1

Alessandro A. Nacci

nacci@elet.polimi.it - alessandronacci.com

1

(2)

Chi sono

Chi sono:

- Alessandro Nacci

- 3nd year PhD Student

- Il vostro esercitatore di IEIM

Mi occupo di:

- Mobile Devices

- Smart Buildings

Contatti:

- www.alessandronacci.com

- alessandro.nacci@polimi.it

Ricevimento:

- Ci mettiamo d’accordo via e-mail

2

(3)

Esercizio 1

Da#  cinque  vo#  compresi  tra  0  e  10,  calcolarne  la  media        e  dire  se  lo  studente  e'  bocciato  (media  minore  di  6)  

     o  promosso  (media  maggiore  o  uguale  a  6)  

3

/* dati cinque voti compresi tra 0 e 10, calcolarne la media e dire se lo studente e' bocciato (media minore di 6)

o promosso (media maggiore o uguale a 6) */

#include <stdio.h>

#include <math.h>

int main(){

float v1, v2, v3, v4, v5, somma, media;

printf("inserire i cinque voti: \n");

scanf("%f%f%f%f%f", &v1, &v2, &v3, &v4, &v5);

somma = v1 + v2 + v3 + v4 + v5;

media = somma/5;

if (media < 6.0){

printf("Bocciato! media: %f\n", media);

}else{

printf("Promosso! media: %f\n", media);

}

return 0;

}

(4)

ALGEBRA DI BOOL

• LI FACCIAMO ALLA LAVAGNA ;)

• Troverete una scansione online con gli esercizi fatti

4

(5)

ALGEBRA DI BOOL - ESERCIZIO

5

AXO – esame di giovedì 4 marzo 2010 - CON SOLUZIONI pagina 13 di 22

seconda parte – algebra booleana

Si consideri la funzione booleana di 3 variabili G(a ,b, c) espressa dall’equazione seguente:

G(a, b, c) = a b c + !a !b c + !a b c + a b !c

Si trasformi - tramite le proprietà dell’algebra di commutazione - l’equazione di G in modo da ridurre il co- sto della sua realizzazione, indicando le singole operazioni svolte e il nome oppure la forma della proprietà utilizzata.

Soluzione via breve

a b c + !a !b c + !a b c + a b !c distributiva

!a c (b + !b) + a b (c + !c) elemento neutro

!a c 1 + a b 1 elemento neutro

!a c + a b forma minima

oppure (ma è più lunga)

a b c + !a !b c + !a b c + a b !c

a b c + !a !b c + !a b c + a b !c + a b c + !a b c idempotenza a b c + !a b c + !a b c + !a !b c + a b c + a b !c commutativa (a + !a) b c + !a (b + !b) c + a b (c + !c) distributiva

1 b c + !a 1 c + a b 1 elemento neutro

b c + !a c + a b elemento neutro

1 b c + !a c + a b elemento inverso

(a + !a) b c + !a c + a b distributiva

a b c + !a b c + !a c + a b commutativa

a b c + a b + !a b c + !a c assorbimento

a b + !a c forma minima

(6)

ALGEBRA DI BOOL - ESERCIZIO (SOLUZIONE)

6

AXO – esame di giovedì 4 marzo 2010 - CON SOLUZIONI pagina 13 di 22

seconda parte – algebra booleana

Si consideri la funzione booleana di 3 variabili G(a ,b, c) espressa dall’equazione seguente:

G(a, b, c) = a b c + !a !b c + !a b c + a b !c

Si trasformi - tramite le proprietà dell’algebra di commutazione - l’equazione di G in modo da ridurre il co- sto della sua realizzazione, indicando le singole operazioni svolte e il nome oppure la forma della proprietà utilizzata.

Soluzione via breve

a b c + !a !b c + !a b c + a b !c distributiva

!a c (b + !b) + a b (c + !c) elemento neutro

!a c 1 + a b 1 elemento neutro

!a c + a b forma minima

oppure (ma è più lunga)

a b c + !a !b c + !a b c + a b !c

a b c + !a !b c + !a b c + a b !c + a b c + !a b c idempotenza a b c + !a b c + !a b c + !a !b c + a b c + a b !c commutativa (a + !a) b c + !a (b + !b) c + a b (c + !c) distributiva

1 b c + !a 1 c + a b 1 elemento neutro

b c + !a c + a b elemento neutro

1 b c + !a c + a b elemento inverso

(a + !a) b c + !a c + a b distributiva

a b c + !a b c + !a c + a b commutativa

a b c + a b + !a b c + !a c assorbimento

a b + !a c forma minima

(7)

Esercizio 1

Da#  cinque  vo#  compresi  tra  0  e  10,  calcolarne  la  media        e  dire  se  lo  studente  e'  bocciato  (media  minore  di  6)  

     o  promosso  (media  maggiore  o  uguale  a  6)  

7

START

Leggi primo voto

Leggi secondo voto

Leggi terzo voto

Leggi quarto voto

Leggi quinto voto

Calcola la media

Media < 6

Bocciato Promosso

VERO FALSO

FINE

START

Leggi primo voto

Leggi secondo voto

Leggi terzo voto

Leggi quarto voto

Leggi quinto voto

Media < 6

Bocciato Promosso

VERO FALSO

FINE

FAI LA SOMMA FAI LA DIVISIONE

(8)

Esercizio 2

Da#  un  numero,  stampare  il  primo  numero  successivo  pari

8 /* ESERCIZIO 1 */

/* dati un numero, stampare il primo numero successivo pari */

#include <stdio.h>

#include <stdlib.h>

int main(){

int n, r;

printf("inserire un numero intero: \n");

scanf("%d", &n);

r = n%2;

if( r == 0){

printf("il primo numero successivo pari di %d e' %d\n", n, n+2);

}else{

printf("il primo numero successivo pari di %d e' %d\n", n, n+1);

}

return 0;

}

/* ESERCIZIO 2 */

/* dati dati tre numeri, chiedere all'utente che tipo di operazione vuole effettuare:

- se l'utente inserisce 's' effettuare la somma - se l'utente inserisce 'p' effettuare il prodotto

- se l'utente inserisce un altro carattere, visualizzare un messaggio di errore */

#include <stdio.h>

#include <stdlib.h>

int main(){

int n1, n2, n3, operation;

char c;

printf("inserire tre numeri interi: \n");

scanf("%d%d%d", &n1, &n2, &n3);

printf("Inserire s per effettuare la somma, inserire p per effettuare il prodotto:

\n");

scanf("\n%c", &c);

if(c == 's'){

operation = n1 + n2 + n3;

printf("la somma e' %d\n", operation);

}else if (c == 'p'){

operation = n1 * n2 * n3;

printf("il prodotto e' %d\n", operation);

}else{

printf("ERRORE: il carattere inserito non permette di effettuare nessuna operazione");

}

return 0;

}

(9)

Esercizio 3

9 /* ESERCIZIO 1 */

/* dati un numero, stampare il primo numero successivo pari */

#include <stdio.h>

#include <stdlib.h>

int main(){

int n, r;

printf("inserire un numero intero: \n");

scanf("%d", &n);

r = n%2;

if( r == 0){

printf("il primo numero successivo pari di %d e' %d\n", n, n+2);

}else{

printf("il primo numero successivo pari di %d e' %d\n", n, n+1);

}

return 0;

}

/* ESERCIZIO 2 */

/* dati dati tre numeri, chiedere all'utente che tipo di operazione vuole effettuare:

- se l'utente inserisce 's' effettuare la somma - se l'utente inserisce 'p' effettuare il prodotto

- se l'utente inserisce un altro carattere, visualizzare un messaggio di errore */

#include <stdio.h>

#include <stdlib.h>

int main(){

int n1, n2, n3, operation;

char c;

printf("inserire tre numeri interi: \n");

scanf("%d%d%d", &n1, &n2, &n3);

printf("Inserire s per effettuare la somma, inserire p per effettuare il prodotto:

\n");

scanf("\n%c", &c);

if(c == 's'){

operation = n1 + n2 + n3;

printf("la somma e' %d\n", operation);

}else if (c == 'p'){

operation = n1 * n2 * n3;

printf("il prodotto e' %d\n", operation);

}else{

printf("ERRORE: il carattere inserito non permette di effettuare nessuna operazione");

}

return 0;

}

/* ESERCIZIO 1 */

/* dati un numero, stampare il primo numero successivo pari */

#include <stdio.h>

#include <stdlib.h>

int main(){

int n, r;

printf("inserire un numero intero: \n");

scanf("%d", &n);

r = n%2;

if( r == 0){

printf("il primo numero successivo pari di %d e' %d\n", n, n+2);

}else{

printf("il primo numero successivo pari di %d e' %d\n", n, n+1);

}

return 0;

}

/* ESERCIZIO 2 */

/* dati dati tre numeri, chiedere all'utente che tipo di operazione vuole effettuare:

- se l'utente inserisce 's' effettuare la somma - se l'utente inserisce 'p' effettuare il prodotto

- se l'utente inserisce un altro carattere, visualizzare un messaggio di errore */

#include <stdio.h>

#include <stdlib.h>

int main(){

int n1, n2, n3, operation;

char c;

printf("inserire tre numeri interi: \n");

scanf("%d%d%d", &n1, &n2, &n3);

printf("Inserire s per effettuare la somma, inserire p per effettuare il prodotto:

\n");

scanf("\n%c", &c);

if(c == 's'){

operation = n1 + n2 + n3;

printf("la somma e' %d\n", operation);

}else if (c == 'p'){

operation = n1 * n2 * n3;

printf("il prodotto e' %d\n", operation);

}else{

printf("ERRORE: il carattere inserito non permette di effettuare nessuna operazione");

}

return 0;

}

(10)

Esercizio 2

Leggere  3  numeri,  A,  B  e  C.  

Dire  quale  di  essi  é  maggiore.

10

#include <stdio.h>

int main(int argn, char** argv) { int a, b, c;

scanf("%d", &a);

scanf("%d", &b);

scanf("%d", &c);

if (a > b) {

if (a > c) {

printf("A");

exit(0);

} }

if (b > c) {

if (b > a) {

printf("B");

exit(0);

} }

if (c > b) {

if (c > a) {

printf("C");

exit(0);

} }

return 0;

}

#include <stdio.h>

int main(int argn, char** argv) { int a, b, c;

scanf("%d", &a);

scanf("%d", &b);

scanf("%d", &c);

if (a > b) {

if (a > c) {

printf("A");

exit(0);

} }

if (b > c) {

if (b > a) {

printf("B");

exit(0);

} }

if (c > b) {

if (c > a) {

printf("C");

exit(0);

} }

return 0;

}

(11)

11

Tutte il materiale sarà disponibile sul mio sito internet!

alessandronacci.com

(12)

12

Tutte il materiale sarà disponibile sul mio sito internet!

alessandronacci.com

Riferimenti

Documenti correlati

Il sito è inoltre dinamico e quindi aggiornabile in tutte le sue parti (strutture ricettive, guide, itinerari, foto) direttamente da un

Anche un vettore multidimensionale è implementato in C come un puntatore all’area di memoria da cui partono le celle contigue contenenti il vettore. contigue contenenti il vettore

• Si scriva un programma che controlli la possibilità di perdere una partita a tris alla mossa successiva. • Il programma chiede all'utente di inserire una matrice 3x3 riempita con

• Se una cella ha valore 0 questa assumera’ un valore pari alla somma dei valori contenuti nelle celle adiacenti. • L’algoritmo si ferma quando non esistono piu’ celle con

Comune di Trieste, Area Polizia Locale e Sicurezza, Servizio Amministrativo, Ufficio Gestione Economico-Finanziaria; via Genova 6, 34121 Trieste. Codice NUTS: ITD44. Sito internet:

Comune di Trieste, Area Polizia Locale e Sicurezza, Servizio Amministrativo, Ufficio Gestione Economico-Finanziaria; via Genova 6, 34121 Trieste. Codice NUTS: ITD44. Sito internet:

Comune di Trieste, Area Polizia Locale e Sicurezza, Servizio Amministrativo, Ufficio Gestione Economico-Finanziaria; via Genova 6, 34121 Trieste. Codice NUTS: ITD44. Sito internet:

Comune di Trieste, Area Polizia Locale e Sicurezza, Servizio Amministrativo, Ufficio Gestione Economico-Finanziaria; via Genova 6, 34121 Trieste. Codice NUTS: ITD44. Sito internet: