Modulo 5 – La programazione Unità 4 – Selezione5.1 Dato in input un numero calcola il cubo se...

15
Modulo 5 – La programazione Unità 4 – Selezione Prof. Antonio Scanu

Transcript of Modulo 5 – La programazione Unità 4 – Selezione5.1 Dato in input un numero calcola il cubo se...

Page 1: Modulo 5 – La programazione Unità 4 – Selezione5.1 Dato in input un numero calcola il cubo se è maggio-re di zero, il quadrato in caso contrario. Analisi Per prima cosa devi

Modulo 5 – La programazioneUnità 4 – Selezione

Prof. Antonio Scanu

Page 2: Modulo 5 – La programazione Unità 4 – Selezione5.1 Dato in input un numero calcola il cubo se è maggio-re di zero, il quadrato in caso contrario. Analisi Per prima cosa devi

1 Quando si utilizza Il costrutto selezione

Questo costrutto permette di effettuare una scelta fra due possibili alternative. Per effet -tuare una scelta, però, dobbiamo valutare una condizione. Un esempio tratto dalla vita ditutti i giorni potrebbe essere il seguente:

SE pioverà ALLORA prenderò l'autobus ALTRIMENTI farò una passeggiata

In termini più genera li possiamo scrivere:

SE SI VERIFICA LA CONDIZIONE ALLORA

ESEGUI ISTRUZIONE1

ALTRIMENTI

ESEGUI ISTRUZIONE2

La sintassi di questo costrutto. chiamato più precisamente selezione binaria è la seguen-te:

dove B1 e B2, anche in questocaso possono essere blocchi sem-plici o composti.

Quindi se la Condizione è Vera (V)si esegue il blocco B1 altrimenti,cioè se la Condizione è Falsa (F).si esegue il blocco B2.

Il costrutto selezione può presen-tarsi anche con un solo ramo, cioè senza l'alternativa altrimenti. Questo caso, chiamatoSelezione unaria, si rappresenta sintatticamente nel seguente modo:

2 La condizione

In un algoritmo la condizione do-vrà essere scritta secondo alcuneregole ben precise. Andranno cioèconfrontate due espressioni trami-te un operatore logico come ripor-tato in figura. I simboli =, >, < ...sono detti operatori logici. Un ope-ratore logico deve essere sempre

2

Page 3: Modulo 5 – La programazione Unità 4 – Selezione5.1 Dato in input un numero calcola il cubo se è maggio-re di zero, il quadrato in caso contrario. Analisi Per prima cosa devi

presente nell'istruzione di controllo. Il simbolo = in questo caso equivale all'uguaglianzamatematica, non all'istruzione di assegnazione.

Analizzando il formato dell'istruzione di controllo si osserva che il valore dell'oggetto (va-riabile, valore o espressione) che si trova a sinistra dell'operatore logico può essere con-frontato con uno degli oggetto di seguito riportati. In C vedremo che l’uguale matematicosi indica con == (due uguali di seguito). Vediamo alcuni casi.

2.1 Un valore immediatoRientrano in questo caso le condizioni del tipo:

A>5

dove il valore della variabile A viene confrontato con il numero 5. Il risultato di questa con-dizione può essere vero se il contenuto di A è maggiore di 5 (per esempio se A = 7), o fal -so se il contenuto di A è minore di 5 (per esempio se A= 3). Un discorso analogo è validose la variabile è di tipo alfanumerico (in C vale solo per i caratteri). La condizione:

risposta = ‘s’

è vera se la variabile risposta contiene il valore 's', falsa per qualsiasi altro valore.

Attenzione! Nella maggior parte dei sistemi le lettere minuscole e maiuscole sono conside-rate differenti. Nel nostro caso, se la variabile risposta contenesse il valore 'S', la condizio -ne sarebbe considerata falsa.

2.2 Un nome di variabileIl contenuto dell'oggetto che si trova a sinistra dell'operatore logico è confrontato con ilvalore della variabile che si trova a destra. Rientrano in questo caso le condizioni del tipo:

A=B

La condizione è vera se la variabile A contiene lo stesso valore della variabile B, è falsa intutti gli altri casi. Un discorso analogo vale quando:

A>B

In questo caso la condizione logica risulterà vera se la variabile A contiene un valore mag-giore del contenuto della variabile B. Attenzione il Falso di < (minore ) è ≥ (maggiore euguale) non solo > (maggiore) così come il falso di > (maggiore) è ≤ (minore e uguale) nonsolo < (minore )

2.3 Una espressioneDapprima viene calcolato il valore dell'espressione e successivamente viene confrontato ilvalore dell'oggetto che si trova a sinistra dell'operatore logico con il valore dell'espressio-ne appena calcolato. Rientrano in questo caso le condizioni del tipo:

A= (K* 5)/B

In primo luogo è calcolato il valore dell'espressione (K * 5) /B, che viene poi confrontatocon il valore della variabile A. Se per esempio A vale 10, K vale 3 e B vale 2, la condizionesarà falsa, poiché A è diverso da 7,5 (risultato di (K * 5)/B).

3 La struttura di selezione in C++

L’istruzione condizionale può avere forme diverse:

3

Page 4: Modulo 5 – La programazione Unità 4 – Selezione5.1 Dato in input un numero calcola il cubo se è maggio-re di zero, il quadrato in caso contrario. Analisi Per prima cosa devi

if (condizione)

istruzione;

if (condizione)

istruzione_1;

else

istruzione_2;

dove condizione indica un'espressione logica, mentreistruzione indica una qualunque istruzione oppure unblocco di istruzioni (cioè un insieme di istruzioni rac-chiuso tra i simboli { e } ) .

L’istruzione (o il blocco) scritta dopo la condizione vie-ne eseguita solo se la condizione è vera, mentre l'i-struzione scritta dopo la clausola else viene eseguitasolo se la condizione è falsa.

Esistono altri costrutti di selezione binaria ma non ver-ranno utilizzati.

Nella tabella sono riportati i simboli utilizzati nella co-difica C (e C++) con il relativo significato.

4 L'Indentazione

Hai notato i "rientri" utilizzati per gli if, gli else , le parentesi graffe e le istruzioni

Le istruzioni vengono incolonnate cosi per indicare la loro dipendenza. Si evidenzia, in talmodo, che un'istruzione è contenuta in un'altra. È buona abitudine curare questi incolon-namenti, poiché cosi facendo si garantisce una buona leggibilità del codice. Questa tecni-ca è conosciuta come indentazione, è estremamente diffusa e il suo utilizzo viene consi-derato come una norma fondamentale di buona programmazione. La tecnica è basatasull'idea di usare gli spazi bianchi (ossia i rientri) allo scopo di separare più chiaramente leistruzioni e, in particolare, di rappresentare esplicitamente le relazioni di annidamento.

Negli esempi successivi si userà questo metodo.

5 Esempi

5.1 Dato in input un numero calcola il cubo se è maggio-re di zero, il quadrato in caso contrario.

Analisi

Per prima cosa devi prendere in input un numero, quindi effettuare un confronto del valo-re di tale numero con zero. Se il numero è maggiore di zero, lo moltiplicherai 3 volte perse stesso, altrimenti lo moltiplicherai 2 volte per se stesso. Nota che il risultato sarà sicu-ramente un numero positivo (o uguale a zero, se il numero di partenza è zero).

4

Page 5: Modulo 5 – La programazione Unità 4 – Selezione5.1 Dato in input un numero calcola il cubo se è maggio-re di zero, il quadrato in caso contrario. Analisi Per prima cosa devi

Verificherò la correttezza del programma effettuando la simulazione con due casi prova.Dovrai infatti testare sia il caso in cui il numero in input è positivo, sia quello in cui il nu -mero è negativo.

Il caso il cui il numero è 3 il risultato deve essere 27 e il caso in cui il numero è -2 il risul -tato deve essere 4. Un ulteriore caso è quando il numero è 0.

Tabella delle Variabili

Nome variabile Tipo di dato UtilizzoNum Reale InputRis Reale L/O

Codifiche

#include <iostream>using namespace std;int main (){float num;float ris;cout<<"ins numero ";cin>>num;if(num>0)

ris=num*num*num;

elseris=num*num;

cout<<"ris ="<<ris;return 0;}

Tabella di traccia

Istruzione num ris if outputLeggi (num) 3Num >0 veroRisnum*num*num 27Scrivi (ris) 27

Istruzione num ris if outputLeggi (num) -2Num >0 FalsoRisnum*num 8Scrivi (ris) 8

Istruzione num ris if outputLeggi (num) 0Num >0 FalsoRisnum*num 0Scrivi (ris) 0

Notiamo che se il valore è 0 (zero) la condizione è falsa

5

Page 6: Modulo 5 – La programazione Unità 4 – Selezione5.1 Dato in input un numero calcola il cubo se è maggio-re di zero, il quadrato in caso contrario. Analisi Per prima cosa devi

5.2 Dati in input il nome e l'età di una persona, stampa il nome e la scritta maggiorenne se la persona è maggio-renne.

Analisi.

Dopo avere ottenuto in input il nome e l'età della persona, confronta l'età con 18: se risul -ta maggiore o uguale a 18 stampa il nome della persona e la scritta richiesta, in caso con-trario (età< 18) non è richiesta nessuna operazione. Verrà fatta la prova inserendo l e 22e inserendo g e 17.

Tabella delle variabili

Nome variabile Tipo di dato UtilizzoNome Stringa I/OEta Intero I

Codifiche

#include <iostream>using namespace std;int main (){int eta;char nome;cout<<"ins nome ";cin>>nome;cout<<"ins eta ";cin>>eta;if(eta>=18)

cout<<nome<<" e' maggiorenne";return 0;}

6 Selezioni in cascata

Quando due o più condizionidevono essere valutate unadopo l'altra come illustrato infigura si parla di selezioni incascata: prima viene testatala condizione COND1 e di se-guito la condizione COND2,indifferentemente dal risulta-to della condizione COND1.La selezione a cascata siusa, quindi, quando le duecondizioni sono indipendenti

.

6

Page 7: Modulo 5 – La programazione Unità 4 – Selezione5.1 Dato in input un numero calcola il cubo se è maggio-re di zero, il quadrato in caso contrario. Analisi Per prima cosa devi

6.1 EsempioDato in input il nome e il prezzo di un prodotto, calcola e stampa il prezzo da pagare sa -pendo che se il prezzo è superiore a 3000 €applichi il 6% di sconto e, inoltre, se il paga-mento avviene in contanti, devi applicare un ulteriore sconto del 2%. Si lascia al lettorel’analisi e la tabella di traccia.

Tabella delle Variabili Tavella delle costanti

Nome variabileTipo di dato Utilizzo Descrizione Nome Tipo di dato valore

Codice Stringa I/O Codice prodotto Psconto Intero 3000Prezzo Reale I/L/O Prezzo prodotto P1 Intero 6Pag Carattere I Tipo di pagamento P2 Intero 2Codifiche

#include <iostream>using namespace std;int main (){const int Pl=6;const int P2=2;const int PSCONTO=3000;char codice;char pag; // tipo di pagamentofloat prezzo; //prezzo inizialecout<<"inserire il codice del prodotto" <<endl;cin>>codice;cout<<"inserire il prezzo" <<endl;cin>>prezzo;cout<<"che tipo di pagamento si vuole? Contanti (e) o ra-teale (r)"<<endl;cin>>pag; if (prezzo>PSCONTO)

{prezzo= prezzo-prezzo*Pl/100; }if (pag=='c')

{prezzo= prezzo-prezzo* P2/100; }cout<<"il prezzo scontato per il prodotto "<<codice<<" e'di "<<prezzo<<" euro "<<endl;return 0;}

7

Page 8: Modulo 5 – La programazione Unità 4 – Selezione5.1 Dato in input un numero calcola il cubo se è maggio-re di zero, il quadrato in caso contrario. Analisi Per prima cosa devi

7 Selezione annidate

Le istruzioni presenti nei blocchi inseriti nei due rami non devono necessariamente essereelementari ma possono essere formate da più istruzioni (strutture di sequenza) o a lorovolta da strutture di selezione. Siparla in quest'ultimo caso di struttu-re di selezione annidate come pre-sentato nella figura Analizzando la fi-gura notiamo che nel caso di sele-zioni annidate la condizione COND2viene presa in considerazione solose la condizione COND1 risulta veramentre nel caso delle condizioni incascata la condizione COND2 venivaesaminata sempre, indipendente-mente dal risultato della condizioneCOND1.

7.1 EsempioDati due numeri, se sono entrambi positivi fanne la somma, altrimenti il prodotto. Si lasciaal lettore l’analisi e la tabella di traccia.

Codifiche Tabella delle Variabili

Nome variabile Tipo di dato Utilizzoa Itero Ib Intero IReale Carattere L/O

#include <iostream>using namespace std;int main () {int a, b, ris;cout<<"Inserire Il primo numero ";cin>>a;cout<<"inserire Il secondo numero ";cin>>b;if(a>0)

{if(b>0)

{ris=a+b;}else

{ris=a*b;} }else

{ris=a*b;}cout<<"ll risultato e' "<<ris<<endl;return 0;}

8

Page 9: Modulo 5 – La programazione Unità 4 – Selezione5.1 Dato in input un numero calcola il cubo se è maggio-re di zero, il quadrato in caso contrario. Analisi Per prima cosa devi

8 Uno dei connettivi logici

Nel lavoro di programmazione si fa largo uso dei connettivi or, and, not per ridurre la com-plessità delle condizioni presenti nelle istruzioni di controllo delle strutture di selezione edi iterazione. Si possono utilizzare questi connettivi quando l'istruzione di controllo preve-de che siano esaminati valori diversi per una variabile oppure quando devono essere pre-si in considerazione eventi differenti collegati tra loro.

Esempio: Stabilisci se il carattere letto da input è una vocale o una consonante.

Una possibile soluzio-ne a questo problemaè offerta dall'algoritmopresentato nella figuraaffianco utilizzando iconnettivi.

Permette di evitare diutilizzare un algoritmoseguente.

9

Page 10: Modulo 5 – La programazione Unità 4 – Selezione5.1 Dato in input un numero calcola il cubo se è maggio-re di zero, il quadrato in caso contrario. Analisi Per prima cosa devi

Esempio: Dati due numeri, dire se sono entrambi positivi o negativi. Nella prima figura èrappresentato l'algoritmo che risolve il problema proposto senza fare uso del connettivo,mentre nella figura successiva è illustrata la soluzione con l'uso del connettivo and.

9 Il costrutto selezione multipla

Questo costrutto deriva dal costrutto selezione, anzi ne rappresenta un'estensione. Capitamolto spesso di dover fare delle scelte orientandosi fra più possibilità. Quotidianamente clponiamo delle domande alle quali possiamo dare più di una risposta. Per esempio: qualemaglione indosserò questa mattina? Quale film vedrò stasera? Quali libri porterò domania scuola? E cosi via. Per risolvere I problemi in cui si opera una scelta tra più di due alter -native in dipendenza del valore assunto da un certo parametro, è molto utile utilizzare ilcostrutto selezione multipla. Esso è presente in quasi tutti I linguaggi di programmazione,

10

Page 11: Modulo 5 – La programazione Unità 4 – Selezione5.1 Dato in input un numero calcola il cubo se è maggio-re di zero, il quadrato in caso contrario. Analisi Per prima cosa devi

anche se il comportamento non è sempre lo stesso. La sintassi in diagramma a blocchi èla seguente:

Dove:

<Selettore > può essere una variabile

< Valore> deve essere dello stesso tipo di <Selettore> e deve essere un valore unico

In C il costrutto si implementa come segue.

Il valore assunto dalla variabile determina quale ramo della struttura deve essere esegui -to. Se variabile assume valore val1 viene eseguita l'i-struzione istr1 (o le istruzioni fino al primo break), sevariabile assume il valore val2 viene eseguita l'istruzio-ne (o le istruzioni) istr2 e così via. Se la variabile nonassume nessuno dei valori specificati, viene eseguital'istruzione (o le istruzioni) istr0 specificata dopo laclausola default.

Notare Bene i due punti dopo i singoli valori e i punti evirgola dopo le istruzioni Break compreso.

9.1 EsempioUn negoziante, per incrementare le sue vendite, prevede di applicare uno sconto progres-sivo sull'importo della fattura, in base al numero dei pezzi acquistati. Se il cliente compra1 pezzo viene applicato il 15% di sconto, il 20% per 2 pezzi, il 30% per 3; in tutti gli altricasi lo sconto è del 40%. Visualizzare lo sconto applicato e l'importo effettivo che il clientedeve pagare.

#include <iostrearn.h>void main(){int NumPezzi;float TotFattura,Sconto, Importo;cout << "Inserire il numero di pezzi in fattura: ";cin >> NumPezzi;cout << "Inserire il totale della fattura: ";cin >> TotFattura;switch (NumPezzi) {

11

Page 12: Modulo 5 – La programazione Unità 4 – Selezione5.1 Dato in input un numero calcola il cubo se è maggio-re di zero, il quadrato in caso contrario. Analisi Per prima cosa devi

case 1: Sconto= TotFattura I 100*15; break;case 2: Sconto= TotFattura I 100 *20; break;case 3: Sconto = TotFattura I 100*30; break;default: Sconto TotFattura I 100 *40; break;

}Importo = TotFattura - Sconto;cout << "Importo da pagare: " << Importo << endl;cout << "Sconto applicato: " << Sconto << endl;system(“pause”);}

10 ESERCITAZIONE (if semplice)

1) Scrivere un algoritmo che, inserito da tastiera un intero, visualizza se tale numero èmaggiore o uguale a cento oppure no.

2) Scrivere un programma che, inseriti due numeri da tastiera, calcoli la loro differenza sea>b e visualizzi il messaggio “sottrazione impossibile”, in caso contrario.

3) Scrivere un algoritmo che, dati due numeri naturali da tastiera, stabilisca qual è il mag-giore e poi calcoli la differenza tra i due.

4) Scrivere un algoritmo che, dati due numeri in input, li visualizzi in ordine crescente.

5) Determinare e visualizzare il prezzo da pagare in un negozio conoscendo la spesa e sa-pendo che, se essa è inferiore o uguale a 100 euro si applica uno sconto del 10%, altri -menti lo sconto è del 30%.

6) Scrivere un algoritmo che stabilisca se un numero è divisibile per 3.

7) In un supermercato si applica la promozione 3x2 su un certo prodotto. Calcolare quan-to deve pagare un cliente, dopo aver inserito da tastiera il costo unitario del prodotto e laquantità acquistata.

8) Calcola la spesa relativa all’acquisto di una certa merce, conoscendo la quantità di pro-dotto acquistata e il prezzo unitario. Se la quantità di prodotto acquistata è superiore a100 unità si applica uno sconto (valore inserito da tastiera).

9) Scrivere un programma che calcoli il totale delle calorie assunte durante il pasto. Acqui -sire in input la quantità in grammi di grassi, carboidrati e proteine. Sapendo che le calorieper ogni grammo di grassi sono 9, per ogni grammo di carboidrati sono 5 e per ogni gram-mo di proteine sono 4, calcolare e visualizzare in output le calorie totali assunte e, se que-ste superano una cifra da voi prefissata, visualizzare il messaggio “Attenzione!!!!”.

10) Date le coordinate di un punto P(x,y) e l’equazione di una retta r:ax+by+c=0 verificarese P appartiene a r.

12

Page 13: Modulo 5 – La programazione Unità 4 – Selezione5.1 Dato in input un numero calcola il cubo se è maggio-re di zero, il quadrato in caso contrario. Analisi Per prima cosa devi

11 Esercitazione (Uso dei connettivi)

1) Dato un numero in input verificare se è esterno all’intervallo [0, 5] e comunicarlo in out -put.

2) Dati due numeri in input verificare se sono entrambe esterni all’intervallo [-5, 3] ecomunicarlo in output.

3) Scrivi un algoritmo che, dati tre numeri X, Y, N visualizzi il valore X+N*Y solo se N è unnumero compreso tra 2 e 50.

4) Assegnati 3 numeri verificare se sono tutti uguali tra loro.

5) Assegnato un anno verificare se è bisestile (divisibile per 4 ma non per 100 oppure di-visibile per 400).

6) Scrivere un programma che legge due numeri e determina se uno è multiplo dell’altro.

7) La scuola rimborsa il 15% del costo dell’abbonamento se lo studente abita in provinciaed il paese di provenienza dista più di 20 km dalla scuola. Calcolare lo sconto sul pressodell’abbonamento. (Suggerimento memorizzare in una variabile i valori ‘S’ o ‘N’ per indica-re l’appartenenza o meno alla provincia).

8) Dato il prezzo di un prodotto ed il tipo di pagamento ( C = contanti), si calcoli il prezzoda pagare, sapendo che se il prezzo è superiore ad una determinata cifra (costante) oppu-re se il pagamento è in contanti, si applica uno sconto del 10 %.

12 ESERCITAZIONE (selezione a cascata, an-nidata, multipla)

1) Dati tre numeri in input, visualizzarli in ordine crescente.

2) Assegnati 3 numeri visualizzare il maggiore tra essi.

3) Scrivere un programma che legge due numeri e determina se uno è multiplo dell’altro(non usare connettivi).

4) Scrivere un programma che legge 3 numeri interi diversi da zero e quindi determina evisualizza se possono essere o no i lati di un triangolo rettangolo.

5) Scrivere un programma per la risoluzione di una equazione di primo grado.

6) Scrivere un programma per la soluzione di un’equazione di secondo grado. Nel caso didiscriminante negativo, visualizzare un messaggio.

7) Dato il prezzo di un prodotto e la quantità acquistata calcolare la spesa, sapendo cheviene praticato uno sconto del 3% se la merce costa più di 550 € e uno sconto del 5% sela quantità è superiore a 40 pezzi.

8) Dato il prezzo di un prodotto si voglia calcolare il prezzo da pagare sapendo che se ilprezzo è superiore a una determinata cifra (costante) si applica il 6% di sconto e se il pa -gamento è fatto in contanti si applica un ulteriore sconto del 2%.

9) Ad un rappresentante spetta un premio in denaro del 10% sul totale delle vendite ef -fettuate, se queste superano i 20.000 €. Dato in input il valore delle vendite eseguite dalrappresentante calcolare il premio netto a lui spettante, considerando che, se tale premioè superiore ad un cifra da voi stabilita come costante, si applica un’imposta del 3% cheandrà detratta dal premio stesso.

13

Page 14: Modulo 5 – La programazione Unità 4 – Selezione5.1 Dato in input un numero calcola il cubo se è maggio-re di zero, il quadrato in caso contrario. Analisi Per prima cosa devi

10) La tassa per la raccolta dei rifiuti in un comune ammonta a 8 € per ogni mq dell’abita -zione più una cifra fissa di 20€. Se l’appartamento è al piano secondo o superiore se ap-plica una ulteriore imposta del 2%. Dopo aver acquisito in input la superficie in mq dell’ap-partamento, calcolare e visualizzare l’importo totale che l’utente deve pagare consideran-do che se l’appartamento supera i 100 mq si dovranno aggiungere ulteriori 50€ di addi-zionale comunale (si consiglia l’uso delle costanti).

11) Calcola la somma spesa da un cliente in un negozio di abbigliamento, tenendo contodelle seguenti condizioni

a. spesa fino a 50€, sconto del 10%,

b. spesa da 51€ a € 100, sconto del 20%,

c. spesa oltre di € 101, sconto del 30%.

12) In un bar si possono comprare panini a 3€ e bibite a 2€. Scrivere un programma chedati in input il numero dei panini e il numero delle bibite restituisca il prezzo totale da pa-gare, tenendo conto che se il numero dei panini è uguale al numero delle bibite si applicauno sconto di 2€ sul prezzo totale e che se il numero dei panini e delle bibite è diverso ilrivenditore regala il prodotto acquistato in minor quantità.

13) Scrivere un programma che legga l’età di un individuo e visualizza i seguenti messag-gi:

a. Sei un bambino, se l’età è inferiore a 12 anni

b. Sei un ragazzo, se l’età è compresa tra 13 e 25 anni

c. Sei un uomo, se l’età è compresa tra 26 e 50 anni

d. Sei un anziano, se l’età è superiore a 50 anni.

14) Ad un rappresentante spetta, oltre ad una percentuale sulle vendite effettuate in unmese, un premio in denaro se questa percentuale è superiore a 300 €. Dati in input l’im-porto totale delle vendite e la percentuale su cui calcolare il guadagno del rappresentan-te, calcolare il premio e la somma totale che gli spetta. Si suppone che il premio sia:

a. € 50 se la percentuale sul guadagno è inferiore a 1000 €,

b. € 100 se la percentuale sul guadagno è inferiore a 1500 €,

c. € 200 se la percentuale sul guadagno è uguale o superiore a 1500 €.

15) Un cinema applica uno sconto del 20% sul prezzo del biglietto agli spettatori con etàsuperiore a 60 anni ed uno sconto del 25% per i ragazzi con meno di 18 anni. Dopo averacquisito in input il prezzo base del biglietto e l’età dello spettatore visualizzare l’importoda pagare.

16) Le tariffe postali per spedire un pacco sono le seguenti:

a. 3.5 € per pacchi da 0 a 50 gr

b. 5 €per pacchi dai 51 gr ai 100 gr

c. 10 € per pacchi oltre 100 gr

d. Dato il peso del pacco calcolare il costo totale della spedizione considerando che, se laspedizione è per l’estero si devono aggiungere 1.50 € di bollo.

17) Uno studente acquista un biglietto del treno il costo varia a seconda dei chilometri dapercorre e dal tipo di tratta

a. Se i km sono minori di 10 allora costa 1€ a km

b. Se i km sono compresi tra 10 e 20 costa 0.7€ a km

c. Se i km sono maggiori di 20 costa 0.5 a km

14

Page 15: Modulo 5 – La programazione Unità 4 – Selezione5.1 Dato in input un numero calcola il cubo se è maggio-re di zero, il quadrato in caso contrario. Analisi Per prima cosa devi

Lo studente ha lo sconto:

d. del 7 % se è di tipo ‘a’

e. del 8% se è del tipo ‘b’,

f. del 9% se è del tipo ‘c’ la tratta supera i 30km,

g. altrimenti ha lo sconto del 5% se la tratta è superiore a 100km.

15