ejercicios de aula

Anuncio
EJERCICIOS
Curso 02/03
EUITI – 02/03
Fundamentos de Informática. Ejercicios
Tema 1.
Ejercicios: CONCEPTOS PRINCIPALES
1. Realizar un esquema de los componentes básicos del hardware.
2. Indicar que unidades se utilizan para medir la capacidad de almacenamiento de datos de
una memoria, indicando además sus equivalencias en bytes.
3. Indicar qué es la memoria RAM y cuál es su función.
4. La unidad encargada del gobierno del ordenador es:
• La unidad aritmético-lógica
• La unidad de memoria
• La unidad de control
5. Si tenemos una memoria principal de 2 Megabytes, ¿cuántos bits necesitaríamos para
referenciar cualquier byte de esta memoria?
• 8
• 21
• 28
6. Indicar cuál es la función 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 más de una aplicación al mismo tiempo desde un sistema operativo
necesitamos pantalla a color.
basta con tener memoria suficiente.
la versión del sistema operativo lo tiene que permitir.
necesitamos un ratón.
11. ¿Qué es un fichero?
12. Para que se utilizan los directorios en MS/DOS y las carpetas en Windows?
13. Indicar cuáles serían los mayores problemas en caso de tener una sola carpeta en disco
duro del ordenador.
14. El sistema de numeración que utilizan internamente los circuitos digitales de un ordenador
es el:
Binario
Decimal
hexadecimal
2
EUITI – 02/03
Fundamentos de Informática. Ejercicios
15. ¿A qué número del sistema decimal es equivalente el número binario 00011011?
26
28
27
16. ¿A qué número del sistema binario corresponde el número decimal 24?
00011000
11100111
11101000
17. ¿A qué número del sistema decimal es equivalente el número binario 00010011?
20
19
27
18. ¿A qué número del sistema binario corresponde el número decimal 30?
00011110
11101110
00011010
19. ¿Qué hace la orden “DEL *a*e*i.exe” con el fichero yabecin.exe?
No cambiaría nada
Lo borraría
Excepto ese fichero se borrarían todos los de extensión “.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 extensión
Listar todos los ficheros de nombre “datos” y de cualquier extensión
Listar todos los ficheros de nombre “datos” pero sin extensión
22. ¿Qué significa la orden “COPY *.* A:”?
Copiar todos los ficheros de cualquier nombre y extensión en A
Copiar todos los ficheros de nombre arbitrario pero sin extensión en A
Copiar todos los ficheros de la unidad A: en el directorio actual
23. ¿Cómo lograrías realizar en Windows el comando COPY de MSDOS?
Abriendo la hoja de cálculo “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 máquina
en la máquina 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, ¿cuál sería 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
3
EUITI – 02/03
datos.dat
datos.xls
Fundamentos de Informática. Ejercicios
un fichero que contiene un programa ejecutable
un fichero creado con la hoja de cálculo Excel
29. ¿Cuál es la función de un compilados?
30. Estando en el entorno de TurboPascal, ¿para que sirve la orden Run?
Para encontrar los errores sintácticos de un programa Pascal
Para ejecutar un programa compilado (con la orden Compile) previamente.
Para compilar y ejecutar un programa Pascal
31. La aplicación de TurboPascal:
es una herramienta para la detección de errores sintácticos
es un compilador
es un procesador
32. Indicar la función que cumple el administrador de archivos en Windows.
Gestiona la información de la impresora
Organiza los ficheros del disco
Protege la pantalla
Elude los virus informáticos
4
EUITI – 02/03
Fundamentos de Informática. 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 número 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 números enteros y escribirlos ordenados de mayor a menor. Ahora, leer 3
números 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, habría 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 número entero positivo y escribir todos sus divisores.
7.
Calcular el volumen de la siguiente figura, después de leer los valores de su radio, R, y
de su altura, H, siendo ambos números reales.
5
EUITI – 02/03
Fundamentos de Informática. Ejercicios
H
R
8.
Dada una secuencia de caracteres finalizada con un punto, calcular:
a.
cuántas veces aparece la letra ‘A’
b. cuántas vocales contiene.
c. cuántas no vocales contiene (sin contar el punto final).
d. cuántas vocales, cuántas no vocales y el total de caracteres que contiene.
9.
Hacer un diagrama de flujo que pida una fecha que recogeremos en las variables: día,
mes y año y que nos escriba la fecha del día siguiente.
6
EUITI – 02/03
Fundamentos de Informática. Ejercicios
Tema 3
Ejercicios :Tipos, Declaraciones, asignación, Entrada/Salida
1. Calcular el valor y el tipo de las siguientes expresiones aritméticas:
(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 algún error y los valores que
contendrán las variables tras su ejecución
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é
están mal.
readln(A/2);
writeln(a);
realdln(‘b’);
writeln(‘A’);
5. Sabiendo que A=6 y B=3, ¿cuál 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;
7
EUITI – 02/03
Fundamentos de Informática. 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 números enteros desde el teclado guardándolos 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 perímetro de un cuadrado. Realizar lo mismo para un
triangulo recto.
Entrada: lados del cuadrado y triangulo (base y altura)
8
EUITI – 02/03
Fundamentos de Informática. Ejercicios
Tema 4.
Ejercicios. Sentencias condicionales
1. Leer dos números enteros y escribir el programa que escriba por pantalla el máximo.
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 expresión 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 instrucción IF en una única instrucción 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;
9
EUITI – 02/03
Fundamentos de Informática. 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 números enteros ordenarlos de menor a mayor. (DF)
7. Mejora el siguiente trozo de código:
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 número entero de 3 dígitos y compruebe
si es capicúa. Hacer lo mismo para un número de 5 dígitos.
9. Hacer un programa que pida una fecha que recogeremos en las variables: día, mes y año y
que nos escriba la fecha del día siguiente. (DF)
10
EUITI – 02/03
Fundamentos de Informática. Ejercicios
Tema 5.
Ejercicios. Sentencias repetitivas.
1.
Diseñar y escribir el programa que calcule el factorial de un número leído por teclado.
• Utilizando la estructura for
• Utilizando la estructura while
• Utilizando la estructura repeat-until
2.
Dados los siguientes dos trozos de código, 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 están a continuación 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 cúal 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 Informática. 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 cuál 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 números inferiores al ',Dato, ' son:
');
FOR Indice:= Maximo DOWNTO Minimo DO
12
EUITI – 02/03
Fundamentos de Informática. Ejercicios
Writeln('El que va el ', Indice, ' es el ', DatoIndice);
Writeln('Ya está');
END.
6.
Diseñar y escribir el programa que calcule la media aritmética de las notas
introducidas por teclado. El programa será interactivo y tendrá el siguiente formato:
Ejecución: (en negrita los datos introducidos por el usuario)
¿Cuántas notas vas a introducir?
1 nota:
7.50
2 nota:
6.40
7
...
7 nota:
9.75
La media de las notas es 6.80
7.
Diseñar 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.
Diseñar y escribir el programa que calcule la suma de los diez primeros términos de la
siguiente serie: 1/2 + 2/22 + 3/23 + 4/24 + ... + n/2n
9.
Diseñar y escribir el programa que calcule el máximo, mínimo y la media de los N
números introducidos por teclado. La cantidad de números a tratar, N, se pedirá al
principio del programa y los números los introducirá el usuario.
10.
Diseñar y escribir un programa que lea un número entero y escriba todos sus divisores.
11.
Diseñar y escribir un programa que lea una secuencia de caracteres terminada en punto
y cuente: (DF)
13
EUITI – 02/03
Fundamentos de Informática. Ejercicios
a. el número de ‘A’ contenidas en la secuencia
b. el número de vocales contenidas en la secuencia.
c. el número de letras no vocales contenidas en la secuencia.
d. el número de caracteres que no sean letras
e. el número total de caracteres leídos
12.
Diseñar y escribir el programa que lea una secuencia de números enteros terminada en
0 y calcule:
a.
la media aritmética (sin contar el 0).
b. calcule la media aritmética de los números positivos (sin contar el 0).
c. el máximo y su posición
d. el mínimo y su posición
13.
Diseñar y escribir un programa para que lea un número X, y después lea una secuencia
de números terminada en 0, y calcule:
a. Suponiendo que la secuencia no este ordenada, indicar si X está en ella o no. Si el
número se encuentra en la secuencia, escribir la posición de ese número 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 número se encuentra en la secuencia, escribir la posición de ese
número dentro de la secuencia. Si no existe, escribir 0.
14.
Diseñar y escribir un programa que dada una secuencia de caracteres terminada en
punto, cuente cuántas veces aparece el carácter ‘A’ seguido del carácter ‘T’.
15.
Diseñar y escribir un programa que dado un número entero N, nos diga si este número
es primo o no.
16.
Utilizando el algoritmo realizado en el ejercicio anterior, especificar y escribir un
algoritmo que escriba por pantalla los números primos menores que el número entero
M.
17.
Diseñar y escribir un programa que lea un número y nos escriba su tabla de
multiplicación (del 1 al 10).
18.
Diseñar y escribir un programa que lea un número N y escriba el cuadrado y cubo de
todos los números enteros entre 1 y N.
19.
Diseñar y escribir un programa que lea un número 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 términos anteriores. Los
dos primeros términos son fijos, 0 y 1.
14
EUITI – 02/03
Fundamentos de Informática. Ejercicios
Tema 6
Ejercicios. TABLAS (ARRAYS).
1. 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á');
...
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, recógelos en una tabla y, una vez
introducidos todos:
3.1.Visualiza los elementos de la tabla pero empezando desde la última posición.
3.2.Saca por pantalla el que ocupa la sexta, la novena y la décima posición.
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 número que se habrá solicitado por pantalla.
15
EUITI – 02/03
Fundamentos de Informática. 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.
Posición
Elemento
xx
xx
xx
xx
Numero de elementos: xxxxxx
La suma es: xxxxxx
5. Dada una tabla de elementos enteros (no más de 20), hacer el programa que calcula su
media aritmética.
6. Dada una tabla de 10 números enteros, mover todos sus elementos una posición hacia
la izquierda.
7. Buscar el número mayor contenido en una tabla de no más de 15 elementos y devolver
ese número y su posición.
8. Buscar el número menor contenido en una tabla de no más de 15 elementos y devolver
ese número y su posición.
9. Hacer el programa que busca un número específico, previamente solicitado por
pantalla, dentro de una tabla desordenada de 10 elementos de tipo entero. Si el número
está en la tabla, el programa devolverá la primera posición en la que aparece y si no
está devolverá cero.
10. Hacer el programa que busca un número específico, previamente solicitado por
pantalla, dentro de una tabla ordenada de 10 elementos de tipo entero. Si el número
está en la tabla, el programa devolverá la posición en la que aparece y si no está
devolverá la posición en la que le tocaría colocarse.
11. Dada una secuencia de números enteros (no más 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 números de menor a
mayor.
13. Dada una tabla de 10 caracteres, contar el número de veces que aparece la letra ‘A’.
14. Dada una tabla de N caracteres, contar el número de vocales que contiene.
15. Dada una tabla de N caracteres, contar el número de elementos de la misma que no son
vocales.
16. Dada una tabla de N caracteres, contar el número de veces que aparece la letra ‘A’ en
la posición siguiente a la aparición 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 más gana y de la que menos gana.
18. Crear una tabla de enteros: tab[4,5] y a continuación 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 Informática. 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 año. Obtener:
23.1. Por cada artículo 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 número de artículo y se obtener el mes en el que más se ha
vendido de ese producto. Realizar esta operación para tantos artículos como se desee
el usuario.
25. Una empresa tiene 100 obreros repartidos en 4 categorías profesionales.
La empresa dispone de una matriz de 100x31 en la que cada posición contiene el
número de horas extraordinarias trabajadas por cada obrero cada día del mes.
También dispone de dos tablas: una de 100 elementos con la categoría de cada
trabajador y otra con el precio de las horas extraordinarias por categoría.
Calcular:
25.1. Cuánto 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 facturación media de una empresa para un
determinado mes, si la empresa en cuestión fabrica 5 artículos y almacena los datos de
venta por años (desde el año 1.995 hasta el año 2.000), meses y artículos.
27. Realizar un programa que llene una matriz de 20 filas y 25 columnas, con números 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 Informática. Ejercicios
27.4. La matriz que resulta de dividir cada dato del array entre el valor máximo del
array.
28. Hacer un programa que nos de el producto de dos matrices.
29. Considerando una elección a la que se presentan N candidatos, que estarán 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 están
metidos en una urna y a medida que sacamos las papeletas de la urna (en las que figura
el número 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
ningún 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. Número de votos obtenido por cada candidato.
29.2. Número total de votos introducidos.
29.3. Candidato más votado.
Ejemplo (en negrita los datos introducidos por el usuario):
Número 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 más votado: 2
30. Realizar un programa que elija un número 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 número. El jugador partirá con 10 puntos, y en cada jugada que no
acierte el número se le quitarán 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 número, el
mensaje tendrá que indicarle cuantos puntos ha obtenido.
NOTA: la función RANDOM(número) nos devuelve un número aleatorio X de tipo
WORD cuyo valor estará comprendido dentro del siguiente rango: 0<=X<número,
pero para que esto funcione correctamente antes es necesario poner el procedimiento
RANDOMIZE, que es el que permite inicializar el generador de números aleatorios.
Ejemplo:
....
begin {programa principal}
randomize;
x:=random(101);
...
31. Tenemos como dato de entrada los ingresos de 6 taquillas de un estadio de fútbol
durante 4 domingos. Tener en cuenta que los a datos introducir no tienen por qué estar
18
EUITI – 02/03
Fundamentos de Informática. Ejercicios
ordenados y que además 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 estación meteorológica desea realizar un estudio estadístico de las temperaturas
obtenidas a lo largo de una semana. Para ello dispone, al finalizar cada semana, de las
temperaturas máxima y mínima obtenidas durante cada uno de los 7 días de la semana,
y además, estos datos los tiene ordenados por día. Realizar un programa que les
permita determinar:
32.1. Temperatura media de la semana
32.2. Temperatura máxima y mínima de la semana
32.3. Temperatura media de cada día de la semana
32.4. Diferencia en la temperatura media de cada día y la temperatura media de la
semana
Escribir la salida con el siguiente formato:
Máxima de la semana: 40
Mínima de la semana: 10
Temperatura media de la semana: 24,14
Día
1
2
3
4
5
6
7
Máximo
30
40
35
30
28
25
26
Mínimo
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 opción 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 vendrán ordenados por el
número de alumno. Para los alumnos que no hayan ido al laboratorio no vendrá
ninguna nota, por lo que esta información 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 vendrán ordenados por el
número de alumno. Para los alumnos que no se hayan presentado al examen no
19
EUITI – 02/03
Fundamentos de Informática. Ejercicios
vendrá ninguna nota, por lo que esta información 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 información 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 también, sobre los
presentados, la media de las notas finales.
6. ¿Quién 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 información se
guardará en la tabla Alumnos. Una vez leídos 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
0
N.P
N.P.
Saioa Bermejo
N.P.
4.5
4.5
Jon Fernandez
0.5
4.5
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
Descargar