C++ #5 Esercizi con gli Array

Obiettivo: Sono riportati in seguito una serie di esercizi utili per testare le proprie conoscenze nell’ambito dei linguaggi di programmazione strutturata relativamente all’utilizzo degli array.
Gli esercizi,  a complessità crescente, possono essere risolti utilizzando anche differenti linguaggi di programmazione come C, Python, Pascal, Java, PHP.

Per la risoluzione degli esercizi si suggerisce l’utilizzo del compilatore online:


https://www.onlinegdb.com/online_c++_compiler

ESERCIZI CON ARRAY (DIFFICOLTA’ EASY)

1a) Realizzare un programma che memorizzi nelle prime cinque posizioni di un array, cinque differenti numeri forniti come input da un utente.

1b) Realizzare un programma che memorizzi nelle prime cinque posizioni di un array, cinque differenti numeri forniti come input da un utente e ne stampi in seguito, solamente dopo avere inserito tutti i valori, il contenuto dell’array.

2) Realizzare un programma che inserisca automaticamente nelle prime dieci posizioni di un array i primi dieci numeri naturali (e.g., 0, 1, 2, … , 9).

3) Realizzare un programma che inserisca automaticamente nelle prime dieci posizioni di un array i primi dieci numeri naturali riportati in ordine inverso (e.g., 9, 8, 7, … , 1).

ESERCIZI CON ARRAY E BLOCCHI CONDIZIONALI (DIFFICOLTA’ MEDIUM)

4a) Realizzare un programma che determini se in un array di dimensione 5 è presente il valore 0. (N.B. prima di eseguire la ricerca l’utilizzatore deve inserire dei valori attraverso la procedura presentata nell’esercizio 1).

4b) Realizzare un programma che conti quante volte è presente il valore 0 in un array di dimensione 5. (N.B. prima di eseguire la ricerca l’utilizzatore deve inserire dei valori attraverso la procedura presentata nell’esercizio 1).

4c) Realizzare un programma che conti quanti siano i valori negativi, quelli positivi e quelli uguali a zero in un array di dimensione 5. (N.B. prima di eseguire l’analisi, l’utilizzatore deve inserire dei valori attraverso la procedura presentata nell’esercizio 1).

5a) Realizzare un programma che determini il numero più grande presente in un array di dimensione 5. (N.B. prima di eseguire la ricerca l’utilizzatore deve inserire dei valori attraverso la procedura presentata nell’esercizio 2).

5b) Realizzare un programma che determini sia il numero più grande sia il numero più piccolo presente in un array di dimensione 5.

6a) Realizzare un programma che determini la somma dei numeri presenti in un array di dimensione 5. (N.B. prima di eseguire la ricerca l’utilizzatore deve inserire dei valori attraverso la procedura presentata nell’esercizio 2).

6b) Realizzare un programma che determini la media dei numeri presenti in un array di dimensione 5.

7) Realizzare un programma che, dato un array di dimensione 10, inserisca automaticamente zero nelle posizioni caratterizzate da un indice pari ed un in quelle caratterizzate da un indice dispari (N.B. l’array deve contenere i seguenti numeri 0, 1, 0, 1, 0, 1, 0, 1, 0, 1).

ESERCIZI CON ARRAY E BLOCCHI CONDIZIONALI (DIFFICOLTA’: HARD)

8a) Realizzare un programma che determini se i numeri presenti in un array di dimensione 5 sono riportati in ordine crescente. (N.B. prima di eseguire la ricerca l’utilizzatore deve inserire dei valori attraverso la procedura presentata nell’esercizio 2).

8b) Realizzare un programma che determini se i numeri presenti in un array di dimensione 5 sono riportati in ordine crescente, decrescente oppure in ordine sparso. (N.B. prima di eseguire la ricerca l’utilizzatore deve inserire dei valori attraverso la procedura presentata nell’esercizio 2).

9) Realizzare un programma che determini il numero più frequente in un array di dimensione 5. (N.B. prima di eseguire la ricerca l’utilizzatore deve inserire dei valori attraverso la procedura presentata nell’esercizio 2).

10) Realizzare un programma che inserisca in modo automatico in un array di 10 elementi la successione di Fibonacci. Nel dettaglio, i primi due numeri della successione i Fibonacci sono 0 e 1, i successivi sono dati dalla somma dei due numeri precedenti. Ad esempio: 0, 1, 1, 2, 3, 5, 8, 13 …

11) Realizzare un programma che determini se il contenuto di un array di caratteri dimensione 10 risulta palindromo. Le parole mantengono lo tesso suono e lo stesso significato sia che si leggano normalmente, da sinistra verso destra, sia viceversa, cioè da destra verso sinistra. (N.B. prima di eseguire l’operazione richiesta l’utilizzatore deve inserire i caratteri nell’array).

ANALISI DI CODICE:

1) Esercizi di analisi di codice
2) Esercizi di analisi di codice




C++ #6 Esercizi con le Stringhe

Obiettivo: Sono riportati in seguito una serie di esercizi utili per testare le proprie conoscenze nell’ambito dei linguaggi di programmazione strutturata relativamente all’utilizzo delle stringhe.
Gli esercizi,  a complessità crescente, possono essere risolti utilizzando anche differenti linguaggi di programmazione come C, Python, Pascal, Java, PHP.

Per la risoluzione degli esercizi si suggerisce l’utilizzo del compilatore online:


https://www.onlinegdb.com/online_c++_compiler

ESERCIZI CON STRINGHE (DIFFICOLTA’ EASY)

1) Realizzare un programma che memorizzi un testo in una variabile di tipo stringa e determini il numero di ‘a’ presenti in quel testo.

2) Realizzare un programma che memorizzi un testo in una variabile di tipo stringa e determini il numero di vocali presenti in quel testo.

3) Realizzare un programma che memorizzi un testo in una variabile di tipo stringa e sostituisca tutte le vocali con la lettera ‘o’.

4) Realizzare un programma che memorizzi un testo in una variabile di tipo stringa e sostituisca tutte le vocali con una lettera scelta dall’utente.

5) Realizzare un programma che memorizzi un testo in una variabile di tipo stringa (utilizzando la funzione getline(cin, testo)) e determini il numero di parole che costituiscono quel testo.

6) Realizzare un programma che date due stringhe determini se queste risultano uguali.

ESERCIZI CON STRINGHE (DIFFICOLTA’ MEDIUM)

7) Realizzare un programma che memorizzi un testo in una variabile di tipo stringa (utilizzando la funzione getline(cin, testo)) e determini la parola più lunga all’interno della frase.

8) Realizzare un programma che memorizzi un testo in una variabile di tipo stringa (utilizzando la funzione getline(cin, testo)) e indichi quante doppie sono presenti in quel testo.

9) Realizzare un programma che acquisisca un testo tramite la funzione getline(cin, testo) e lo memorizzi in una variabile di tipo stringa. Successivamente, creare una nuova stringa contenente lo stesso testo ma privo di spazi.

10) Realizzare un programma che memorizzi un testo in una variabile di tipo stringa e determini se quel testo è palindromo. Il testo letto da sinistra a destra e da destra a sinistra è lo stesso.

11) Realizzare un programma che implementi il cifrario di Cesare. Il programma deve prevedere un menu nel quale scegliere se eseguire l’operazione di cifratura (dal testo in chiaro al testo cifrato) oppure se eseguire l’operazione di decifratura (dal testo cifrato al testo in chiaro).
Esempio di Cesare con shift 4
Testo in chiaro: BACCA
Testo cifrato: FEGGE




C++ #4 Esercizi con numeri random

Obiettivo: Sono riportati in seguito una serie di esercizi utili per testare le proprie conoscenze nell’ambito dei linguaggi di programmazione strutturata relativamente all’utilizzo dei numeri randomici (numeri casuali).
Gli esercizi,  a complessità crescente, prevedono inizialmente la semplice generazione di numeri random ed infine applicazioni più complesse che richiedono l’impiego di cicli iterativi e blocchi condizionali. 

Per la risoluzione degli esercizi si suggerisce l’utilizzo del compilatore online:


https://www.onlinegdb.com/online_c++_compiler

ESERCIZI CON NUMERI RANDOMICI

1) Realizzare un programma che simuli il lancio di un dado a sei facce e riporti il risultato.

2) Realizzare un programma che simuli il lancio di una moneta e riporti il risultato (testa o croce).

3) Realizzare un programma che simuli il lancio di un dado a 20 facce (utile per i giocatori di Dungeons and Dragons) e riporti il risultato.

4) Realizzare un programma che permetta all’utente di definire il numero di facce di un dado e ne simuli il lancio riportando il risultato.

ESERCIZI CON NUMERI RANDOMICI E BLOCCHI CONDIZIONALI

5) Realizzare un programma che simuli il lancio di due dadi a sei facce e dopo avere riportato il risultato indichi se è uscita una coppia di numeri uguali.

6) Realizzare un programma per simulare il gioco dei dadi. Prima del lancio, il giocatore deve indovinare se il numero risulti maggiore di 3 oppure minore di 4. La scelta tra le due opzioni può essere effettuata attraverso un semplice menu (ad esempio: “premi 0 per puntare su un numero minore di 4” / “premi 1 nel caso in cui il numero risulti maggiore di 3”). Il programma deve visualizzare il risultato del lancio del dado e indicare se l’utente ha indovinato la previsione oppure no.

7) Realizzare un programma per simulare il gioco dei dadi per due differenti giocatori. Prima del lancio del dado, ciascun giocatore deve scegliere un numero compreso tra 1 e 6. Il programma deve simulare il lancio di un dado generando un numero casuale tra 1 e 6 e visualizzare il risultato ottenuto. Al termine del lancio, il programma deve confrontare il numero estratto con le scelte dei due giocatori e indicare il vincitore:
– vince il giocatore che ha indovinato il numero esatto;
– nel caso in cui entrambi i giocatori indovinino, la partita termina in pareggio;
– se nessuno dei due indovina, il programma deve segnalare che non ci sono vincitori.

ESERCIZI CON NUMERI RANDOMICI E CICLI ITERATIVI

8) Realizzare un programma che simuli 5 lanci di un dato a sei facce e determini quante volte è uscito il numero 6.

9) Migliorare il programma di simulazione del gioco dei dadi sviluppato nell’esercizio 6. Introdurre un ciclo definito che permetta di giocare per 5 volte ed un contatore delle vittorie.

10) Migliorare il programma di simulazione del gioco dei dadi sviluppato nell’esercizio 7. Introdurre un ciclo definito che permetta di giocare per 5 volte ed un contatore delle vittorie. Al termine delle 5 partite il programma deve indicare quale dei due giocatori ha vinto.

11) Realizzare un programma che permetta di simulare l’estrazione del lotto attraverso la generazione di 5 numeri casuali nel range 1-90. Attenzione i numeri non possono essere ripetuti e devono risultare equiprobabili.

12) Realizzare un programma che generato un numero naturale nel range 0-10, permetta all’utente di indovinare il numero generato. Il programma deve terminare quando il numero viene indovinato (CICLO INDEFINITO).

12bis) Realizzare un programma che generato un numero naturale nel range 0-10, permetta all’utente di indovinare il numero generato. Il programma deve terminare quando il numero viene indovinato (CICLO INDEFINITO). Ad ogni iterazione, nel caso in cui l’utente non abbia individuato, deve essere fornito un feedback all’utilizzatore in cui si riporta se il numero generato risulta maggiore o inferiore al numero inserito.

13) Realizzare un programma che:
– Chieda all’utente il numero di lanci da effettuare con un dato a sei facce
– Generi tanti numeri randomici nel range 1-6 pari al numero di lanci indicato dall’utente. (CICLO DEFINITO)
– Ripete la procedura fino a che l’utente non inserisce un numero negativo (CICLO INDEFINITO).
E’ importante considerare che la soluzione di questo programma prevede l’utilizzo di due cicli innestati.

14) Realizzare un programma che generi numeri casuali compresi tra 1 e 6. L’estrazione deve proseguire finché il numero generato è pari; il programma termina quando viene estratto un numero dispari.

15a) Realizzare un programma che simuli il lancio di tre dadi (numeri casuali compresi tra 1 e 6). L’estrazione deve proseguire fino a che la somma dei numeri generati non diventa maggiore di 10. (Per somme maggiori di 10 il ciclo deve terminare)

15b) Realizzare un programma che simuli il lancio di tre dadi, generando per ciascun dado un numero casuale compreso tra 1 e 6. Dopo ogni lancio, il programma deve verificare se almeno uno dei tre dadi mostra il valore 6: in tal caso l’utente deve effettuare un nuovo lancio dei tre dadi. Il gioco termina quando nessuno dei tre dadi assume il valore 6.

15c) Realizzare un programma che simuli il lancio di tre dadi, generando per ciascun dado un numero casuale compreso tra 1 e 6. Dopo ogni lancio, il programma deve verificare se a tutti e tre i numeri hanno un valore dispari. In tal caso l’utente deve effettuare un nuovo lancio dei tre dadi. Il gioco termina quando almeno uno dei numeri estratti non è dispari.

15d) Realizzare un programma che simuli il lancio di tre dadi, generando per ciascun dado un numero casuale compreso tra 1 e 6. Dopo ogni lancio, il programma deve verificare se almeno due dei tre i numeri hanno un valore maggiore di 3. In tal caso l’utente deve effettuare un nuovo lancio dei tre dadi.

SEMPLICI PROGETTI:
16) Scrivere un programma in C++ che simuli la riproduzione di una playlist musicale. La playlist è composta da 5 brani.
1) Blinding Lights – The Weeknd
2) As It Was – Harry Styles
3) Bad Guy – Billie Eilish
4) Flowers – Miley Cyrus
5) Levitating – Dua Lipa
L’utente sceglie quante canzoni vuole riprodurre in sequenza. Il programma genera tanti numeri casuali quante sono le canzoni da riprodurre e, per ogni numero generato, indica la canzone corrispondente.

17a) Realizzare un programma che simuli una partita a sette e mezzo. L’obiettivo del gioco è avvicinarsi il più possibile a sette e mezzo attraverso l’estrazione di numeri casuali. Ad ogni turno di gioco, il giocatore può scegliere se estrarre un numero oppure no. Ogni nuovo numero estratto si somma alla somma dei numeri precedentemente estratti. Il programma si deve fermare quando l’utente sceglie di smettere di giocare oppure quando supera il valore sette e mezzo. Nel caso in cui l’utente superi tale valore si riporti la scritta: “Hai Sballato”, differentemente nel caso in cui l’utente raggiunga il valore sette e mezzo si riporti la scritta “Hai vinto”. Il giocatore inizia sempre con un valore del banco pari a 0.5. In questa versione del gioco è possibile generare solo valori interi.

17b) Realizzare un programma che simuli una partita a due giocatori a sette e mezzo. L’obiettivo del gioco è avvicinarsi il più possibile a sette e mezzo attraverso l’estrazione di carte (nel nostro caso numeri) casuali. Il gioco prevede l’utilizzo di carte da gioco italiane le quali prevedono 4 differenti semi (bastoni, spade, coppe e denari) e 10 differenti tipologie di carte per ogni seme (asso, due, tre, quattro, cinque, sei, sette, fante, cavallo e re). Mentre le figure (fante, cavallo e re) valgono 0.5 le altre carte hanno valore pari al valore del simbolo rappresentato (un asso vale uno, un due vale due, etc…)
Ad ogni turno di gioco, il giocatore può scegliere se estrarre un numero oppure no. Ogni nuovo numero si somma alla somma dei numeri precedentemente estratti. Nel caso in cui l’utente superi il valore 7.5 l’utente ha automaticamente perso.
Il giocatore1 è sempre il primo ad iniziare la partita e può continuare ad estrarre carte fino a che non desidera fermarsi oppure supera il valore 7.5. Terminato il turno del giocatore1 inizia a giocare il giocatore2 che ugualmente può continuare ad estrarre carte fino a che non desidera fermarsi oppure supera il valore 7.5.
Terminato il turno del giocatore 2 il programma deve indicare chi ha vinto e chi ha perso.

17c) Si utilizzi un ciclo indefinito per permettere ai due giocatori dell’esercizio 16b di effettuare più partite in sequenza. Nel dettaglio, implementare una sfida alla meglio delle 5 partite, in questo caso vince la sfida il giocatore che vince per primo a 3 partite.




C++ #2 Esercizi con cicli iterativi

Obiettivo: Sono riportati in seguito una serie di esercizi utili per testare le proprie conoscenze nell’ambito dei linguaggi di programmazione strutturata relativamente all’utilizzo dei blocchi condizionali.
Gli esercizi,  a complessità crescente, possono essere risolti utilizzando cicli iterativi definiti e indefiniti. L’utente può scegliere in modo autonomo se utilizzare i costrutti while, do-while e for.

Per la risoluzione degli esercizi si suggerisce l’utilizzo del compilatore online:


https://www.onlinegdb.com/online_c++_compiler

ESERCIZI CON ITERAZIONE DEFINITA

1) Realizzare un programma che permetta di scrivere a monitor i primi 100 numeri naturali.

2) Realizzare un programma che, definito un numero N inserito dall’utente, permetta di scrivere a monitor i numeri naturali compresi tra 1 ed N.

3) Realizzare un programma che permetta di scrivere a monitor tutti i numeri pari compresi tra 0 e 100.

4) Realizzare un programma che permetta di scrivere a monitor i primi 100 numeri naturali in ordine inverso (dal 100 al numero 1)

5) Realizzare un programma che permetta di scrivere a monitor i naturali dispari compresi tra 50 e 100

6) Realizzare un programma che permetta all’utente di inserire 10 differenti numeri e ne calcoli la somma.

7) Realizzare un programma che permetta all’utente di inserire 10 differenti numeri e ne calcoli la media.

8) Realizzare un programma che, definito un numero N inserito dall’utente, permetta di scrivere a monitor i primi 10 multipli del numero inserito (e.g., N, 2N, 3N, …, 10N).

9) Realizzare un programma che permetta di scrivere a monitor i primi N numeri della successione di Fibonacci. Nel dettaglio, i primi due numeri della successione i Fibonacci sono 0 e 1, i successivi sono dati dalla somma dei due numeri precedenti. Ad esempio: 0, 1, 1, 2, 3, 5, 8, 13 …

ESERCIZI CON ITERAZIONE INDEFINITA

10) Realizzare un programma che permetta all’utente di inserire una serie indefinita di numeri interi. Il programma deve fermarsi quando la somma dei numeri inseriti supera 100.

11) Realizzare un programma che permetta all’utente di inserire una serie indefinita di numeri interi e ne calcoli la media Il programma deve fermarsi quando l’utente inserisce uno zero.

12) La popolazione di rane in uno stagno raddoppia ogni giorno. Definita la popolazione iniziale e la popolazione finale da raggiugnere, determinare il numero di giorni necessari per raggiungere la popolazione obiettivo.

12bis) La popolazione di rane in uno stagno raddoppia ogni giorno. Ogni tre giorni a causa di una epidemia generica la popolazione di rane diminuisce di un terzo. Definita la popolazione iniziale e la popolazione finale da raggiugnere, determinare il numero di giorni necessari per raggiungere la popolazione obiettivo.




C++ #3 Esercizi con cicli iterativi e blocchi condizionali

Obiettivo: Sono riportati in seguito una serie di esercizi utili per testare le proprie conoscenze nell’ambito dei linguaggi di programmazione strutturata relativamente all’utilizzo di cicli iterativi e blocchi condizionali.
Gli esercizi,  a complessità crescente, devono essere risolti utilizzando cicli iterativi (definiti e indefiniti) . L’utente può scegliere in modo autonomo se utilizzare i costrutti while, do-while, for e se in caso impiegare blocchi condizionali semplici, nidificati, o se sfruttare la logica booleana.

Per la risoluzione degli esercizi si suggerisce l’utilizzo del compilatore online:


https://www.onlinegdb.com/online_c++_compiler

ESERCIZI CON CICLI ITERATIVI E BLOCCHI CONDIZIONALI

1) Realizzare un programma che permetta all’utente di inserire 10 numeri naturali e determini quanti numeri positivi e negativi siano stati inseriti.

2) Realizzare un programma che permetta all’utente di inserire N numeri naturali e determini quanti numeri positivi e negativi siano stati inseriti. Il programma deve terminare quando l’utente inserisce un numero uguale a 0.

3) Realizzare un programma che permetta all’utente di inserire 10 numeri naturali e determini quanti numeri pari e dispari siano stati inseriti. Utilizzare l’operatore modulo per determinare se un numero è pari oppure dispari.

4) Realizzare un programma che permetta all’utente di inserire un numero arbitrario di valutazioni pari ad N e ne calcoli la media.

4bis) Realizzare un programma che permetta all’utente di inserire un numero arbitrario di valutazioni pari ad N e ne calcoli la media. Se la media risulta maggiore o uguale a 6 il programma deve indicare che lo studente è “promosso”, diversamente deve indicare che lo studente è “bocciato”.

4tris) Realizzare un programma che permetta all’utente di inserire un numero arbitrario di valutazioni pari ad N e ne calcoli la media. A partire dal valore della media si riporti il relativo giudizio.

  • Media < 5.5 Insufficiente
  • 5.5 <= Media < 6.5 Sufficiente
  • 6.5 <= Media < 7.5 Discreto
  • 7.5 <= Media < 8.5 Buono
  • 8.5 <= Media < 9.5 Distinto
  • Media >= 9.5 Ottimo

5) Realizzare un programma che permetta all’utente di inserire 5 voti e ne determini la media, il valore massimo ed il valore minimo.

4bis) Realizzare un programma che permetta all’utente di inserire 5 voti e ne determini la media, il valore massimo ed il valore minimo. Inserire inoltre un controllo per fare in modo che nel caso in cui sia inserito un voto non valido (maggiore di 10 o minore di 0) il programma richieda di inserire nuovamente il dato.

5) Realizzare un programma che permetta all’utente di inserire 5 voti e per ogni voto indichi se questo risulta sufficiente oppure insufficiente.

6 NEW) Realizzare un programma che permetta all’utente di inserire una sequenza di numeri interi, terminata dall’inserimento del numero zero. Il programma dovrebbe quindi determinare se la sequenza inserita è crescente oppure no. Il programma dovrebbe quindi stampare un messaggio appropriato che indichi il tipo di sequenza inserita.

6bis) Realizzare un programma che permetta all’utente di inserire una sequenza di numeri interi, terminata dall’inserimento del numero zero. Il programma dovrebbe quindi determinare se la sequenza inserita è decrescente oppure no. Il programma dovrebbe quindi stampare un messaggio appropriato che indichi il tipo di sequenza inserita.

7 NEW) Realizzare un programma che permetta all’utente di calcolare il fattoriale di un numero inserito dall’utente (nel caso di un numero negativo viene stampato un messaggio di errore perché il fattoriale non è definito per numeri negativi.
A seguire sono riportati alcuni esempi relativi al calcolo del fattoriale: Il fattoriale di 5 è parti a 120 e si calcola in questo modo 5*4*3*2*1. Il fattoriale di 3 è parti a 6 e si calcola in questo modo 3*2*1. Il fattoriale di 0 è uguale ad 1

ANALISI DI CODICE:

1) Esercizi di analisi di codice




C++ #1 Esercizi con blocchi condizionali

Obiettivo: Sono riportati in seguito una serie di esercizi utili per testare le proprie conoscenze nell’ambito dei linguaggi di programmazione strutturata relativamente all’utilizzo dei blocchi condizionali.
Gli esercizi,  a complessità crescente, possono essere risolti utilizzando blocchi condizionali, blocchi condizionali nidificati e blocchi condizionali che prevedono l’utilizzo della logica booleana.

Per la risoluzione degli esercizi si suggerisce l’utilizzo del compilatore online:


https://www.onlinegdb.com/online_c++_compiler

ESERCIZI CON SELEZIONE SEMPLICE – IF ELSE

1) Realizzare un programma che permetta di inserire due numeri interi e determini il numero maggiore.

2) Realizzare un programma che permetta di inserire un numero e determinare il suo valore assoluto. (Un numero negativo deve diventare positivo, un numero positivo deve restare positivo).

3) Realizzare un programma che permetta di inserire l’età di un utente e determini se l’utente è maggiorenne oppure no.

4) Realizzare un programma che permetta di inserire il valore di un carattere e determini se il valore inserito è una vocale (ATTENZIONE: utilizzare il tipo dati char).

5) Realizzare un programma che permetta di inserire i coefficienti a, b, c di un’equazione di secondo grado e ne calcoli, se possibile, le soluzioni.

6) Realizzare un programma che permetta di inserire due differenti orari espressi nella forma ore, minuti e secondi (CONSIGLIO: utilizzare tre differenti variabili, una per le ore, una per i minuti, ed una per i secondi) e riporti quale dei due orari viene prima.

7) Realizzare un programma che permetta di determinare tra due differenti macchine quale delle due ha una velocità media maggiore date le seguenti informazioni: lo spazio percorso dalla macchina A, il tempo impiegato dalla macchina A a percorrere lo spazio, lo spazio percorso dalla macchina B, il tempo impiegato dalla macchina B a percorre lo spazio (CONSIGLIO: determinare le due velocità medie e poi confrontarle).

8) Realizzare un programma che permetta di inserire un numero intero e che determini se il numero inserito è positivo, negativo oppure zero.

ESERCIZI CON SELEZIONE NIDIFICATA

9) Realizzare un programma che permetta di inserire tre numeri interi e determini se questi numeri possano rappresentare le lunghezze dei lati di un triangolo. Ricorda: affinché un triangolo possa essere tale, la somma di ogni coppia lati deve essere maggiore dell’altro.

10) Realizzare un programma che legga tre valori rappresentanti le lunghezze dei lati di un triangolo e riporti se il triangolo è scaleno, isoscele o equilatero.

11) Realizzare un programma che permetta di inserire tre numeri interi e determini il valore maggiore.

12) Realizzare un programma che permetta di inserire tre numeri interi e determini il valore minore.

13) Realizzare un programma che permetta di inserire tre numeri interi (i.e., A, B, e C) e determini se B è compreso tra A e C.

14) Realizzare un programma che permetta di applicare gli sconti applicati da un negozio. Nello specifico, se il prezzo degli acquisti è minore di 50€ il negozio effettuo lo sconto del 10%. Se il prezzo degli acquisti è maggiore di 50€ e minore di 100€, il negozio effettua lo sconto del 20%. Se il prezzo degli acquisti è maggiore di 100€, il negozio effettua lo sconto del 30%. Il programma deve chiedere all’utente di inserire il prezzo relativo ai propri acquisti e mostri a schermo lo sconto ed il prezzo finale da pagare.

Spesa Totale Sconto Applicato
totale<50 10%
50<=totale<=100 20%
totale>100 30%

15) Gli abbonamenti della metropolitana di Milano possono essere settimanali (S), mensili (M), o annuali (A) e valgono per la sola zona centrale (tipo 1), per la sola zona periferica (tipo 2) o per entrambe le zone (tipo 3). I costi sono quelli riportati nella seguente tabella. Realizzare un algoritmo che calcola il costo dell’abbonamento a partire dalla durata e dal tipo.

Tipo/Zona Settimanale Mensile Annuale
1 10 Euro 30 Euro 250 Euro
2 5 Euro 20 Euro 150 Euro
3 15 Euro 40 Euro 300 Euro

16) Realizzare un programma per determinare le tasse pagate da un lavoratore sulla base delle aliquote IRPEF 2022.
Nello specifico la percentuale di tasse viene determinata in funzione del reddito percepito come riportato nella seguente tabella.

Reddito imponibile Aliquota Imposta dovuta
redditi fino a 15.000 euro 23% 23% sull’intero importo
da 15.001 fino a 28.000 euro 25% 3.450 euro + 25% sul reddito che supera i 15.000 euro fino a 28.000 euro
da 28.001 fino a 50.000 euro 35% 6.700 euro + 35% sul reddito che supera i 28.000 euro fino a 50.000 euro
oltre 50.001 euro 43% 14.400 euro + 43% sul reddito che supera i 50.000 euro

ANALISI DI CODICE:

1) Esercizi di analisi di codice