logo
  • userLoginStatus

Welcome

Our website is made possible by displaying online advertisements to our visitors.
Please disable your ad blocker to continue.

Current View

Mathematical Engineering - Informatica A

Full exam

Informatica A – Appello di venerdì 21 settembre 200 7 Cognome _____________________________ Nome ____________________________ Matricola ___________________ Firma ________________________________ ______ Istruzioni  È consentito scrivere solo sui fogli distribuiti utilizzando il retro delle pagine in caso di necessità e cancellando le parti di brutta con un tratto di pe nna. Non separare questi fogli.  È consentito portare all’esame libri, eserciziari e appunti  Non è possibile lasciare l’aula conservando il tema della prova in corso.  Tempo a disposizione: 2,5 h Valore indicativo di domande ed esercizi, voti parziali e voto finale: Esercizio 1 (1 punti) ________________________________ __ Esercizio 2 (1 punti) ________________________________ __ Esercizio 3 (4 punti) ________________________________ __ Esercizio 4 (8 punti) ________________________________ __ Esercizio 5 (6 punti) ________________________________ __ Esercizio 6 (6 punti) ________________________________ __ Esercizio 6 (2 punti) ________________________________ __ Voto finale: ________________________________ __ Esercizio n. 1 (1 punto) Sia data l’espression e booleana in 4 variabili a, b, c e d seguente: (A or (B and C)) and ((C and D) or (not A)) Se ne ricavi la tabella delle verità. Esercizio n. 2 (1 punto) Siano dati i numeri decimali A  200 e B  64. Si calcoli la loro somma algebrica A + B lavorando in complemento a due e supponendo d’usare 9 bit. Esercizio n. 3 (4 punti) Esercizio di cui abbiamo discusso oggi… Esercizio n. 4 (8 punti) Si consideri la seguente definizione: typedef struct Elem { char * parola; struct Elem * next; } Nodo; type def Nodo * Lista; typedef struct Elem2 { Lista catena; struct Elem2 * next; } NodoTesta; typedef NodoTesta * ListaDiListe; Si scriva una funzione che rimuove dalla Lista DiListe le catene contenenti almeno due parole palindrome. È consigliabile definire funzioni ausiliarie. Esercizio n. 5 (6 punti) Supponiamo, limitatamente alla soluzione di questo esercizio, che il linguaggio C++ NON possegga gli operatori ‘+’, ‘*’, ‘ -’ e ‘/’ (in buona sostanza il loro uso “non è permesso”). Si considerino invece le seguenti funzioni (precedente e successivo di un numero intero): ____________________________________________________________________ int pre(int x) { return –-x; } int suc(int x) { return ++x; } ______________________________ ______________________________________ Si considerino poi le seguenti (informali e incomplete) formulazioni ricorsive delle funzioni di addizione , sottrazione, moltiplicazione, divisione, sommatoria e produttoria , applicate a numeri interi non negativi . (1) a + b = pre(a) + suc(b) a, b  N + ‘0’ (2) a – b = pre(a – pre (b) ) a, b  N + ‘0’, b  a (3) a * b = a + ( a * pre(b) ) a, b  N + ‘0’ (4) a / b = suc( (a – b) / b ) (se a  b) a, b  N + ‘0’ (5)  (n) = i=1… n i = n + i=1… pre(n) i n  N, con  (0) = 0 (6)  (n) = i=1… n i = n * i=1… pre(n) i n  N, con (0) = 0 (e non 1) Si implementino tramite funzioni RICORSIVE le suddette funz ioni nel campo dei numeri interi non negativi , identificando opportunamente i casi base e prestando attenzione alla terminazione. ATTENZIONE: le definizioni proposte e le soluzioni conseguenti sono particolarmente inefficienti – ma non è l’ottimizzazione lo spirito dell’esercizio! pp. 7 / 8 Esercizio n. 0 -- pagina di 8 Esercizio n. 6 (6 punti) Si consideri il database GIOCATORE ( Nome , Squadra, Nazione, Ruolo ) GOAL ( NomeGiocatore , DataPartita , Minuto , TipoGoal, Descrizione ) Scrivere in tutti e tre i linguaggi formali e in SQL l’interrogazio ne che estrae tutti i giocatori che non hanno mai segnato un goal dopo il minuto 45 (attenzione: chi non ha mai segnato un goal in assoluto fa parte del risultato). pp. 8 / 8 Esercizio n. 0 -- pagina di 8 Esercizio n. 7 (2 punti) Si consideri il database GIOCATORE ( Nome , Squadra, Nazione, Ruol o ) GOAL ( NomeGiocatore , DataPartita , Minuto , TipoGoal, Descrizione ) Supponendo interessi ordinare i giocatori per numero di goal segnati, estrarre i giocatori che appartengono al 10% dei giocatori che hanno segnato più goal.