Operaciones Básicas con vectores y un pequeño analisis
Nuevamente, una empresa de Villanueva nos ha solicitado una pequeña aplicación. En este caso se trata de una taller mecánico. El dueño del taller desea llevar una relación reparaciones pendientes y reparaciones realizadas.
Sistema Antiguo
El encargado de admisión lleva una lista con las nuevas reparaciones (pendientes), en esta lista guardamos la matricula del coche a reparar. Cuando el coche se repara, el mismo encargado borra de la lista de reparaciones (pendientes) al coche reparado y lo inserta en otra lista que se llama reparados.
Ejercicios
- Dibuja el DFD de nivel 1 y el de nivel2
- Implementa el programa en Pseint.
- Modificalo para que guarde el precio de la reparación, en la cola de reparados.
Originally posted 2010-11-23 15:54:37.
Juan Luìs gracias por esta explicación. Yo tengo claro lo que pides pero despues no soy capaz de plasmarlo me quedo en blanco totalmente.Me río por no llorar.pero para mí esto es muy serio aunque creo que tu piensas que no,buenas tardes
Perdóname si te da esa impresión, pero llega un punto en el que debemos calmarnos y quitarle un poco de hierro al asunto, si no esto sería mucho más duro de lo que lo es. Debes calmarte, confía en que yo me encargo de buscar distintas explicaciones, se que aveces me equivoco y sale el tiro por la culata. Pero te seguro que siempre lo volveré a intentar.
Ese pdf que he puesto, explica el punto que más problemas os está dando, concretamente el segundo, insertar sin duplicados. Lo veremos mañana, no te preocupes si no lo entiendes ahora, mañana tenemos todo el día.
Juan luis cuando te dicen que los subïndices están fuera de rango¿qué significa?
Significa o bien que estás buscado la posición cero, que en Pseint no existe. O bien y será lo más probable, que te has pasado de largo. Pon justo antes y debajo de la linea que te da error, un Escribir i; suponiendo que i sea el índice del error. De esa forma verás el valor con el que el índice llega al error.
Juan Luis, en el pdf donde explicas como borrar un queso lo he probado. Lo borra bien pero cuando quieres borrar otro te aparece el espacio donde has borrado el anterior como vacío. ejemplo
yo tengo los quesos
1
2
3
4
borro el 2 y cuando veo los que me quedan aparece así
1
vacío
3
4
¿como resolvemos el orden?
Es eso lo que tienes que hacer, no tiene ningún problema. Si quieres puedes recolocar los vacios al final, pero en ese ejemplo quiero que quede así.
1:
escribir “introducir coches pendientes”
leer pendientes[i_pendientes];
i_pendientes<-i_pendientes+1;
2:
Escribir "introducir coches a borrar:matricula y precio"
leer coche;
para i<-1 hasta 50 Hacer
si pendientes[i]coche Entonces
aux[i]<-pendientes[i];
finsi
FinPara
para i<-1 hasta 50 Hacer
pendientes[i]<-aux[i];
FinPara
reparados[i_reparados]<-coche;
i_reparados<-i_reparados+1;
escribir "introducir precio_reparados";
leer precio_reparados;
3:
Escribir "crear lista de coches reparados"
para j<-1 hasta i_reparados-1 Hacer
escribir reparados[j]," ",precio_reparados;
FinPara
4:
escribir "adeu"
FinSegun
FinMientras
FinProceso
Juan Luis he introducido precio,pero cuando pido lista con precio me pone el último precio para todas las matrículas ¿me podrías indicar donde está el error? gracias
Si te fijas esto te funcionaria si sólo metes un coche reparado y le pones su precio. ya que no almacenas la lectura del precio junto a la matricula
De esta forma lees para cada coche un precio, pero ahora falta otro paso, tienes que almacenar el precio de la reparación junto a la matrícula del coche de tal forma el vector de reparados se tiene que convertir en una matriz para que nos quede:
Matricula Precios
1256 26
1257 789
La estructura de datos sería:
Dimension reparados [50,2];
Así ya caben las matriculas y los precios. Pero este cambio te supone cambiar el punto 2 del según, porque lo tienes hecho para un vector y ahora es para una matriz.
Toma como ejemplo el ejercicio de los jamones, que es prácticamente igual.
Quedaría:
reparados [i_reparados,1]<-coche; escribir “introducir precio_reparados”; leer [i_reparados,2] i_reparados<-i_reparados+1;