Informatica – 18/02/2016 – durata complessiva: 2h COGNOME: NOME MATRICOLA: A1 DOCENTE: Domanda 1 Considerando i due numeri n1=01010101 e n2=11110101 rappresentati in CA2. Si esegua la somma indicando opportunamente la presenza di overflow (i numeri sono espressi su 8 bit). Domanda 2 Una memoria è in grado di memorizzare 10KB. Considerando un parallelismo dati di 8 bit, si calcoli quanti bit sono necessari per gli indirizzi. Domanda 3 Si descriva l’architettura di un BUS e si illustri il suo principio di funzionamento Informatica – 18/02/2016 – durata complessiva: 2h Domanda 4 (PROGRAMMAZIONE) Si desidera realizzare un software in grado di elaborare le immagini ottenute attraverso i DNA microarray. Un DNA microarray è un insieme di microscopiche sonde di DNA attaccate ad una superficie solida come un chip di silicio formanti una matrice rettangolare. La dimensione della matrice è NxM di numeri interi positivi variabili tra 0 e 200 e separati da uno spazio. Ogni numero rappresenta il livello di espressione di un gene. Un gene è considerato identificato quando il suo valore supera il 70% del valore massimo (200), è non identificato quando il suo valore è inferiore al 30%. Nel caso intermedio è parzialmente identificato. Si scriva un programma in linguaggio C in grado di: - analizzare una matrice 5x10 rispetto ad un sottoinsieme di coordinate - verificare il tipo di identificazione del sottoinsieme di geni. Tale sottoinsieme è contenuto in un secondo file passato da linea di comando ed avente il seguente formato: <riga> <colonna> <tipo> Riga e colonna sono due numeri interi, mentre tipo è un carattere che può assumere i seguenti valori: N (non identificato), E (identificato), P (parzialmente identificato). Il numero di coordinate da verificare non è noto a priori. Il programma dovrà: 1) Stabilire se tutti i codici identificativi dei geni appartengono alla matrice. a. In caso negativo, stampare a video i codici non trovati e terminare. b. In caso positivo procedere al punto 2. 2) Verificare se tutti i codici identificativi rispettano il tipo di identificazione a. In caso positivo, stampare a video un messaggio di conferma b. In caso negativo, il programma dovrà stampare a video la matrice riportando il valore 0 per i geni che rispettano il tipo di identificazione oppure non sono definiti e un valore numerico corrispondente al livello da sommare per raggiungere il criterio di identificazione del gene (il valore può essere negativo). Esempi di file: DNA_image.txt 3 195 193 88 50 2 4 199 198 7 4 194 192 85 2 8 10 4 5 8 80 81 10 5 5 6 5 9 10 70 10 4 58 70 80 70 80 81 91 6 190 189 5 6 7 10 11 9 43 40 Model_1.txt 11 1 E 1 9 E 4 6 N 10 10 P 4 7 E C:\prog.exe DNA_image.txt Model_1.txt Geni identificativi non trovati: 11 1 E 10 10 P C:\prog.exe DNA_image.txt Model_2.txt Geni identificativi correttamente espressi. C:\prog.exe 0 0 0 -28 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 2 0 0 0 0 0 0 0 0 0 DNA_image.txt Model_3.txt 0 0 0 0 0 0 0 0 0 0 0 0 -10 0 0 0 0 0 0 0 0 Model_2.txt 0 1 E 0 9 N 2 0 P 4 1 E Model_3.txt 0 3 N 2 9 N 3 2 P 0 8 E Informatica – 18/02/2016 – durata complessiva: 2h COGNOME: NOME MATRICOLA: A2 DOCENTE: Domanda 1 Considerando i due numeri n1=10000001 e n2=11111111 rappresentati in CA2. Si esegua la somma indicando opportunamente la presenza di overflow (i numeri sono espressi su 8 bit). Domanda 2 Una memoria è in grado di memorizzare 20KB. Considerando un parallelismo dati di 16 bit, si calcoli quanti bit sono necessari per gli indirizzi. Domanda 3 Si descrivano le caratteristiche di una memoria RAM. Informatica – 18/02/2016 – durata complessiva: 2h Domanda 4 (PROGRAMMAZIONE) Si desidera realizzare un software in grado di elaborare le immagini ottenute attraverso i DNA microarray. Un DNA microarray è un insieme di microscopiche sonde di DNA attaccate ad una superficie solida come un chip di silicio formanti una matrice rettangolare. La dimensione della matrice è NxM di numeri interi positivi variabili tra 0 e 200 e separati da uno spazio. Ogni numero rappresenta il livello di espressione di un gene. Un gene è considerato identificato quando il suo valore supera il 70% del valore massimo (200), è non identificato quando il suo valore è inferiore al 30%. Nel caso intermedio è parzialmente identificato. Si scriva un programma in linguaggio C in grado di: - analizzare una matrice 5x10 rispetto ad un sottoinsieme di coordinate - verificare il tipo di identificazione del sottoinsieme di geni. Tale sottoinsieme è contenuto in un secondo file passato da linea di comando ed avente il seguente formato: <riga> <colonna> <tipo> Riga e colonna sono due numeri interi, mentre tipo è un carattere che può assumere i seguenti valori: N (non identificato), E (identificato), P (parzialmente identificato). Il numero di coordinate da verificare non è noto a priori. Il programma dovrà: 1) Stabilire se tutti i codici identificativi dei geni appartengono alla matrice. a. In caso negativo, stampare a video il numero di geni non trovati. b. In caso positivo procedere al punto 2. 2) Verificare se tutti i codici identificativi rispettano il tipo di identificazione a. In caso positivo, stampare a video un messaggio di conferma b. In caso negativo, il programma dovrà stampare a video la sequenza di geni seguiti da OK (se il valore identificativo è corretto) o dal valore da sommare per raggiungere il criterio di identificazione riportato nel secondo file (il valore può essere negativo). Esempi di file: DNA_image.txt 3 195 193 88 50 2 4 199 198 7 4 194 192 85 2 8 10 4 5 8 80 81 10 5 5 6 5 9 10 70 10 4 122 70 80 70 80 81 91 6 190 189 5 6 7 10 11 9 43 40 Model_1.txt 11 1 E 1 9 E 4 6 N 10 10 P 4 7 E C:\prog.exe DNA_image.txt Model_1.txt Geni identificativi non trovati: 2 C:\prog.exe DNA_image.txt Model_2.txt Geni identificativi correttamente espressi. C:\prog.exe DNA_image.txt Model_3.txt 0 3 OK 2 9 OK 3 2 -2 0 4 70 Model_2.txt 0 1 E 0 9 N 2 0 P 4 1 E Model_3.txt 0 3 N 2 9 N 3 2 P 0 4 E