FONDAMENTI DI INFORMATICA I

Corso di Laurea in Ingegneria Elettronica, Informatica, delle Telecomunicazioni

Università La Sapienza - Consorzio Nettuno

Appello del 28-9-2002

Parte Pratica (20 punti)

0)

Scrivere un programma C che risponda alle seguenti specifiche:

Ad esempio, se l'input fosse 3 9.5 8.5 12.0 9.6 6.0 12.0 4.0 7.0 12.0 8.5 0

l'output potrebbe essere

--- il massimo valore era 12.0

--- numero di occorrenze del massimo: 3

NB In questo esercizio non servono gli array (e il loro uso comporta una penalizzazione)

1)

Scrivere un funzione eser1() C che,

Per carattere dominante in una stringa si intende quello che occorre più volte nella stringa. Se ci sono più caratteri dominanti in una stringa, si considera dominante il primo ad apparire.

Ad esempio, se le stringhe fossero "POSTILLO" e "MIsticante", nella prima stringa il carattere dominante sarebbe ‘O’ (che occorre due volte come ‘L’ ma appare prima nella stringa); nella seconda stringa il dominante sarebbe ‘t’ (unico ad occorrere due volte) e il risultato della sostituzione sarebbe di far diventare s2 "MIsOicanOe".

2)

Scrivere una funzione eser2() che,

Ad esempio se n fosse 10, e vi fosse 17 5 0 —2 13 —6 5 9 18 -4

Scrivere poi un programma che, pur senza fronzoli inutili, utilizzi congruamente la funzione eser2.

FONDAMENTI DI INFORMATICA I

Corso di Laurea in Ingegneria Elettronica, Informatica, delle Telecomunicazioni

Università La Sapienza - Consorzio Nettuno

Appello del 28-9-2002

Parte Teorica (10 punti)

 

I) (2/4)

Siano N=77, M=299.

  1. Stabilire il numero minimo B di cifre binarie occorrenti per rappresentare sia N che M come numeri binari puri;
  2. scrivere la rappresentazione di N ed M come numeri binari puri con B cifre ed eseguire la somma N+M;
  3. Stabilire il numero minimo di cifre necessarie per rappresentare tanto N quanto -M in complemento a due e mostrare tali rappresentazioni, dettagliando il procedimento usato per ottenerle;
  4. infine eseguire l’operazione N-M, e scrivere il risultato usando 16 bit.

 

II) (1/2)

Scrivere una funzione C ricorsiva eserRic() che, ricevendo un valore intero n ne calcoli e restituisca il fattoriale.

Mostrare l'attivazione della funzione, nel caso di un piccolo programma di esempio in cui venga calcolato 5!, spiegando come il risultato viene calcolato secondo le modalità che si ritengono più efficaci.