LABORATORIO DI INFORMATICA ESERCITAZIONE VIII Cercate di eseguire gli esercizi da soli. Se non ci riuscite, cercate di capire i messaggi di errore. Se non ci riuscite, provateci di nuovo. Poi chiamate me. Funzioni Matematiche Esercizio 1. Con x = 5 e y = 3, eseguire i seguenti calcoli: z = xy3 x y z = 3πx 2 z = 4(y 5) 3x 6 z = 7(x ( 1 3 ) + 4y 0.58 ) z = 8cos( πx 4 ) z = 2tan(x) 5 Esercizio 2. Per misurare l intensità dei terremoti si usa la scala Richter: M è detta magnitudine. L energia liberata da un terremoto è correlata alla magnitudine dalla relazione: E = 10 4.4 10 1.5M Quanta energia in più viene liberata da un terremoto di magnitudine 7.3 rispetto ad uno di magnitudine 5.5? Vettori e Matrici Esercizio 3. Generare una matrice random A di dimensione 5x6, estrarre la riga 3; estrarre la colonna 2; aggiungere una riga; aggiungere una colonna; estrarre da A una sottomatrice 2x2. Esercizio 4. Generare una matrice di dimensione 3x3 di zeri, una matrice di dimensione 4x5 di tutti due, una matrice 5x2 di valori random tra il 12 e il 26. Esercizio 5. Generare un vettore x di 100 componenti, costituito da numeri reali compresi tra 0 e 2 equispaziati, ed un vettore y di 30 componenti costituito da numeri reali compresi tra 10 e 25 equispaziati. Si verifichi, inoltre, la dimensione di x e quella di y. Date: 25 Maggio, 2011. 1
2 LABORATORIO DI INFORMATICA ESERCITAZIONE VIII Esercizio 6. Creare un vettore con elementi da log 10 (10) a log 10 (100) intervallati di 0.05. Esercizio 7. Generare un vettore di 8 numeri interi scelti a caso nell intervallo [1; 13]. Esercizio 8. Costruire un vettore di 40 elementi così fatto: i primi 20 elementi sono: 1, 2,..., 20 gli ultimi 20 sono: 20, 19,..., 1. Esercizio 9. Si costruiscano in due modi diversi due vettori con 10 elementi, li si sommi e si moltiplichino tra loro elemento per elemento. Si costruisca una matrice con 5 righe di cui questi due vettori rappresentino la prima e la terza riga, e le altre tre righe siano costituiti da numeri random rispettivamente nell intervallo [1, 2], [2, 3], [2, 5]. Esercizio 10. Dato un vettore x, ricavare due vettori x pari e x dispari, che contengano rispettivamente gli elementi in posizione pari e quelli in posizione dispari. Esercizio 11. Costruire col minimo numero di comandi i seguenti vettori e matrici: (0, 0.1, 0.2,..., 1) (100, 99, 98,..., 0) 2 2 2 3 2 2 2 3 2 2 2 3 2 0 0 1 2 3... 10 0 2 0 1 2 3... 10 0 0 2 1 2 3... 10 0 0 0 5 0 0 0 0 0 0 5 0 0 0 0 0 0 5 Esercizio 12. Costruire il vettore di elementi ( 6, 5, 4,..., 4, 5) e determinarne l elemento massimo, minimo, di modulo massimo, di modulo minimo, la somma degli elementi, la somma dei valori assoluti degli elementi, la media. Esercizio 13. Generare una matrice quadrata di ordine 5 con elementi generati a caso nell intervallo [2, 13] e calcolare (usare le funzioni cumulative): un vettore che contiene la somma degli elementi di ciascuna colonna; un vettore che contiene la somma degli elementi di ciascuna riga; un vettore che contiene la somma degli elementi al quadrato di ciascuna riga; il massimo degli elementi della matrice; la somma di tutti gli elementi della matrice.
LABORATORIO DI INFORMATICA ESERCITAZIONE VIII 3 Esercizio 14. Date le seguenti due matrici: 1 4 2 7 8 3 5 9 12 7 19 23 4 5 9 10 3 6 2 8 9 1 2 4 14 3 5 8 9 1 3 6 eseguire le seguenti operazioni: Sostituire la prima e la terza colonna di A con la prima e la seconda di B; Costruire la matrice C come somma della matrice triangolare superiore di A e della matrice triangolare inferiore di B; Cancellare la prima e la seconda colonna di A; Costruire la matrice D come la matrice B con la prima e la seconda riga invertite; Costruire la matrice E come la matrice B con la seconda, la terza e la quarta colonna moltiplicate per 2. Esercizio 15. Dati x = ( 3, 1, 1, 3, 8) ed y = ( 5, 3, 3, 5, 7), trovare i valori e gli indici di x che sono minori dei corrispondenti elementi di y. Esercizio 16. Generare un vettore casuale R con elementi tra 2 e 10; trovare gli indici di R che contengono 4 o 8. Esercizio 17. Generare due vettori casuali A e B di 10 interi compresi tra 25 e 35; visualizzare gli indici in cui risulta contemporaneamente che gli elementi di A e B sono maggiori di 30. Visualizzare gli elementi di A e B posti in tali indici. Esercizio 18. Sostituire gli elementi di una matrice che sono maggiori di 3 con 5. Esercizio 19. Generare una matrice random 15x15 con elementi interi compresi nell intervallo [10, 100]. Determinare quanti elementi sono divisibili per 3. Calcolare il valor medio di tali valori: è maggiore o minore del valor medio degli elementi della matrice di partenza? Esercizio 20. Generare una matrice 8x10 contenente numeri casuali compresi tra 0 e 1; quale frazione di questi è minore di 1 3? Script Esercizio 21. Scrivere uno script che dopo aver definito le seguenti matrici e vettori: ( ) ( 2 1 0 a = ; B = 4 1 0 ) ; b = (6, 0); u = (4, 9, 3); 0 2 1 0 1 4 esegua le seguenti operazioni: calcolare in C la matrice prodotto tra A e B T ; eseguire il prodotto della matrice A per il vettore b; calcolare in D il prodotto termine a termine degli elementi di A per quelli di B; calcolare la somma sum degli elementi del vettore b; copiare nel vettore x gli elementi della prima riga di A e ordinarli in modo decrescente; calcolare in una matrice P la potenza quarta di ogni elemento della matrice A;
4 LABORATORIO DI INFORMATICA ESERCITAZIONE VIII dividere ogni elemento del vettore u per il corrispondente elemento del vettore v = (1, 7, 3); porre in T la parte triangolare superiore di B. Esercizio 22. Scrivere uno script che letto da tastiera un vettore di tre elementi, che rappresentano rispettivamente il numero di ore, minuti e secondi, calcoli il numero totale di secondi e lo stampi a video. Inoltre scrivere uno script che letto da tastiera un numero che rappresenta il totale di secondi, crei un vettore contente ore, minuti e secondi e lo stampi a video. Esercizio 23. Scrivere uno script area esagono.m che legge in input da tastiera il lato di un esagono l e stampi a video l area A. Nota: la formula per il calcolo dell area dell esagono è: 3l 3 3 2 Esercizio 24. Si costruisca uno script per calcolare la media, la varianza e la deviazione standard di una serie di misure memorizzate in un vettore preso in input da tastiera. Si ricorda che: MEDIA = 1 n x i ; V ARIANZA = 1 n (x i MEDIA) 2 ; n n 1 i=1 i=1 DEV ST ANDARD = V ARIANZA. Esercizio 25. Scrivere uno script che legge in input un vettore e stampa a video il vettore ordinato. Chiedere se eseguire un ordinamento crescente o decrescente. Esercizio 26. Scrivere uno script somma.m per calcolare la somma dei primi n numeri naturali dispari. Il numero intero n deve essere preso da tastiera. Esercizio 27. In una battaglia (semplificata) di Risiko, ciascun giocatore (attaccante e difensore) lancia 3 dadi a 6 facce. Si confronta poi il dado più alto dell attaccante con quello più alto del difensore: se il valore dell attaccante è strettamente maggiore di quello del difensore, il difensore perde un armata, altrimenti la perde l attaccante; si fa lo stesso confronto con i due dadi intermedi e i due dadi più bassi. Scrivere uno script che simuli l operazione attraverso i seguenti passi: costruisca un vettore contenente tre numeri interi casuali nell intervallo [1,6] per l attaccante; costruisca un vettore contenente tre numeri interi casuali nell intervallo [1,6] per il difensore; verifichi quante armate ha perso il difensore confrontando i due vettori costruiti. Funzioni Esercizio 28. Si scriva una funzione che prende in input due numeri naturali n e k, con n >= k e restituisce in output il coefficiente binomiale. La funzione deve terminare se n < k. Si ricorda che: ( ) n k = n! k!(n k)!
LABORATORIO DI INFORMATICA ESERCITAZIONE VIII 5 Esercizio 29. Si scriva una funzione che prende come parametro una matrice A ed uno scalare x. La funzione restituisce in uscita un vettore v in cui ciascun elemento v k vale 1 se la media degli elementi della k-esima colonna di A è maggiore o uguale a x e 0 altrimenti. Esercizio 30. Scrivere una funzione di nome aree rettangoli che prenda in input una matrice 2xn in cui ogni colonna contiene la base e l altezza di un rettangolo. Calcolare e restituire un vettore contenente le aree dei rettangoli aventi base e altezza contenute in ciascuna colonna della matrice in input. Esercizio 31. Si scriva una funzione che prende in input un vettore ed un valore di soglia (uno scalare). La funzione copia tutti gli elementi del vettore in altri due vettori, separando elementi sopra la soglia e sotto la soglia. I due vettori sono l output della funzione. Esercizio 32. Scrivere la funzione primo.m che preso in input un intero x restituisce: 1 se x è un numero primo; 0 altrimenti. Esercizio 33. Si scriva una funzione che prende come parametro uno scalare x e generi numeri casuali distribuiti uniformemente tra x e x finché la somma dei numeri generati non differisca da 0 per meno di 0.01 oppure siano già stati generati 10000 numeri causali. La funzione restituisce in uscita il numero n di numeri casuali generati ed il vettore v contenente i numeri stessi. Esercizio 34. Scrivere una funzione che riceve in input un vettore di numeri interi positivi v, un numero intero positivo s e controlla se esistono nel vettore v due elementi di cui la somma è s. Nel caso non esistano, la funzione restituisce il valore 1. Nel caso esistano la funzione restituisce questi due valori come vettore. Strutture Esercizio 35. Si scriva una funzione che costruisce un array di strutture studente. Ogni struttura studente ha 4 campi: nome, cognome, matricola, media dei voti degli esami superati. Ogni studente viene letto da tastiera. Al termine dell inserimento di uno studente, bisogna chiedere all utente se vuole inserire un nuovo studente e terminare la funzione in caso contrario. La funzione restituisce l array contenente tutti gli studenti inseriti. Esercizio 36. Scrivere una funzione che effettui l ordinamento lessicografico di un array di strutture studente (considerando prima il cognome e poi il nome di ogni studente). Esercizio 37. Scrivere una funzione che effettui l ordinamento in termini di merito di un array di strutture studente (considerando la media dei voti degli esami superati dagli studenti). Esercizio 38. Scrivere uno script che permetta all utente di inserire un elenco di studenti e, una volta terminato l inserimento, stampi a video l elenco degli studenti nell ordine lessicografico o in termini di merito in base ad una scelta dell utente. (Si usino le funzioni dei tre esercizi precedenti).