Comments
Description
Transcript
Esercizi 0-6
Elementi di Base dei Linguaggi di Programmazione - IFTS Elementi di Base dei Linguaggi di Programmazione - IFTS Esercizio 0 specifica Esercizio 0 analisi • Creare un convertitore interattivo di distanze espresse in miglia nelle equivalenti distanze espresse in chilometri. • L’input e’ rappresentato dalla distanza in miglia • L’output e’ rappresentato dalla distanza equivalente in chilometri • La relazione fondamentale da sfruttare e’: 1 mi = 1.609 km. © Emanuele Lattanzi Urbino 2005 1/12 Elementi di Base dei Linguaggi di Programmazione - IFTS © Emanuele Lattanzi Esercizio 1 specifica • Calcolare il valore complessivo di un insieme di monete che vengono depositate da un cliente presso una banca, espresso come numero di euro e frazione di euro. • In questo caso i passi sono: – acquisire la distanza in miglia; – convertire la distanza in chilometri; – comunicare la distanza in chilometri. Urbino 2005 3/12 Elementi di Base dei Linguaggi di Programmazione - IFTS © Emanuele Lattanzi Urbino 2005 Esercizio 1 analisi Esercizio 1 progettazione • Conviene calcolare il valore totale in centesimi prima di determinare il valore totale in euro e frazione di euro, i passi sono i seguenti: • L’output e’ rappresentato dal valore complessivo delle monete espresso in euro e frazione di euro. • Le relazioni da sfruttare sono le seguenti: – acquisire il numero di monete di ogni tipo; – calcolare il valore totale delle monete in euro e frazione di euro: 1 centesimo = 0.01 euro, 2 centesimi = 0.02 euro, • calcolare il valore totale delle monete in centesimi; – 5 centesimi = 0.05 euro, 10 centesimi = 0.10 euro, • – 20 centesimi = 0.20 euro, 50 centesimi = 0.50 euro, convertire il valore totale delle monete in euro e frazione di euro; • – 1 euro = 100 centesimi, 2 euro = 200 centesimi. comunicare il valore totale delle monete in euro e frazione di euro. © Emanuele Lattanzi 4/12 Elementi di Base dei Linguaggi di Programmazione - IFTS • L’input e’ rappresentato dal numero di monete di ogni tipo (1, 2, 5, 10, 20, 50 centesimi e 1, 2 euro) che vengono depositate. – 2/12 Elementi di Base dei Linguaggi di Programmazione - IFTS Esercizio 0 progettazione © Emanuele Lattanzi Urbino 2005 Urbino 2005 5/12 © Emanuele Lattanzi Urbino 2005 6/12 1 Elementi di Base dei Linguaggi di Programmazione - IFTS Elementi di Base dei Linguaggi di Programmazione - IFTS Esercizio 2 specifica Esercizio 2 analisi • L’input e’ costituito dalla lettura del contatore alla fine del periodo precedente, dalla lettura del contatore alla fine del periodo corrente (cui la bolletta si riferisce), e dall’importo di eventuali bollette precedenti ancora da pagare. • L’output e’ costituito dall’importo della bolletta del periodo corrente, evidenziando l’eventuale mora. • La relazione da sfruttare e’ che l’importo della bolletta e’ dato dalla somma della quota fissa, del costo al metro cubo per la differenza tra le ultime due letture del contatore, dell’importo di eventuali bollette arretrate e dell’eventuale mora. • Calcolare la bolletta dell’acqua per un utente sulla base di una quota fissa di 15 euro e una quota variabile di 2.50 euro per ogni metro cubo d’acqua consumato nell’ultimo periodo, più una mora di 10 euro per eventuali bollette non pagate relative a periodi precedenti. © Emanuele Lattanzi Urbino 2005 7/12 Elementi di Base dei Linguaggi di Programmazione - IFTS © Emanuele Lattanzi Esercizio 3 specifica • Creare un programma che calcoli l’area delle seguenti figure geometriche: • Osservato che l’importo della bolletta e’ diverso a seconda che vi siano bollette precedenti ancora da pagare o meno, i passi sono i seguenti: – acquisire le ultime due letture del contatore; acquisire l’importo di eventuali bollette precedenti ancora da pagare; calcolare l’importo della bolletta: • • • – Digita 0 per uscire dal programma 9/12 QUADRATO: lato TRIANGOLO: base e altezza – CERCHIO: raggio Urbino 2005 10/12 Esercizio 3 progettazione • Dapprima e’ necessario acquisire il valore che identifica il tipo di figura • Si consiglia di usare una struttura “switch(valore)” per la scelta multipla • L’output e’ rappresentato dal valore dell’area della figura geometrica • Le relazioni da sfruttare sono le seguenti: – Area quadrato = lato * lato – Area triangolo = base * altezza / 2 – Area cerchio = raggio * raggio * P_GRECO © Emanuele Lattanzi © Emanuele Lattanzi Elementi di Base dei Linguaggi di Programmazione - IFTS Esercizio 3 analisi – CERCHIO Digita 3 per CERCHIO L’input e’ rappresentato, in una prima fase, nel tasto di scelta (0, 1, 2, o 3). In seguito, in base al tipo di scelta intrapresa avremo input diversi così specificati: – TRIANGOLO – Digita 1 per QUADRATO Elementi di Base dei Linguaggi di Programmazione - IFTS • QUADRATO – Digita 2 per TRIANGOLO comunicare l’importo della bolletta evidenziando l’eventuale mora. Urbino 2005 – • Il programma deve presentare un menù iniziale per scegliere di quale figura calcolare l’area del tipo: calcolare l’importo derivante dal consumo di acqua nel periodo corrente; determinare l’applicabilità’ della mora; calcolare l’importo totale; © Emanuele Lattanzi 8/12 Elementi di Base dei Linguaggi di Programmazione - IFTS Esercizio 2 progettazione – – Urbino 2005 Urbino 2005 • In base al tipo di figura e’ necessario acquisire o solo la dimensione del lato (QUADRATO) o la dimensione della base e la dimensione dell’altezza (TRIANGOLO) o solo la dimensione del raggio (CERCHIO) • Infine e’ necessario calcolare l’area sfruttando le relazioni illustrate in precedenza e comunicarla all’utente. 11/12 © Emanuele Lattanzi Urbino 2005 12/12 2 Elementi di Base dei Linguaggi di Programmazione - IFTS Elementi di Base dei Linguaggi di Programmazione - IFTS Esercizio 4 specifica Esercizio 4 analisi • L’input e’ costituito dal livello iniziale delle radiazioni. • In un laboratorio può verificarsi una perdita di un materiale pericoloso, il quale produce un certo livello di radiazione iniziale che poi si dimezza ogni giorno. • L’output e’ rappresentato dal giorno in cui viene ripristinata una situazione di sicurezza • Calcolare il livello delle radiazioni giornalmente fino a raggiungere il giorno in cui il livello delle radiazioni scende al di sotto di un decimo del livello di sicurezza quantificato in 0.466 [mrem] © Emanuele Lattanzi Urbino 2005 • La relazione da sfruttare e’ il dimezzamento del livello delle radiazioni ogni giorno. © Emanuele Lattanzi 13/12 Elementi di Base dei Linguaggi di Programmazione - IFTS Esercizio 5 specifica • Osservato che il problema richiede il calcolo ripetuto del livello delle radiazioni sino a quando tale livello non scende sotto una certa soglia, i passi sono i seguenti: – acquisire il livello iniziale delle radiazioni; – calcolare e comunicare il livello delle radiazioni ogni giorno (finché il livello delle radiazioni non si riduce ad un decimo del livello di sicurezza); Urbino 2005 15/12 Esercizio 5 analisi L’aumento viene calcolato allo stesso modo (in base alla posizione) secondo la seguente relazione: • Stampare a monitor lo stipendio di tutti i 22 dipendenti, lo stipendio minimo e lo stipendio massimo. Detrazione = indice * 3 Aumento = indice * 2 © Emanuele Lattanzi Urbino 2005 16/12 • Calcolare gli stipendi di ogni dipendente e trovare il valore minimo e massimo utilizzando due funzioni trova_min e trova_max • Comunicare tutti gli stipendi stampandoli a monitor, comunicare il valore minimo e il valore massimo. • E’ necessario individuare quando l’indice e’ pari o dispari (possiamo utilizzare il resto della divisione dell’indice per 2) – Se indice e’ pari allora indice % 2 vale 0 – Se indice e’ dispari allora indice % 2 vale 1 © Emanuele Lattanzi • • acquisire l’ammontare dello stipendio iniziale da tastiera • La relazione da sfruttare e’ : Aumento = indice * 2 Il contabile decide di calcolare la detrazione in base alla posizione del dipendente nel database (indice) secondo la seguente relazione: Esercizio 5 progettazione • L’output e’ rappresentato dallo stipendio di ciascun dipendente, da lo stipendio minimo e massimo. Detrazione = indice * 3 • Elementi di Base dei Linguaggi di Programmazione - IFTS • L’input e’ costituito dall’ ammontare iniziale dello stipendio (uguale per tutti). – Una ditta al momento di calcolare la busta paga dei suoi 22 dipendenti decide di punire, detraendo una quota dallo stipendio, i dipendenti memorizzati nei record di indice dispari e premiare, con un aumento, i dipendenti di indice pari. – Elementi di Base dei Linguaggi di Programmazione - IFTS – • – comunicare il giorno in cui il livello delle radiazioni si riduce ad un decimo del livello di sicurezza © Emanuele Lattanzi 14/12 Elementi di Base dei Linguaggi di Programmazione - IFTS Esercizio 4 progettazione – Urbino 2005 Urbino 2005 17/12 © Emanuele Lattanzi Urbino 2005 18/12 3 Elementi di Base dei Linguaggi di Programmazione - IFTS Elementi di Base dei Linguaggi di Programmazione - IFTS Esercizio 6 specifica Esercizio 6 analisi • Una maschera di un teatro vuole scrivere un programma in linguaggio C che le permetta di memorizzare su file il numero di visitatori che ogni giorno della settimana frequentano il teatro. All’interno del file dovra’ scrivere, oltre al numero dei visitatori, anche il giorno della settimana corrispondente (lunedi’ martedi’, ..ecc). Inoltre, in un secondo file, scrivera’ il valore cumulativo di tutti i visitatori che sono entrati nel teatro. © Emanuele Lattanzi Urbino 2005 • L’input e’ costituito, innanzi tutto, da un codice che identifica il giorno della settimana (es. 1=lunedi’, 2=martedi’, ecc). Una volta deciso il giorno l’input sara’ costituito dal numero dei visitatori di quel giorno. • L’output e’ rappresentato dal giorno e dai visitatori corrispondenti da scrivere su file e dal numero totale dei visitatori da scrivere su di un altro file 19/12 © Emanuele Lattanzi Urbino 2005 20/12 Elementi di Base dei Linguaggi di Programmazione - IFTS Esercizio 6 progettazione • Acquisire il codice identificativo del giorno • Acquisire il numero di visitatori di quel giorno • Stampare su file il giorno e il numero dei visitatori corrispondenti al giorno • Leggere dal file il valore cumulativo dei visitatori, sommargli il valore acquisito precedentemente e salvare il nuovo valore sul file sovrascrivendo quello vecchio © Emanuele Lattanzi Urbino 2005 21/12 4