ESERCIZI DI PREPARAZIONE PER IL PRIMO ESONERO DI PROGRAMMAZIONE II (1) Data una lista ordinata (ordine decrescente) L ed un intero x, definire una funzione C che restituisce il numero dei nodi di L maggiori di x. Specificare asserzione iniziale, asserzione finale, e invariante di ciclo. Dare la complessita' in tempo della funzione, motivando la risposta. (10 punti) Esempio: L1: 15 -> 11 -> 11 -> 9 -> 9 -> 7 -> 6 -> 4 -> 3 -> 3 x=7 Risultato: 5 (2) Date in input due liste L1 ed L2 di interi, definire in C una funzione iterativa che restituisce in output la nuova lista R1 (si utilizzi la funzione newnode) definita nel seguente modo: - R1 contiene (nell'ordine) i nodi di L1 che sono maggiori o uguali dei nodi di L2 in posizione corrispondente (o tali che non ci sono nodi in posizione corrispondente in L2). La funzione deve lasciare le due liste L1 ed L2 di input invariate. Specificare asserzione iniziale, asserzione finale, e invariante di ciclo. Dare la complessita' in tempo della funzione, motivando la risposta. (11 punti) Esempio: L1: 8 -> 1 -> 8 -> 5 -> 6 -> 9 -> 8 -> 3 -> 2 -> 11 -> 10 L2: 8 -> 8 -> 3 -> 8 -> 2 -> 5 -> 6 -> 3 -> 3 Risultato: R1: 8 -> 8 -> 6 -> 9 -> 8 -> 3 -> 11 -> 10 (3) Definire una funzione C (ricorsiva) che riceve come parametro un array di interi B, due indici first e last, e restituisce la somma degli elementi di B [first...last]. Specificare asserzione iniziale e asserzione finale. Dare la complessita' in tempo e in spazio della funzione, motivando la risposta. (6 punti) Esempio: B: 4, 9, 3, 1, 3, 6, 7, 2 first = 2 last = 5 Risultato: 13 Esempio: B: 4, 9, 3, 1, 3, 6, 7, 2 first = 4 last = 3 Risultato: 0 (4) Simulare l'esecuzione della funzione sviluppata al punto (1) per i seguenti valori dei parametri: L: 8 -> 6 -> 5 -> 2 x=4 (3 punti) (5) Simulare l'esecuzione della funzione sviluppata al punto (3) per i seguenti valori dei parametri: B: 5,2,4,6 first=1 last=3 (3 punti)