Está en la página 1de 5

Fundamentos de Informática

EUP - Ingeniería Técnica Industrial (especialidad en Electrónica).


Curso 2010/11
17 de junio de 2011

Nombre : . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

Apellidos : . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

D.N.I. : . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

Teoría
Preguntas 1 y 4: 0,8 puntos. Preguntas 5 a 6: 0,9 puntos.

1. Indicar qué es un proceso y las características de los dos modos generales de ejecución de procesos en
un sistema operativo.

2. En la representación de imágenes se distinguen dos tipos de codificaciones básicas: los mapas de bits y
los mapas de vectores. Describir cada una de ellas e indicar en qué situaciones es recomendable su uso.

3. Indicar cuáles son las funciones principales de la Unidad de Control y la Unidad Aritmético-Lógica en la
Unidad Central de proceso (CPU) de un ordenador.

4. Explicar qué es el código ASCII y cómo se realiza la representación de caracteres empleando esta
codificación.

5. Describir los tipos de tecnologías de memoria RAM (Random Access Memory) y sus características.

6. Realizar las siguientes operaciones y conversiones de números (IMPORTANTE: no indicar sólo el resul-
tado sino también todas las operaciones y pasos realizados):

1. El número 1110110,101 en base 2 a base 10.


2. El número -94 de base 10 a Complemento a 1.
3. El número -89 de base 10 a Complemento a 2 con 10 bits (incluido el signo).
4. El número 398 de base 10 a Hexadecimal.
5. El número 457 en base octal hexadecimal.
6. La resta en binario de los números 1011001 y 1001111

1
Programación

Pregunta 1: 1 puntos. Pregunta 2: 1,5 punto. Pregunta 3: 2,5 puntos.

1. Completar el siguiente programa en C para que pida al usuario una palabra y muestre en pantalla un
mensaje indicando si dicha palabra es un palíndromo o no lo es. Un palíndromo es una cualquier palabra
simétrica, es decir, que se lee igual de izquierda a derecha, que de derecha a izquierda.

Ejemplo 1: Ejemplo 2:
Introduce la palabra: Somos Introduce la palabra: Escribir
Es palíndromo NO es palíndromo

#include <stdio.h>
#include <string.h>
#define MAX 20

int main()
{
char palabra[MAX];
int tam, i;

printf("Introduce la palabra: ");


scanf("%19s",palabra);

tam=strlen(palabra);

return 0;
}

2
2. Completar el siguiente programa C para que almacene en un vector los 50 primeros números de Fibonacci
y, una vez calculados, el programa pedirá al usuario que introduzca un número natural y dirá si es o no es uno
de los 50 primeros números de Fibonacci. La serie de Fibonacci: 1, 1, 2, 3, 5, 8, 13, 21, ... se puede calcular
con las fórmulas siguientes:
f0 = 1
f1 = 1
fn = fn−1 + fn−2 n = 2, 3, 4, 5....

Ejemplo 1: Ejemplo 2:
Dime un numero natural: 21 Dime un numero natural: 19
21 es uno de los 50 primeros numeros de Fibonacci 19 NO es uno de los 50 primeros numeros de Fibonacci

#include <stdio.h>

#define SIZE 50
#define FALSO 0
#define CIERTO 1

void calc_fibonacci( )
{

int pedir_numero()
{

3
int buscar_numero( )
{

int main()
{
int n, fibonacci[SIZE];

calc_fibonacci(fibonacci, SIZE);
n = pedir_numero();
if (buscar_numero(fibonacci, SIZE, n)==CIERTO)
{
printf("%i es uno de los 50 primeros numeros de Fibonacci\n", n);
}
else
{
printf("%i NO es uno de los 50 primeros numeros de Fibonacci\n", n);
}
return 0;
}

4
3. Realizar un programa en C que lea de fichero una matriz de números enteros y guarde en un fichero de
salida la diferencia entre la suma de los valores de la primera mitad de cada fila y la suma de los valores de
la segunda mitad. Para ello, será necesario que el número de columnas sea un número par, si no es así se
mostrará un mensaje de error indicando que no se puede realizar el cálculo. En el fichero de entrada los datos
se encuentran de la siguiente forma: en la primera fila habrá dos valores enteros que indican el número de
filas y columnas de la matriz, respectivamente, y en las siguientes filas del fichero estarán los valores de cada
una de las filas de la matriz. En el fichero de salida que genere el programa deberá incluirse en la primera fila
el mensaje “Datos:” y a continuación, el número de datos que contiene el fichero.

Se asume que el fichero no está corrupto, y el número de datos se corresponde con el número de filas y
columnas indicado, por lo que no será necesario realizar estas comprobaciones.

NOTA: se valorará de forma significativa el uso de funciones y la reserva dinámica de memoria.

Ejemplo:

Introduzca el nombre del fichero de lectura: entrada.txt


Introduzca el nombre del fichero de salida: resultado.txt

Ejemplo de datos contenido en el fichero de lectura (entrada.txt Ejemplo del fichero generado como resultado (resultado.txt en este
en este caso): caso):

4 6 Datos: 4
-3 1 2 5 7 8 -20
-1 1 0 6 7 2 -15
1 2 5 6 8 9 -15
0 4 6 3 1 9 -3

También podría gustarte