PROGRAMMA SVOLTO DI INFORMATICA ANNO SCOLASTICO

LICEO SCIENTIFICO STATALE "FILIPPO LUSSANA"
V i a A n g e l o Ma j , 1 – 2 4 1 2 1 B E R G AMO
035 237502 Fax: 035 236331 Sito e contatti: www.liceolussana.com
Codice fiscale: 80026450165
PROGRAMMA SVOLTO DI INFORMATICA
ANNO SCOLASTICO 2013/2014
DOCENTE: Villani Chiara
: INFORMATICA
MATERIA
CLASSE 2 P
Ind.: L.S. Scienze Applicate
LIBRO DI TESTO: INFORMATICA MULTIMEDIALE – METODI E FONDAMENTI
AUTORI: MARISA ADDOMINE – DANIELE PONS
CASA EDITRICE: ZANICHELLI
SUPPORTO DIGITALE: CORSO SUL LINGUAGGIO C++
AUTORE: GIOVANNI CALABRESE
U.D.A. 1
DAL PROBLEMA AL PROGRAMMA
DEFINIZIONE DI ALGORITMO
LE OPERAZIONI SUI DATI E LE ISTRUZIONI DI ASSEGNAZIONE
LA PSEUDOCODIFICA
LE STRUTTURE DI CONTROLLO CON LA PSEUDOCODIFICA
o LA SEQUENZA
o LA SELEZIONE
A UN RAMO
A DUE RAMI
ANNIDATA
o L'ITERAZIONE
CON IL CONTROLLO IN TESTA
CON IL CONTROLLO IN CODA
RAPPRESENTAZIONE DEGLI ALGORITMI IN PSEUDOCODIFICA C++
LA TRACE TABLE PER L'INDIVIDUAZIONE DEGLI ERRORI NELL'ALGORITMO
U.D.A. 2 INTRODUZIONE ALL'AMBIENTE DI PROGRAMMAZIONE DEL C++
EDIT, TESTING E COLLAUDO DI UN PROGRAMMA NELL'AMBIENTE DI
SVILUPPO DEV C++
UTILIZZO DELLE VARIABILI INTERE
INPUT E OUTPUT DEI DATI
ISTRUZIONI IN SEQUENZA
IL COMMENTO AL CODICE
U.D.A. 3 PROGRAMMAZIONE IN C++
CODIFICA DELLA SELEZIONE A UN RAMO E A DUE RAMI
I TIPI DI VARIABILE
UTILIZZO DELLE VARIABILI DI TIPO REALE, CARATTERE
UTILIZZO DELLE VARIABILI DI TIPO BOOL
L'ASSEGNAZIONE
ESPRESSIONI CON GLI OPERATORI LOGICI CONDIZIONALI
BLOCCHI DI ISTRUZIONI ANNIDATE
ISTRUZIONE DI SELEZIONE MULTIPLA SWITCH-CASE
CICLO WHILE
CICLO DO-WHILE
CICLO FOR
PROBLEMI DI RICERCA DI MASSIMO E MINIMO
U.D.A. 4 LE FUNZIONI
SUDDIVISIONE DI UN ALGORITMO COMPLESSO IN SOTTOPROBLEMI
DEFINIZIONE E CHIAMATA DI UNA FUNZIONE
VANTAGGI NELL'USO DELLE FUNZIONI
PROTOTIPI DELLE FUNZIONI
VALORI DI RITORNO DI UNA FUNZIONE
PARAMETRI DI UNA FUNZIONE ATTUALI E FORMALI
PASSAGGIO DI PARAMETRI PER VALORE E PER RIFERIMENTO
U.D.A. 5 I VETTORI
IL CONCETTO DI VETTORE
I VETTORI IN C++
I VETTORI A UNA DIMENSIONE DI NUMERI O CARATTERI
ALGORITMI FONDAMENTALI PER I VETTORI
o INSERIMENTO
o VISUALIZZAZIONE
o RICERCA SEQUENZIALE DI UN ELEMENTO
o CANCELLAZIONE E SOSTITUZIONE DI UN ELEMENTO
STUDENTI
________________________
________________________
BERGAMO, 7 GIUGNO 2014
DOCENTE
_______________________
ALLEGATO A
LAVORO ESTIVO DI INFORMATICA
CLASSE 2 P
• PER COLORO CHE HANNO AVUTO LA SOSPENSIONE DEL GIUDIZIO, GLI
ESERCIZI SVOLTI DEVONO ESSERE CONSEGNATI TASSATIVAMENTE IL
GIORNO DELL'ESAME SCRITTO.
• A CHI È STATO ASSEGNATO IL LAVORO ESTIVO SENZA SOSPENSIONE DEL
GIUDIZIO LA CONSEGNA DOVRÀ AVVENIRE IL PRIMO GIORNO DI
SCUOLA.
• LA PUNTALITÀ NELLA CONSEGNA, L'ORDINE, LA RICCHEZZA DI
COMMENTI CHIARIFICATORI, LA QUALITÀ E LA QUANTITÀ DEL LAVORO
SVOLTO RIENTRERANNO TRA GLI ELEMENTI CHE SARANNO PRESI IN
CONSIDERAZIONE PER LA VALUTAZIONE FINALE.
1. Scrivere il programma che dati in input da tastiera due numeri interi A e B, assegni a C:
• il valore A+B se A>0 oppure se B>5.
• il valore A–B negli altri casi.
Visualizzare sullo schermo il valore di C.
2. Scrivere il programma che dati in input da tastiera due numeri reali A e B, calcoli C=A*B e
visualizzi sullo schermo il risultato accompagnato dal messaggio:
• “A e B sono concordi”, nel caso in cui C>0;
• “A e B sono discordi”, nel caso in cui C<0;
• “Almeno uno dei due numeri è nullo” se A e/o B sono uguali a zero.
3. Scrivere un programma che visualizzi un messaggio a video se un numero intero x inserito
in input da tastiera è contemporaneamente multiplo di 7 e pari. Se almeno una delle due
condizioni non si verifica manda a video il messaggio “il numero non soddisfa almeno una
condizione”. Se entrambe le condizioni sono soddisfatte scrive a video “il numero soddisfa
le condizioni” .
4. Scrivere un programma che risolva il problema di trovare la soluzione di un'equazione di
primo grado. Dati, in ingresso, da tastiera, i valori a e b calcolare e visualizzare la soluzione
dell'equazione
ax = b
nel caso in cui questa esista, altrimenti dà un messaggio di "equazione impossibile" o
"equazione indeterminata".
5. Scrivere un programma che risolva il problema di trovare le soluzioni di un'equazione di
secondo grado. Dati, in ingresso, da tastiera, i valori a, b, c restituisca in output le soluzioni
dell'equazione
ax2+bx+c=0
nel caso in cui queste esistano.
(Usare la funzione sqrt includendo la libreria math.h)
6. Scrivere un programma che visualizzi i numeri interi dispari minori o uguali a N, con N letto
da tastiera, strettamente positivo.
7. Scrivere un programma che visualizzi sullo schermo tutti gli interi compresi tra N1 ed N2,
con N1 e N2 inseriti dal'utente e N2 strettamente maggiore di N1, e ne calcoli la somma.
Visualizzare anche il valore della somma.
8. Dati in input da tastiera due interi A e D scrivere a video i primi N termini, con N inserito
dall'utente strettamente positivo, della seguente successione:
A+D, (A+D)+D, (A+D+D)+D, …
cioè della successione in cui ogni termine si ottiene dal precedente sommando un valore
costante D. (Per tua conoscenza, una successione definita in questo modo si chiama
progressione aritmetica di ragione D).
9. Scrivere un programma che risolva il problema di calcolare la media di N numeri naturali
inseriti da tastiera, con N≥0 anch’esso inserito da tastiera.
10. Scrivere un programma che legga una sequenza di numeri interi qualsiasi inseriti da tastiera
(i numeri possono essere anche negativi o nulli). La sequenza di numeri è chiusa dal numero
0, cioè l'inserimento termina quando viene dato in input il numero 0. Inoltre, ogni volta che
viene inserito un numero controlla se sia >10 e in questo caso calcola il triplo del numero e
lo scrive a video, mentre se è <10 continua solo nell’inserimento del numero successivo
senza dare a video alcun output.
11. Scrivere un programma che consenta di inserire da tastiera un intero a. Calcolarne e visualizzarne il
suo valore assoluto (o modulo) attraverso l'utilizzo di una funzione di nome modulo che calcoli e
restituisca come valore di ritorno il modulo di un intero che sarà richiamato opportunamente nel
main.
12. Scrivere un programma per calcolare il fattoriale di un numero intero positivo. Il programma deve
contenere una funzione di nome fattoriale che calcoli e restituisca come valore di ritorno il fattoriale
di un intero positivo che sarà richiamato opportunamente nel main.
(La funzione fattoriale è definita su valori interi >= 0:
Fatt(0)=1 e Fatt(N)=N*(N– 1)*(N– 2)*… *1)
13. Scrivere a video i primi n multipli di k, n>0, n e k interi inseriti in input da tastiera.
Ad esempio se n=5 e k=9 scrivere a video:
9, 18, 27, 36, 45.
Dopo aver inserito n controlla che sia strettamente positivo.
Il programma deve contenere una funzione di nome prodotto che calcoli e restituisca come
valore di ritorno il prodotto di due interi, da utilizzare opportunamente nel main, inserendola
in un’iterazione.
14. Data in lettura una coppia di numeri interi positivi A e B, il programma stabilisce la
molteplicità di B in A, cioè quante volte l'intero B divide l'intero A, ovvero quante volte la
divisione di A per B dà quoziente intero e resto nullo. Se A<B scambia i due valori.
(Esempi:
•
2 ha molteplicità =4 in 16 poiché posso dividere 16 per 2 fino a 4 volte ottenendo resto
nullo.
• 3 ha molteplicità =2 in 36).
Definisci e richiama nel main:
1. una funzione leggi per leggere contemporaneamente i due interi A e B.
2. Una funzione leggi di valore di ritorno di tipo int che permette di inserire
nuovamente A o B se sono <= 0, da richiamare all’interno della stessa funzione
leggi suddetta.
3. Una funzione scambia per scambiare le due variabili se A<B.
4. Una funzione di valore di ritorno di tipo int che calcola la molteplicità richiesta.
5. Una funzione che stampa a video il valore calcolato.
15. Definire una costante intera di nome N che valga 10. Dichiarare un vettore a N componenti
di nome vett e con elementi di tipo intero. Inserire da tastiera le componenti del vettore.
Inserire da tastiera un intero x. Confrontare x con ciascun elemento del vettore e dare in
output quante componenti di vett sono > x, quante = x, quante < x.
16. Definire una costante intera di nome N che valga 10. Dichiarare un vettore a N componenti
di nome vett e con elementi di tipo intero. Inserire da tastiera le componenti del vettore. Inserire
da tastiera un intero x.
Cercare x all’interno del vettore confrontandolo con i suoi elementi a partire dal primo fino a:
•
Trovare la prima occorrenza del numero cercato e restituire a video l’indice della
posizione in cui l’elemento è stato trovato
• Esaurire il vettore senza aver trovato il numero. In questo caso dare a video un
messaggio opportuno.
Servirsi di una variabile booleana di nome trovato per verificare se l’elemento è stato trovato
per dare a video i messaggi opportuni ed eventualmente l’indice richiesto.
17. Definire una costante intera di nome N che valga 10. Dichiarare un vettore a N componenti
di nome vett e con elementi di tipo intero. Inserire da tastiera le componenti del vettore.
Stabilire e visualizzare sullo schermo se gli elementi del vettore sono stati inseriti in ordine
crescente.
(Servirsi di una variabile booleana di nome crescente che viene posta a false non appena trova
un elemento del vettore che non sia maggiore del precedente).
18. Generare in modo casuale un insieme di 12 valori interi compresi tra 10 e 100.
Memorizzarli come elementi di un vettore di nome vett e visualizzarli sullo schermo.
Ribaltare il contenuto del vettore scambiando tra loro due elementi alla volta: porre l’ultimo
elemento nella prima cella e viceversa, il penultimo nella seconda, ecc.
Visualizzare sullo schermo il vettore vett dopo il ribaltamento.
Ripetere il ribaltamento servendosi di un nuovo vettore di nome w di dimensione 12 e
visualizzarlo. Tale vettore w dovrà ribaltare il vettore vett ottenuto dopo il primo
ribaltamento (nota che così w sarà proprio uguale al vettore vett come inserito inizialmente).
19. Definire una costante intera di nome N che valga 10. Leggere da tastiera N interi.
Memorizzarli come elementi di un vettore e visualizzarli sullo schermo. Generare un nuovo
vettore che contenga i quadrati di tali elementi.
Generare infine un terzo vettore che memorizzi gli elementi del primo vettore senza
memorizzare uno stesso numero due volte. Poiché questo terzo vettore ha dimensione <=N,
definire la sua dimensione uguale ad N e inizializzare tutte a 0 le sue componenti.
20. Scrivere un programma che legga 12 temperature medie mensili di una città in un vettore
di nome AnnoTemp e le visualizzi poi sullo schermo (utilizzare due FOR distinti).
Proseguire il programma scrivendo le istruzioni necessarie a:
1. Calcolare e visualizzare la media annua delle temperature.
2. Cercare e visualizzare la temperatura del mese il cui numero sia obbligatoriamente
compreso tra 0 e 11 (estremi inclusi).
3. Visualizzare quante temperature medie risultano positive e quante negative.
4. Calcolare e visualizzare quante temperature siano comprese tra -10 e 10 estremi
inclusi.
5. Segnalare la presenza o meno di almeno un -20 tra le temperature medie inserite
(bloccare immediatamente la ricerca appena trovato il primo -20).
6. Contare e visualizzare quante temperature nel vettore sono uguali alla temperatura
media cercata CercaTemp inserita dall’utente con valore compreso tra -30 e +30
estremi inclusi.
7. Cercare e visualizzare la temperatura massima e il numero del mese in cui si verifica.
8. Visualizzare le temperature medie dei mesi che hanno l’indice del vettore dispari.