Vous êtes sur la page 1sur 23

ING.CIP.

JOS LUIS SNCHEZ CURAY


EXAMEN N 1 (16-05-2014)
Cada pregunta equivale a (3.33 puntos)
GRUPO I

1. Escriba un cdigo php que determine el importe a pagar para el examen de admisin de una universidad, cuyo
valor depende del nivel socioeconmico y el colegio de procedencia. Utilice Cuadros combinados para las listas.

2. Escriba un cdigo php que dado un rango de nmeros enteros, obtener la cantidad de nmeros pares que
contiene.

3. Programa que lea un nmero entero por teclado y que calcule su factorial
4. Crear un programa que lea un nmero entero y a partir de l cree un cuadrado de asteriscos con ese tamao.
Los asteriscos slo se vern en el borde del cuadrado, no en el interior. Por ejemplo si se introduce el 3, el
resultado sera:


5. Crear un programa para calcular el salario semanal de unos empleados a los que se les paga 15 euros por hora si
stas no superan las 35 horas. Cada hora por encima de 35 se considerar extra y se paga a 22 .
6. Crear el programa asteriscos4 en el que se introduce un nmero entero y se crea una pirmide de asteriscos. Por
ejemplo si se introduce el 6, el resultado sera:


*
***
*****
*******
*********
***********
Cada pregunta equivale a (3.33 puntos)
GRUPO II

7. Modificar el ejercicio anterior para que aparezca un rombo.

8. Crear un programa que escriba dos columnas de nmeros, en la primera se colocan los nmeros del 1 al 100, en
la segunda los nmeros del 100 al 1

9. Crear un programa que lea un nmero entero y positivo y que escriba tres columnas. La primera cuenta desde
uno hasta el nmero escrito contando de uno en uno; la segunda columna cuenta de dos en dos y la tercera de
tres.

10. Crear un programa que lea un nmero e indique su valor en la sucesin de Fibonacci (llamarle Fibonacci).

11. Escriba un cdigo php, Para el restaurante sol de mayo que desea contabilizar sus ingresos netos de los ltimos
10 aos. Conociendo que en cada ao se gan el doble del anterior como se muestra en la grfica.

12. Escriba un cdigo php, que calcule la suma de los cuadrados y cubos de los N primeros nmeros naturales.




ING.CIP.JOS LUIS SNCHEZ CURAY
#include <stdio.h>
int main(){
int n,fila,col;

printf("tamao del cuadrado: ");
scanf("%d",&n);

/*Primera fila*/
for(col=1;col<=n;col++){
printf("*");
}
printf("\n");

/*Filas interiores*/
for(fila=2;fila<n;fila++){
printf("*");
for(col=2;col<n;col++){
printf(" ");
}
printf("*");
printf("\n");
}

/* ltima fila*/
for(col=1;col<=n;col++){
printf("*");
}
}


#include <stdio.h>
int main(){
int n,fila,col;
printf("tamao de la piramide: ");
scanf("%d",&n);

for(fila=1;fila<=n;fila++){
/* Espacios en blanco*/
for(col=1;col<=n-fila;col++){
printf(" ");
}
for(col=1;col<=2*fila-1;col++){
printf("*");
}
printf("\n");
}
}

#include <stdio.h>
int main(){
int n,fila,col;
printf("tamao de la piramide: ");
scanf("%d",&n);

for(fila=1;fila<=n;fila++){
/* Espacios en blanco*/
for(col=1;col<=n-fila;col++){
printf(" ");
}
for(col=1;col<=2*fila-1;col++){
printf("*");
}
printf("\n");
}

/* Escritura de la parte inferior */
for(fila=n-1;fila>=1;fila--){+
/* Espacios en blanco*/
for(col=1;col<=n-fila;col++){

ING.CIP.JOS LUIS SNCHEZ CURAY
printf(" ");
}
for(col=1;col<=2*fila-1;col++){
printf("*");
}
printf("\n");
}
}

Ejercicios en lenguaje C. Arrays
(Otros ejercicios)
Ejercicio 1. Copia de arrays
Crear un programa que contenga una funcin llamada copiarArray ) que reciba dos arrays y el tamao de los mismos
(deben de ser del mismo tamao) y que consiga copia en el segundo array el contenido del primero
Solucin
Ejercicio 2. Ordenar pares e impares
Crear un programa llamado paresImpares que cree un array de 100 nmeros aleatorios del 1 al 1000. Una vez creado,
mostrar el contenido y despus organizarlo de forma que estn juntos los elementos pares y los impares. Despus,
volver a mostrar el array
Solucin
#include <conio.h>
#include <stdio.h>
#include <stdlib.h>

#define TAM 100

void escribirArray(int a[], int tamanio);

int main(){
int a[TAM];
int par[TAM]={0};
int impar[TAM]={0};
int i,j;

srand(time(NULL));
/*Relleno inicial del array a*/
for(i=0;i<TAM;i++){
a[i]=rand()%100+1;
}
/* Escritura del contenido del primer array*/
printf("Primer array:\n");
escribirArray(a,TAM);
/* Grabacin de los pares y los impares en los otros arrays*/
for(i=0;i<TAM;i++){
if(a[i]%2==0)
par[i]=a[i];
else
impar[i]=a[i];
}
/* Escritura del array par e impar*/
printf("\nPar:\n");
escribirArray(par,TAM);
printf("\nImpar:\n");
escribirArray(impar,TAM);
/* Mezcla de ambos arrays en el array a
y escritura del resultado final*/

j=0;/*j es el ndice del array a.
Slo se mueve cuando se insertan en l nmeros*/
/*recorrido del array par e impar e insercin de los nmeros
pares que contenga (todos los que sean distintos de 0)
se aade al array a desde la primera posicin del mismo*/
for(i=0;i<TAM;i++){
if(par[i]!=0) {
a[j]=par[i];
j++;

ING.CIP.JOS LUIS SNCHEZ CURAY
}
}
/*recorrido del array impar e insercin de los nmeros
impares que contenga desde la posicin en la que qued j*/
for(i=0;i<TAM;i++){
if(impar[i]!=0) {
a[j]=impar[i];
j++;
}
}
/*Resultado final*/
printf("\resultado final:\n");
escribirArray(a,TAM);
} /* fin main */

/* Escribe el contenido de un array de enteros por pantalla */
void escribirArray(int a[], int tamanio){
int i;
for(i=0;i<tamanio;i++){
printf("%d ",a[i]);
}
printf("\n");
}

Cerrar

Ejercicio 3. Vendedores
Crear un programa llamado vendedores que cree un array de 18 X 10 indicando que poseemos una empresa de 18
vendedores cada uno de los cuales vende 10 productos.
El array almacena los ingresos obtenidos por cada vendedor en cada producto, de modo que un men permite
almacenar los ingresos, revisar el total de cada vendedor y obtener los ingresos totales
Solucin
#include <conio.h>
#include <stdio.h>
#define N_VENDEDORES 18
#define N_PRODUCTOS 10

/* Funcin que muestra el men del programa y retorna
el nmero de men elegido por el usuario */
int mostrarMenu();

/* Funcin que calcula el total de todas las ventas*/
double mostrarTotal(double v[][N_PRODUCTOS]);

/* Funcin que calcula el total de ventas de un vendedor*/
double totalVendedor(double v[][N_PRODUCTOS], int nVendedor);

int main(){
double ventas[N_VENDEDORES][N_PRODUCTOS]={0};
int resp=mostrarMenu();
int nvend, nprod;
double cantidad;

while(resp!=4){
switch(resp){
case 1:
printf("Numero de vendedor:");scanf("%d",&nvend);
printf("Numero de producto: ");scanf("%d",&nprod);
printf("Cantidad ventida: ");scanf("%lf",&cantidad);
ventas[nvend][nprod]=cantidad;
break;
case 2:
printf("Numero de vendedor: ");scanf("%d",&nvend);
printf("Ventas total del vendedor %d=%.2lf\n",
nvend,totalVendedor(ventas,nvend));
break;
case 3:
printf("Total de ventas=%.2lf\n",

ING.CIP.JOS LUIS SNCHEZ CURAY
mostrarTotal(ventas));
break;
}
resp=mostrarMenu();
}
getch();
}
int mostrarMenu(){
int resp;
printf("\n\n");
printf("1) Aadir datos\n");
printf("2) Mostrar total de vendedor\n");
printf("3) Mostrar total de ventas\n");
printf("4) Salir\n");
scanf("%d",&resp);
return resp;
}

double mostrarTotal(double v[][N_PRODUCTOS]){
double resp=0;
int i,j;
for(i=0;i<N_VENDEDORES;i++){
for(j=0;j<N_PRODUCTOS;j++){
resp+=v[i][j];
}
}
return resp;
}

double totalVendedor(double v[][N_PRODUCTOS], intnVendedor){
double resp=0;
int i;
for(i=0;i<N_PRODUCTOS;i++){
resp+=v[nVendedor][i];
}
return resp;
}

Cerrar

Ejercicio 4. Reserva de asientos
Crear un programa que mediante un men admita reservar o cancelar asientos de un avin, as como mostrar qu
asientos estn ocupados y libreas actualmente.
El array tendr 25 filas y 4 columnas
Solucin
#include <conio.h>
#include <stdio.h>

#define N_FILAS 25
#define N_COLUMNAS 4
#define LIBRE 0
#define OCUPADO 1

/* Funcin que muestra el men del programa y retorna
el nmero de men elegido por el usuario */
int mostrarMenu();

void reservarAsiento(int a[][N_COLUMNAS]);
void cancelarAsiento(int a[][N_COLUMNAS]);
void mostrarOcupacion(int a[][N_COLUMNAS]);

int main(){
/* Los asientos inicialmente estn libres*/
int asiento[N_FILAS][N_COLUMNAS]={0};
int resp=mostrarMenu();

while(resp!=4){
switch(resp){

ING.CIP.JOS LUIS SNCHEZ CURAY
case 1:
reservarAsiento(asiento);
break;
case 2:
cancelarAsiento(asiento);
break;
case 3:
mostrarOcupacion(asiento);
break;
}
resp=mostrarMenu();
}
getch();
}

int mostrarMenu(){
int resp;
printf("\n\n");
printf("1) Reservar Asiento\n");
printf("2) Cancelar Asiento\n");
printf("3) Mostrar Ocupacion\n");
printf("4) Salir\n");
scanf("%d",&resp);
return resp;
}

void reservarAsiento(int a[][N_COLUMNAS]){
int fila, col;

printf("Escriba la fila del asiento a reservar: ");scanf("%d",&fila);
printf("Escriba la columna del asiento a reservar: ");scanf("%d",&col);

if(a[fila][col]==OCUPADO) printf("Ese asiento ya est reservado\n");
else {
a[fila][col]=OCUPADO;
printf("Reserva realizada\n");
}
}

void cancelarAsiento(int a[][N_COLUMNAS]){
int fila, col;

printf("Escriba la fila del asiento a cancelar: ");scanf("%d",&fila);
printf("Escriba la columna del asiento a cancelar: ");scanf("%d",&col);

if(a[fila][col]==LIBRE) printf("Ese asiento no est ocupado\n");
else {
a[fila][col]=LIBRE;
printf("Cancelacin realizada\n");
}
}

void mostrarOcupacion(int a[][N_COLUMNAS]){
int i,j;

for(i=0;i<N_FILAS;i++){
for(j=0;j<N_COLUMNAS;j++){
printf("fila %d, columna %d",i,j);
if(a[i][j]==LIBRE)printf("Libre\n");
else printf("Ocupado\n");
}
}
}

Cerrar

Ejercicio 5. Contar letras repetidas

ING.CIP.JOS LUIS SNCHEZ CURAY
Crear un programa que cree un array con 1000 letras maysculas aleatorias y que cuenta cuntas veces aparece cada
letra en el array
Solucin
#include <conio.h>
#include <stdio.h>
#include <stdlib.h>

#define TAM 1000

void escribirArray(char a[], int tamanio);

int main(){
char letra[TAM];
/* Array que contendr las letras de la A a la Z*/
char AaZ[26];
/* contadores*/
int i,j,cont;

srand(time(NULL));
/* Relleno del array de letras */
for(i=65;i<=90;i++){
AaZ[i-65]=i;
}
/*Relleno inicial del array aleatorio*/
for(i=0;i<TAM;i++){
/*genera caracteres del ASCII 65 al 90,
de la letra A a Z */
letra[i]=rand()%26+65;
}

/* Escritura del contenido del primer array*/
printf("Array inicial:\n");
escribirArray(letra,TAM);
/* El bucle recorre el array que contiene las letras de la A
a la Z y cuenta cada vez que aparece cada letra en el array de letras
aleatorias*/
for(i=0;i<26;i++){
cont=0;
for(j=0;j<TAM;j++){
if(AaZ[i]==letra[j]) cont++;
}
printf("La letra %c aparece %i veces\n",65+i,cont);
}

getch();
}

/* Escribe el contenido de un array de enteros por pantalla */
void escribirArray(char a[], int tamanio){
int i;
for(i=0;i<tamanio;i++){
printf("%c ",a[i]);
}
printf("\n");
}

Cerrar


Ejercicio 1. Biblioteca v1
Crear un diseo entidad relacin (estando prohbido utilizar smbolos del modelo extendido) que permita gestionar
los datos de una biblioteca de modo que
Las personas socias de la biblioteca disponen de un cdigo de socio y adems necesitar almacenar su
dni, direccin, telfono, nombre y apellidos
La biblioteca almacena libros que presta a los socios y socias, de ellos se almacena su ttulo, su
editorial, el ao en el que se escribi el libro, el nombre completo del autor (o autores), el ao en que
se edit y en qu editorial fue y el ISBN.

ING.CIP.JOS LUIS SNCHEZ CURAY
Necesitamos poder indicar si un volumen en la biblioteca est deteriorado o no
Queremos controlar cada prstamo que se realiza almacenando la fecha en la que se realiza, la fecha
tope para devolver (que son 15 das ms que la fecha en la que se realiza el prstamo) y la fecha real
en la que se devuelve el libro
Ver solucin

Ejercicio 2. Academia de clases
Crear un diseo entidad relacin que permita controlar el sistema de informacin de una academia de cursos
siguiendo estas premisas:
Se dan clases a trabajadores y desempleados. Los datos que se almacenan de los alumnos son el DNI,
direccin, nombre, telfono y la edad
Adems de los que trabajan necesitamos saber el CIF, nombre, telfono y direccin de la empresa en la
que trabajan
Los cursos que imparte la academia se identifican con un cdigo de curso. Adems se almacena el
programa del curso, las horas de duracin del mismo, el ttulo y cada vez que se imparte se anotar las
fechas de inicio y fin del curso junto con un nmero concreto de curso (distinto del cdigo) y los datos
del profesor o profesora (slo uno por curso) que son: dni, nombre, apellidos, direccin y telfono
Se almacena la nota obtenida por cada alumno en cada curso teniendo en cuenta que un mismo alumno
o alumna puede realizar varios cursos y en cada cual obtendr una nota.
Ver solucin

ING.CIP.JOS LUIS SNCHEZ CURAY

Ejercicio 3. Geografa
Crear un diseo entidad relacin que permita almacenar datos geogrficos referidos a Espaa:
Se almacenar el nombre y poblacin de cada localidad, junto con su nombre y los datos de la
provincia a la que pertenece la localidad, su nombre, poblacin y superficie.
Necesitamos tambin conocer los datos de cada comunidad autnoma, nombre, poblacin y superficie
y por supuesto las localidades y provincias de la misma
Para identificar a la provincia se usarn los dos primeros dgitos del cdigo postal. Es decir 34 ser el
cdigo de Palencia y 28 el de Madrid
Necesitamos saber qu localidad es la capital de cada provincia y cules lo son de cada comunidad
Ver solucin

Ejercicio 4. Guerras
Disear un modelo entidad/relacin que almacene los datos de todas las guerras de la historia de modo que:

ING.CIP.JOS LUIS SNCHEZ CURAY
Se almacene el ao en el que empez la guerra y el ao en que termin, as como su nombre y el de los
paises contendientes, pudiendo indicar adems quienes fueron las ganadores
Hay que tener en cuenta que los paises se pueden unir a la guerra a uno u otro bando (suponemos que
solo hay dos bandos) despus de comenzada la guerra (como EEUU en la 2 guerra mundial) y que
incluso pueden abandonar la guerra antes de que esta finalice (como Rusia en la 1 guerra mundial)
Los paises que se almacenan en la base de datos pueden no ser paises actualmente (como Prusia,
Aragn, Asiria,etc.) por lo que se ha contemplado que en la base de datos se almacenen los aos en los
que el pas ha sido independiente, teniendo en cuenta que hay paises que ha habido momentos en los
que ha sido independiente y otros en los que no (por ejemplo Croacia). Bstar con almacenar los
periodos en los que ha sido independiente.
Ver solucin

Ejercicio 5. Almacn v1
Se trata de crear una base de datos sobre un almacn de piezas de modo que:
Cada pieza se identifica con dos letras (tipo, por ejemplo TU=tuerca) y un nmero (modelo, por
ejemplo 6)
Almacenamos un atributo que permite saber la descripcin de cada tipo de pieza. Es decir el
tipo TU tendr la descripcin tuerca.
Necesitamos conocer el precio al que vendemos cada pieza.
Adems hay piezas que se componen de otras piezas, por ejemplo una puerta se compone de una hoja
de madera, una bisagra y un picaporte. Incluso una pieza puede estar compuesta de otras piezas que
ha su vez pueden estar compuestas por otras y as sucesivamente
Tenemos una serie de almacenes de los que guardamos su nmero, descripcin, direccin y el nombre
de cada estantera de almacn. Cada estantera se identifica por tres letras.
Necesitaremos saber la cantidad de piezas que tenemos en cada almacn y saber en qu estanteras
estn las piezas buscadas
Ver solucin

ING.CIP.JOS LUIS SNCHEZ CURAY

Ejercicio 6. Biblioteca v2
Se trata de crear una base de datos sobre el funcionamiento de una biblioteca
Almacenaremos el DNI, nombre, apellidos, cdigo de socio, direccin y telfonos (pueden ser varios,
pero al menos uno)
La biblioteca presta libros, CDs y pelculas. De todos ellos se almacena un cdigo de artculo distinto
para cada pieza en la biblioteca. Es decir si tenemos tres libros del Quijote, los tres tendrn un nmero
distinto de artculo.
Adems almacenamos el nombre de cada artculo, el ao en el que se hizo la obra (sea del tipo que
sea) un resumen de la obra y los datos de los autores del mismo. Se considera autor de la pelcula al
director, de la msica al intrprete y del libro al escritor. Pero de todos ellos se guarda la misma
informacin: nombre y pas.
De los libros adems se guarda el nmero de pginas, de los CDs el nmero de canciones y de la
pelcula la duracin
Anotamos si un artculo concreto est deteriorado y un comentario sobre el posible deterioro
Cuando se presta un artculo, se anota fecha en la que se presta y la fecha tope para devolverle.
Cuando el socio le devuelve, se anota la fecha de devolucin.
No hay tope sobre el nmero de artculos que puede prestarse a un socio e incluso el socio podra
llevarse varias veces el mismo artculo en distintos prstamos
Ver solucin

ING.CIP.JOS LUIS SNCHEZ CURAY

Ejercicio 7. Organigrama
Crear el esquema entidad/relacin que represente el organigrama de una empresa, de modo que:
Aparezcan los datos de todos los empleados y empleadas: dni, n de seguridad social, cdigo de
trabajador, nombre, apellidos, direccin, telfono y departamento en el que trabajan indicado por su
cdigo y nombre.
Tambin hay que tener en cuenta que cada trabajador puede tener un responsable (que en realidad es
otro trabajador)
Los departamentos poseen un nico coordinador del mismo
Necesitamos almacenar la categora profesional de los trabajadores y trabajadoras, teniendo en cuenta
que la categora a veces cambia al cambiar el contrato, de los contratos se almacena la fecha de inicio
del mismo y la fecha final (un contrato en vigor tendr como fecha final el valor nulo).
Tambin controlaremos las nminas que ha recibido el trabajador de las que sabemos la fecha, el
salario y a qu trabajador van dirigidas y la categora del mismo.
Ver solucin

ING.CIP.JOS LUIS SNCHEZ CURAY

Ejercicio 8. Vuelos
Crear el esquema entidad/relacin que permita gestionar reservas de vuelos, de modo que:
Los clientes pueden reservar vuelos. Con la reserva se pueden reservar varias plazas, pero no
poseeremos el nmero de asiento hasta obtener la tarjeta de embarque. En ese instante se asignar el
asiento que tiene como identificacin la fila, columna y la planta en la que est situado.
Se pueden obtener tarjetas de embarque sin tener reserva
Las tarjetas de embarque se refieren a un nico cliente. De modo que aunque reservramos nueve
plazas, cada cliente podr sacar su tarjeta de embarque indicando el nmero de reserva, la fecha de la
misma y sus datos personales (dni, nombre, apellidos, direccin y telfono). Adems la persona que
reserva debe indicar una tarjeta de crdito que quedar asociada a esa persona.
El vuelo que se reserva tiene un cdigo nico, una fecha y una hora de salida y de llegada y un
aeropuerto de salida y otro de llegada
Los aeropuertos poseen un cdigo nico, adems del nombre y la localidad y el pas en el que se
encuentran
Se guarda informacin sobre los aviones, cdigo y nmero de plazas. Los vuelos slo les puede realizar
un avin determinado, pero el mismo avin puede realizar (como es lgico) otros vuelos
Ver solucin

ING.CIP.JOS LUIS SNCHEZ CURAY

Ejercicio 9. Recetas de cocina
Crear el esquema entidad/relacin que permita gestionar los datos sobre preparacin de rectas de cocina
Ver solucin

Ejercicio 10. Futbol
Crear el esquema entidad/relacin que permita crear el diseo de una base de datos que almacena informacin sobre
los partidos de una liga de futbol una temporada. Hay que tener en cuenta que en dicha liga los jugadores no pueden
cambiar de equipo
Ver solucin

ING.CIP.JOS LUIS SNCHEZ CURAY

Ejercicio 11. Accidentes geogrficos
Realizar un esquema entidad/relacin que sirva para almacenar informacin geogrfica. Para ello hay que tener en
cuenta
o Se almacenan los siguientes accidentes geogrficos: ros, lagos y montaas
o De cada accidente se almacenan su posicin horizontal y vertical segn el eje de la tierra,
adems de su nombre
o De los ros se almacena su longitud, de las montaas su altura y de los lagos su extensin
o Se almacena tambin informacin sobre cada pas, su nombre, su extensin y su poblacin
o Se desea almacenar informacin que permite saber en qu pas est cada accidente
geogrfico, teniendo en cuenta que cada accidente puede estar en ms de un pas.
o Se almacena tambin los nombres de cada localidad del planeta. Y se almacena por qu
localidades pasa cada ro.
Ver solucin

Ejercicio 12. Empresa de software

ING.CIP.JOS LUIS SNCHEZ CURAY
Realizar un esquema entidad/relacin que permita modelar el sistema de informacin de una empresa de software
atendiendo las siguientes premisas
La empresa crea proyectos para otras empresas. De dichas empresas se almacena el CIF, nombre,
direccin y telfono as como un cdigo interno de empresa.
Los proyectos se inician en una determinada fecha y finalizan en otra. Adems al planificarle se
almacena la fecha prevista de finalizacin (que puede no coincidir con la finalizacin real)
Los proyectos los realizan varios trabajadores, cada uno de ellos desempea una determinada profesin
en el proyecto (analista, jefe de proyecto, programador,), dicha profesin tiene un cdigo de
profesin. En el mismo proyecto puede haber varios analistas, programadores,
Todos los trabajadores tienen un cdigo de trabajador, un dni, un nombre y apellidos. Su profesin
puede cambiar segn el proyecto: en uno puede ser jefe y en otro un programador
Se anota las horas que ha trabajado cada trabajador en cada proyecto.
Puede haber varios proyectos que comiencen el mismo da.
A todas las empresas les hemos realizado al menos un proyecto
Todos los trabajadores han participado en algn proyecto
En la base de datos, la profesin administrador de diseo no la ha desempeado todava ningn
trabajador o trabajadora
Ver solucin

Ejercicio 13. Empresa de comidas
Crear un diseo entidad/relacin para una empresa de comidas. En la base de datos tienen que figurar:
El nombre y apellidos de cada empleado, su dni y su nmero de SS adems del telfono fijo y el mvil
Algunos empleados/as son cocineros/as. De los cocineros y cocineras anotamos (adems de los datos
propios de cada empleado) sus aos de servicio en la empresa.
Hay empleados/as que son pinches. De los y las pinches anotamos su fecha de nacimiento.
La mayora de trabajadores no son ni pinches ni cocineros/as
En la base de datos figura cada plato (su nombre como pollo a la carlotea, bacalo al pil-pil,), el
precio del plato junto con los ingredientes que lleva. Anotamos tambin si cada plato es un entrante,
un primer plato, segundo plato o postre
De los ingredientes necesitamos la cantidad que necesitamos de l en cada plato y en qu almacn y
estantera del mismo le tenemos.
Cada almacn se tiene un nombre (despensa principal, cmara frigorfica A, cmara frigorfica B), un
nmero de almacn y una descripcin del mismo.
Cada estante en el almacn se identifica con dos letras y un tamao en centmetros. Dos almacenes
distintos pueden tener dos estantes con las mismas letras.
Necesitamos tambin saber qu cocineros son capaces de preparar cada plato.

ING.CIP.JOS LUIS SNCHEZ CURAY
Cada pinche est a cargo de un cocinero o cocinera.
La cantidad de ingredientes en cada estantera de un almacn se actualiza en la base de datos al
instante. SI cogemos dos ajos de un estante, figurar al instante que tenemos dos ajos menos en ese
estante. Es necesario por lo tanto saber los ingredientes (cules y en qu nmero) que tenemos en
cada estante.
Ver solucin

Ejercicio 14. Red social
Crear un diseo entidad/relacin que permita modelar un sistema que sirva para simular el funcionamiento de una
red social, teniendo en cuenta lo siguiente:
Los usuarios de la red social se identifican con un identificador y una contrasea. Adems se almacena
de ellos:
o Su nombre, apellidos, direccin, telfono (puede tener varios telfonos) e e-mail (el e-
mail no tiene que poder coincidir con el de otro usuario) y una foto
o Si los usuarios son celebridades, de ellos no aparecer ni el email ni la direccin ni el
telfono.
Los usuarios pueden tener una serie de contactos, que en realidad son otros usuarios. De cada contacto
se puede almacenar un comentario que es personal y que sirve para describir al contacto.
Los usuarios pueden organizar sus contactos en grupos de los cuales se almacena un nombre y
deberemos saber los contactos que contiene. El mismo contacto puede formar parte de varios grupos.
Adems cada usuario puede tener una lista de usuarios bloqueados a fin de que no puedan contactar
con l
Los usuarios pueden publicar en la red comentarios, los cuales se puede hacer que los vea todo el
mundo, que los vea uno o varios de los grupos de contactos del usuario o bien una lista concreta de
usuarios. Los comentarios pueden incluir un texto y una imagen.
Ver solucin

ING.CIP.JOS LUIS SNCHEZ CURAY

Ejercicio 15. Men diario
Crear un esquema Entidad/relacin que represente un modelo para llevar los datos que maneja un restaurante de
mens diarios. Teniendo en cuenta que:
Slo interesa llevar los datos de los mens diarios a la hora de la comida, nada ms del restaurante
Cada mens se compone de una serie de posibles platos. cada plato se puede repetir en diferentes
das. Los platos pueden ser primer plato, segundo plato o postres.
De cada plato se almacena el nombre (por ejemplo Arroz negro con setas) y una pequea descripcin.
De los mens almacenamos la fecha en la que se ofrece el men, el nmero de personas que han
tomado men ese da. Adems almacenamos la cantidad de cada plato que se ha tomado ese da.
Se almacena tambin la temperatura que haca el da del men para as poder analizar las
temperaturas y los platos exitosos
Ver solucin

ING.CIP.JOS LUIS SNCHEZ CURAY

Ejercicio 16. Twitter
Crear un esquema Entidad/relacin que represente un modelo para llevar los datos que maneja la red social Twitter:
usuarios, mensajes,...
Ver solucin

ING.CIP.JOS LUIS SNCHEZ CURAY

Ejercicio 17. Horario escolar
Crear un esquema Entidad/relacin que represente el funcionamiento de un centro escolar de formacin profesional,
teniendo en cuenta que:
Slo interesa llevar el control de ocupacin de las aulas en el horario escolar
El horario es de seis horas diarias y en la base de datos simplemente se anota si es la primera,
segunda, y el da de la semana del que hablamos (por ejemplo mircoles a tercera hora)
Las asignaturas tienen un nombre, un cdigo interno del centro y un cdigo europeo. La misma
asignatura se puede impartir en dos ciclos distintos y en ese caso tendra el mismo cdigo europeo y
nombre, pero el cdigo interno sera distinto. Hace falta saber en qu curso del ciclo se imparte la
asignatura
Los ciclos tienen un nombre, pueden ser de grado superior,de grado medio o de iniciacin profesional;
adems tienen otro cdigo interno en el centro.
Las asignaturas en cada momento ocupan un aula, del que tenemos que almacenar un cdigo de aula,
un nombre (que no se repite), un nmero de aula (que tampoco se repite) y los metros que tiene. A
una hora concreta de la semana, el aula puede estar vacia o bien ocuparse, pero slo se puede ocupar
por una asignatura
Necesitamos saber y anotar en la base de datos si una asignatura requiere que antes se hayan aprobado
otras, para poder matricularse en ella. Por ejemplo, Ampliacin de Matemticas de 2 a lo mejor
requiere aprobar Matemticas de 1. Puede requerirse terminar ms de una asignatura previamente
para poder matricularse de una concreta.
Se entiende que la asignatura slo la puede impartir un profesor en todo el ao, siempre ser uno en
todo momento el titular
De los profesores se almacena su nombre, direccin, telfono, email, DNI, n de Seguridad Social y un
cdigo interno de profesor as como los aos que tiene de antigedad impartiendo cada asignatura.
Puede ser cada profesora o profesor, tutora de un curso y tambin se anota la antigedad que tiene en
esa tarea
Complicamos el esquema anterior en este sentido
Siendo ms realistas, nos damos cuenta de que en un curso escolar, puede haber varios profesores
responsables de una asignatura (por bajas, ceses, etc.); por lo que anotamos cundo empez a impartir
dicho profesor la asignatura y cuando termin (si no ha terminado, se dejara vaco)
Asegurar que podemos averiguar gracias al diseo, que si buscamos a un profesor un da concreto (por
ejemplo el 13 de Mayo de 2012) a una hora concreta (sexta hora), podramos saber en qu aula va a
estar.
Ver solucin

ING.CIP.JOS LUIS SNCHEZ CURAY



ING.CIP.JOS LUIS SNCHEZ CURAY


Ejercicio 18. Inmuebles
Crear un diseo entidad/relacin que permita modelar un sistema que sirva para gestionar una empresa que posee
inmuebles. Para ello
Se almacenan los clientes usando su DNI, Telfono fijo, Mvil, Nombre y Apellidos.
Se almacenan los trabajadores y se almacenan los mismos datos. Ocurre adems que un trabajador
puede ser un cliente (porque puede alquilar o comprar mediante la inmobiliaria) a veces.
A cada cliente y trabajador se le asigna un cdigo personal
Los clientes pueden comprar pisos, locales o garajes. En los tres casos se almacena un cdigo de
inmueble (nico para cada inmueble), los metros que tienen, una descripcin y su direccin.
Los pisos tienen un cdigo especial de piso que es distinto para cada piso.
En los locales se indica el uso que puede tener y si tienen servicio o no.
De los garajes se almacena el nmero de garaje (podra repetirse en distintos edificios) y la planta en
que se encuentra (para el caso de garajes que estn en varias plantas). Los garajes adems pueden
asociarse a un piso y as cuando se alquile el piso se incluir el garaje.
La empresa prev que podra haber inmuebles que podran no ser ni locales, ni garajes, ni pisos
Los inmuebles se pueden comprar. Incluso varias veces. Se asigna un cdigo de compra cada vez que se
haga, la fecha y el valor de la compra. La compra puede tener varios titulares.
Cada inmueble se puede alquilar y en ese caso se asigna un nmero de alquiler por cada inmueble. Ese
nmero se puede repetir en distintos inmuebles (es decir puede haber alquiler n 18 para el inmueble
40 y el 35). Pero no se repite para el mismo inmueble.
Al alquilar queremos saber el nombre del agente de la empresa que gestion el alquiler as como a qu
persona (solo una) estamos alquilando el inmueble.

ING.CIP.JOS LUIS SNCHEZ CURAY
Cada pago de cada alquiler ser almacenado en la base de datos, llevando el ao, el mes y el valor del
mismo.
Ver solucin

Vous aimerez peut-être aussi