Verifica Scritta Classe IC LS - “G. Bruno” – Opzione Scienze Applicate

Muravera, __/05/2011
Verifica Scritta Classe IC
L.S. - “G. Bruno” – Opzione Scienze Applicate
Docente: Prof. A.Saba
Tempo a disposizione: 1 h
Materia: Informatica
Compito n. 1
Valutazione: ________
Nome:________________________________ Cognome: _______________________________
E1.
Scrivere un programma python che dati in input la base e l'altezza di un triangolo calcoli
l'area del triangolo
Analisi e/o strategia risolutiva:
1) prendo in input base ed altezza
2) calcolo area come base per altezza diviso 2
3) visualizzo area
Codifica Python:
base=input("Inserisci base triangolo: ")
altezza=input("inserisci altezza triangolo: ")
area= 1.0*base*altezza/2 #la moltiplicazione iniziale per 1.0 serve per
#evitare il troncamento della divisione intera
print "l'area del triangolo e'", area
E2.
Scrivi un algoritmo che preso in input un numero calcoli e visualizzi il suo reciproco
(attenzione si può calcolare il reciproco di un numero solo se è diverso da zero)
Analisi e/o strategia risolutiva:
Il reciproco di un numero A è quel numero B tale che A*B = 1, in pratica dato un qualunque
numero A diverso da zero il suo reciproco è B=1/A. Non si può ovviamente calcolare il reciproco di
zero
1) prendere in input un numero e memorizzarlo in n
2) se n è diverso da zero
1. calcola reciproco come 1/n
2. visualizzo il reciproco
3) altrimenti
1. visualizza la scritta “non esiste il reciproco di zero”
Codifica Python:
n = input("inserisci un numero: ")
if n != 0:
reciproco = 1.0/n #solito motivo per 1.0
print "il reciproco di", n, "e'", reciproco
else:
print "Non esiste il reciproco di zero!"
E3.
Scrivere un programma python che preso in input un numero che dovrebbe rappresentare il
numero di un mese stampi la stringa “OK” se effettivamente il numero può rappresentare un mese
altrimenti stampi la stringa “Il numero da lei inserito non rappresenta un mese”. Per semplicità
supponi che il numero inserito sia un intero.
Analisi e/o strategia risolutiva:
I numeri che possono rappresentare dei mesi sono i numeri interi da 1 a 12. Per ipotesi del testo il
dato preso in input e' un intero per cui possiamo fare cosi':
1
1) prendere in input un numero e memorizzarlo in n
2) se n>0 and n<13
1. “OK”
3) altrimenti
1. visualizza la scritta “Il numero da lei inserito non rappresenta un mese”
In realtà la soluzione da noi proposta risponderà “OK” anche nel caso in cui l'utente del programma
risponderà, per esempio, 1.5 (che non e' il numero di un mese) ma per ipotesi del testo si suppone di
avere a che fare solo con numeri interi per cui la soluzione proposta e' da considerare corretta
Codifica Python:
#Soluzione 1
n = input ("inserisci un numero: ")
if n>0 and n<13:
print "OK"
else:
print "Il numero da lei inserito non rappresenta un mese"
#Soluzione 2
n = input ("inserisci un numero: ")
if 1<=n<=12:
print "OK"
else:
print "Il numero da lei inserito non rappresenta un mese"
E4.
Un negoziante, a scopo promozionale, ha deciso di praticare sconti particolari ai suoi clienti
in base al quantitativo di merce acquistata secondo la tabella
Quantità
Sconto percentuale
0 < x ≤ 100
Nessuno sconto
100 < x ≤ 300 10%
300 < x ≤ 400 15%
X > 400
20%
Il costo unitario della merce è 20 euro. Ricordo che l'ammontare dello sconto su un prodotto si
calcola con la formula sconto = prezzo * sconto percentuale /100, da cui poi potete calcolarvi il
prezzo scontato. Scrivi un programma python che calcoli e visualizzi il prezzo unitario scontato
in base alla quantità di merce acquistata.
Analisi e/o strategia risolutiva:
In pratica il negoziante effettuerà prezzi scontati solo se verranno acquistati tanti “pezzi” o
“prodotti”. Si trattera' di acquisire la quantita' e quindi di controllare il quale dei range della tabella
ricade e quindi di calcolare lo sconto da applicare ed alla fine di visualizzarlo. Piu' formalmente
1) acquisisci quantita' e memorizzala in q
2) se q<=100
1. sconto = 0
3) altrimenti se q>100 e q<=300:
1. sconto = 20*10.0/100
4) altrimenti se q>300 e q<=400
1. sconto = 20*15.0/100
5) altrimenti
1. sconto = 20 * 20.0/100
6) costo_unitario_finale = 20 – sconto
7) visualizza costo_unitario
2
Codifica Python:
q=input("Inserisci numero pezzi/quantita' di merce acquistata: ")
if q<=100:
sconto = 0
elif q>100 and q<=300:
sconto = 20*10.0/100
elif q>300 and q<=400:
sconto = 20*15.0/100
else:
sconto = 20*20.0/100
costo_unitario_finale = 20-sconto
print "Il prezzo unitario e': ", costo_unitario_finale, "euro"
3
Muravera, __/05/2011
Verifica Scritta Classe IC
L.S. - “G. Bruno” – Opzione Scienze Applicate
Docente: Prof. A.Saba
Tempo a disposizione: 1 h
Materia: Informatica
Compito n. 2
Valutazione: ________
Nome:________________________________ Cognome: _______________________________
E1.
Scrivere un programma python che dati in input la base e l'altezza di un rettangolo calcoli e
visualizzi l'area del rettangolo
Analisi e/o strategia risolutiva:
4) prendo in input base ed altezza
5) calcolo area come base per altezza
6) visualizzo area
Codifica Python:
base=input("Inserisci base rettangolo: ")
altezza=input("inserisci altezza rettangolo: ")
area= 1.0*base*altezza#la moltiplicazione iniziale per 1.0 serve per
#evitare il troncamento della divisione intera
print "l'area del rettangolo e'", area
E2.
Scrivi un programma python che dati in input due numeri li stampi in output in ordine
crescente. Ad esempio se i due numeri inseriti sono 2 e 5 il programma stampa prima 2 e poi 5. Se i
numeri inseriti sono 2 e -3 il programma stampa -3 e 2 e così via per qualunque altra coppia di
numeri presi in input.
Analisi e/o strategia risolutiva:
In questo caso bastera' confrontare i due numeri e visualizzare prima il minore tra essi e poi l'altro.
1) prendere in input i due numeri e memorizzarli in n1 e n2
2) se n1<n2
1. visualizza n1
2. visulizza n2
3) altrimenti
1. visulizza n2
2. visualizza n1
Codifica Python:
n1 = input("Inserisci un numero: ")
n2 = input("Inserisci un numero: ")
print "Numeri in ordine crescente"
if n1<n2:
print n1
print n2
else:
print n2
print n1
E3.
Scrivere un programma python che preso in input un numero controlli se questo può essere
un numero del lotto comunicandolo in output. Ricordo che i numeri del lotto sono tutti i numeri
interi compresi tra 1 e 90.
Analisi e/o strategia risolutiva:
4
Basterà prendere un numero in input e controllare che sia compreso tra 1 e 90. Anche in questo caso
supponiamo per semplicita' che il numero inserito sia intero
1) prendere in input un numero e memorizzarlo in n
2) se n>=1 e n<=90
1. visualizza n, “puo' essere un numero del lotto”
3) altrimenti
1. visualizza n, “non puo' essere un numero del lotto”
Codifica Python:
n = input("Inserisci un numero: ")
if n>=1 and n<=90:
print n, "puo' essere un numero del lotto"
else:
print n, "non puo' essere un numero del lotto"
E4.
La scuola di Muravera sta organizzando una visita guidata nel Nord Sardegna. Per far ciò
deve noleggiare uno o più autobus. La ditta proprietaria degli autobus promette uno sconto per il
noleggio degli autobus a seconda del numero di alunni partecipanti secondo la seguente tabella
Numero alunni
Sconto percentuale
0 ≤ n ≤ 50
nessuno
50 < n ≤ 100
12%
100 < n ≤ 200
18%
n >200
24%
Il costo per alunno senza sconto è 15 euro. Ricordo che l'ammontare dello sconto su un prezzo si
calcola con la formula sconto = prezzo * sconto percentuale /100, da cui poi potete calcolarvi il
prezzo scontato. Scrivi un programma python che calcoli e visualizzi il prezzo scontato per
alunno in base al numero di partecipanti alla visita guidata.
Analisi e/o strategia risolutiva:
Il prezzo per ciascun alunno dipende solo dal numero di alunni partecipanti alla visita guidata
secondo uno sconto variabile in base alla tabella sopra riportata: bastera' allora prendere il numero
di partecipanti e calcolare lo sconto secondo la formula indicata nel testo dell'esercizio
1) prendere in input il numero dei partecipanti e memorizzarlo in np
2) se np <=50 e np>=0
1. sconto = 0
3) altrimenti se np <=100
1. sconto = 15*12.0/100
4) altrimenti se np <=300
1. sconto = 15*18.0/100
5) altrimenti
1. sconto = 15*24.0/100
6) prezzo_fianle=15-sconto
7) visualizza prezzo_finale
Codifica Python:
np = input("Inserisci numero partecipanti alla visista guidata: ")
if np>=0 and np<=50:
sconto = 0
elif np<=100:
sconto = 15*12.0/100
5
elif np<=200:
sconto = 15*18.0/100
else:
sconto = 15*24.0/100
prezzo_finale=20-sconto
print "il prezzo finale per alunno e'", prezzo_finale, "euro"
6
Griglia di Valutazione
Voto
Giudizio
sintetico
Motivazioni
Nullo
1. Non risponde al quesito.
2. Non esegue l'esercizio o il problema.
1
Scarso
1. Risponde al quesito commettendo errori concettuali gravi.
2. Dimostra scarsa conoscenza dell’argomento oggetto di verifica.
3. Risponde al problema uscendo fuori traccia
4. Ignora la sintassi dei costrutti fondamentali del linguaggio utilizzato.
5. Non fornisce alcuna soluzione al problema/ al quesito oppure la soluzione fornita è priva di
logica o completamente errata.
6. Usa un linguaggio improprio oppure non documenta o non motiva il lavoro o il procedimento
risolutivo.
7. Non argomenta oppure argomenta in modo completamente errato.
2
1. Risponde al quesito commettendo al massimo un solo errore concettuale grave.
2. Risponde al quesito commettendo diversi errori di distrazione e/o di sintassi
3. Dimostra una conoscenza superficiale dell’argomento oggetto di verifica.
Insufficiente
4. Fornisce una soluzione approssimativa e/o contorta al problema
5. Documenta il lavoro utilizzando un linguaggio non appropriato e/o impreciso e/o ambiguo
6. Argomenta in modo superficiale e/o inadeguato e/o ambiguo e/o non lineare o contorto.
0
3
4
5
Sufficiente
1. Risponde al quesito commettendo solo qualche errore di distrazione e/o di sintassi non grave.
2. Dimostra una conoscenza sufficiente dell’argomento oggetto di verifica
3. Fornisce una soluzione sostanzialmente corretta al problema
4. Rispetta le regole di documentazione del lavoro svolto
5. Dimostra comprensione adeguata dell’argomento aggetto di verifica
Buono
1. Risponde al quesito senza commettere errori
2. Dimostra buona conoscenza e adeguata comprensione dell’argomento oggetto di verifica
3. Dimostra di saper applicare adeguatamente i principi e i metodi risolutivi idonei alla ricerca
della soluzione del problema
4. Utilizza il linguaggio proprio della disciplina
5. Argomenta in modo chiaro, preciso e lineare
6. Fornisce una soluzione corretta e lineare al problema proposto.
Eccellente
1. Devono essere verificate tutte le condizioni del punto precedente (buono) che riguardano il
tipo di verifica.
2. Dimostra buone capacità di analisi e sintesi
3. Argomenta in modo sintetico
4. Formula ipotesi appropriate e/o originali e/o fornisce soluzioni originali valide
5. Svolge il compito in modo completo e ineccepibile.
Aspetti da valutare e pesi
N
Caratteristiche da valutare
Peso
1
Codifica python - Esercizio 1
2
2
Codifica python - Esercizio 2
2
3
Codifica python - Esercizio 3
2
4
Codifica python - Esercizio 4
2
Voto Assegnato
Motivazioni
Totale
Punteggio
___________
Valutazione in decimi (∑iVi*Pi)*10/(∑iPi*5) ____________
La valutazione finale sarà data dalla somma dei voti ottenuti in base alla griglia di valutazione per il peso della
caratteristica da valutare, il tutto riportato in decimi.
7