• Non ci sono risultati.

Laboratorio di Calcolatori 1 Corso di Laurea in Fisica

N/A
N/A
Protected

Academic year: 2021

Condividi "Laboratorio di Calcolatori 1 Corso di Laurea in Fisica"

Copied!
2
0
0

Testo completo

(1)

Laboratorio di Calcolatori 1 Corso di Laurea in Fisica

A.A. 2007/2008

Prova del 24 Giugno 2008

NOME: COGNOME: MATRICOLA: CDL:

Scrivere in stampatello Nome, Cognome e Matricola e Corso di Laurea su ogni foglio consegnato.

Esercizio 1.

a) Dato il numero binario 11001010011, dire qual è la sua rappresentazione nei sistemi decimale, ottale ed esadecimale

b) Convertire il numero decimale 486 nella sua rappresentazione binaria.

c) Dato il numero 375

8

nel sistema ottale, dire qual è la sua rappresentazione nei sistemi decimale, binario ed esadecimale

d) Convertire il numero decimale -87 nella sua rappresentazione binaria in complemento a due

e) Convertire il numero frazionario in base dieci 0.465 nella sua rappresentazione binaria utilizzando 6 cifre

Esercizio 2.

1. Si consideri il seguente frammento di programma in linguaggio macchina, memorizzato a partire dalla locazione di memoria di indirizzo 100:

100 READ 52 101 READ 53 102 LOADA 53 103 LOADB 52 104 DIV

105 LOADB 54 106 DIF

107 JUMPZ 100 108 WRITE 55 109 HALT

Si supponga che la cella di memoria di indirizzo 54 contenga il valore 2 e quella di indirizzo 55 contenga 0. Data una sequenza di numeri interi n

1

, n

2

, ..., n

k

in ingresso (n

i

≠0), dire che cosa fa il programma e che cosa viene stampato in uscita. Mostrare inoltre l'esecuzione del programma con diverse sequenze di esempio scegliendo queste opportunamente in modo tale da mostrare i diversi comportamenti che il programma può avere.

2. Scrivere un frammento di programma in linguaggio macchina che, dati tre interi generici a, b e c in ingresso, stampa in uscita 1 se a=2b e c=3b, 0 altrimenti

Esercizio 3.

Descrivere in dettaglio il bus di sistema e mostrare come questo viene utilizzato per caricare dati nella CPU dalla memoria centrale.

- 1/2 -

(2)

Esercizio 4.

Scrivere una funzione ricorsiva in C che, dato un array di interi a, restituisce true se il valore assoluto della differenza tra due elementi adiacenti di a è non crescente, e restituisce false altrimenti. Ad esempio, dato l'array {7, 2, -2, -6, -4}, la funzione restituisce true poiché 5 > 4 ≥ 4 > 2.

Esercizio 5.

Scrivere una procedura in C (non una funzione) che, dati in ingresso una stringa s ed un carattere c, restituisca in un terzo parametro intero il numero di occorrenze di c all'interno di s. Ad esempio, il carattere c occorre 5 volte in "abccbccc". Scrivere inoltre un main in cui si utilizza la procedura precedentemente dichiarata.

Esercizio 6.

Definire una struttura C che rappresenta una data ed una struttura C che riflette i dati di un'auto: marca (es. Fiat, Alfa Romeo, ...), tipo (es. punto, bravo, stilo, ...), una provincia (es. RI, MI, ...), una targa (unica per ogni auto e supposta intera) e la data di immatricolazione.

Supponendo che:

– esiste un vettore dove sono contenute tutte le auto,

– l'elemento i-esimo del vettore non contiene i dati di un'auto se la targa é pari a zero scrivere le seguenti funzioni che:

– confrontano due date verificando se una é più recente dell'altra;

stampano i dati di tutte le auto immatricolate dopo una data d

- 2/2 -

Riferimenti

Documenti correlati

 Le dichiarazioni locali di una funzione (o del main) sono visibili soltanto all’interno della funzione stessa.  Le dichiarazioni globali sono visibili al main e a tutte le

 Scrivere un programma in “quasi” C che legga numeri da input finché non viene inserito 0; appena viene inserito 0 il programma deve stampare la somma di tutti

Una volta definito e identificato un nuovo tipo ogni variabile può essere dichiarata di quel tipo come di ogni altro tipo già esistente:..

 Il preprocessore copia il contenuto del file stdio.h nel programma, inserendo i prototipi delle funzioni che appartengono al gruppo di cui xxx.h è il

 Dati un array di n interi ordinato in modo crescente ed un intero x forniti in input, determina se l’elemento x è presente nell’array, ossia se esiste una componente

 metti nella cella i-esima del terzo array, la cella j-esima del primo array. 

 COMPILATORE: traduce un programma in un linguaggio ad alto livello in uno equivalente in linguaggio macchina per permettere la sua esecuzione da parte

 il quoziente della divisione corrisponde al numero ottenuto cancellando la cifra meno significativa dal numero di partenza espresso in base b’.  le cifre più significative