E.U.I.TI. EXAMEN 10 de Septiembre 2002 SOLUCIÓN FUNDAMENTOS DE INFORMATICA - Iº PARTE (3 puntos) Nombre: .................................................................................... Especialdad:.............................................................................. NOTA: Para realizar esta parte del examen tenéis 45 minutos. Estas preguntas se darán por buenas o malas. 1. (0,25 puntos) ¿Qué significa que Windows sea multitarea? Puede ejecutar SIMULTANEAMENTE más de una instrucción, programa o tarea. 2. (0,25 puntos) El software de un ordenador está formado por: a. Sistema operativo y memorias b. Programas, unidad aritmético lógica y memorias c. Programas, sistema operativo y lenguajes de programación 3. (0,5 puntos) Enlaza las siguientes sentencias a. El hardware es ... 5 b. El sistema binario es ... 6 c. La memoria interna es ... 3 d. El software es .. 8 e. Un sistema operativo es ... 7 f. Un fichero es ... 2 g. La informática es ... 1 h. Un programa es ... 4 1. una ciencia que estudia el tratamiento automático y racional de la información 2. un conjunto de datos relacionados entre si, que se almacenan en una unidad de almacenamiento masivo 3. la unidad donde hay que almacenar los programas y los datos para que puedan ser procesados 4. un conjunto de órdenes que se dan a una computadora para que realice un determinado proceso 5. la parte física de un sistema informático 6. el sistema en el que se basa el funcionamiento interno de un ordenador 7. el soporte lógico que controla el funcionamiento del equipo físico 8. la parte lógica de un sistema informático 4. (0,25 puntos) ¿A qué número decimal es equivalente el binario 00010011? 19 5. (0,25 puntos) Divide los siguientes componentes hardware en dos grupos, dejando en uno los componentes de salida y los de entrada en el otro. a. Ratón (Entrada) b. Pantalla(Salida) c. Impresora (Salida) d. Teclado(Entrada) 6. (0,5 puntos) Indica cuál es la salida por pantalla del siguiente programa: Program contar; Uses wincrt; Const Maximo=3; Minimo= 1; Var I,J :integer; BEGIN FOR I:=Minimo TO Maximo DO Begin FOR J:=Minimo TO Maximo DO Writeln(‘I vale ’, I, ‘ y End; END. J ‘, J); I I I I I I I I I vale vale vale vale vale vale vale vale vale 1 1 1 2 2 2 3 3 3 y y y y y y y y y J J J J J J J J J 1 2 3 1 2 3 1 2 3 7. (0,25 puntos) Cuando se edita un programa en Pascal, el fichero que se obtiene se denomina: a. Fichero fuente b. Fichero objeto c. Fichero ejecutable 8. (0,5 puntos) Con los trozos de programa que vienen a continuación, ¿se logra el mismo efecto? En caso afirmativo explicar este efecto; y en caso contrario explicar por qué no son iguales. ... A B esta:= 0; ind:=1; while (ind<=n) and (esta=0) do begin if x=tau[ind] then esta:=1; ind:=ind+1; end; if esta=1 then writeln (x,’ esta en la posición ‘,ind-1) else writeln (x, ‘ no está’); ... ... esta := 0; for ind:=1 to n do if x=tau[ind] then esta:=1; if esta=1 then writeln(x,’ esta en la posición ‘,ind-1) else writeln(x, ‘ no está'); ... Son distintos. Sobre todo se nota cuando el valor de X está en la tabla. Supongamos que X=33 y está en la posición 2. (A) en el bucle while cuando ind=2 se detectaría que está, se establecerían esta=1 e ind=2+1 terminándose el bucle. El mensaje de la parte then diría “33 esta en la posición 2”. (B) El bucle for aunque detecte en la segunda vuelta que 33 esta, dará n vueltas. A continuación, depende de la versión de Turbo Pascal. En principio, daría error el mensaje de la parte then del if ya que la variable ind no se puede consultar que valor tiene fuera del bucle. La s nueas versiones de TP, en cambio, si permiten consultarlo, pero en este caso tendría el valor de la última vuelta, esto es, n. con lo cual escribiría “33 esta en la posición n-1” En cualquiera de los casos los dos bloque producen resultados distintos. 9. (0,25 puntos) MS-DOS A B D C E Ventas.pas examen.pas Pisos.pas ... del ..\B\E\*.pas edo del A\B\E\*.pas Estando situado en A\C> y sin movernos, escribir el comando (único) MS-DOS necesario para borrar todos los ficheros de Pascal que cuelguen del directorio E. E.U.I.TI. EXAMEN 10 de septiembre 2002 SOLUCIÓN FUNDAMENTOS DE INFORMATICA 2º PARTE (7 puntos) Una central eléctrica desea realizar un estudio sobre la cantidad de energía que suministra diariamente. Para ello, el programa informático que se ha de desarrollar deberá permitir recoger los datos de las potencias típicas, en megavatios, suministradas diariamente durante un período máximo de 52 semanas (1 año). 1) La entrada de datos se deberá programar de forma que, para cada semana, se introduzcan las potencias suministradas durante los 7 días. Cuando se desee finalizar la entrada de datos (por ejemplo , en el caso de realizar el estudio para un periodo inferior a las 52 semanas) se deberá introducir un –1, como dato de la potencia, en el primer día de la semana. Ejemplo de entrada de datos: Semana 1 Potencia suministrada del día 1: 207 Potencia suministrada del día 2: 301 Potencia suministrada del día 3: 222 Potencia suministrada del día 4: 302 Potencia suministrada del día 5: 22 Potencia suministrada del día 6: 167 Potencia suministrada del día 7: 125 Semana 2 Potencia suministrada del día 1: 367 Potencia suministrada del día 2: 60 Potencia suministrada del día 3: 120 Potencia suministrada del día 4: 111 Potencia suministrada del día 5: 301 Potencia suministrada del día 6: 400 Potencia suministrada del día 7: 434 Semana 3 Potencia suministrada del día 1: 211 Potencia suministrada del día 2: 72 Potencia suministrada del día 3: 441 Potencia suministrada del día 4: 102 Potencia suministrada del día 5: 21 Potencia suministrada del día 6: 203 Potencia suministrada del día 7: 317 Semana 4 Potencia suministrada del día 1: 401 Potencia suministrada del día 2: 340 Potencia suministrada del día 3: 161 Potencia suministrada del día 4: 297 Potencia suministrada del día 5: 441 Potencia suministrada del día 6: 117 Potencia suministrada del día 7: 206 Semana 5 Potencia suministrada del día 1: -1 1) Para cada día de la semana calcular y escribir la potencia media e indicar cuál ha sido el día de mayor potencia media. 2) Calcular y escribir la potencia media de todo el periodo sometido a estudio. 3) Calcular y escribir el número de días, en los que la potencia suministrada ha sido superior al valor medio calculado en el apartado anterior. 4) Debido al libre mercado, semanalmente se establecen los precios de ganancia por megavatio. Introducir en un array la ganancia (€/megavatio) para cada semana del periodo estudiado, y calcular y escribir la ganancia semanal y total de la central. program CentralElectrica; uses wincrt; const NumDias=7; NumSemanas=52; type Mat=array [1..NumSemanas,1..NumDias] of Integer; TabS= array [1..NumSemanas] of Real; TabD= array [1..NumDias] of Real; var Potencias:Mat; MEDIAD:TabD; GananciaPS:TabS; PotMedia,Total,GananciaSemanal:Real; Semanas,Dias,ValorLunes,E,A,DMax:Integer; begin {Lectura de los datos} Semanas:=1; ValorLunes:=0; while (ValorLunes<>-1) and (Semanas<NumSemanas+1) do begin writeln('Semana ', Semanas,':'); write(' Potencia sumnistrada del dia 1: '); read(ValorLunes); if ValorLunes<>-1 then begin Potencias[Semanas,1]:=ValorLunes; for E:=2 to NumDias do begin write(' Potencia sumnistrada del dia ', E ,':'); read(Potencias[Semanas,E]); end; Semanas:=Semanas+1; end; end; Semanas:=Semanas-1; {Numero de semanas completadas} writeln; {Media de los lunes, media de los martes,... y el día con media mayor} DMax:=1; for E:=1 to NumDias do begin MEDIAD[E]:=0; for A:=1 to Semanas do MEDIAD[E]:=MEDIAD[E]+Potencias[A,E]; MEDIAD[E]:=MEDIAD[E]/Semanas; writeln('Media del dia ', E,': ',MEDIAD[E]:7:1); if MEDIAD[DMax]<MEDIAD[E] then DMax:=E; end; writeln('Dia de la semana con media mayor ',DMax); PotMedia:=0; for E:=1 to NumDias do PotMedia:=PotMedia+MEDIAD[E]; {+ la media del lunes, martes,...} PotMedia:=PotMedia/NumDias; writeln('Potencia media de todo el periodo: ', PotMedia:7:1); {Numero de dias que superan la media} Dias:=0; for E:=1 to NumDias do for A:=1 to Semanas do if Potencias[A,E]>PotMedia then Dias:=Dias+1; writeln('Numero de dias que superan la potencia media suministrada',Dias); writeln('Introduce en una linea y separados por blancos la ganancia'); writeln('semanal por KW consumido: '); for A:=1 to Semanas do read(GananciaPS[A]); Total:=0; for A:=1 to Semanas do begin GananciaSemanal:=0; for E:=1 to NumDias do GananciaSemanal:=GananciaSemanal+Potencias[A,E]; GananciaSemanal:=GananciaSemanal*GananciaPS[A]; writeln('Ganancia en la semana ',A,' es: ',GananciaSemanal:5:0); Total:=Total+GananciaSemanal; end; writeln('La ganancia total conseguida es: ', Total:5:0); end.