Docsity
Docsity

Prepara i tuoi esami
Prepara i tuoi esami

Studia grazie alle numerose risorse presenti su Docsity


Ottieni i punti per scaricare
Ottieni i punti per scaricare

Guadagna punti aiutando altri studenti oppure acquistali con un piano Premium


Guide e consigli
Guide e consigli


Prova d'esame settembre 2009, Prove d'esame di Fondamenti di informatica

Prova d'esame appello del 9 settembre 2009

Tipologia: Prove d'esame

Pre 2010

Caricato il 15/02/2026

alberto-ruggero
alberto-ruggero 🇮🇹

11 documenti

1 / 2

Toggle sidebar

Questa pagina non è visibile nell’anteprima

Non perderti parti importanti!

bg1
RESTITUIRE
COMPILATO
Fondamenti di Informatica - A.A. 2008-2009
Ingegneria Informatica
Facolt`
a di Ingegneria dell’Informazione
Prof.ssa Cristiana Bolchini
Appello del 09/09/2009
Cognome Nome Matricola Voto: . . . /30
Quesito: 1 2 3 4 5 6 Tot.
Max: 5 6 6 5 4 4 30
Punti:
Istruzioni:
non `
e possibile consultare libri, appunti, n´
e comunicare;
non `
e possibile utilizzare la calcolatrice o qualsiasi dispositivo elettronico;
si pu`
o rispondere ai quesiti nell’ordine preferito;
si pu`
o scrivere con qualsiasi colore, anche a matita, ad eccezione del rosso.
Stile del codice C:
non `
e necessario inserire direttive #include.
i commenti non sono necessari, ma potrebbero essere utili nel caso di errore per capire le intenzioni.
`
e possibile (e consigliato) utilizzare funzioni di libreria.
Quesito 1 (5 punti) Punteggio ottenuto: .. . /5
Dati i due numeri A = 3510 e B = 2810 effettuare la conversione in base 2, notazione complemento a 2, sul
numero minimo di bit necessari a rappresentare gli operandi. Si effettuino poi, in tale rappresentazione, le ope-
razioni A+B e A-B indicando esplicitamente se si verifica overflow o meno, e motivando la risposta.
Mostrare i passaggi fatti.
Quesito 2 (6 punti) Punteggio ottenuto: .. . /6
Scrivere un sottoprogramma che presa in ingresso una stringa ed un carattere separatore, restituisce il numero
di elementi appartenenti alla stringa, intesi come sequenze di caratteri delimitati dal separatore stesso. L’ultimo
elemento pu`
o essere terminato o meno dal separatore.
Esempio: Ingresso: elenco di elementi separati
Valore restituito: 4
Ingresso: bianco e rosso ; rosso ; verde’;’
Valore restituito: 3
Ingresso: tutte - parole che - vanno - separate -’-’
Valore restituito: 4
Quesito 3 (6 punti) Punteggio ottenuto: .. . /6
Scrivere un sottoprogramma reverse che ricevuta in ingresso una stringa src, senza modificarla, ne crea una
nuova contenente i caratteri della stringa src ricevuta in ingresso e la restituisce al chiamante.
Quesito 4 (5 punti) Punteggio ottenuto: .. . /5
Scrivere un sottoprogramma FileVuoto che rivevuti in ingresso come due parametri il nome (inclusa l’esten-
sione) di un file di testo e il suo percorso nel file system restituisce 1 se il file `
e vuoto, 0 altrimenti.
Quesito 5 (4 punti) Punteggio ottenuto: .. . /4
Descrivere l’organizzazione del sistema operativo individuando i diversi gestori delle risorse e fornendo per
ciascuno di essi una indicazione precisa della risorsa che gestisce e di quali meccanismi offre.
pf2

Anteprima parziale del testo

Scarica Prova d'esame settembre 2009 e più Prove d'esame in PDF di Fondamenti di informatica solo su Docsity!

RESTITUIRE

COMPILATO

Fondamenti di Informatica - A.A. 2008-

Ingegneria Informatica

Facolt`a di Ingegneria dell’Informazione

Prof.ssa Cristiana Bolchini

Appello del 09/09/

Cognome Nome Matricola Voto:... / 30

Quesito: 1 2 3 4 5 6 Tot.

Max: 5 6 6 5 4 4 30 Punti:

Istruzioni:

  • non `e possibile consultare libri, appunti, n´e comunicare;
  • non `e possibile utilizzare la calcolatrice o qualsiasi dispositivo elettronico;
  • si pu `o rispondere ai quesiti nell’ordine preferito;
  • si pu `o scrivere con qualsiasi colore, anche a matita, ad eccezione del rosso.

Stile del codice C:

  • non `e necessario inserire direttive #include.
  • i commenti non sono necessari, ma potrebbero essere utili nel caso di errore per capire le intenzioni.
  • `e possibile (e consigliato) utilizzare funzioni di libreria.

Quesito 1 (5 punti) Punteggio ottenuto:... / Dati i due numeri A = − 3510 e B = − 2810 effettuare la conversione in base 2, notazione complemento a 2, sul numero minimo di bit necessari a rappresentare gli operandi. Si effettuino poi, in tale rappresentazione, le ope- razioni A+B e A-B indicando esplicitamente se si verifica overflow o meno, e motivando la risposta. Mostrare i passaggi fatti.

Quesito 2 (6 punti) Punteggio ottenuto:... / Scrivere un sottoprogramma che presa in ingresso una stringa ed un carattere separatore, restituisce il numero di elementi appartenenti alla stringa, intesi come sequenze di caratteri delimitati dal separatore stesso. L’ultimo elemento pu `o essere terminato o meno dal separatore. Esempio: Ingresso: “elenco di elementi separati” ’ ’ Valore restituito: 4 Ingresso: “bianco e rosso ; rosso ; verde” ’;’ Valore restituito: 3 Ingresso: “tutte - parole che - vanno - separate -” ’-’ Valore restituito: 4

Quesito 3 (6 punti) Punteggio ottenuto:... / Scrivere un sottoprogramma reverse che ricevuta in ingresso una stringa src, senza modificarla, ne crea una nuova contenente i caratteri della stringa src ricevuta in ingresso e la restituisce al chiamante.

Quesito 4 (5 punti) Punteggio ottenuto:... / Scrivere un sottoprogramma FileVuoto che rivevuti in ingresso come due parametri il nome (inclusa l’esten- sione) di un file di testo e il suo percorso nel file system restituisce 1 se il file `e vuoto, 0 altrimenti.

Quesito 5 (4 punti) Punteggio ottenuto:... / Descrivere l’organizzazione del sistema operativo individuando i diversi gestori delle risorse e fornendo per ciascuno di essi una indicazione precisa della risorsa che gestisce e di quali meccanismi offre.

Quesito 6 (4 punti) Punteggio ottenuto:... / Sia dato il seguente programma: #include #include #include #include

#define N 50

int main( int argc, char (^) * argv[]) { pid_t pid, pid1, pid2; int status; char c[N+1];

/* acquisizione variabile */ gets(c);

pid1 = fork(); printf("%d: %s\n", getpid(), c); fflush(stdout); /* forza la visualizzazione / if (pid1 != 0){ pid2 = fork (); sprintf(c,reverse(c)); / vedi Quesito 3 / if (pid2 != 0) { pid = waitpid (pid2, &status, 1); } else { printf("%d: %s\n", getpid(), c); fflush(stdout); / forza la visualizzazione / exit (2); } / end if / pid = waitpid (pid1, &status, 1); exit(0); } else { sleep(5); printf("%d: %s\n", getpid(), c); fflush(stdout); / forza la visualizzazione / exit (1); } / end if */ return 0; }

Rispondere alle domande elencate sotto

  1. a quanti processi d`a luogo questo programma (incluso il processo “principale”)?
  2. ipotizzando che:
    • il processo principale abbia pid = 1000 e che gli altri processi abbiano un pid consecutivo, in base all’ordine di creazione
    • non esistano altri processi attivi cosa viene stampato a video, se l’utente fornisce in ingresso albero?
  3. con le stesse ipotesi, cosa viene stampato a video, se l’utente fornisce in ingresso anna?

Prima prova in itinere del 09/09/2009 Fondamenti di Informatica - A.A. 2008-2009 Pagina 2 di 3