solución2

Anuncio
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.
Descargar