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