You are on page 1of 20

EJERCICIOS

Curso 02/03

EUITI 02/03

Fundamentos de Informtica. Ejercicios

Tema 1.
Ejercicios: CONCEPTOS PRINCIPALES
1. Realizar un esquema de los componentes bsicos del hardware.
2. Indicar que unidades se utilizan para medir la capacidad de almacenamiento de datos de
una memoria, indicando adems sus equivalencias en bytes.
3. Indicar qu es la memoria RAM y cul es su funcin.
4. La unidad encargada del gobierno del ordenador es:
La unidad aritmtico-lgica
La unidad de memoria
La unidad de control
5. Si tenemos una memoria principal de 2 Megabytes, cuntos bits necesitaramos para
referenciar cualquier byte de esta memoria?
8
21
28
6. Indicar cul es la funcin del procesador.
7. Indicar que es la memoria cach.
8. Qu hace un sistema operativo?
9. Un sistema operativo
est compuesto por el conjunto de elementos que se conecta al ordenador.
es el conjunto de programas que tiene el control de ordenador.
es el teclado que se usa para trabajar con el ordenador.
se llama a la memoria que tiene instalada el ordenador
10. Para poder ejecutar ms de una aplicacin al mismo tiempo desde un sistema operativo
necesitamos pantalla a color.
basta con tener memoria suficiente.
la versin del sistema operativo lo tiene que permitir.
necesitamos un ratn.
11. Qu es un fichero?
12. Para que se utilizan los directorios en MS/DOS y las carpetas en Windows?
13. Indicar cules seran los mayores problemas en caso de tener una sola carpeta en disco
duro del ordenador.
14. El sistema de numeracin que utilizan internamente los circuitos digitales de un ordenador
es el:
Binario

Decimal

hexadecimal

EUITI 02/03

Fundamentos de Informtica. Ejercicios

15. A qu nmero del sistema decimal es equivalente el nmero binario 00011011?


26
28
27
16. A qu nmero del sistema binario corresponde el nmero decimal 24?
00011000
11100111
11101000
17. A qu nmero del sistema decimal es equivalente el nmero binario 00010011?
20
19
27
18. A qu nmero del sistema binario corresponde el nmero decimal 30?
00011110
11101110
00011010
19. Qu hace la orden DEL *a*e*i.exe con el fichero yabecin.exe?
No cambiara nada
Lo borrara
Excepto ese fichero se borraran todos los de extensin .exe
20. Qu hace la orden DEL *.*?
No puede hacer nada, porque *.* no puede ser el nombre de un fichero
Borra todos los ficheros del directorio actual
Borra cualquier fichero de la unidad A:
21. Qu significa la orden DIR datos.*?
Listar los ficheros de cualquier extensin
Listar todos los ficheros de nombre datos y de cualquier extensin
Listar todos los ficheros de nombre datos pero sin extensin
22. Qu significa la orden COPY *.* A:?
Copiar todos los ficheros de cualquier nombre y extensin en A
Copiar todos los ficheros de nombre arbitrario pero sin extensin en A
Copiar todos los ficheros de la unidad A: en el directorio actual
23. Cmo lograras realizar en Windows el comando COPY de MSDOS?
Abriendo la hoja de clculo Excel
abriendo la ventana de Administrador de Programas
abriendo la ventana de Administrador de Archivos
24. Un programa escrito en lenguaje Pascal se puede ejecutar:
directamente desde cualquier mquina
en la mquina que tenga instalado el compilador de Pascal
25. En que lenguaje est el programa ejecutable?
26. Qu es un lenguaje de alto nivel? Para que se utiliza?
27. Dado el fichero pp.exe, cul sera su contenido?
Un programa en Pascal
Un programa ejecutable
No podemos saberlo
28. Une cada fichero con el contenido que le corresponde:
prog.pas
un fichero de datos
prog.exe
un fichero con un programa Pascal

EUITI 02/03
datos.dat
datos.xls

Fundamentos de Informtica. Ejercicios


un fichero que contiene un programa ejecutable
un fichero creado con la hoja de clculo Excel

29. Cul es la funcin de un compilados?


30. Estando en el entorno de TurboPascal, para que sirve la orden Run?
Para encontrar los errores sintcticos de un programa Pascal
Para ejecutar un programa compilado (con la orden Compile) previamente.
Para compilar y ejecutar un programa Pascal
31. La aplicacin de TurboPascal:
es una herramienta para la deteccin de errores sintcticos
es un compilador
es un procesador
32. Indicar la funcin que cumple el administrador de archivos en Windows.
Gestiona la informacin de la impresora
Organiza los ficheros del disco
Protege la pantalla
Elude los virus informticos

EUITI 02/03

Fundamentos de Informtica. Ejercicios

Tema 2
Ejercicios. Diagramas de flujo
1.

Dado el siguiente diagrama de flujo indica qu es lo que calcula, es decir, escribe el


enunciado que corresponde a este ejercicio.

2.

Leer un nmero entero y escribir su valor absoluto.

3.

Leer una nota (entero) y escribir la nota en letras que le corresponde (suspenso,
aprobado, notable, sobresaliente).

4.

Leer dos nmeros enteros y escribirlos ordenados de mayor a menor. Ahora, leer 3
nmeros enteros y ordenarlos de mayor a menor.

5.

Leer los segundos que han pasado desde la media noche y escribir la hora actual con el
formato hh:mm:ss. Por ejemplo: si leemos 4005, habra que escribir 1:6:45 lo que
quiere decir que cuando han pasado 4005 segundos desde la media noche, significa
que han pasado 1 hora, 6 minutos y 45 segundos.

6.

Leer un nmero entero positivo y escribir todos sus divisores.

7.

Calcular el volumen de la siguiente figura, despus de leer los valores de su radio, R, y


de su altura, H, siendo ambos nmeros reales.

EUITI 02/03

Fundamentos de Informtica. Ejercicios

8.

Dada una secuencia de caracteres finalizada con un punto, calcular:


a.

cuntas veces aparece la letra A

b. cuntas vocales contiene.


c. cuntas no vocales contiene (sin contar el punto final).
d. cuntas vocales, cuntas no vocales y el total de caracteres que contiene.
9.

Hacer un diagrama de flujo que pida una fecha que recogeremos en las variables: da,
mes y ao y que nos escriba la fecha del da siguiente.

EUITI 02/03

Fundamentos de Informtica. Ejercicios

Tema 3
Ejercicios :Tipos, Declaraciones, asignacin, Entrada/Salida
1. Calcular el valor y el tipo de las siguientes expresiones aritmticas:
(a) 2 + 6 * 3 + 4
(f) sqr(2) div 3
(b) (2 + 6) * 3 + 4
(g) 3 - 20 div 4 - 3 * 2
(c) (2 + 6) * (3 + 4)
(h) 4 * sqr (6) - sqr(3) div 2
(d) 20 mod 3 div 2
(i) 30-2*4 div 6 mod 3 *8
(e) 20 mod 3 / 3
2. Encuentra los errores y explica los errores de las siguientes declaraciones:
var a,b: integer; B,c: boolean;
var 33h2: real; a,b: integer;
const m: 3.4;
var a,b: integer, c: char;

3. Dadas las siguientes definiciones:


const v1=120; v2=310; v3=0;
var d1,d2: integer;

Revisar las siguientes asignaciones, indicando si contienen algn error y los valores que
contendrn las variables tras su ejecucin
v1+v2 :=d1;
d2:= v2 div v1;
v3:= v1+v2;
d1:= v2 DIV v3;
d1:= v3+v2;
4.

Dada la variable A de tipo entero y la variable B de tipo real, indica las instrucciones qu
estn mal.
readln(A/2);
writeln(a);
realdln(b);
writeln(A);

5. Sabiendo que A=6 y B=3, cul es el efecto de estas instrucciones?


Write(A =, A);
Writeln ( :4, B =, B);
Writeln(A div B);
Writeln(B-A);

6. Indica los valores de A, B y C en cada paso.


a) Program primero;
Uses wincrt;
Const x=5;
Var A, B, C:Integer;
Begin
B:=1;
C:=X+B;
A:=X+4;
A:=C;
B:=C;
A:=A+B+C;
C:=C*A;

EUITI 02/03

Fundamentos de Informtica. Ejercicios


Writeln(A, B, C);
End.

b) Program segundo;
uses wincrt;
const N=6;
var A,B,C:integer;
begin
A:=4;
B:=A*N;
C:=A mod N;
A:=C;
B:=A+C;
Writeln(A,B,C);
End.
c) Program tercero;
Uses wincrt;
Var X,Y:Integer; Z:Real;
Begin
X:=10;
Y:=X+10;
Z:=X;
Y:= X div 5;
Writeln(X = , X:4);
Writeln(Y = , Y:4);
Writeln(Z = , Z:5:2);
End.

7. Realizar un programa que lea dos nmeros enteros desde el teclado guardndolos en dos
variables y que luego intercambie los valores de las dos variables. Ejemplo:
X,Y: Integer;
Valores iniciales: X=10 e Y=5
Valores finales: X=5 e Y=10
8. Escribir un programa que pase los grados a radianes.
Radianes = Grados*(Pi/180)
9. Escribir un programa que lea un dato que representa los segundos, y que calcule las horas,
minutos y segundos que hay. Ejemplo:
Entrada: 5000 segundos
Salida: 1 hora 23 minutos 20 segundos
10. Esribir un programa qu calcule el rea y permetro de un cuadrado. Realizar lo mismo para un
triangulo recto.
Entrada: lados del cuadrado y triangulo (base y altura)

EUITI 02/03

Fundamentos de Informtica. Ejercicios

Tema 4.
Ejercicios. Sentencias condicionales
1. Leer dos nmeros enteros y escribir el programa que escriba por pantalla el mximo.
2. Indicar qu escribe el siguiente programa, si suponemos que I = 6, J=7, K=11 y L=11:
program qu_escribe;
uses wincrt;
var
I, J, K, L: integer;
Begin
Write (Dame cuatro numeros enteros:);
Read (I,J,K,L);
if I < J then
if K <> L then
Write(ABC)
else
Write(DEF);
if I >= J then
write(GHI)
else
write(JKL);
end.
3. Relacionar cada expresin de la columna izquierda con su equivalente de la columna de la
derecha:
a. (X < Y) and (Y < Z)
1. not (X <> Y) and (Y = Z)
b. (X < Y) and (Y <= Z)
2. not ((X >= Y) or (Y > Z))
c. (X <> Y) or (Y = Z)
3. (Y > Z) or (Y = Z) or (X = Y)
d. (X = Y) or (Y >= Z)
4. not (X >= Y) and not (Y >= Z)
e. (X = Y) and (Y = Z)
5. not ((X = Y) and (Y <> Z))
4. Transformar la instruccin IF en una nica instruccin CASE
If (n=5) or (n=7) Then
N:=n+4
ELSE
Begin
If (n>7) and (n<=20) Then
N:=n-5
ELSE
Begin
If n=6 Then
N:=n+1
ELSE
N:=n-1;
End;
End;

Case

Of

End;

EUITI 02/03

Fundamentos de Informtica. Ejercicios

5. Escribir un programa que lea una nota (un entero de 0-10) y escriba como resultado la nota
por letra (suspenso, aprobado, notable o sobresaliente). (DF)
6. Dadas las variables enteras X e Y, ordenarlas en orden creciente (X el menor e Y el
mayor). Dados tres nmeros enteros ordenarlos de menor a mayor. (DF)
7. Mejora el siguiente trozo de cdigo:
if Puntuak > 70 then write(Bikain);
if Puntuak < 30 then write(Gaizki);
if (Puntuak >= 70) and (Puntuak <= 30) then write(Normala);
8. Escribir un programa que solicite por pantalla un nmero entero de 3 dgitos y compruebe
si es capica. Hacer lo mismo para un nmero de 5 dgitos.
9. Hacer un programa que pida una fecha que recogeremos en las variables: da, mes y ao y
que nos escriba la fecha del da siguiente. (DF)

10

EUITI 02/03

Fundamentos de Informtica. Ejercicios

Tema 5.
Ejercicios. Sentencias repetitivas.
1.

Disear y escribir el programa que calcule el factorial de un nmero ledo por teclado.
Utilizando la estructura for
Utilizando la estructura while
Utilizando la estructura repeat-until

2.

Dados los siguientes dos trozos de cdigo, indicar si son equivalentes o no, es decir, si
logramos el mismo efecto poniendo uno u otro en un programa. (Suponer que las
variables N y cont son de tipo entero).
A.1
Readln(N);
Cont:=1;
While Cont<=N do
Begin
Writeln(Cont);
Cont:=Cont+2;
End;

3.

Readln(N);
For Cont:=1 to N do
Begin
If (Cont mod 2 = 0)
Then writeln(cont);
End;

Di si los dos fragmentos de programa que estn a continuacin son equivalentes.


Razona la respuesta.
( Decir que son equivalentes significa que escribir uno u otro fragmento dentro de un
programa da el mismo resultado)
A.
if x<10 then x:=x+1;
if x>=10 then x:=x-1;
B.
for i:=10 to 25 do
writeln(i,
);
writeln(He terminado);

4.

A.2

if x<10 then x:=x+1


else x:=x-1;

i:=10;
while i<25 do
begin
write(i,
);
writeln(He terminado);
end;

Indicar cal es la salida por pantalla del siguiente programa:


(a)

Program FLOYD;
Const contadorFilas=6;
Var
fila, columna, numero: integer;
BEGIN
Numero:=0;
FOR fila:=1 TO contadorFilas DO
Begin
Columna:=1;
WHILE columna <= fila DO
Begin

11

EUITI 02/03

Fundamentos de Informtica. Ejercicios


Numero:=numero + 1;
Write(numero);
Columna:=columna + 1;
End;
Writeln;
End;

(b)

(c)

5.

END.
program ejercicio_b;
uses wincrt;
var
a,b:integer;
begin
for a:=1 to 5 do
begin
for b:=1 to a do
write(*);
writeln;
end;
end.
program sumar;
uses wincrt;
var
i, j, suma: Integer;
begin
for i := 1 to 3 do
begin
suma := 0;
for j := 1 to i do
begin
suma := suma + j;
if j<>i then
write(i, / , suma, + )
else writeln(i, / , suma);
end;
end;
end.

Indicar cul es la salida por pantalla del siguiente programa:


(a)

(b)

program kontatu;
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, ' balio du I-k eta J-k ',J, ' balio du');
End;
end.
Program ForDown;
Uses wincrt;
Const Minimo=1;
Maximo=5;
VAR Indice, Dato : Integer;
BEGIN
Dato:=25;
Writeln('Los cinco nmeros inferiores al ',Dato, ' son:
');
FOR Indice:= Maximo DOWNTO Minimo DO

12

EUITI 02/03

Fundamentos de Informtica. Ejercicios


Writeln('El que va el ', Indice, ' es el ', DatoIndice);
Writeln('Ya est');
END.

6.

Disear y escribir el programa que calcule la media aritmtica de las notas


introducidas por teclado. El programa ser interactivo y tendr el siguiente formato:
Ejecucin: (en negrita los datos introducidos por el usuario)
Cuntas notas vas a introducir?
1 nota:

7.50

2 nota:

6.40

...
7 nota:

9.75

La media de las notas es 6.80


7.

Disear y escribir el programa que produzca la siguiente salida:


ZYXWVTSRQPONMLKJIHGFEDCBA
YXWVTSRQPONMLKJIHGFEDCBA
XWVTSRQPONMLKJIHGFEDCBA
WVTSRQPONMLKJIHGFEDCBA
VTSRQPONMLKJIHGFEDCBA
TSRQPONMLKJIHGFEDCBA
SRQPONMLKJIHGFEDCBA
RQPONMLKJIHGFEDCBA
QPONMLKJIHGFEDCBA
PONMLKJIHGFEDCBA
ONMLKJIHGFEDCBA
NMLKJIHGFEDCBA
MLKJIHGFEDCBA
LKJIHGFEDCBA
KJIHGFEDCBA
JIHGFEDCBA
IHGFEDCBA
HGFEDCBA
GFEDCBA
FEDCBA
EDCBA
DCBA
CBA
BA
A

8.

Disear y escribir el programa que calcule la suma de los diez primeros trminos de la
siguiente serie: 1/2 + 2/22 + 3/23 + 4/24 + ... + n/2n

9.

Disear y escribir el programa que calcule el mximo, mnimo y la media de los N


nmeros introducidos por teclado. La cantidad de nmeros a tratar, N, se pedir al
principio del programa y los nmeros los introducir el usuario.

10.

Disear y escribir un programa que lea un nmero entero y escriba todos sus divisores.

11.

Disear y escribir un programa que lea una secuencia de caracteres terminada en punto
y cuente: (DF)

13

EUITI 02/03

Fundamentos de Informtica. Ejercicios

a. el nmero de A contenidas en la secuencia


b. el nmero de vocales contenidas en la secuencia.
c. el nmero de letras no vocales contenidas en la secuencia.
d. el nmero de caracteres que no sean letras
e. el nmero total de caracteres ledos
12.

Disear y escribir el programa que lea una secuencia de nmeros enteros terminada en
0 y calcule:
a.

la media aritmtica (sin contar el 0).

b. calcule la media aritmtica de los nmeros positivos (sin contar el 0).


c. el mximo y su posicin
d. el mnimo y su posicin
13.

Disear y escribir un programa para que lea un nmero X, y despus lea una secuencia
de nmeros terminada en 0, y calcule:
a. Suponiendo que la secuencia no este ordenada, indicar si X est en ella o no. Si el
nmero se encuentra en la secuencia, escribir la posicin de ese nmero dentro de
la secuencia. Si no existe, escribir 0.
b. Suponiendo que la secuencia est ordenada de menor a mayor indicar si X est en
ella o no. Si el nmero se encuentra en la secuencia, escribir la posicin de ese
nmero dentro de la secuencia. Si no existe, escribir 0.

14.

Disear y escribir un programa que dada una secuencia de caracteres terminada en


punto, cuente cuntas veces aparece el carcter A seguido del carcter T.

15.

Disear y escribir un programa que dado un nmero entero N, nos diga si este nmero
es primo o no.

16.

Utilizando el algoritmo realizado en el ejercicio anterior, especificar y escribir un


algoritmo que escriba por pantalla los nmeros primos menores que el nmero entero
M.

17.

Disear y escribir un programa que lea un nmero y nos escriba su tabla de


multiplicacin (del 1 al 10).

18.

Disear y escribir un programa que lea un nmero N y escriba el cuadrado y cubo de


todos los nmeros enteros entre 1 y N.

19.

Disear y escribir un programa que lea un nmero N y escriba el termino N de la


secuencia de Fibonacci. La secuencia de Fibonacci es : 0 1 1 2 3 5 8 13 21 34 55 89 ...,
es decir que un termino se calcula como la suma de los dos trminos anteriores. Los
dos primeros trminos son fijos, 0 y 1.

14

EUITI 02/03

Fundamentos de Informtica. Ejercicios

Tema 6
Ejercicios. TABLAS (ARRAYS).
1. Con los trozos de programa que vienen a continuacin, se logra el mismo efecto? En
caso afirmativo explicar este efecto; y en caso contrario explicar por qu no son
iguales.
...
A

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 posicin ,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 posicin ,ind-1)
else writeln(x, no est');
...

2. Ondorengo programa zatia zuzena den ala ez ikusi. Zuzena ez bada, zergatik azaldu
eta erroreak zuzentzeko beharko liratekeen aldaketak azaldu:
program mover;
uses wincrt;
const
LimiteSup = 10;
type
TablaM = array [1.. LimiteSup] of Integer;
var
tau: TablaM; aux, i: Integer;
begin
for i := 1 to LimiteSup do
begin
tau[i] := i;
i := i + 1;
end;
i := 0;
while i <= LimiteSup do
begin
aux := tau[i];
tau[i] := tau[i +1];
tau[i + 1] := aux;
end;
end.

3. Solicita por pantalla 20 nombres de personas, recgelos en una tabla y, una vez
introducidos todos:
3.1.Visualiza los elementos de la tabla pero empezando desde la ltima posicin.
3.2.Saca por pantalla el que ocupa la sexta, la novena y la dcima posicin.
3.3.Visualiza los elementos que ocupan las posiciones pares de esa tabla.
4. Crear una tabla de 10 elementos y a partir de ella:
4.1.Generar otra nueva que contenga los elementos de la tabla anterior multiplicados
por un nmero que se habr solicitado por pantalla.

15

EUITI 02/03

Fundamentos de Informtica. Ejercicios

4.2.Visualizar, contar y sumar los elementos pares que ocupan las posiciones impares
de la tabla que te has creado inicialmente. Imprimir las posiciones que ocupan
dichos elementos en la tabla de la siguiente forma.
Posicin
Elemento
xx
xx
xx
xx
Numero de elementos: xxxxxx
La suma es: xxxxxx
5. Dada una tabla de elementos enteros (no ms de 20), hacer el programa que calcula su
media aritmtica.
6. Dada una tabla de 10 nmeros enteros, mover todos sus elementos una posicin hacia
la izquierda.
7. Buscar el nmero mayor contenido en una tabla de no ms de 15 elementos y devolver
ese nmero y su posicin.
8. Buscar el nmero menor contenido en una tabla de no ms de 15 elementos y devolver
ese nmero y su posicin.
9. Hacer el programa que busca un nmero especfico, previamente solicitado por
pantalla, dentro de una tabla desordenada de 10 elementos de tipo entero. Si el nmero
est en la tabla, el programa devolver la primera posicin en la que aparece y si no
est devolver cero.
10. Hacer el programa que busca un nmero especfico, previamente solicitado por
pantalla, dentro de una tabla ordenada de 10 elementos de tipo entero. Si el nmero
est en la tabla, el programa devolver la posicin en la que aparece y si no est
devolver la posicin en la que le tocara colocarse.
11. Dada una secuencia de nmeros enteros (no ms de 20) terminada en cero, hacer un
algoritmo que los introduzca en una tabla de manera que queden ordenados de mayor a
menor.
12. Igual que el ejercicio anterior, pero en este caso ordenando los nmeros de menor a
mayor.
13. Dada una tabla de 10 caracteres, contar el nmero de veces que aparece la letra A.
14. Dada una tabla de N caracteres, contar el nmero de vocales que contiene.
15. Dada una tabla de N caracteres, contar el nmero de elementos de la misma que no son
vocales.
16. Dada una tabla de N caracteres, contar el nmero de veces que aparece la letra A en
la posicin siguiente a la aparicin de la letra T
17. Crear una tabla con los nombres de los 10 empleados de una empresa y otra tabla
paralela con los sueldos de esos 10 empleados. Una vez creadas las dos tablas se
obtendr el nombre y el sueldo de la persona que ms gana y de la que menos gana.
18. Crear una tabla de enteros: tab[4,5] y a continuacin imprimirla.
19. Crear una tabla tab[5,5], calcular las sumas de los elementos de las columnas impares
e imprimir el resultado de la siguiente forma.
Elemento de la fila 1 columna 1: ...
Elemento de la fila 1 columna 2: ...
....
Elemento de la fila 1 columna 5: ...

16

EUITI 02/03

Fundamentos de Informtica. Ejercicios

Elemento de la fila 2 columna 1: ...


....
Elemento de la fila 2 columna 5: ...
....
Elemento de la fila 5 columna 5: ...
La suma total es: XXX
20. Crea un array bidimensional que contenga las tablas de multiplicar desde el 1 hasta el
10.
21. Crear una tabla tab[4,5] y a partir de ella crear su transpuesta. La matriz transpuesta se
forma poniendo ordenadamente las filas de la matriz tab como columnas de la matriz
trans. Ejemplo:
16
17
18

19
20
22. Crear una tabla notas[20,4] con las notas de los alumnos de un curso. El primer ndice
hace referencia al alumno y el segundo al curso. Obtener la nota media de cada alumno
y la nota media de cada asignatura.
23. Una empresa guarda en una tabla las ventas realizadas de sus 50 productos en los doce
meses del ao. Obtener:
23.1. Por cada artculo el total de ventas.
23.2. Por cada mes, el total de ventas.
24. Sobre la tabla creada en el ejercicio anterior realizar el siguiente programa:
Solicitar al usuario un nmero de artculo y se obtener el mes en el que ms se ha
vendido de ese producto. Realizar esta operacin para tantos artculos como se desee
el usuario.
25. Una empresa tiene 100 obreros repartidos en 4 categoras profesionales.
La empresa dispone de una matriz de 100x31 en la que cada posicin contiene el
nmero de horas extraordinarias trabajadas por cada obrero cada da del mes.
Tambin dispone de dos tablas: una de 100 elementos con la categora de cada
trabajador y otra con el precio de las horas extraordinarias por categora.
Calcular:
25.1. Cunto ha cobrado cada obrero en ese mes por horas extraordinarias.
25.2. El total pagado por dichas horas.
26. Escribir un programa que calcule la facturacin media de una empresa para un
determinado mes, si la empresa en cuestin fabrica 5 artculos y almacena los datos de
venta por aos (desde el ao 1.995 hasta el ao 2.000), meses y artculos.
27. Realizar un programa que llene una matriz de 20 filas y 25 columnas, con nmeros al
azar entre 0 y 255, y nos muestre por pantalla:
27.1. La matriz inicial
27.2. La suma de todos los datos de la columna que le indique el usuario.
27.3. La matriz que resulta de dividir cada elemento de cada fila por el de mayor
magnitud de la fila.
1 2 3 4 5
6 7 8 9 10

tab =
11 12 13 14 15

16 17 18 19 20

1 6
2 7

trans = 3 8

4 9
5 10

11
12
13
14
15

17

EUITI 02/03

Fundamentos de Informtica. Ejercicios

27.4. La matriz que resulta de dividir cada dato del array entre el valor mximo del
array.
28. Hacer un programa que nos de el producto de dos matrices.
29. Considerando una eleccin a la que se presentan N candidatos, que estarn numerados
del 1 a N, realizar un programa que vaya sumando los votos obtenidos por cada
candidato. Para realizar la entrada de votos al programa, suponer que los votos estn
metidos en una urna y a medida que sacamos las papeletas de la urna (en las que figura
el nmero de candidato) el programa tiene que sumar al candidato correspondiente un
voto; tener en cuenta que puede suceder que alguno de los candidatos no obtenga
ningn voto. Utilizar como fin de entrada de datos el voto al candidato 0. Al finalizar
el recuento de votos el programa tendr que indicarnos:
29.1. Nmero de votos obtenido por cada candidato.
29.2. Nmero total de votos introducidos.
29.3. Candidato ms votado.
Ejemplo (en negrita los datos introducidos por el usuario):
Nmero de candidatos presentados? 6
Entrada de votos: 2 1
2
2
1
1
4
2
0
Candidatos
Votos obtenidos
1
3
2
4
3
0
4
1
5
0
6
0
Total votos : 8
Candidato ms votado: 2
30. Realizar un programa que elija un nmero al azar entre 0 y 100 y nos de 5
oportunidades para acertarlo. A partir del 1er intento deber darnos alguna pista para
poder acertar el nmero. El jugador partir con 10 puntos, y en cada jugada que no
acierte el nmero se le quitarn 2 puntos. Si el jugador se queda sin puntos tiene que
aparecer en mensaje que le indique que ha perdido la partida. Y si acierta el nmero, el
mensaje tendr que indicarle cuantos puntos ha obtenido.
NOTA: la funcin RANDOM(nmero) nos devuelve un nmero aleatorio X de tipo
WORD cuyo valor estar comprendido dentro del siguiente rango: 0<=X<nmero,
pero para que esto funcione correctamente antes es necesario poner el procedimiento
RANDOMIZE, que es el que permite inicializar el generador de nmeros aleatorios.
Ejemplo:
....
begin {programa principal}
randomize;
x:=random(101);
...
31. Tenemos como dato de entrada los ingresos de 6 taquillas de un estadio de ftbol
durante 4 domingos. Tener en cuenta que los a datos introducir no tienen por qu estar
18

EUITI 02/03

Fundamentos de Informtica. Ejercicios

ordenados y que adems puede ocurrir que algunos domingos no se abran todas las
taquillas. Realizar un programa que calcule los siguientes datos:
31.1. Ingresos totales de cada taquilla
31.2. Ingresos totales realizados cada domingo
31.3. Ingresos totales del estadio
31.4. Domingo de mayor ingreso total
31.5. Taquilla de mayor ingreso total
32. Una estacin meteorolgica desea realizar un estudio estadstico de las temperaturas
obtenidas a lo largo de una semana. Para ello dispone, al finalizar cada semana, de las
temperaturas mxima y mnima obtenidas durante cada uno de los 7 das de la semana,
y adems, estos datos los tiene ordenados por da. Realizar un programa que les
permita determinar:
32.1. Temperatura media de la semana
32.2. Temperatura mxima y mnima de la semana
32.3. Temperatura media de cada da de la semana
32.4. Diferencia en la temperatura media de cada da y la temperatura media de la
semana
Escribir la salida con el siguiente formato:
Mxima de la semana: 40
Mnima de la semana: 10
Temperatura media de la semana: 24,14
Da
1
2
3
4
5
6
7

Mximo
30
40
35
30
28
25
26

Mnimo
25
30
20
15
14
10
10

Media
27,5
35
27,5
22,5
21
17,5
18

Diferencia
-3,36
-10,86
-3,36
1,64
3,14
6,64
4,14

33. En una asignatura tenemos N alumnos. Los alumnos tienen opcin de ir al laboratorio
y conseguir por el trabajo realizado, medio (0.5) punto que se sumara a la nota final.
La asignatura tendr un examen ordinario y la nota final se calcular sumando la nota
del laboratorio (si tuviera) a la nota del examen (si tuviera).
1. En una tabla guardaremos las notas del laboratorio. La entrada de datos se realizar
por pares, alumno nota. El final de datos se indicar introduciendo un 0 como
alumno y cualquier valor como nota. Estas datos no vendrn ordenados por el
nmero de alumno. Para los alumnos que no hayan ido al laboratorio no vendr
ninguna nota, por lo que esta informacin habr que indicarla de alguna forma.
Recoge estas notas el la tabla Laboratorios.
2. En una tabla guardaremos las notas del examen. La entrada de datos se realizar
por pares, alumno nota. El final de datos se indicar introduciendo un 0 como
alumno y cualquier valor como nota. Estas datos no vendrn ordenados por el
nmero de alumno. Para los alumnos que no se hayan presentado al examen no
19

EUITI 02/03

Fundamentos de Informtica. Ejercicios

vendr ninguna nota, por lo que esta informacin habr que indicarla de alguna
forma. Recoge estas notas el la tabla Examen.
3. Preparar las actas, es decir calcular la nota final para cada alumno. Para calcular la
nota se le sumara a la nota del examen la nota del laboratorio, siempre que el
alumno tenga estas dos notas. Si no tiene nota en el laboratorio la nota final ser la
del examen. Si no se ha presentado al examen en las actas aparecer como no
presentado. Guardar esta informacin en la tabla Actas.
4. Calcular el porcentaje de alumnos que no se ha presentado al examen.
5. Calcular, sobre los presentados, la nota media del examen y tambin, sobre los
presentados, la media de las notas finales.
6. Quin ha sacado la mejor nota? Y, la segunda mejor? (sobre las notas finales).
7. Por ltimo y para poder presentar los datos de forma agradable, el programa pedir
el nombre de cada alumno y los guardar en la tabla Alumnos. Esta informacin se
guardar en la tabla Alumnos. Una vez ledos estos datos escribir el resultado de la
siguiente forma:
Nombre

Nota laboratorio

Nota del examen

Nota final

Ander Acero

0.3

7.2

7.5

Miren Aramendi

N.P

N.P.

Saioa Bermejo

N.P.

4.5

4.5

Jon Fernandez

0.5

4.5

...

...

...

...

Porcentaje de alumnos que no se han presentado al examen:

13 %

Media de las notas del examen (sobre los presentados):

6.6

Media de las notas finales (sobre los presentados):

6.9

La mejor nota la tiene el alumno Koldo Manterola:

9.7

La segunda mejor nota la tiene el alumno Ander Acero:

7.5

20

You might also like