Elementi di Informatica e Programmazione Esercizi …...Esercizio 3 Si consideri un calcolatore con...

72
1 A.A. 2016/2017 Docente: A. Saetti Elementi di Informatica e Programmazione – Università di Brescia Elementi di Informatica e Programmazione Esercizi sugli Schemi a Blocchi Alessandro Saetti (email: [email protected] ) Università degli Studi di Brescia A.A. 2016/2017

Transcript of Elementi di Informatica e Programmazione Esercizi …...Esercizio 3 Si consideri un calcolatore con...

Page 1: Elementi di Informatica e Programmazione Esercizi …...Esercizio 3 Si consideri un calcolatore con • un banco di 16 registri ad uso generico, • parole di memoria di 16 bit ed

1 A.A. 2016/2017 Docente: A. Saetti Elementi di Informatica e Programmazione – Università di Brescia

Elementi di Informatica e Programmazione Esercizi sugli Schemi a Blocchi

Alessandro Saetti (email: [email protected])

Università degli Studi di Brescia A.A. 2016/2017

Page 2: Elementi di Informatica e Programmazione Esercizi …...Esercizio 3 Si consideri un calcolatore con • un banco di 16 registri ad uso generico, • parole di memoria di 16 bit ed

2 A.A. 2016/2017

Esercizio 1 Scrivere un diagramma a blocchi per svolgere il seguente compito

Visualizzare i numeri pari inferiori a 10. Si chiede di identificare i numeri pari per mezzo dell’operazione di resto.

Docente: A. Saetti Elementi di Informatica e Programmazione – Università di Brescia

Page 3: Elementi di Informatica e Programmazione Esercizi …...Esercizio 3 Si consideri un calcolatore con • un banco di 16 registri ad uso generico, • parole di memoria di 16 bit ed

3 A.A. 2016/2017

Esercizio 2 Scrivere un diagramma a blocchi per svolgere il seguente compito

Acquisire una successione di interi che termina col primo intero acquisito negativo o uguale a zero. Subito dopo ciascuna acquisizione visualizzare un messaggio che indica se l’intero acquisto è pari o dispari.

Docente: A. Saetti Elementi di Informatica e Programmazione – Università di Brescia

Page 4: Elementi di Informatica e Programmazione Esercizi …...Esercizio 3 Si consideri un calcolatore con • un banco di 16 registri ad uso generico, • parole di memoria di 16 bit ed

4 A.A. 2016/2017

Acquisire una successione di interi che termina con primo zero acquisito. Successivamente visualizzare la media degli interi positivi acquisiti.

Docente: A. Saetti Elementi di Informatica e Programmazione – Università di Brescia

Esercizio 3 Scrivere un diagramma a blocchi per svolgere il seguente compito

Page 5: Elementi di Informatica e Programmazione Esercizi …...Esercizio 3 Si consideri un calcolatore con • un banco di 16 registri ad uso generico, • parole di memoria di 16 bit ed

5 A.A. 2016/2017

Acquisire una successione di triple di interi che termina con la prima tripla acquisita composta da 3 zeri. Si assuma che ciascuna tripla della successione (esclusa l’ultima) sia una data valida. Si visualizzi quindi la data più remota tra quelle acquisite.

Docente: A. Saetti Elementi di Informatica e Programmazione – Università di Brescia

Esercizio 4 Scrivere un diagramma a blocchi per svolgere il seguente compito

Page 6: Elementi di Informatica e Programmazione Esercizi …...Esercizio 3 Si consideri un calcolatore con • un banco di 16 registri ad uso generico, • parole di memoria di 16 bit ed

6 A.A. 2016/2017

•  Visualizzare il massimo comune divisore di due interi acquisiti da tastiera

•  Visualizzare il minimo comune multiplo di due interi acquisiti da tastiera

Docente: A. Saetti Elementi di Informatica e Programmazione – Università di Brescia

Esercizi 5 e 6 Scrivere 2 diagrammi a blocchi per svolgere i seguenti compiti

Page 7: Elementi di Informatica e Programmazione Esercizi …...Esercizio 3 Si consideri un calcolatore con • un banco di 16 registri ad uso generico, • parole di memoria di 16 bit ed

7 A.A. 2016/2017

•  Visualizzare tutti i numeri primi inferiori o uguali a 1000

•  Visualizzare i primi 1000 numeri primi

Docente: A. Saetti Elementi di Informatica e Programmazione – Università di Brescia

Esercizio 7 e 8 Scrivere 2 diagrammi a blocchi per svolgere i seguenti compiti

Page 8: Elementi di Informatica e Programmazione Esercizi …...Esercizio 3 Si consideri un calcolatore con • un banco di 16 registri ad uso generico, • parole di memoria di 16 bit ed

8 A.A. 2016/2017

Acquisire una successione di interi che termina col prima intero x pari. Infine visualizzare due numeri primi la cui somma è uguale a x.

Docente: A. Saetti Elementi di Informatica e Programmazione – Università di Brescia

Esercizio 9 Scrivere un diagramma a blocchi per svolgere il seguente compito

Page 9: Elementi di Informatica e Programmazione Esercizi …...Esercizio 3 Si consideri un calcolatore con • un banco di 16 registri ad uso generico, • parole di memoria di 16 bit ed

9 A.A. 2016/2017

Acquisire una successione di interi che termina col primo zero acquisito. Successivamente visualizzare un messaggio che indichi se la sequenza di interi positivi acquisiti è palindroma.

Docente: A. Saetti Elementi di Informatica e Programmazione – Università di Brescia

Esercizio 10 Scrivere un diagramma a blocchi per svolgere il seguente compito

Page 10: Elementi di Informatica e Programmazione Esercizi …...Esercizio 3 Si consideri un calcolatore con • un banco di 16 registri ad uso generico, • parole di memoria di 16 bit ed

10 A.A. 2016/2017

Acquisire una successione di interi che termina col primo zero acquisito oppure con l’acquisizione del 100-esimo intero. Successivamente visualizzare i numeri positivi (zero escluso) acquisiti in ordine inverso rispetto a quello con cui sono stati acquisiti.

Docente: A. Saetti Elementi di Informatica e Programmazione – Università di Brescia

Esercizio 11 Scrivere un diagramma a blocchi per svolgere il seguente compito

Page 11: Elementi di Informatica e Programmazione Esercizi …...Esercizio 3 Si consideri un calcolatore con • un banco di 16 registri ad uso generico, • parole di memoria di 16 bit ed

11 A.A. 2016/2017

Acquisire una successione di 100 interi. Successivamente visualizzare la lunghezza della più lunga sottosequenza di interi acquisiti pari.

Docente: A. Saetti Elementi di Informatica e Programmazione – Università di Brescia

Esercizio 12 Scrivere un diagramma a blocchi per svolgere il seguente compito

Page 12: Elementi di Informatica e Programmazione Esercizi …...Esercizio 3 Si consideri un calcolatore con • un banco di 16 registri ad uso generico, • parole di memoria di 16 bit ed

12 A.A. 2016/2017

Visualizzare i primi 1000 numeri primi sfruttando la seguente proprietà. Un numero x è primo sse non è divisibile per alcun numero primo y < x.

Docente: A. Saetti Elementi di Informatica e Programmazione – Università di Brescia

Esercizio 13 Scrivere un diagramma a blocchi per svolgere il seguente compito

Page 13: Elementi di Informatica e Programmazione Esercizi …...Esercizio 3 Si consideri un calcolatore con • un banco di 16 registri ad uso generico, • parole di memoria di 16 bit ed

13 A.A. 2016/2017

Acquisire una successione di interi che termina col primo zero. Successivamente visualizzare i numeri positivi (zero escluso) acquisiti ordinati dal più piccolo al più grande.

Docente: A. Saetti Elementi di Informatica e Programmazione – Università di Brescia

Esercizio 14 Scrivere un diagramma a blocchi per svolgere il seguente compito

Page 14: Elementi di Informatica e Programmazione Esercizi …...Esercizio 3 Si consideri un calcolatore con • un banco di 16 registri ad uso generico, • parole di memoria di 16 bit ed

14 A.A. 2016/2017

Acquisire una successione X di 100 interi ed una successione Y che termina col primo zero. Successivamente visualizzare quante volte Y è contenuta in X.

Docente: A. Saetti Elementi di Informatica e Programmazione – Università di Brescia

Esercizio 15 Scrivere un diagramma a blocchi per svolgere il seguente compito

Page 15: Elementi di Informatica e Programmazione Esercizi …...Esercizio 3 Si consideri un calcolatore con • un banco di 16 registri ad uso generico, • parole di memoria di 16 bit ed

15 A.A. 2016/2017 Docente: A. Saetti Elementi di Informatica e Programmazione – Università di Brescia

Elementi di Informatica e Programmazione Esercizi su Linguaggio Assembly

Alessandro Saetti (email: [email protected])

Università degli Studi di Brescia A.A. 2016/2017

Page 16: Elementi di Informatica e Programmazione Esercizi …...Esercizio 3 Si consideri un calcolatore con • un banco di 16 registri ad uso generico, • parole di memoria di 16 bit ed

16 A.A. 2016/2017

Esercizio 1

Si consideri un calcolatore con •  un banco di 16 registri ad uso generico, •  parole di memoria di 16 bit ed •  istruzioni del linguaggio macchina codificate con 16

bit di cui 4 bit codificano il codice operativo. Scrivere il programma Assembly che memorizzi nella parola di memoria di indirizzo 0x21AA l’intero presente nella parola di memoria di indirizzo 0x21A8, se detto intero è positivo.

Docente: A. Saetti Elementi di Informatica e Programmazione – Università di Brescia

Page 17: Elementi di Informatica e Programmazione Esercizi …...Esercizio 3 Si consideri un calcolatore con • un banco di 16 registri ad uso generico, • parole di memoria di 16 bit ed

17 A.A. 2016/2017

Esercizio 2

Si consideri un calcolatore con •  un banco di 16 registri ad uso generico, •  parole di memoria di 16 bit ed •  istruzioni del linguaggio macchina codificate con 16

bit di cui 4 bit codificano il codice operativo. Scrivere il programma Assembly che memorizzi la tabellina del 12 nell’area di memoria la cui prima parola ha indirizzo 0x100.

Docente: A. Saetti Elementi di Informatica e Programmazione – Università di Brescia

Page 18: Elementi di Informatica e Programmazione Esercizi …...Esercizio 3 Si consideri un calcolatore con • un banco di 16 registri ad uso generico, • parole di memoria di 16 bit ed

18 A.A. 2016/2017

Esercizio 3 Si consideri un calcolatore con •  un banco di 16 registri ad uso generico, •  parole di memoria di 16 bit ed •  istruzioni del linguaggio macchina codificate con

16 bit di cui 4 bit codificano il codice operativo. Scrivere il programma Assembly che memorizzi nella parola di memoria di indirizzo 0x114 la somma degli interi presenti nell’area di memoria la cui prima parola ha inidirizzo 0x100 e la cui ultima parola ha inidizzo 0x112.

Docente: A. Saetti Elementi di Informatica e Programmazione – Università di Brescia

Page 19: Elementi di Informatica e Programmazione Esercizi …...Esercizio 3 Si consideri un calcolatore con • un banco di 16 registri ad uso generico, • parole di memoria di 16 bit ed

19 A.A. 2016/2017

Esercizio 4 Si consideri un calcolatore con •  un banco di 16 registri ad uso generico, •  parole di memoria di 16 bit ed •  istruzioni del linguaggio macchina codificate con 16

bit di cui 4 bit codificano il codice operativo. Scrivere il programma Assembly che memorizzi nell’area di memoria la cui prima parola ha indirizzo 0x2F4 gli interi presenti nell’area di memoria la cui prima parola ha indirizzo 0x1A2 e la cui ultima parola ha indirizzo 0x2F2 se questi sono maggiori dell’intero memorizzato nella parola di memoria di indirizzo 0x1A0.

Docente: A. Saetti Elementi di Informatica e Programmazione – Università di Brescia

Page 20: Elementi di Informatica e Programmazione Esercizi …...Esercizio 3 Si consideri un calcolatore con • un banco di 16 registri ad uso generico, • parole di memoria di 16 bit ed

20 A.A. 2016/2017

Esercizio 5 Si consideri un calcolatore con •  un banco di 16 registri ad uso generico, •  parole di memoria di 16 bit ed •  istruzioni del linguaggio macchina codificate con 16

bit di cui 4 bit codificano il codice operativo. Scrivere il programma Assembly che memorizzi nella parola di memoria di indirizzo 0x2F4 la quantità di interi presenti nell’area di memoria la cui prima parola ha indirizzo 0x1A2 e la cui ultima parola ha indirizzo 0x2F2 e che sono maggiori dell’intero memorizzato nella parola di memoria di indirizzo 0x1A0.

Docente: A. Saetti Elementi di Informatica e Programmazione – Università di Brescia

Page 21: Elementi di Informatica e Programmazione Esercizi …...Esercizio 3 Si consideri un calcolatore con • un banco di 16 registri ad uso generico, • parole di memoria di 16 bit ed

21 A.A. 2016/2017 Docente: A. Saetti Elementi di Informatica e Programmazione – Università di Brescia

Elementi di Informatica e Programmazione Esercizi su Programmazione C

- Parte I -

Alessandro Saetti (email: [email protected])

Università degli Studi di Brescia A.A. 2016/2017

Page 22: Elementi di Informatica e Programmazione Esercizi …...Esercizio 3 Si consideri un calcolatore con • un banco di 16 registri ad uso generico, • parole di memoria di 16 bit ed

22 A.A. 2016/2017

Esercizi 1 e 2 Scrivere dei programmi C per svolgere i seguenti compiti

•  Acquisire da tastiera un reale e visualizzare la sua parte intera e frazionaria

•  Acquisire da tastiera due numeri naturali. Si consideri gli interi acquisiti come il dividendo ed il divisore di una divisione. Visualizzare il quoziente intero, il resto ed il quoziente reale della divisione.

Docente: A. Saetti Elementi di Informatica e Programmazione – Università di Brescia

Page 23: Elementi di Informatica e Programmazione Esercizi …...Esercizio 3 Si consideri un calcolatore con • un banco di 16 registri ad uso generico, • parole di memoria di 16 bit ed

23 A.A. 2016/2017

Esercizio 3 Scrivere un programma C per svolgere il seguente compito

Acquisire da tastiera tre numeri naturali e visualizzare il massimo tra i naturali acquisiti.

Docente: A. Saetti Elementi di Informatica e Programmazione – Università di Brescia

Page 24: Elementi di Informatica e Programmazione Esercizi …...Esercizio 3 Si consideri un calcolatore con • un banco di 16 registri ad uso generico, • parole di memoria di 16 bit ed

24 A.A. 2016/2017

Esercizio 4 Scrivere un programma C per svolgere il seguente compito

Si consideri una sequenza di 10 numeri pseudo-casuali compresi tra -50 e +50 (estremi inclusi). Si visualizzi il massimo intero nella sequenza e la posizione del massimo nella sequenza.

Docente: A. Saetti Elementi di Informatica e Programmazione – Università di Brescia

Page 25: Elementi di Informatica e Programmazione Esercizi …...Esercizio 3 Si consideri un calcolatore con • un banco di 16 registri ad uso generico, • parole di memoria di 16 bit ed

25 A.A. 2016/2017

Esercizio 5 Scrivere un programma C per svolgere il seguente compito

Acquisire da tastiera un numero naturale. Si considero il naturale acquisito come un numero di anno. Si visualizzi un messaggio che indica se l’anno è bisestile o meno.

Docente: A. Saetti Elementi di Informatica e Programmazione – Università di Brescia

Page 26: Elementi di Informatica e Programmazione Esercizi …...Esercizio 3 Si consideri un calcolatore con • un banco di 16 registri ad uso generico, • parole di memoria di 16 bit ed

26 A.A. 2016/2017

Esercizio 6 Scrivere un programma C per svolgere il seguente compito

Acquisire da tastiera un carattere e visualizzare un messaggio che indica se il carattere acquisito è una lettera minuscola, una lettera maiuscola, una cifra o altro.

Docente: A. Saetti Elementi di Informatica e Programmazione – Università di Brescia

Page 27: Elementi di Informatica e Programmazione Esercizi …...Esercizio 3 Si consideri un calcolatore con • un banco di 16 registri ad uso generico, • parole di memoria di 16 bit ed

27 A.A. 2016/2017

Esercizio 7 Scrivere un programma C per svolgere il seguente compito

Acquisire da tastiera un intero. Si consideri l’intero acquisito una cifra binaria. Si visualizzi un messaggio che indica come si pronuncia la cifra oppure un avvertimento per indicare che l’intero immesso non è una cifra binaria.

Docente: A. Saetti Elementi di Informatica e Programmazione – Università di Brescia

Page 28: Elementi di Informatica e Programmazione Esercizi …...Esercizio 3 Si consideri un calcolatore con • un banco di 16 registri ad uso generico, • parole di memoria di 16 bit ed

28 A.A. 2016/2017

Esercizio 8 Scrivere un programma C per svolgere il seguente compito

Acquisire da tastiera un numero reale e visualizzare la sua parte frazionaria e la sua parte intera, se quest’ultima è diversa da zero

Docente: A. Saetti Elementi di Informatica e Programmazione – Università di Brescia

Page 29: Elementi di Informatica e Programmazione Esercizi …...Esercizio 3 Si consideri un calcolatore con • un banco di 16 registri ad uso generico, • parole di memoria di 16 bit ed

29 A.A. 2016/2017

Esercizio 9 e 10 Scrivere dei programmi C per svolgere i seguenti compiti

•  Acquisire da tastiera due numeri naturali. Si consideri i naturali acquisiti come il dividendo ed il divisore di una divisione. Visualizzare il quoziente intero ed il resto se il divisore è diverso da zero.

•  Acquisire da tastiera due numeri naturali. Si consideri i naturali acquisiti come il dividendo ed il divisore di una divisione. Visualizzare il quoziente intero ed il resto se il divisore è diverso da zero. Altrimenti visualizzare un messaggio di errore.

Docente: A. Saetti Elementi di Informatica e Programmazione – Università di Brescia

Page 30: Elementi di Informatica e Programmazione Esercizi …...Esercizio 3 Si consideri un calcolatore con • un banco di 16 registri ad uso generico, • parole di memoria di 16 bit ed

30 A.A. 2016/2017

Esercizio 11 Scrivere un programma C per svolgere il seguente compito

Acquisire da tastiera un numero naturale e visualizzare la più piccola potenza di 2 superiore al naturale acquisito.

Docente: A. Saetti Elementi di Informatica e Programmazione – Università di Brescia

Page 31: Elementi di Informatica e Programmazione Esercizi …...Esercizio 3 Si consideri un calcolatore con • un banco di 16 registri ad uso generico, • parole di memoria di 16 bit ed

31 A.A. 2016/2017

Esercizio 12 Scrivere un programma C per svolgere il seguente compito

Acquisire da tastiera un numero naturale e visualizzare il naturale acquisito con le cifre invertite. Ad esempio se si acquisisce 165 si vuole visualizzare 561.

Docente: A. Saetti Elementi di Informatica e Programmazione – Università di Brescia

Page 32: Elementi di Informatica e Programmazione Esercizi …...Esercizio 3 Si consideri un calcolatore con • un banco di 16 registri ad uso generico, • parole di memoria di 16 bit ed

32 A.A. 2016/2017

Esercizio 13 Scrivere un programma C per svolgere il seguente compito

Acquisire da tastiera un numero naturale e visualizzare la quantità di cifre che costituiscono il naturale. Ad esempio, acquisendo 156 si vorrebbe visualizzare il numero 3.

Docente: A. Saetti Elementi di Informatica e Programmazione – Università di Brescia

Page 33: Elementi di Informatica e Programmazione Esercizi …...Esercizio 3 Si consideri un calcolatore con • un banco di 16 registri ad uso generico, • parole di memoria di 16 bit ed

33 A.A. 2016/2017

Esercizio 14 Scrivere un programma C per svolgere il seguente compito

Acquisire da tastiera una successione di numeri naturali che termina con zero. Visualizzare il minimo tra naturali acquisiti (zero escluso).

Docente: A. Saetti Elementi di Informatica e Programmazione – Università di Brescia

Page 34: Elementi di Informatica e Programmazione Esercizi …...Esercizio 3 Si consideri un calcolatore con • un banco di 16 registri ad uso generico, • parole di memoria di 16 bit ed

34 A.A. 2016/2017

Esercizio 15 Scrivere un programma C per svolgere il seguente compito

Acquisire da tastiera un numero naturale e visualizzare un messaggio che indica se il naturale acquisito è superiore rispetto al naturale con le cifre invertite. Ad esempio se si acquisisce 651 si vuole visualizzare un messaggio per indicare che 651 è superiore a 156.

Docente: A. Saetti Elementi di Informatica e Programmazione – Università di Brescia

Page 35: Elementi di Informatica e Programmazione Esercizi …...Esercizio 3 Si consideri un calcolatore con • un banco di 16 registri ad uso generico, • parole di memoria di 16 bit ed

35 A.A. 2016/2017

Esercizio 16 Scrivere un programma C per svolgere il seguente compito

•  Acquisire da tastiera una successione di due interi che termina con due interi positivi. Si consideri i due interi positivi acquisiti come il dividendo ed il divisore di una divisione. Visualizzare il quoziente intero della divisione.

•  Acquisire da tastiera una successione di due interi che termina con due interi positivi. Si consideri gli interi acquisiti come il dividendo ed il divisore di una divisione. Visualizzare il quoziente intero calcolato utilizzando esclusivamente operazioni di somma e sottrazione.

Docente: A. Saetti Elementi di Informatica e Programmazione – Università di Brescia

Page 36: Elementi di Informatica e Programmazione Esercizi …...Esercizio 3 Si consideri un calcolatore con • un banco di 16 registri ad uso generico, • parole di memoria di 16 bit ed

36 A.A. 2016/2017

Esercizio 17 Scrivere un programma C per svolgere il seguente compito

Acquisire da tastiera un numero naturale e visualizzare il suo fattoriale.

Docente: A. Saetti Elementi di Informatica e Programmazione – Università di Brescia

Page 37: Elementi di Informatica e Programmazione Esercizi …...Esercizio 3 Si consideri un calcolatore con • un banco di 16 registri ad uso generico, • parole di memoria di 16 bit ed

37 A.A. 2016/2017

Esercizio 18 Scrivere un programma C per svolgere il seguente compito

Acquisire da tastiera un numero naturale e visualizzare la quantità dei suoi divisori.

Docente: A. Saetti Elementi di Informatica e Programmazione – Università di Brescia

Page 38: Elementi di Informatica e Programmazione Esercizi …...Esercizio 3 Si consideri un calcolatore con • un banco di 16 registri ad uso generico, • parole di memoria di 16 bit ed

38 A.A. 2016/2017

Esercizio 19 Scrivere un programma C per svolgere il seguente compito

Acquisire da tastiera due naturali e visualizzare il loro minimo comune multiplo.

Docente: A. Saetti Elementi di Informatica e Programmazione – Università di Brescia

Page 39: Elementi di Informatica e Programmazione Esercizi …...Esercizio 3 Si consideri un calcolatore con • un banco di 16 registri ad uso generico, • parole di memoria di 16 bit ed

39 A.A. 2016/2017

Esercizio 20 Scrivere un programma C per svolgere il seguente compito

Acquisire un numero naturale n e visualizzare una piramide di naturali tale per cui la piramide ha n righe e la i-esima riga della piramide è costituita da i cifre uguali ad i. Ad esempio per n = 3 si vuole visualizzare: 1 22 333

Docente: A. Saetti Elementi di Informatica e Programmazione – Università di Brescia

Page 40: Elementi di Informatica e Programmazione Esercizi …...Esercizio 3 Si consideri un calcolatore con • un banco di 16 registri ad uso generico, • parole di memoria di 16 bit ed

40 A.A. 2016/2017

Esercizio 21 Scrivere un programma C per svolgere il seguente compito

Acquisire da tastiera 5 numeri naturali e dopo ciascuna acquisizione visualizzare quanti divisori ha il naturale acquisito

Docente: A. Saetti Elementi di Informatica e Programmazione – Università di Brescia

Page 41: Elementi di Informatica e Programmazione Esercizi …...Esercizio 3 Si consideri un calcolatore con • un banco di 16 registri ad uso generico, • parole di memoria di 16 bit ed

41 A.A. 2016/2017

Esercizio 22 Scrivere dei programmi C per svolgere i seguenti compiti

•  Acquisire da tastiera 5 volte due numeri naturali. Si considerino i naturali acquisiti come il dividendo ed il divisore di una divisione. Dopo ciascuna acquisizione visualizzare il quoziente intero ed il resto.

•  Acquisire da tastiera una successione di naturali che termina con 0 e al termine delle acquisizione visualizzare la quantità di numeri primi acquisiti

Docente: A. Saetti Elementi di Informatica e Programmazione – Università di Brescia

Page 42: Elementi di Informatica e Programmazione Esercizi …...Esercizio 3 Si consideri un calcolatore con • un banco di 16 registri ad uso generico, • parole di memoria di 16 bit ed

42 A.A. 2016/2017 Docente: A. Saetti Elementi di Informatica e Programmazione – Università di Brescia

Elementi di Informatica e Programmazione Esercizi su Programmazione C

- Parte II -

Alessandro Saetti (email: [email protected])

Università degli Studi di Brescia A.A. 2016/2017

Page 43: Elementi di Informatica e Programmazione Esercizi …...Esercizio 3 Si consideri un calcolatore con • un banco di 16 registri ad uso generico, • parole di memoria di 16 bit ed

43 A.A. 2016/2017

Esercizio 1 Scrivere un programma C per svolgere il seguente compito

Acquisire da tastiera una successione di numeri naturali che termina con l’acquisizione del 50-esimo naturale oppure con l’acquisizione di zero. Si visualizzi la successione di naturali acquisiti al contrario (zero escluso). Ad esempio, se si acquisisce 4 5 6 0 si vuole visualizzare 6 5 4.

Docente: A. Saetti Elementi di Informatica e Programmazione – Università di Brescia

Page 44: Elementi di Informatica e Programmazione Esercizi …...Esercizio 3 Si consideri un calcolatore con • un banco di 16 registri ad uso generico, • parole di memoria di 16 bit ed

44 A.A. 2016/2017

Esercizio 2 Scrivere un programma C per svolgere il seguente compito

Si consideri una sequenza di 10 numeri pseudo-casuali compresi tra -50 e +50 (estremi inclusi). Si visualizzi il massimo intero nella sequenza e la posizione del massimo nella sequenza.

Docente: A. Saetti Elementi di Informatica e Programmazione – Università di Brescia

Page 45: Elementi di Informatica e Programmazione Esercizi …...Esercizio 3 Si consideri un calcolatore con • un banco di 16 registri ad uso generico, • parole di memoria di 16 bit ed

45 A.A. 2016/2017

Esercizio 3 Scrivere un programma C per svolgere il seguente compito

Si acquisisca da tastiera un numero naturale. Si visualizzi per ciascuna cifra da 0 a 9 quante volte la cifra compare nel naturale acquisito.

Docente: A. Saetti Elementi di Informatica e Programmazione – Università di Brescia

Page 46: Elementi di Informatica e Programmazione Esercizi …...Esercizio 3 Si consideri un calcolatore con • un banco di 16 registri ad uso generico, • parole di memoria di 16 bit ed

46 A.A. 2016/2017

Esercizio 4 Scrivere un programma C per svolgere il seguente compito

Acquisire da tastiera 5 interi e successivamente (dopo avere acquisito tutti gli interi) visualizzare quanti divisori ha ciascun intero acquisito.

Docente: A. Saetti Elementi di Informatica e Programmazione – Università di Brescia

Page 47: Elementi di Informatica e Programmazione Esercizi …...Esercizio 3 Si consideri un calcolatore con • un banco di 16 registri ad uso generico, • parole di memoria di 16 bit ed

47 A.A. 2016/2017

Esercizio 5 Scrivere un programma C per svolgere il seguente compito

Acquisire da tastiera 5 volte due numeri naturali. Si considerino i naturali acquisiti come il dividendo ed il divisore di una divisione. Dopo avere acquisito tutti i naturali, visualizzare il quoziente intero ed il resto di ciascuna divisione.

Docente: A. Saetti Elementi di Informatica e Programmazione – Università di Brescia

Page 48: Elementi di Informatica e Programmazione Esercizi …...Esercizio 3 Si consideri un calcolatore con • un banco di 16 registri ad uso generico, • parole di memoria di 16 bit ed

48 A.A. 2016/2017

Esercizio 6 Scrivere un programma C per svolgere il seguente compito

Si consideri una sequenza di 20 numeri naturali pseudo-casuali compresi tra 10 e 100. Si visualizza il massimo comune divisore dei naturali della sequenza.

Docente: A. Saetti Elementi di Informatica e Programmazione – Università di Brescia

Page 49: Elementi di Informatica e Programmazione Esercizi …...Esercizio 3 Si consideri un calcolatore con • un banco di 16 registri ad uso generico, • parole di memoria di 16 bit ed

49 A.A. 2016/2017

Esercizio 7 Scrivere un programma C per svolgere il seguente compito

Si acquisisca da tastiera un numero naturale n e si visualizzi tutti i numeri primi compresi tra 2 ed n. Per fare questo si sfruttino le seguenti due proprietà: •  Un numero è primo sse non ha divisori primi •  Un numero è primo sse non ha divisori

compresi tra 2 e sua la radice quadrata intera

Docente: A. Saetti Elementi di Informatica e Programmazione – Università di Brescia

Page 50: Elementi di Informatica e Programmazione Esercizi …...Esercizio 3 Si consideri un calcolatore con • un banco di 16 registri ad uso generico, • parole di memoria di 16 bit ed

50 A.A. 2016/2017

Esercizio 8 Scrivere un programma C per svolgere il seguente compito

Si consideri una matrice di 5 righe e 9 colonne di interi pseudo-casuali compresei tra -3 e +12. Si visualizzi la matrice e la matrice trasposta.

Docente: A. Saetti Elementi di Informatica e Programmazione – Università di Brescia

Page 51: Elementi di Informatica e Programmazione Esercizi …...Esercizio 3 Si consideri un calcolatore con • un banco di 16 registri ad uso generico, • parole di memoria di 16 bit ed

51 A.A. 2016/2017

Esercizio 9 Scrivere un programma C per svolgere il seguente compito

Si consideri una matrice di 5 righe e 9 colonne di interi pseudo-casuali compresei tra -60 e +60. Si visualizzi la colonna con la maggior quantità di interi positivi.

Docente: A. Saetti Elementi di Informatica e Programmazione – Università di Brescia

Page 52: Elementi di Informatica e Programmazione Esercizi …...Esercizio 3 Si consideri un calcolatore con • un banco di 16 registri ad uso generico, • parole di memoria di 16 bit ed

52 A.A. 2016/2017

Esercizio 10 Scrivere un programma C per svolgere il seguente compito

Si consideri una tabella di 5 righe e 12 colonne di interi pseudo-casuali compresi tra -40 e +40. Si visualizzi la tabella e successivamente, per ciascuna riga della tabella, si visualizzi la somma degli interi presenti sulla riga.

Docente: A. Saetti Elementi di Informatica e Programmazione – Università di Brescia

Page 53: Elementi di Informatica e Programmazione Esercizi …...Esercizio 3 Si consideri un calcolatore con • un banco di 16 registri ad uso generico, • parole di memoria di 16 bit ed

53 A.A. 2016/2017

Esercizio 11 Scrivere un programma C per svolgere il seguente compito

Si consideri una tabella di 5 righe e 12 colonne di interi pseudo-casuali compresi tra -20 e +80. Si visualizzi la tabella e successivamente, per ciascuna colonna della tabella, si visualizzi la somma degli interi sulla colonna.

Si consideri una tabella di 5 righe e 12 colonne di interi pseudo-casuali compresi tra -40 e +40. Si visualizzi la tabella e successivamente, per ciascuna colonna della tabella, si visualizzi la media degli interi positivi presenti sulla colonna. Docente: A. Saetti Elementi di Informatica e Programmazione – Università di Brescia

Page 54: Elementi di Informatica e Programmazione Esercizi …...Esercizio 3 Si consideri un calcolatore con • un banco di 16 registri ad uso generico, • parole di memoria di 16 bit ed

54 A.A. 2016/2017

Esercizio 12 Scrivere un programma C per svolgere il seguente compito

Si acquisisca da tastiera una parola, assumendo che la parola acquisita contenga al massimo 20 lettere. Successivamente si visualizza un’anagramma della parola acquisita generato casualmente.

Docente: A. Saetti Elementi di Informatica e Programmazione – Università di Brescia

Page 55: Elementi di Informatica e Programmazione Esercizi …...Esercizio 3 Si consideri un calcolatore con • un banco di 16 registri ad uso generico, • parole di memoria di 16 bit ed

55 A.A. 2016/2017

Esercizio 13 Scrivere un programma C per svolgere il seguente compito

Si acquisisca da tastiera una parola, assumendo che la parola acquisita contenga al massimo 20 lettere. Si visualizzi la parola acquisita al contrario.

Svolgere l’esercizio con e senza l’uso di un secondo vettore per la memorizzazione della parola ribaltata.

Docente: A. Saetti Elementi di Informatica e Programmazione – Università di Brescia

Page 56: Elementi di Informatica e Programmazione Esercizi …...Esercizio 3 Si consideri un calcolatore con • un banco di 16 registri ad uso generico, • parole di memoria di 16 bit ed

56 A.A. 2016/2017

Esercizio 14 Scrivere un programma C per svolgere il seguente compito

Si acquisisca da tastiera una frase, assumendo che la frase acquisita contenga al massimo 100 caratteri. Si visualizzi il numero di lettere minuscole, di lettere maiuscole e di simboli di punteggiatura presenti nella frase acquisita.

Docente: A. Saetti Elementi di Informatica e Programmazione – Università di Brescia

Page 57: Elementi di Informatica e Programmazione Esercizi …...Esercizio 3 Si consideri un calcolatore con • un banco di 16 registri ad uso generico, • parole di memoria di 16 bit ed

57 A.A. 2016/2017

Esercizio 15 Scrivere un programma C per svolgere il seguente compito

Si acquisisca da tastiera 10 parole, assumendo che ciascuna delle parole acquisite contenga al massimo 20 lettere. Si visualizzi il numero di parole che lessicograficamente precedono l’ultima parola acquisita.

Docente: A. Saetti Elementi di Informatica e Programmazione – Università di Brescia

Page 58: Elementi di Informatica e Programmazione Esercizi …...Esercizio 3 Si consideri un calcolatore con • un banco di 16 registri ad uso generico, • parole di memoria di 16 bit ed

58 A.A. 2016/2017

Esercizio 16 Scrivere un programma C per svolgere il seguente compito

Si acquisisca da tastiera 10 parole, assumendo che ciascuna delle parole acquisite contenga al massimo 20 lettere. Successivamente si visualizzi quali parole lessicograficamente seguono la prima parola acquisita.

Docente: A. Saetti Elementi di Informatica e Programmazione – Università di Brescia

Page 59: Elementi di Informatica e Programmazione Esercizi …...Esercizio 3 Si consideri un calcolatore con • un banco di 16 registri ad uso generico, • parole di memoria di 16 bit ed

59 A.A. 2016/2017

Esercizio 17 Scrivere un programma C per svolgere il seguente compito

Si acquisisca da tastiera una sequenza di parole che termina con la 50-esima parola acquisita o con l’acquisizione della parola “fine”. Si assume per questo che le parole acquisite contenga al massimo 20 lettere. Successivamente si visualizzi quali parole seguono lessicograficamente la prima parola acquisita.

Docente: A. Saetti Elementi di Informatica e Programmazione – Università di Brescia

Page 60: Elementi di Informatica e Programmazione Esercizi …...Esercizio 3 Si consideri un calcolatore con • un banco di 16 registri ad uso generico, • parole di memoria di 16 bit ed

60 A.A. 2016/2017

Esercizio 18 Scrivere un programma C per svolgere il seguente compito

Si consideri una sequenza di 10 numeri naturali pseudo-casuali compresi tra 10 e 100. Si visualizzi la sequenza. Successivamente per ciascun intero della sequenza si visualizzi il più piccolo numero primo superiore a x e il più grande numero primo inferiore a x. Per svolgere questo compito si definisca ed utilizzi le due funzioni che svolgono i seguenti compiti: •  Produrre 1 se un dato numero naturale è primo; 0 altrimenti •  Inizializzare le variabili puntate da due dati puntatori a

variabili intere con il più grande numero primo inferiore ad un dato intero x ed il più piccolo numero primo superiore a x.

Docente: A. Saetti Elementi di Informatica e Programmazione – Università di Brescia

Page 61: Elementi di Informatica e Programmazione Esercizi …...Esercizio 3 Si consideri un calcolatore con • un banco di 16 registri ad uso generico, • parole di memoria di 16 bit ed

61 A.A. 2016/2017

Esercizio 19 Scrivere un programma C per svolgere il seguente compito

Si visualizzi una sequenza di 10 numeri naturali pseudo-casuali compresi tra 10 e 50. Si acquisisca da tastiera un intero n. Successivamente per ciascun intero x della sequenza si visualizzi il quoziente e il resto della divisione tra x e n. Per svolgere questo compito si definisca ed utilizzi una funzione che inizializza le variabili puntate da due dati puntatori con il quoziente e il resto della divisione tra due date variabili intere.

Docente: A. Saetti Elementi di Informatica e Programmazione – Università di Brescia

Page 62: Elementi di Informatica e Programmazione Esercizi …...Esercizio 3 Si consideri un calcolatore con • un banco di 16 registri ad uso generico, • parole di memoria di 16 bit ed

62 A.A. 2016/2017

Esercizio 20 Scrivere un programma C per svolgere il seguente compito

Si inizializzi una matrice di 10 righe e 12 colonne con interi pseudo-casuali compresi tra -50 e +50. Visualizzare per ciascuna riga della matrice la somma degli interi presenti sulla riga. Per svolgere questo compito si definisca ed utilizzi una funzione con produce la somma degli interi presenti in un dato vettore di n variabili intere.

Docente: A. Saetti Elementi di Informatica e Programmazione – Università di Brescia

Page 63: Elementi di Informatica e Programmazione Esercizi …...Esercizio 3 Si consideri un calcolatore con • un banco di 16 registri ad uso generico, • parole di memoria di 16 bit ed

63 A.A. 2016/2017

Esercizio 21 Scrivere un programma C per svolgere il seguente compito

Si inizializzi una matrice di 10 righe e 12 colonne con interi pseudo-casuali compresi tra -50 e +50. Visualizzare per ciascuna riga della matrice la somma degli interi positivi e negativi presenti sulla riga. Per svolgere questo compito si definiscano ed utilizzino due funzioni con le seguenti finalità: •  Produrre la somma degli interi positivi presenti in

un dato vettore di n variabili intere •  Produrre la somma degli interi negativi presenti in

un dato vettore di n variabili intere Docente: A. Saetti Elementi di Informatica e Programmazione – Università di Brescia

Page 64: Elementi di Informatica e Programmazione Esercizi …...Esercizio 3 Si consideri un calcolatore con • un banco di 16 registri ad uso generico, • parole di memoria di 16 bit ed

64 A.A. 2016/2017

Esercizio 22 Scrivere un programma C per svolgere il seguente compito

Si inizializzi una matrice di 10 righe e 12 colonne con interi pseudo-casuali compresi tra -50 e +50. Visualizzare per ciascuna riga della matrice la somma degli interi positivi e negativi presenti sulla riga. Per svolgere questo compito si definisca ed utilizzi una funzione che inizializza gli interi puntati da due dati puntatori a variabili intere con la somma dei numeri positivi e la somma dei numeri negativi presenti in un dato vettore di n variabili intere.

Docente: A. Saetti Elementi di Informatica e Programmazione – Università di Brescia

Page 65: Elementi di Informatica e Programmazione Esercizi …...Esercizio 3 Si consideri un calcolatore con • un banco di 16 registri ad uso generico, • parole di memoria di 16 bit ed

65 A.A. 2016/2017

Esercizio 23 Scrivere un programma C per svolgere il seguente compito

Si inizializzi una matrice di 10 righe e 5 colonne con interi pseudo-casuali compresi tra 10 e 20. Visualizzare per ciascuna colonna della matrice la somma degli interi presenti sulla colonna. Per svolgere questo compito si definisca ed utilizzi una funzione che produce la somma degli interi presenti su una data colonna di una data matrice di n righe e 5 colonne.

Docente: A. Saetti Elementi di Informatica e Programmazione – Università di Brescia

Page 66: Elementi di Informatica e Programmazione Esercizi …...Esercizio 3 Si consideri un calcolatore con • un banco di 16 registri ad uso generico, • parole di memoria di 16 bit ed

66 A.A. 2016/2017

Esercizio 24 Scrivere un programma C per svolgere il seguente compito

Si inizializzi una matrice di 10 righe e 5 colonne con interi pseudo-casuali compresi tra 10 e 20. Visualizzare per ciascuna colonna della matrice la somma degli interi pari e dispari presenti sulla colonna. Per svolgere questo compito si definisca ed utilizzi una funzione che inizializzi gli interi puntati da due dati puntatori con la somma degli interi pari e la somma degli interi dispari presenti su una data colonna di una data matrice di n righe e 5 colonne.

Docente: A. Saetti Elementi di Informatica e Programmazione – Università di Brescia

Page 67: Elementi di Informatica e Programmazione Esercizi …...Esercizio 3 Si consideri un calcolatore con • un banco di 16 registri ad uso generico, • parole di memoria di 16 bit ed

67 A.A. 2016/2017

Esercizio 25 Scrivere un programma C per svolgere il seguente compito

Acquisire da tastiera una successione di cognomi che termina col 50-esimo cognome o con l’acquisizione della parola “fine”. Successivamente visualizzare i cognomi acquisiti. Per svolgere questo compito si definiscano ed utilizzino le seguenti due funzioni C: •  Acquisire da tastiera una stringa; inserire la stringa

acquisita in una data sequenza di n variabili stringa, purché possibile (la sequenza non sia piena) e la stringa acquisita sia differente da una data variabile stringa; produrre la nuova lunghezza della sequenza.

•  Visualizzare una data sequenza di n variabili stringa.

Docente: A. Saetti Elementi di Informatica e Programmazione – Università di Brescia

Page 68: Elementi di Informatica e Programmazione Esercizi …...Esercizio 3 Si consideri un calcolatore con • un banco di 16 registri ad uso generico, • parole di memoria di 16 bit ed

68 A.A. 2016/2017

Esercizio 26 Scrivere un programma C per svolgere il seguente compito

Svolgere l’esercizio precedente con l’aggiunta del seguente compito. Acquisire da tastiera un cognome; cancellare il cognome dalla sequenza di cognomi acquisiti; visualizzare la sequenza risultante. Per svolgere questo compito si definisca ed utilizzi una funziona che cancella una data variabile stringa da una data sequenza di n variabili stringa producendo la nuova lunghezza della sequenza.

Docente: A. Saetti Elementi di Informatica e Programmazione – Università di Brescia

Page 69: Elementi di Informatica e Programmazione Esercizi …...Esercizio 3 Si consideri un calcolatore con • un banco di 16 registri ad uso generico, • parole di memoria di 16 bit ed

69 A.A. 2016/2017

Esercizio 27 Scrivere un programma C per svolgere il seguente compito

Riempire una sequenza con 10 orari, i minuti e le ore di ciascun dei quali è un intero pseudo-casuale compreso rispettivamente tra 0 e 59 e tra 0 e 23. Successivamente acquisire da tastiera un orario. Visualizzare l’orario della sequenza immediatamente precedente e l’orario immediatamente successivo all'orario acquisito. Per svolgere questo compito si definiscano 4 funzioni con le seguenti finalità. •  Produrre un orario valido casualmente definito •  Produrre 1 se un dato orario precede un secondo dato orario;

produrre 0 altrimenti •  Produrre il numero di minuti trascorsi tra due dati orari •  Inizializzare gli orari puntati da due dati puntatori con gli orari di un

sequenza di n orari che sono immediatamente precedente e successivo ad un dato orario

Docente: A. Saetti Elementi di Informatica e Programmazione – Università di Brescia

Page 70: Elementi di Informatica e Programmazione Esercizi …...Esercizio 3 Si consideri un calcolatore con • un banco di 16 registri ad uso generico, • parole di memoria di 16 bit ed

70 A.A. 2016/2017

Esercizio 28 Scrivere un programma C per svolgere il seguente compito

Riempire una sequenza con 10 orari, i minuti e le ore di ciascun dei quali è un intero pseudo-casuale compreso rispettivamente tra 0 e 59 e tra 0 e 23. Successivamente acquisire da tastiera un orario. Visualizzare il primo e l’ultimo orario della giornata tra quelli nella sequenza. Per svolgere questo compito si definiscano 3 funzioni con le seguenti finalità. •  Produrre un orario valido casualmente definito. •  Produrre 1 se un dato orario precede un secondo dato

orario; produrre 0 altrimenti. •  Inizializzare gli orari puntati da due dati puntatori con il

minimo e il massimo orario tra quelli in una data sequenza di n orari.

Docente: A. Saetti Elementi di Informatica e Programmazione – Università di Brescia

Page 71: Elementi di Informatica e Programmazione Esercizi …...Esercizio 3 Si consideri un calcolatore con • un banco di 16 registri ad uso generico, • parole di memoria di 16 bit ed

71 A.A. 2016/2017

Esercizio 29 Scrivere un programma C per svolgere il seguente compito

Si consideri una sequenza di 10 interi pseudo-casuali compresi tra 500 e 2000, una seconda sequenza di 20 reali pseudo-casuali compresi tra 0.5 e 2.0 (si utilizzi una precisione di 2 cifre dopo la virgola). Si aggreghi le due sequenze; si visualizzi la sequenza aggregata; infine si visualizzi il più piccolo dato tra quelli nella sequenza considerando che i reali sono delle misurazioni in metri mentre gli interi sono delle misurazioni in millimetri. Per svolgere questo compito si definiscano ed utilizzino 4 funzioni C con le seguenti finalità. •  Riempire una data sequenza di variabili miste interi/reali con i reali di una

data sequenza di n1 variabili reali e gli interi in una data sequenza di n2 variabili intere, producendo la lunghezza della sequenza risultante

•  Visualizzare una data variabile mista intera/reale •  Produrre 1 se una data variabile mista intera/reale è minore di una

seconda data variabile mista intera/reale; produrre 0 altrimenti •  Produrre la variabile mista intera/reale più piccola in un dato vettore di n

variabili miste intere/reali Docente: A. Saetti Elementi di Informatica e Programmazione – Università di Brescia

Page 72: Elementi di Informatica e Programmazione Esercizi …...Esercizio 3 Si consideri un calcolatore con • un banco di 16 registri ad uso generico, • parole di memoria di 16 bit ed

72 A.A. 2016/2017

Esercizio 30 Scrivere un programma C per svolgere il seguente compito

Si consideri una sequenza di 10 interi pseudo-casuali compresi tra 500 e 2000, una seconda sequenza di 20 reali pseudo-casuali compresi tra 0.5 e 2.0 (si utilizzi una precisione di 2 cifre dopo la virgola). Si aggreghi le due sequenze; si visualizzi la sequenza ordinata considerando che i reali sono delle misurazioni in metri mentre gli interi sono delle misurazioni in millimetri. Per svolgere questo compito si definiscano ed utilizzino 4 funzioni C con le seguenti finalità. •  Riempire una data sequenza di variabili miste interi/reali con i reali di una

data sequenza di n1 variabili reali e gli interi in una data sequenza di n2 variabili intere, producendo la lunghezza della sequenza risultante

•  Visualizzare una data variabile mista intera/reale •  Produrre 1 se una data variabile mista intera/reale è minore di una

seconda data variabile mista intera/reale; produrre 0 altrimenti •  Ordinare un dato vettore di n variabili miste intere/reali

Docente: A. Saetti Elementi di Informatica e Programmazione – Università di Brescia