Está en la página 1de 4

rea

de Lenguajes y Sistemas Informticos 2012/2013

Departamento de Tecnologas de la Informacin y las Comunicaciones


EXAMEN FEBRERO INFORMTICA APLICADA


GRADO INGENIERA QUMICA INDUSTRIAL
Dispone de 2 horas para hacer el examen. Lea bien las preguntas antes de responder. Este examen punta 10 puntos. Durante el examen slo se respondern preguntas relacionadas con el enunciado del mismo.

BLOQUE 1. EJERCICIOS DE PROGRAMACIN (75%)


EP1. (35%) Haga un programa que implemente la criba de Erasttenes para calcular e imprimir por pantalla los nmero primos que existen entre el 1 y el 10000. Para ello, declare un vector de 10000 elementos, en el que cada posicin almacena si dicho nmero (realmente, ndice+1) es primo (marcando por ejemplo con el carcter p), compuesto (marcando por ejemplo con c), o si se ignora (marcando por ejemplo con i). Salvo para la primera posicin, el nmero 1 que es primo, el algoritmo opera de la siguiente forma: 1. Recorre el vector elemento a elemento. Cuando encuentra un nmero que todava no ha sido procesado (es decir, que est marcado con i), lo marca como primo (p) 2. Antes de procesar el siguiente elemento del vector, marca como compuestos (c) todos sus mltiplos enteros menores que, en este caso, 10000. Una vez procesado el vector, el programa debe imprimir todos los nmeros primos encontrados.

EP2. (25%) Haga un programa que solicite al usuario los 6 nmeros de la lotera primitiva y los muestre por pantalla, ordenados de menor a mayor y de mayor a menor. Para realizar el ordenamiento puede utilizar por ejemplo el algoritmo de la burbuja. EP3. (15%) Escriba EXACTAMENTE la salida que generan por pantalla los siguientes bloques de cdigo:

CDIGO 1
#include <stdio.h> void main(void){ int aa = 7, bb = 222, cc; cc = bb%aa; while (cc != 0) { printf(" %d |", cc); bb = bb/aa; aa = cc; cc = bb%aa; } printf("\n -> %d <-\nFin ;-)\n", aa); }

CDIGO 2
#include <stdio.h> char f1 (int a) { int c=0; c=a+c; if (c>9) return 'a'; else return 'b'; } void main (void) { int c=0; for (c=5; c<15; c++) { printf("%c ", f1(c)); } printf("\nFin ;-)"); }

rea de Lenguajes y Sistemas Informticos 2012/2013

Departamento de Tecnologas de la Informacin y las Comunicaciones


BLOQUE 2. PREGUNTAS DE DESARROLLO (25%)


Utilice el espacio equivalente a 30 lneas de texto como mximo para responder cada pregunta. La puntuacin se reparte equitativamente entre todas las preguntas de este bloque.

PT1. Describa la secuencia de funcionamiento de una CPU. PT2. Describa brevemente lo que se entiende por jerarqua de memoria de un ordenador. PT3. Describa brevemente qu es la BIOS de un ordenador y para qu sirve. PT4. Convierta los siguientes nmeros binarios a las bases decimal y hexadecimal utilizando, respectivamente, complemento a 1 y complemento a 2 BINARIO 00101001 10100010 COMPLEMENTO A 1 DECIMAL HEXADECIMAL COMPLEMENTO A 2 DECIMAL HEXADECIMAL

rea de Lenguajes y Sistemas Informticos 2012/2013

Departamento de Tecnologas de la Informacin y las Comunicaciones


BLOQUE 1. EJERCICIOS DE PROGRAMACIN (75%)


EP 1 #include <stdio.h> #define TAM 10000 int main (int argc, const char * argv[]){ char vector[TAM]; int i, multiplo; for (i=1; i<TAM; i++){ vector[i] = 'i'; } vector[0]='p'; // el numero 1 es primo y ya no lo proceso for (i=1; i<TAM; i++) { if (vector[i] == 'i') { vector[i] = 'p'; mltiplo =2; while (multiplo*(i+1) <= TAM) { vector[multiplo*(i+1)-1] = 'c'; multiplo++; } } } printf("Numero primos en el rango 1..%d:\n", TAM); for (i=0; i<TAM; i++) { if (vector[i] == 'p') { printf("%d, ", i+1); } } return 0; }

rea de Lenguajes y Sistemas Informticos 2012/2013

Departamento de Tecnologas de la Informacin y las Comunicaciones


EP 2 #include <stdio.h> #define TAM 6 int main (int argc, const char * argv[]){ int i, j, aux, loteria[TAM]; for (i=0; i<TAM; i++) { printf("Introduzca numero %i de la primitiva: ", i+1); while (scanf(" %d", &loteria[i])!=1); } for (i=0; i<TAM-1; i++) { for (j=0; j<TAM-1-i; j++) { if (loteria[j]>loteria[j+1]) { aux=loteria[j]; loteria[j] = loteria[j+1]; loteria[j+1]=aux; } } } printf("Numeros loteria ordenados de menor a mayor: "); for (i=0; i<TAM; i++) { printf(" %d, ", loteria[i]); } printf("\nNumeros loteria ordenados de mayor a menor: "); for (i=TAM-1; i>=0; i--) { printf(" %d, ", loteria[i]); } return 0; }

EP3
CDIGO 1
5 | 1 | -> 1 <Fin ;-) Fin ;-)

CDIGO 2
b b b b b a a a a a

BINARIO 00101001 10100010 COMPLEMENTO A 1 DECIMAL HEXADECIMAL 41 29 -93 A2 COMPLEMENTO A 2 DECIMAL HEXADECIMAL 41 29 -94 A2

También podría gustarte