Professional Documents
Culture Documents
Curso 02/03
EUITI 02/03
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
EUITI 02/03
datos.dat
datos.xls
EUITI 02/03
Tema 2
Ejercicios. Diagramas de flujo
1.
2.
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.
7.
EUITI 02/03
8.
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
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;
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);
EUITI 02/03
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
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
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
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;
4.
A.2
i:=10;
while i<25 do
begin
write(i,
);
writeln(He terminado);
end;
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
(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.
(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
6.
7.50
2 nota:
6.40
...
7 nota:
9.75
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.
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
Disear y escribir el programa que lea una secuencia de nmeros enteros terminada en
0 y calcule:
a.
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.
15.
Disear y escribir un programa que dado un nmero entero N, nos diga si este nmero
es primo o no.
16.
17.
18.
19.
14
EUITI 02/03
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
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
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
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
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
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 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
...
...
...
...
13 %
6.6
6.9
9.7
7.5
20