Fundamentos de Informática.
Convocatoria Extraordinaria.
Enero de 1999.
Nombre:_____________________________________________________________________________
Titulación:___________________________________________________________________________
1. Contestar las siguientes preguntas. Cada respuesta acertada suma 0,5 puntos a la nota total y cada respuesta mal contestada penaliza con –0,3 puntos dicha nota. En cada pregunta sólo hay una única respuesta correcta (3p).
Un kilobyte (KB) equivale a
medio megabyte (MB).
x 1024 bytes.
1024 MB.
1000 bytes.
Su tamaño depende del tipo concreto de memoria RAM que se esté usando.
La memoria principal es de acceso
secuencial.
x directo.
volátil.
de un tipo de acceso propio de este tipo de memoria.
Un disco duro tiene
tantos cilindros como pistas hay en cada superficie.
tantos sectores como pistas hay en el disco.
x tantas pistas como cilindros hay en el disco.
tantas pistas como superficies tiene el disco
Los monitores con tecnología LCD poseen una pantalla de cristal líquido, la cual es muy utilizada en los ordenadores portátiles debido a su pequeño grosor.
x Verdadero.
Falso.
Un componente fundamental de una impresora LÁSER es
la célula fotoeléctrica.
el arco voltaico.
x el tambor fotosensible.
el diodo LED.
el convertidor D/A (Digital/Analógico).
Todos los anteriores.
Ninguno de los anteriores.
El módem se encarga de modular y demodular señales para posibilitar la comunicación de datos digitales por las líneas analógicas ya existentes (como la Red Telefónica Conmutada).
x Verdadero.
Falso.
2. Enumerar de forma breve y concisa (no más de media página) las distintas tareas que suele realizar un Sistema Operativo (1p).
3. Diseñar un subalgoritmo en pseudocódigo al cual se le pase como único parámetro una matriz de enteros (int) de orden 5×5. El subalgoritmo deberá alterar el orden de los elementos de la matriz original para obtener su traspuesta. También se pide la codificación del subalgoritmo en lenguaje C (2p).
4. En lenguaje C existen cuatro funciones básicas para el manejo de ficheros de texto:
punt_fich = fopen(nombre_fichero, operación)
Para poder trabajar con un fichero antes debemos abrirlo. Para ello usaremos la función anterior, que acepta como primer parámetro el nombre del fichero en formato Ms-Dos (unidad, ruta, nombre del fichero) y como segundo parámetro una cadena de caracteres entre comillas que indica la operación a realizar («r» para lectura y «w» para escritura). Si todo ha ido bien la función devuelve un puntero al fichero, que se almacenará en una variable de tipo *FILE (definido en el fichero <stdio.h>). Por el contrario, si hay algún error la función devolverá como resultado el valor cero. Cuando se usa esta función para abrir en escritura un fichero previamente inexistente, la propia función lo crea.
Para leer un carácter del fichero usaremos la siguiente función:
carácter = fgetc(punt_fich);
La variable carácter debe ser de tipo signed char y almacenará el carácter leído. Asimismo, la próxima vez que usemos la función leeremos el siguiente carácter del fichero. Si la última vez que la usamos leímos el último carácter del fichero, la siguiente vez leeremos un carácter especial: El carácter EOF (fin de fichero), el cual también se define en el fichero <stdio.h>.
Para escribir un carácter en el fichero usaremos la función:
fputc (carácter, punt_fich);
Finalmente, una vez que hayamos terminado de trabajar con el fichero deberemos cerrarlo, para lo cual usaremos la función fclose (punt_fich);
Se pide escribir un algoritmo en pseudocódigo que copie el contenido de un fichero de texto denominado «C:\PRUEBA\HOLA.TXT» en otro de nombre «C:\PRUEBA\ADIOS.TXT». También se pide la codificación del algoritmo en lenguaje C (4p).
Nota: Supondremos que no se produce ningún tipo de error en la apertura de ambos ficheros.
Fundamentos de Informática.
Junio de 1999 (Primera vuelta).
Nombre:
Titulación: r Electrónica r Electricidad r Mecánica.
Primera Parte
1. Contestar las siguientes preguntas tipo test. Cada pregunta correctamente respondida suma 1 punto a la nota final, y cada pregunta erróneamente contestada penaliza con ‑0,8 puntos la nota final (5 p).
El Registro de Instrucción de la Unidad de Control contiene
q el número de identificación de la BIOS del ordenador.
q el código de operación del conjunto de instrucciones del programa.
qx el código de operación de la instrucción a ejecutar.
q la instrucción a ejecutar escrita en un lenguaje de programación de alto nivel.
q Ninguna de las respuestas anteriores es correcta.
Relacionar los siguientes términos:
1 kilobytes 4velocidad de transmisión
2 nanosegundos 5frecuencia de reloj
3 caracteres por segundo 3velocidad de impresión
4 bits por segundo 6capacidad de proceso
5 megaherzios 1 capacidad de memoria
6instrucciones por segundo 2 tiempo de acceso
En un sistema operativo, la redirección se utiliza para comunicar dos procesos.
qx Verdadero.
q Falso.
En un sistema operativo tipo UNIX el uid es un número que identifica a cada usuario concreto.
qx Verdadero.
q Falso.
Si queremos que un determinado programa se ejecute rápidamente será mejor
qx programarlo utilizando un lenguaje de alto nivel.
q interpretarlo con un intérprete.
qx compilarlo con un compilador.
q ejecutarlo bajo un sistema operativo.
q Ninguna de las respuestas anteriores es correcta.
2. Describir brevemente (en una página) las dos funciones básicas de un Sistema Operativo (2 p).
3. Explicar como funcionarían, en caso de que fuesen correctas, las siguientes órdenes en Ms-Dos. Contestar de forma breve pero completa y razonada (3 p):
a) C:\SYSTEM\DOS>type ..\unix.doc | prn > com1
b) C:\DOS>copy c:\docum\*.* a:
c) C:\>dir \windows | sort > con
Segunda Parte
1. Contestar las siguientes preguntas tipo test. Cada pregunta correctamente respondida suma 0,6 puntos a la nota final, y cada pregunta erróneamente contestada penaliza con ‑0,4 puntos la nota final (3 p).
El teorema de Bohm-Jacopini se basa en
q diseñar el algoritmo de modo general para después, mediante refinamientos sucesivos, ir aumentando progresivamente el nivel de detalle del diseño.
q x escribir un algoritmo o un programa utilizando exclusivamente las estructuras de control secuencial, alternativa e iterativa.
q estructurar el programa en módulos de forma que éste resulte más fácil de entender y modificar.
q Ninguna de las respuestas anteriores es correcta.
Una variable es
q el identificador de un valor constante en un programa.
q un dato desconocido en un programa.
q x un dato que posee un valor no constante y es conocido en un programa o un algoritmo por un identificador.
q Ninguna de las respuestas anteriores es correcta.
Las variables globales
q x es preferible usarlas sólo cuando sea necesario, ya que si se utilizan resulta más difícil controlar que sus valores no se modifiquen erróneamente.
q se deben usar siempre que se pueda, ya que así se evita el paso de parámetros entre funciones.
q no se pueden usar en un programa escrito en lenguaje C, ya que crean conflictos irresolubles con las variables locales del programa.
q Ninguna de las respuestas anteriores es correcta.
En un programa en lenguaje C, el resultado de la operación 5./2 es
q 2.0
q 25 * 10-2
q x 2
q 2.5
q Ninguna de las respuestas anteriores es correcta.
Los modificadores de los tipos de datos básicos en lenguaje C son
q int y char.
q x int, char, float y double.
q int, char, float, double y void.
q unsigned, signed, long y short.
q auto, extern, static y register.
2. Necesitamos diseñar cuatro funciones para obtener ciertos parámetros estadísticos a partir de una muestra. Los valores de la muestra están almacenados en un array unidimensional de tipo double y tamaño n. Todas las funciones aceptan como parámetros el array de datos y el tamaño de la muestra:
a) Función double med_arit(double v[], int n). Devuelve como resultado la media aritmética de los valores de la muestra (2 p).
b) Función double med_geom(double v[], int n). Devuelve como resultado la media geométrica de los valores de la muestra (2p).
c) Función double varianza(double v[], int n). Devuelve como resultado la varianza de los valores de la muestra (2p).
d) Función double desv_tip(double v[], int n). Devuelve como resultado la desviación típica de los valores de la muestra (1p).
Notas:
· En todos los casos se piden los subalgoritmos escritos en pseudocódigo y la codificación de los mismos en lenguaje C.
· En el diseño de cada función pueden utilizarse cualquiera de las otras funciones con objeto de facilitar el trabajo.
· Para obtener la potencia n-sima de un dato real puede utilizarse la siguiente función, cuyo prototipo se encuentra en <math.h>:
double pow(double base, double exponente)
Fundamentos de Informática.
Junio de 1999 (Segunda vuelta).
Nombre:
Titulación: r Electrónica r Electricidad r Mecánica.
Primera Parte
1. Contestar las siguientes preguntas tipo test. Cada pregunta correctamente respondida suma 1 punto a la nota final, y cada pregunta erróneamente contestada penaliza con ‑0,8 puntos la nota final (5 p).
La memoria ROM sirve para almacenar
q x información que nunca se va a modificar.
q datos e instrucciones de forma temporal.
q información que necesitemos almacenar por poco tiempo.
q Ninguna de las respuestas anteriores es correcta.
La memoria principal es de acceso
q secuencial.
q volátil.
q x directo.
q de un tipo de acceso propio de este tipo de memoria.
En un sistema operativo tipo UNIX el pid es
q un número que identifica al sistema de ficheros concreto que se está utilizando.
q un número que indica la prioridad de cada proceso.
q un número que indica el tiempo estimado de ejecución de cada proceso.
q x un número que identifica a cada proceso.
q Ninguna de las respuestas anteriores es cierta.
En un sistema operativo, la tubería se utiliza para comunicar dos procesos.
q x Verdadero.
q Falso.
La diferencia fundamental entre un compilador y un intérprete es
r que el intérprete genera código objeto entendible por el microprocesador.
r x que el compilador genera código objeto entendible por el microprocesador.
r que el compilador a usar depende de la BIOS del ordenador concreto.
r no hay diferencias ya que ambos son traductores.
r Todas las respuestas anteriores son ciertas.
2. Se dispone de un monitor de 640×480 pixeles de resolución, con 256 colores posibles y 0.28 mm de separación entre pixeles. Este monitor está conectado a un ordenador cuyo microprocesador trabaja a una frecuencia de reloj de 200 Mhz. Además, el tiempo que tarda el monitor en dibujar cada pixel es 25 ns. (nanosegundos). Hallar razonadamente (3 p):
a) Frecuencia de barrido vertical del monitor.
b) Frecuencia de barrido horizontal.
c) Cantidad mínima de memoria de vídeo expresada en kilobytes necesaria para representar una imagen en la resolución indicada.
3. Supongamos que tenemos una tarjeta de sonido que puede digitalizar sonidos o música con la calidad de un Compact Disk de audio normal (CD-A), con 44,1 Khz. de frecuencia de muestreo y 12 bits de tamaño de muestra. ¿Qué cantidad de memoria (en megabytes) necesitaríamos para almacenar la canción de Mecano titulada “Los piratas del amor” de su disco “El club de los humildes”, que dura cinco minutos y tres segundos. Razónese la respuesta (2 p).
Segunda Parte
1. Contestar las siguientes preguntas tipo test. Cada pregunta correctamente respondida suma 0,6 puntos a la nota final, y cada pregunta erróneamente contestada penaliza con ‑0,4 puntos la nota final (3 p).
Un algoritmo es
q un término equivalente en significado al hardware.
q x un conjunto finito y ordenado de reglas que permite resolver un problema.
q la codificación de un programa.
q un lenguaje de programación estructurado.
q Ninguna de las respuestas anteriores es correcta.
En la Programación Estructurada las estructuras de control son
q secuencial, condicional y declarativa.
q x secuencial, condicional y bifurcativa.
q exponencial, condicional y recursiva.
q No existen, ya que los programas codificados en un lenguaje estructurado usan la sentencia goto para realizar los saltos condicionales e incondicionales.
q Ninguna de las respuestas anteriores es correcta.
El símbolo & en el lenguaje C
q se utiliza para modificar el valor de una constante.
q es el operador de indirección.
q x es el operador de dirección.
q indica el valor de retorno de una función.
q Ninguna de las respuestas anteriores es correcta.
Si en el cuerpo de un bucle while (test) {…} se usa la sentencia continue;
q se ejecutará la siguiente sentencia dentro del cuerpo del bucle.
q se ejecutará la última sentencia que haya dentro del cuerpo del bucle.
q x se evaluará la expresión de test para continuar o no ejecutando el bucle.
q se ejecutará de nuevo el bucle independientemente del valor de la expresión de test.
q Ninguna de las respuestas anteriores es correcta.
En un programa escrito en lenguaje C
q los arrays se pasan por valor.
q x se pasa por valor la dirección de memoria del primer elemento del array.
q no existe ninguna manera de pasar un array como parámetro a una función.
q sólo pueden declararse arrays que sean globales a todas las funciones del programa.
q Ninguna de las respuestas anteriores es correcta.
2. Necesitamos diseñar cuatro funciones que realicen determinadas operaciones con números complejos. Cada número complejo se representará como un array unidimensional de tamaño 2 y de tipo double. Las funciones son las siguientes:
a) Función void cong(double a[]). Transforma el número complejo a en su conjugado (1 p).
b) Función void sum_rest(double a[], double b[], double c[], char op). Opera los complejos a y b, y almacena el resultado en c. La operación será una suma si el parámetro op vale cero o una resta si dicho parámetro vale uno (2 p).
c) Función double modulo(double a[]). Devuelve el módulo del complejo a (2 p).
d) Función void binomica(double mod, double arg, double a[]). Obtiene la expresión binómica de un complejo representado en forma polar (2 p).
Notas:
· En todos los casos se piden los subalgoritmos escritos en pseudocódigo y la codificación de los mismos en lenguaje C.
· Para obtener la raíz cuadrada de un número real, el seno y el coseno de un ángulo pueden utilizarse respectivamente las siguientes funciones, cuyos prototipos se encuentran en el fichero de encabezamiento <math.h>:
double sqrt(double numero)
double sin(double angulo)
double cos(double angulo)
Fundamentos de Informática.
Septiembre de 1999 (Primera vuelta).
Nombre:
Titulación: r Electrónica r Electricidad r Mecánica.
1. Contestar las siguientes preguntas tipo test. Cada pregunta correctamente respondida suma 0,7 puntos a la nota final, y cada pregunta erróneamente contestada penaliza con ‑0,5 puntos la nota final (3,5 p).
Los sistemas operativos
q planifican y supervisan la ejecución de los programas.
q controlan las operaciones de entrada y salida de datos.
q administran los recursos del ordenador.
q x Todas las respuestas anteriores son correctas.
q Ninguna de las respuestas anteriores es correcta.
Desde el prompt del sistema operativo MS-DOS se pueden ejecutar los ficheros con extensión
q .EXE.
q .EXE y .COM.
q .EXE y .BAT.
q x .EXE, .COM y .BAT.
q .EXE, .COM, .BAT y .SYS.
q Ninguno de los anteriores.
El teorema de Bohm-Jacopini se basa en
q diseñar el algoritmo de modo general para después, mediante refinamientos sucesivos, ir aumentando progresivamente el nivel de detalle del diseño.
q utilizar sólo tipos de datos simples: entero, real, carácter y lógico.
q x escribir un algoritmo o un programa utilizando exclusivamente las estructuras de control secuencial, alternativa e iterativa.
q Todas las respuestas anteriores.
¿Cuál es la salida del siguiente programa?
#include <stdio.h>
int a = 1;
void main() {
int a = 0;
printf(«\nLa variable \»a\» vale: %d.», a);
return;
}
q Uno, porque las variables globales siempre tienen preferencia ante las locales.
q x Cero, porque al ser la variable a local a la función main(), dentro de dicha función la declaración local prevalece sobre la global.
q Se trata de un error, ya que no pueden existir dos variables con el mismo identificador aunque tengan distinto ámbito.
q Ninguna de las respuestas anteriores es correcta.
El operador de redirección «<« redirige la salida estándar de un proceso a un fichero cuyo nombre se debe indicar a la derecha del operador.
q x Verdadero.
q Falso.
2. El N.I.F. (Número de Identificación Fiscal) es exclusivo para cada persona y está formado por el número del D.N.I. (Documento Nacional de Identidad) y una letra añadida, la cual depende directamente del D.N.I. y cuya utilidad consiste en permitir la detección de posibles errores al introducir un determinado D.N.I. Es simplemente un dígito de control de errores.
El algoritmo para obtener esta letra a partir del D.N.I. es el siguiente: Se calcula el resto de dividir el D.N.I. entre 23. Dicho resto está comprendido entre 0 y 22. Entonces, a cada uno de esos posibles restos se le asigna respectivamente una de las siguientes letras: T, R, W, A, G, M, Y, U, P, D, X, B, N, J, Z, S, Q, V, H, L, C, K y E. Se ha escogido el número 23 por ser el número primo más grande que es menor que el número de letras en el abecedario. En español las letras son 28 y el siguiente número primo después del 23 es el 29. Además hay letras que no pueden asignarse por estar formadas por dos caracteres.
Diseñar un algoritmo mediante pseudocódigo que pida por teclado un número de D.N.I. y posteriormente imprima la letra del N.I.F. que le corresponde. También se pide la codificación del algoritmo en lenguaje C para obtener el programa correspondiente. Téngase en cuenta que el D.N.I. es un número muy grande y no puede almacenarse en un dato de tipo int (1,5 p).
3. Necesitamos diseñar cuatro funciones que realicen determinadas operaciones con números complejos. Cada número complejo se representará como un array unidimensional de tamaño 2 y de tipo double. Las funciones son las siguientes:
a) Función void escalar(double a[], double num). Multiplica el número complejo a por el escalar num (1 p).
b) Función void suma(double a[], double b[], double c[]). Suma los complejos a y b, y almacena el resultado en c (1 p).
c) Función double modulo(double a[]). Devuelve el módulo del complejo a (1 p).
d) Función void producto(double a[], double b[], double c[]). Multiplica los complejos a y b, y almacena el resultado en c (2 p).
Notas:
· En todos los casos se piden los subalgoritmos escritos en pseudocódigo y la codificación de los mismos en lenguaje C.
· Para obtener la raíz cuadrada de un número real puede utilizarse la siguiente función, cuyo prototipo se encuentra en el fichero <math.h>:
double sqrt(double numero)
Fundamentos de Informática.
Septiembre de 1999 (Segunda vuelta).
Nombre:
Titulación: r Electrónica r Electricidad r Mecánica.
1. Contestar las siguientes preguntas tipo test. Cada pregunta correctamente respondida suma 0,8 puntos a la nota final, y cada pregunta erróneamente contestada penaliza con ‑0,6 puntos la nota final (4 p).
Una dirección de memoria es
q un conjunto aleatorio de bits.
q un conjunto de bits que indica si los datos están en memoria principal o en disco duro.
q x un conjunto de bits que indica la posición concreta de una celda de memoria.
q la localización de la memoria en el microprocesador.
q Ninguna de las respuestas anteriores es cierta.
Los sistemas operativos
q planifican y supervisan la ejecución de los programas.
q controlan las operaciones de entrada y salida de datos.
q administran los recursos del ordenador.
q x Todas las respuestas anteriores son correctas.
q Ninguna de las respuestas anteriores es correcta.
En un sistema operativo un proceso es
q el código ejecutable de un programa.
q cualquiera de las funciones básicas del sistema operativo.
q un sistema de gestión de ficheros.
q x un programa en ejecución.
q Ninguna de las respuestas anteriores es correcta.
¿Cuál es la salida del siguiente programa?
#include <stdio.h>
int a = 0;
void main() {
int a = 1;
printf(«\nLa variable \»a\» vale: %d.», a);
return;
}
q Se trata de un error, ya que no pueden existir dos variables con el mismo identificador aunque tengan distinto ámbito.
q x Cero, porque las variables globales siempre tienen preferencia ante las locales.
q Uno, porque al ser la variable a local a la función main(), dentro de dicha función la declaración local prevalece sobre la global.
q Ninguna de las respuestas anteriores es correcta.
El símbolo * en el lenguaje C
q se usa para modificar el valor de una constante.
q x es el operador de indirección.
q es el operador de dirección.
q indica el valor de retorno de una función.
q Ninguna de las respuestas anteriores es correcta.
2. Definición de algoritmo. Propiedades (2 p).
3. Codificar en lenguaje C un programa que calcule numéricamente la integral de la función de onda o(x)=a cos(k x + p) entre los límites de integración g y h. Dicha integral es el área del polígono limitado por el eje de abcisas, los límites de integración y la propia curva de la función. Por lo tanto, el programa deberá pedir en primer lugar los coeficientes de la función (a, k y p) y los límites de integración (g y h).
Este área se calculará aproximadamente, y para ello se pedirá como entrada el número de particiones, las cuales dividirán al polígono anterior en subpolígonos. Éstos se aproximarán a trapecios y el resultado que buscamos será la suma de sus áreas. Cada trapecio tendrá como base el tamaño de la partición y como alturas los valores absolutos de la función en los dos extremos de la base. Cada área se calculará como el producto de la semisuma de las dos alturas por la base (4 p).
Notas: También se pide el pseudocódigo, y se puntuará negativamente una modularización incorrecta de éste y del programa resultante.
Para el desarrollo del ejercicio se utilizarán las funciones abs() y cos(), cuyos prototipos se encuentran en el fichero de encabezamiento <math.h>.
Fundamentos de Informática.
Convocatoria Extraordinaria.
Diciembre de 1999.
Nombre:
Titulación: r Electrónica r Electricidad r Mecánica.
1. Contestar las siguientes cinco cuestiones. Cada cuestión totalmente correcta suma 0,4 puntos a la nota total y cada cuestión fallida penaliza con –0,3 puntos dicha nota (2p).
Indicar qué afirmaciones son correctas:
q La memoria RAM se usa para el almacenamiento masivo de información.
q x La memoria ROM es de sólo lectura.
q La memoria EPROM se puede borrar mediante luz ultravioleta.
q Los soportes de almacenamiento masivo son más rápidos que la memoria RAM
La información de un disco duro se organiza en
q x superficies, pistas y cilindros.
q pistas y sectores.
q superficies y sectores.
q Ninguna de las anteriores es correcta.
Ms-Dos es un sistema operativo multiprocesador y multitarea.
q Verdadero.
q x Falso.
Indicar qué afirmaciones son correctas:
q x La reutilización del software se consigue mediante el empleo de funciones.
q Las funciones suelen agruparse en bibliotecas que luego se pueden utilizar en cualquier programa.
q Mediante la programación modular (con funciones) se desarrolla un software menos legible.
q Un programa escrito en ensamblador es más fácil de modificar que escrito en C.
Indicar cuál de las siguientes no es una característica de un programa estructurado:
q Codifica un algoritmo bien diseñado y utiliza estructuras de control adecuadas.
q Se ha desarrollado mediante una metodología de diseño descendente.
q x Utiliza la sentencia GO TO.
q Utiliza funciones, de modo que el programa adquiere una estructura modular.
2. Explicar de forma breve y concisa (no más de media página) las funciones básicas de un Sistema Operativo (2p).
3. Necesitamos escribir un programa con cuatro funciones para tratar estadísticamente los valores de una muestra. Éstos se almacenan en un array unidimensional de tipo double y tamaño n. Todas las funciones aceptan como parámetros el array de datos y el tamaño de la muestra.
a) Función void leer_muestra(double v[], int n). Lee por teclado los n valores de la muestra y los almacena según el orden de lectura (1p).
b) Función double med_arit(double v[], int n). Devuelve como resultado la media aritmética de los valores de la muestra (1,5p).
c) Función double varianza(double v[], int n). Devuelve como resultado la varianza de los valores de la muestra (1,5p).
d) Función void escr_tip(double v[], int n). Escribe por pantalla los n valores de la muestra en líneas separadas (1p).
e) Un programa principal que utilice las funciones anteriores para almacenar en un vector una muestra de veinte datos e imprimir a continuación dichos datos, la media aritmética y la varianza (1p).
Notas:
· Sólo se pide la codificación del programa principal y de las funciones en lenguaje C.
· En el diseño de cada función pueden utilizarse cualesquiera de las otras funciones con objeto de facilitar el trabajo.
Fundamentos de Informática.
Junio de 2000 (Primera vuelta).
Nombre:
Titulación: r Electrónica r Electricidad r Mecánica.
Primera Parte
Cada pregunta correctamente contestada sumará 1 punto a la calificación total. En caso de error se penalizará ésta con -0,5 puntos.
1. Un bit es
la unidad de medida de la velocidad de transmisión de información.
x la unidad mínima utilizada para medir la información.
el número de bytes necesarios para almacenar un carácter.
ocho bytes.
2. El término “informática” significa literalmente “tratamiento de la información”.
Verdadero.
x Falso.
3. La memoria RAM se utiliza para almacenar
información que necesitamos almacenar por mucho tiempo.
x datos e instrucciones de forma temporal.
el programa que se encarga de realizar los diagnósticos del ordenador cuanto éste es encendido.
nada de lo anterior.
4. La CPU es
la Unidad Central de Periféricos.
el software encargado de procesar la información.
el proceso asignado a un sistema operativo de disco.
x el dispositivo electrónico encargado de procesar la información.
5. Un programa que desarrollemos en lenguaje máquina para un procesador puede ser ejecutado en cualquier otro de distinta arquitectura sin tener que modificarlo previamente.
Verdadero.
x Falso.
6. La información de un disco duro se organiza en
pistas y cilindros.
x superficies, pistas y sectores.
superficies, pistas y cilindros.
pistas, sectores y unidades de asignación.
7. El módem se encarga de modular y demodular señales para posibilitar la comunicación de datos digitales por las líneas analógicas ya existentes.
x Verdadero.
Falso.
8. En un S.O. tipo UNIX, el uid nos indica el tiempo estimado de ejecución para cada proceso.
Verdadero.
x Falso.
9. En MS-DOS las órdenes externas permanecen siempre en la memoria principal del ordenador.
Verdadero.
Falso.
10. En MS-DOS los ficheros tienen una longitud máx. para el nombre y la extensión de 10 y 3 caracteres respectivamente.
x Verdadero.
Falso.
Fundamentos de Informática.
Junio de 2000 (Primera vuelta).
Nombre:
Titulación: r Electrónica r Electricidad r Mecánica.
Segunda Parte
1. Dado la siguiente función en lenguaje C:
int misterio (int num) {
int a = num, b = 0;
int c;
while (a > 0) {
c = a % 10;
b = b * 10 + c;
a /= 10; /* división entera */
}
if (b == num) return 1;
else return 0;
}
Se pide realizar el juego de ensayo de la misma para los siguientes valores: 174, 1225, 7890, 21412 y 8. En todo momento debe indicarse el valor que tomen las distintas variables de la función, especialmente en cada una de las iteraciones que se efectúen. A la vista de los resultados, ¿Podría indicar cuál es el problema que resuelve la función? (2p)
2. Necesitamos diseñar cinco funciones que realicen determinadas operaciones con números complejos. Cada número complejo se representará como un array unidimensional de tamaño 2 y de tipo double. Las funciones son las siguientes:
a) Función void escalar(double a[], double num). Multiplica el número complejo a por el escalar num (1,5 p).
b) Función void suma(double a[], double b[], double c[]). Suma los complejos a y b, y almacena el resultado en c (1,5 p).
c) Función double modulo(double a[]). Devuelve el módulo del complejo a (1,5 p).
d) Función void producto(double a[], double b[], double c[]). Multiplica los complejos a y b, y almacena el resultado en c (2 p).
e) Función void vector (double mod, double arg, double a[]). Devuelve las componentes vectoriales del complejo expresado en forma polar mediante el módulo mod y el argumento arg (1,5 p).
Nota:
· Para obtener la raíz cuadrada de un número real y el seno y el coseno de un ángulo pueden utilizarse respectivamente las siguientes funciones, cuyos prototipos se encuentran en el fichero de encabezamiento <math.h>:
double sqrt(double numero)
double sin(double angulo)
double cos(double angulo)
Fundamentos de Informática.
Junio de 2000 (Segunda vuelta).
Nombre:
Titulación: r Electrónica r Electricidad r Mecánica.
Primera Parte
Cada pregunta correctamente contestada sumará 1 punto a la calificación total. En caso de error se penalizará ésta con -0,5 puntos.
1. El término “informática” significa literalmente “tratamiento automático de la información”.
x Verdadero.
Falso.
2. El módem se encarga de modular y demodular señales para posibilitar la comunicación de datos analógicos por las líneas digitales ya existentes.
Verdadero.
x Falso.
3. El componente principal de una impresora láser es el tambor fotosensible.
x Verdadero.
Falso.
4. Los monitores con tecnología CRT poseen una pantalla de cristal líquido o cuarzo líquido, la cual es muy utilizada en los ordenadores portátiles por su pequeño grosor.
Verdadero.
x Falso.
5. Indicar cuáles de las siguientes afirmaciones son correctas:
Los sistemas operativos planifican y supervisan la ejecución de los programas.
Los sistemas operativos administran los recursos del ordenador.
Los sistemas operativos traducen los programas escritos en lenguaje máquina a un lenguaje de alto nivel.
Ninguna de las afirmaciones anteriores es correcta.
6. En un S.O. un proceso es
el sistema de ficheros.
el planificador de tareas.
x un programa en ejecución.
Ninguna de las respuestas anteriores.
7. En un S.O. tipo UNIX, el pid nos indica el tiempo estimado de ejecución para cada proceso.
Verdadero.
x Falso.
8. En MS-DOS las órdenes externas permanecen siempre en la memoria principal del ordenador.
Verdadero.
Falso.
9. ¿En qué mejora Windows 3.11 a MS-DOS?
En la utilización de la multitarea.
x En el uso de un entorno gráfico amigable y común a las aplicaciones.
En que permite utilizar toda la memoria RAM disponible en el ordenador.
En nada de lo anterior.
10. Indicar cuáles de las siguientes afirmaciones son correctas:
x Las instrucciones del lenguaje ensamblador son de tipo mnemotécnico o simbólico.
Los programas escritos en lenguajes de alto nivel son poco transportables entre ordenadores.
En un programa en lenguaje máquina pueden incluirse comentarios para facilitar su legibilidad.
Ninguna de las afirmaciones anteriores es correcta.
Fundamentos de Informática.
Junio de 2000 (Segunda vuelta).
Nombre:
Titulación: r Electrónica r Electricidad r Mecánica.
Segunda Parte
1. El N.I.F. (Número de Identificación Fiscal) es exclusivo para cada persona y está formado por el número del D.N.I. (Documento Nacional de Identidad) y una letra añadida, la cual depende directamente del D.N.I. y cuya utilidad consiste en permitir la detección de posibles errores al introducir un determinado D.N.I. Es simplemente un dígito de control de errores.
El algoritmo para obtener esta letra a partir del D.N.I. es el siguiente: Se calcula el resto de dividir el D.N.I. entre 23. Dicho resto está comprendido entre 0 y 22. Entonces, a cada uno de esos posibles restos se le asigna respectivamente una de las siguientes letras: T, R, W, A, G, M, Y, U, P, D, X, B, N, J, Z, S, Q, V, H, L, C, K y E. Se ha escogido el número 23 por ser el número primo más grande que es menor que el número de letras en el abecedario. En español las letras son 28 y el siguiente número primo después del 23 es el 29. Además hay letras que no pueden asignarse por estar formadas por dos caracteres.
Codificar una función a la cual se le pase como parámetro un número de D.N.I. y suministre como valor de retorno la letra del N.I.F. que le corresponde. Téngase en cuenta que el D.N.I. es un número muy grande y no puede almacenarse en un dato de tipo int (2 p).
2. Necesitamos escribir un programa con cuatro funciones para tratar estadísticamente los valores de una muestra. Éstos se almacenan en un array unidimensional de tipo double y tamaño n, el cual es local al programa principal. Todas las funciones, excepto la función principal, aceptan como parámetros el vector de datos y el tamaño de la muestra. Se pide codificar un programa en lenguaje C conforme a los siguientes apartados:
a) Función void leer_muestra(double v[], int n). Lee por teclado los n valores de la muestra y los almacena en el array según el orden de lectura (1p).
b) Función double med_arit(double v[], int n). Devuelve como resultado la media aritmética de los valores de la muestra (2p).
c) Función double varianza(double v[], int n). Devuelve como resultado la varianza de los valores de la muestra (2p).
d) Función void escr_muestra(double v[], int n). Escribe por pantalla los n valores de la muestra en líneas separadas (1p).
e) Programa principal void main(). Utiliza las funciones anteriores para almacenar una muestra de veinte datos e imprimir a continuación dichos datos, la media aritmética y la varianza (2p).
Nota:
· En el diseño de cada función pueden utilizarse cualesquiera de las otras funciones con objeto de facilitar el trabajo.
Fundamentos de Informática.
Septiembre de 2000 (Primera vuelta).
Nombre:
Titulación: r Electrónica r Electricidad r Mecánica.
1. Responder las siguientes preguntas teniendo en cuenta que cada una sumará 0,4 puntos a la nota final si se contesta correctamente, y restará 0,3 en caso de error (2p):
La CPU es
q la Unidad Central de control de Periféricos.
q la parte del sistema operativo que controla el hardware del ordenador.
q x el hardware encargado de procesar la información.
q el proceso asignado a un sistema operativo de disco (DOS).
q Todas las respuestas anteriores son ciertas.
¿Por cuál de los puertos circulan los bits secuencialmente a través de una única línea de transmisión?
q Paralelo.
q x Serie.
q Bus PCI.
q Bus AGP.
q Interfaz IDE.
q Ninguna de las respuestas anteriores es cierta.
En MS-DOS los comandos externos
q permanecen siempre en memoria principal.
q están almacenados en ROM y se ejecutan cuando son requeridos.
q forman parte de la BIOS.
q están almacenados en ficheros.
q no existen, sólo existen los comandos internos.
Desde el prompt del sistema operativo MS-DOS se pueden ejecutar los ficheros con extensión
q .EXE.
q .EXE y .COM.
q .EXE y .BAT.
qx .EXE, .COM y .BAT.
q .EXE, .COM, .BAT y .SYS.
q Ninguno de los anteriores.
El teorema de Bohm-Jacopini se basa en
q diseñar el algoritmo de modo general para después, mediante refinamientos sucesivos, ir aumentando progresivamente el nivel de detalle del diseño.
q utilizar sólo tipos de datos simples: entero, real, carácter y lógico.
qx escribir un algoritmo o un programa utilizando las estructuras de control secuencial, condicional e iterativa (sin hacer uso de la sentencia goto).
q Todas las respuestas anteriores.
2. Codificar una función en lenguaje C que acepte como parámetro un número entero positivo y devuelva como resultado otro entero, que valdrá uno (1) si el número anterior es primo y cero (0) si no lo es. Además, la función deberá imprimir por pantalla todos los divisores de dicho número (2p).
Ejemplo: El número 16 es compuesto (el resultado de la función valdrá cero) y sus divisores son 16, 8, 4, 2 y 1.
3. Se va a escribir un programa que opera con matrices cuadradas de orden 3×3. Cada elemento de la matriz es un numero real de tipo double. Para soportar la estructura matricial deberá utilizarse obligatoriamente el dato estructurado array. Las operaciones a realizar son:
a) Suma y resta de matrices (1,5p).
b) Determinar si una matriz es simétrica (1,5p).
c) Producto de matrices (1,5p).
d) Producto de un escalar por una matriz (1,5p).
Se pide la codificación en C de cuatro funciones, con su cabecera y cuerpo correspondiente, las cuales deben realizar respectivamente cada una de las operaciones anteriormente indicadas:
a) Función suma_resta(): acepta como parámetros tres matrices, donde las dos primeras son los operandos y la tercera la matriz suma o diferencia, según el caso. También aceptará como cuarto parámetro un carácter que será el signo de la operación a realizar (‘+’ ó ‘-’).
b) Función simétrica(): acepta como parámetro una matriz y devuelve como resultado uno (1) si la matriz es simétrica y cero (0) en caso contrario.
c) Función producto(): acepta como parámetros tres matrices, donde la última es el producto de las dos anteriores.
d) Función escalar(): acepta como parámetros un escalar de tipo double y dos matrices, donde la segunda matriz es el resultado de multiplicar el escalar por la primera.
Fundamentos de Informática.
Septiembre de 2000 (Segunda vuelta).
Nombre:
Titulación: r Electrónica r Electricidad r Mecánica.
1. Responder las siguientes preguntas teniendo en cuenta que cada una sumará 0,4 puntos a la nota final si se contesta correctamente, y restará 0,3 en caso de error (2p):
El término “informática” significa literalmente “tratamiento automático de la información”.
q x Verdadero.
q Falso.
Un kilobyte (KB) equivale a
q medio megabyte (MB).
q x 1024 bytes.
q 1024 MB.
q 1000 bytes.
q Su tamaño depende del tipo concreto de memoria RAM que se esté utilizando.
La memoria principal es de acceso
q secuencial.
q volátil.
q magnético.
qx directo.
q de un tipo de acceso propio de esta clase de memoria.
Indicar cuáles de los siguientes dispositivos son apuntadores:
r Plotter.
r Scanner.
r x Ratón.
r x Trackball.
r Impresora.
r Joystick.
r Tarjeta de sonido.
MS-DOS es
r un sistema operativo potente, multiusuario y multitarea.
r un sistema operativo tipo UNIX para estaciones de trabajo.
rx un sistema operativo monousuario para ordenadores personales.
r un sistema operativo multiusuario con un potente interfaz de usuario gráfico.
r Ninguna de las respuestas anteriores es correcta.
2. Codificar en lenguaje C dos funciones para manipular cadenas de caracteres. La primera de ellas acepta como parámetro una cadena de caracteres y devuelve la longitud de la misma, excluyendo el carácter fin de cadena (‘\0’). La segunda recibe como parámetros dos cadenas de caracteres, copia el contenido de la primera cadena en la segunda y añade el carácter de fin de cadena al final de ésta última. Además, suministra como valor de retorno la dirección de comienzo de la segunda cadena. Esta última función no tiene por qué comprobar si la segunda cadena posee suficiente espacio para almacenar los caracteres de la primera más el carácter fin de cadena. Los prototipos de ambas funciones son:
a) int cadlong(char []); (1p)
b) char *cadcopia(char [], char []); (1p)
3. Se va a escribir un programa en lenguaje C que opera con matrices cuadradas de orden 3×3. Cada elemento de la matriz es un numero real de tipo double. Para soportar la estructura matricial deberá utilizarse obligatoriamente el dato estructurado array. Las operaciones a realizar son:
a) Inicialización (1,5p).
b) Comparación (1,5p).
c) Transposición (1,5p).
d) Producto especial (1,5p).
Se pide la codificación en C de cuatro funciones, con su cabecera y cuerpo correspondiente, las cuales deben realizar respectivamente cada una de las operaciones anteriormente indicadas:
a) Función inicia(): acepta como parámetros una matriz y un escalar de tipo double. Para inicializar la matriz se asocia a cada elemento de la misma un entero consecutivo empezando por la unidad, y a continuación se asigna a cada elemento el producto del entero correspondiente por el escalar. Los elementos de la matriz se enumeran por filas.
b) Función compara(): acepta como parámetro dos matrices y devuelve como resultado uno (1) si ambas son iguales y cero (0) en caso contrario.
c) Función traspuesta(): acepta como parámetros dos matrices, donde la segunda es la traspuesta de la primera.
d) Función especial(): acepta como parámetros tres matrices, donde a cada elemento de la tercera matriz se le asigna el producto de los dos elementos que ocupan la misma posición en las matrices factores.
Fundamentos de Informática.
Convocatoria Extraordinaria.
Diciembre de 2000.
Nombre:
Titulación: r Electrónica r Electricidad r Mecánica.
1. Explicar de forma breve y concisa (no más de una página) las dos funciones básicas y generales de un Sistema Operativo. Ejemplos (2p).
2. Definición de algoritmo. Propiedades (2p).
3. Se va a escribir un programa en lenguaje C que opera con arrays tridimensionales (cubos) de orden 3x3x3. Cada elemento del cubo es un número real de tipo double. Para soportar la estructura de los cubos debe utilizarse obligatoriamente el dato estructurado array.
Se pide la codificación en C de las cuatro funciones siguientes, con su cabecera y cuerpo correspondiente. Sólo se podrán utilizar los prototipos indicados.
a) Función inicia(): acepta como parámetros un cubo y un escalar de tipo double. Para inicializar el cubo se asocia a cada elemento del mismo un entero consecutivo empezando por la unidad, y a continuación se asigna a cada elemento el producto del entero correspondiente por el escalar. Los elementos del cubo se enumeran por columnas, filas y páginas (1.5p).
void inicia(double [3][3][3], double);
b) Función compara(): acepta como parámetro dos cubos y devuelve como resultado uno (1) si ambos son iguales y cero (0) en caso contrario (1.5p).
int compara(double [3][3][3], double [3][3][3]);
c) Función escalar(): acepta como parámetros dos cubos y un escalar, donde el segundo cubo es el resultado de multiplicar el escalar por el primero (1.5p).
void escalar(double [3][3][3], double [3][3][3], double);
d) Función producto(): acepta como parámetros tres cubos, donde a cada elemento del tercer cubo se le asigna el producto de los dos elementos que ocupan la misma posición en los cubos factores (1.5p).
void producto(double [3][3][3], double [3][3][3], double [3][3][3]);
Fundamentos de Informática.
Junio de 2002 (Primera vuelta).
Nombre:
Titulación: r Electrónica r Electricidad r Mecánica.
Primera Parte
Cada pregunta correctamente contestada suma 1 punto a la nota final y cada pregunta erróneamente contestada penaliza con -0.7 puntos dicha nota.
1. El byte es la unidad de memoria.
q x Verdadero. q Falso.
2. La CPU es la Unidad Central de Periféricos.
q Verdadero. qx Falso.
3. ¿En qué modo de ejecución pueden los programas ejecutar todas las instrucciones máquina del microprocesador, acceder a cualquier posición de la memoria y modificar cualquier registro?
q Modus operandi. q Modo privilegiado o supervisor.
q Modo usuario. q Modo normal.
q x Ninguno de los modos anteriores.
4. Los dispositivos floptical son soportes de información magneto-ópticos.
q x Verdadero. q Falso.
5. Un componente muy importante de una Impresora LÁSER es el
r arco voltaico. r cartucho de tinta.
r procesador digital de señal. r tubo de rayos catódigos (CRT).
r x Ninguno de los elementos anteriores.
6. En un sistema operativo un proceso es un programa en ejecución.
q x Verdadero. q Falso.
7. La utilidad de Windows 98 que se utiliza para detectar y, si es posible, corregir los errores existentes en las unidades de disco se denomina
r Defrag. r x ScanDisk. r Reproductor CD.
r WordPad. r Ninguna de las anteriores.
8. Internet es una red de área.
r local (LAN). r metropolitana (MAN). rx amplia (WAN).
9. Los ordenadores conectados a Internet para intercambiar información utilizan el protocolo
r serie/paralelo r cliente/servidor r x TCP/IP
r RAM/ROM r Ninguno de los anteriores.
10. La diferencia fundamental entre un compilador y un intérprete es que el intérprete genera código objeto y el compilador no.
q Verdadero. q x Falso.
Fundamentos de Informática.
Junio de 2002 (Primera vuelta).
Nombre:
Titulación: r Electrónica r Electricidad r Mecánica.
Segunda Parte
1. Deseamos encriptar un texto sumándole al código ASCII correspondiente a cada uno de sus caracteres la clave de encriptación elegida. Para ello, se pide realizar un programa en C que lea un texto desde el teclado e imprima por la pantalla el texto ya encriptado. Para terminar de introducir el texto, el usuario deberá escibir la combinación de teclas CTRL-Z (^Z), la cual corresponde al carácter Fin de Fichero (EOF). La clave de encriptación es un entero estrictamente positivo que se pedirá por teclado (2p).
Para leer un carácter del teclado e imprimirlo en la pantalla, se utilizarán respectivamente las funciones int getchar(void) e int putchar(int), cuyos prototipos se encuentran en el fichero <STDIO.H>. La definición del carácter EOF también se encuentra en <STDIO.H>.
2. Se va a escribir un programa que opera con vectores de tres componentes en un espacio euclídeo. Cada componente del vector es un numero real de tipo double. Las operaciones a realizar son:
a) Suma y resta de vectores (2p).
b) Producto escalar de dos vectores (1p).
c) Módulo de un vector (1p).
d) Intercambio de componentes: (a, b, c) -> (c, a, b) (2p).
e) Producto vectorial (2p).
Se pide diseñar en funciones que realicen cada una de las operaciones indicadas. Para soportar el dato estructurado vector deberá utilizarse obligatoriamente el tipo de datos array.
a) Función suma_resta(): acepta como parámetros tres vectores, donde los dos primeros son los sumandos y el tercero el vector suma. También aceptará como cuarto parámetro un carácter que será el signo de la operación a realizar (‘+’ ó ‘-’).
b) Función escalar(): acepta como parámetros dos vectores y devuelve como resultado un dato de tipo double, que será el resultado del producto escalar de los dos vectores anteriores.
c) Función módulo(): acepta como parámetro un vector y devuelve como resultado un dato de tipo double, que será el módulo de dicho vector.
d) Función swap(): acepta como parámetro un vector, cuyos componentes deben intercambiarse según se mostró anteriormente.
e) Función producto(): acepta como parámetros tres vectores, donde el último es el producto vectorial de los dos anteriores. Dicho producto es el valor del determinante formado por los vectores unitarios i, j y k en la primera fila y los otros dos vectores factores ocupando la segunda y la tercera fila.
Nota: Para obtener la raíz cuadrada de un número real puede utilizarse la función sqrt(), cuyo prototipo aparece en el fichero math.h. Dicha función acepta como parámetro un dato de tipo double y devuelve como resultado su raíz cuadrada (también de tipo double).
Fundamentos de Informática.
Junio de 2002 (Segunda vuelta).
Nombre:
Titulación: r Electrónica r Electricidad r Mecánica.
Primera Parte
Cada pregunta correctamente contestada suma 1 punto a la nota final y cada pregunta erróneamente contestada penaliza con -0.7 puntos dicha nota.
1. Un kilobyte (KB) es
q 1000 bytes. q x 1024 bytes. q 1024 MB.
q medio megabyte (MB). q Su tamaño depende del tipo de memoria RAM.
2. La memoria RAM
r es software. r x es volátil.
r es de sólo lectura. r únicamente permite el acceso secuencial.
r Ninguna de las respuestas anteriores es correcta.
3. Las pantallas de cristal líquido o cuarzo líquido (LCD) son utilizadas en los ordenadores portátiles debido a su pequeño grosor.
q x Verdadero. q Falso.
4. Indicar cuáles de los siguientes dispositivos son apuntadores:
q Plotter. q Scanner. q x Ratón.
q x Trackball. q Impresora. q x Lápiz óptico.
5. ¿En qué modo de ejecución pueden los programas ejecutar todas las instrucciones máquina del microprocesador, acceder a cualquier posición de la memoria y modificar cualquier registro?
q Modus operandi. q Modo privilegiado o supervisor.
q Modo usuario. q Modo normal.
q Ninguno de los modos anteriores.
6. Un disco duro tiene tantos sectores como pistas hay en él.
q Verdadero. q x Falso.
7. Los sistemas operativos administran los recursos del ordenador.
q x Verdadero. q Falso.
8. De entre las siguientes características indíquense cuáles son las propias de Windows 98.
r Arquitectura de 64 bits. rx Multitarea.
rx Plug and Play. rx Multimedia.
r ninguna de las características anteriores.
9. Internet es una red local (LAN) de ámbito mundial.
q Verdadero. q x Falso.
10. Los lenguajes de programación pueden clasificarse en lenguajes máquina y lenguajes simbólicos.
q Verdadero. qx Falso.
Fundamentos de Informática.
Junio de 2002 (Segunda vuelta).
Nombre:
Titulación: r Electrónica r Electricidad r Mecánica.
Segunda Parte
1. Definición de algoritmo. Propiedades (2p).
2. Necesitamos escribir un programa con cuatro funciones auxiliares para tratar estadísticamente los valores de una muestra. Éstos se almacenan en un array unidimensional de tipo double, el cual es local al programa principal. Todas las funciones, excepto la función principal, aceptan como parámetros el vector de datos y el tamaño de la muestra. Se pide codificar un programa en lenguaje C conforme a los siguientes apartados:
a) Función void leer_muestra(double v[], int n). Lee por teclado los n valores de la muestra y los almacena en el array según el orden de lectura (1p).
b) Función double med_arit(double v[], int n). Devuelve como resultado la media aritmética de los valores de la muestra (2p).
c) Función double varianza(double v[], int n). Devuelve como resultado la varianza de los valores de la muestra (2p).
d) Función void escr_muestra(double v[], int n). Escribe por pantalla los n valores de la muestra en líneas separadas (1p).
e) Programa principal void main(). Utiliza las funciones anteriores para obtener una muestra de veinte datos e imprimir a continuación dichos datos, la media aritmética y la varianza (2p).
Nota:
· En el diseño de cada función pueden utilizarse cualesquiera de las otras funciones con objeto de facilitar el trabajo.
Fundamentos de Informática.
Septiembre de 2002 (Primera vuelta).
Nombre:
Titulación: r Electrónica r Electricidad r Mecánica.
1. Responder las siguientes preguntas teniendo en cuenta que cada una sumará 0,4 puntos a la nota final si se contesta correctamente, y restará 0,2 en caso de error (2 p):
La CPU es
q la Unidad Central de control de Periféricos.
q la parte del sistema operativo que controla el hardware del ordenador.
qx el hardware encargado de procesar la información.
q el proceso asignado a un sistema operativo de disco (DOS).
De entre las siguientes características indíquense cuáles son las propias de Windows 98.
qx Arquitectura de 32 bits.
qx Plug and Play.
qx Monousuario.
qx Multimedia.
Los ordenadores conectados a Internet para intercambiar información utilizan el protocolo
q serie/paralelo
q cliente/servidor
q RAM/ROM
qx TCP/IP
q Ninguno de los anteriores.
El teorema de Bohm-Jacopini se basa en
q diseñar el algoritmo de modo general para después, mediante refinamientos sucesivos, ir aumentando progresivamente el nivel de detalle del diseño.
q utilizar sólo tipos de datos simples: entero, real, carácter y lógico.
qx escribir un algoritmo o un programa utilizando las estructuras de control secuencial, condicional e iterativa (sin hacer uso de la sentencia goto).
q Todas las respuestas anteriores.
El símbolo & en el lenguaje C
qx es el operador de dirección.
q es el operador de indirección.
q es el operador de asignación.
q es el operador lógico AND que se usa para unir dos expresiones relacionales.
q no tiene sentido.
2. Indicar los errores sintácticos y semánticos que tiene el siguiente programa escrito en lenguaje C (un mismo error puede repetirse varias veces). Explicar razonadamente las causas de cada error (2p).
#include <stdio.h>
void main() {
int x = 5; y = 10:
printf(En principio x = %d e y = %d.\n; x; y):
intercambia(&x; &y):
printf(Ahora x = %d e y = %d.\n; x; y):
}
int intercambia(int a; int b) {
int temp:
temp = a:
a = b:
b = temp:
}
3. Se va a escribir un programa en lenguaje C que opera con arrays tridimensionales (cubos) de orden 3x3x3. Cada elemento del cubo es un número real de tipo double. Para soportar la estructura de los cubos debe utilizarse obligatoriamente el dato estructurado array.
Se pide la codificación en C de las cuatro funciones siguientes, con su cabecera y cuerpo correspondiente. Sólo se podrán utilizar los prototipos indicados.
a) Función inicia(): acepta como parámetros un cubo y un escalar de tipo double. Para inicializar el cubo se asocia a cada elemento del mismo un entero consecutivo empezando por la unidad, y a continuación se asigna a cada elemento el producto del entero correspondiente por el escalar. Los elementos del cubo se enumeran por columnas, filas y páginas (1.5p).
void inicia(double [3][3][3], double);
b) Función compara(): acepta como parámetro dos cubos y devuelve como resultado uno (1) si ambos son iguales y cero (0) en caso contrario (1.5p).
int compara(double [3][3][3], double [3][3][3]);
c) Función escalar(): acepta como parámetros dos cubos y un escalar, donde el segundo cubo es el resultado de multiplicar el escalar por el primero (1.5p).
void escalar(double [3][3][3], double [3][3][3], double);
d) Función producto(): acepta como parámetros tres cubos, donde a cada elemento del tercer cubo se le asigna el producto de los dos elementos que ocupan la misma posición en los cubos factores (1.5p).
void producto(double [3][3][3], double [3][3][3], double [3][3][3]);
Fundamentos de Informática.
Septiembre de 2002 (Segunda vuelta).
Nombre:
Titulación: r Electrónica r Electricidad r Mecánica.
1. Responder las siguientes preguntas teniendo en cuenta que cada una sumará 0,4 puntos a la nota final si se contesta correctamente, y restará 0,2 en caso de error (2 p):
El bit es la unidad de información.
qx Verdadero.
q Falso.
Los sistemas operativos
q planifican y supervisan la ejecución de los programas.
q controlan las operaciones de entrada y salida de datos.
q administran los recursos del ordenador.
qx Todas las respuestas anteriores son correctas.
q Ninguna de las respuestas anteriores es correcta.
El Panel de control de Windows 98
rx se utiliza para personalizar y configurar el sistema.
r es una zona de la memoria a través de la cual las aplicaciones intercambian información.
r permite manipular los ficheros y las carpetas existentes en el sistema.
r no existe en dicho sistema operativo.
La diferencia fundamental entre un compilador y un intérprete es
qx que el compilador genera código objeto.
q que el intérprete genera código objeto.
q que el compilador depende del Sistema Operativo.
q no hay diferencias ya que ambos son traductores.
q Ninguna de las respuestas anteriores es correcta.
¿Cuál es la salida del siguiente programa?
#include <stdio.h>
int a = 1;
void main() {
int a = 0;
printf(«\nLa variable \»a\» vale: %d.», a);
return;
}
q Uno, porque las variables globales siempre tienen preferencia ante las locales.
qx Cero, porque al ser la variable a local a la función main(), dentro de dicha función la declaración local prevalece sobre la global.
q Se trata de un error, ya que no pueden existir dos variables con el mismo identificador aunque tengan distinto ámbito.
q Ninguna de las respuestas anteriores es correcta.
2. Escribir tres fragmentos de código equivalentes utilizando para cada uno de ellos una de las tres siguientes sentencias de control iterativas: while, do-while y for, de modo que cada fragmento utilice una sentencia de control distinta (2p).
3. Se va a escribir un programa en lenguaje C que opera con arrays tetradimensionales (hipercubos) de orden 3x3x3x3. Cada elemento del hipercubo es un número real de tipo double. Para soportar la estructura de los hipercubos debe utilizarse obligatoriamente el dato estructurado array.
Se pide la codificación en C de las cuatro funciones siguientes, con su cabecera y cuerpo correspondiente. Sólo se podrán utilizar los prototipos indicados.
a) Función compara(): acepta como parámetro dos hipercubos y devuelve como resultado uno (1) si ambos son iguales y cero (0) en caso contrario (1.5p).
int compara(double [3][3][3][3], double [3][3][3][3]);
b) Función escalar(): acepta como parámetros dos hipercubos y un escalar, donde el segundo hipercubo es el resultado de multiplicar el escalar por el primero (1.5p).
void escalar(double [3][3][3][3], double [3][3][3][3], double);
c) Función producto(): acepta como parámetros tres hipercubos, donde a cada elemento del tercer hipercubo se le asigna el producto de los dos elementos que ocupan la misma posición en los hipercubos factores (1.5p).
void producto(double [3][3][3][3], double [3][3][3][3],
double [3][3][3][3]);
d) Función modulo(): acepta como parámetro un hipercubo y devuelve como resultado la raíz cuadrada de la suma de los cuadrados de todos sus elementos (1.5p).
double modulo(double [3][3][3][3]);
Nota: Para obtener la raíz cuadrada de un número real puede utilizarse la función sqrt(), cuyo prototipo aparece en el fichero math.h. Dicha función acepta como parámetro un dato de tipo double y devuelve como resultado su raíz cuadrada (también de tipo double).
Fundamentos de Informática.
Diciembre de 2002.
Nombre:
Titulación: r Electrónica r Electricidad r Mecánica.
1. Cada pregunta correctamente contestada suma 0.4 puntos a la nota final y cada pregunta erróneamente contestada supone una penalización de -0.3 puntos (2p).
La memoria RAM es
r memoria no volátil de acceso aleatorio.
rx memoria volátil de acceso aleatorio.
r memoria volátil de acceso real.
r memoria no volátil de solo lectura.
r memoria volátil de solo lectura.
La información de un disco duro se organiza en
r pistas y cilindros.
r superficies, pistas y cilindros.
rx superficies, pistas y sectores.
r pistas, sectores y unidades de asignación.
Un sistema operativo es
r un programa para controlar el hardware, por lo que no es ni hardware ni software.
r un lenguaje de programación.
r un traductor de lenguajes de alto nivel.
r hardware.
rx software.
Internet es una red mundial de área local.
r Verdadero. rx Falso.
Windows 98 es un sistema operativo multitarea y multimedia.
rx Verdadero. r Falso.
2. Tenemos una tarjeta de sonido que puede digitalizar sonidos con una frecuencia de muestreo de 44.1 KHz. (muestras/seg.) y un tamaño de muestra de 16 bits. ¿Cuánta memoria se necesita para almacenar un fragmento de 4 segundos de la canción “Ave María” de David Bisbal? Expresar el resultado en bytes y en megabytes (1p).
3. Definición de algoritmo. Propiedades (1p).
4. Se va a realizar un programa que opera con vectores de dimensión tres en un espacio vectorial Euclídeo. Cada componente del vector es un número real de tipo double. Se necesita desarrollar tres funciones en lenguaje C para realizar tres operaciones distintas:
a) Suma de vectores. La función suma() acepta tres vectores: los dos vectores sumandos y el vector en el que se almacenará la suma (1.5p).
b) Módulo de un vector. La función modulo() devuelve como resultado el módulo del vector que se suministra a dicha función como argumento (1.25p).
c) Producto escalar de dos vectores. La función producto() aceptará dos vectores y devolverá como resultado el producto escalar de ambos (1.25p).
Para calcular la raíz cuadrada de un número real se utilizará la función sqrt() cuyo encabezamiento se incluye en el fichero math.h. Dicha función acepta un dato de tipo double y devuelve como resultado su raíz cuadrada, también de tipo double.
5. Se va a realizar un programa que permita a dos participantes jugar a “tres en raya”. Se pide desarrollar una función en lenguaje C que acepte una matriz de orden 3×3 e indique la existencia de tres fichas en línea (horizontal, vertical o diagonal) por parte de cualquiera de los dos jugadores. Aquellas casillas del tablero donde haya una ficha del jugador A tendrán valor -1, las ocupadas por una ficha del jugador B valdrán 1 y, finalmente, las casillas vacías valdrán cero. Esta función es invocada por el programa principal tras cada movimiento de uno de los jugadores. La función devolverá el código que identifica al jugador ganador (1 ó -1) o cero (0) si no hay tres fichas en línea (2p).