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.
© Copyright 2024 ExpyDoc