domingo, 23 de enero de 2011

Condiciones incompatibles. Condicionales SI anidados


Supuesto:

Un amigo mío se ha construido recientemente en un pueblo, digamos de Segovia, una casa de nueva planta sobre un terreno ocupado por las ruinas de unas antiguas cuadras. En el salón de nueva casa instaló, entre otras cosas, una chimenea de las conocidas como “casetes”. El derribo de las antiguas construcciones se hizo de una manera controlada, con el fin de recuperar la teja y alguna piedra de sillería en buen estado. Durante el derribo se separaron las maderas de la estructura de las cuadras, amontonándolas en un rincón del terreno. Las especificaciones técnicas del fabricante “casete” indican que el tamaño máximo de los leños a quemar en la chimenea no debe superar 50 cm.
Mi amigo quiere utilizar la madera sobrante del derribo como leña para su chimenea. Decide que los leños cortados no superen los 50 cm. Indicados por el fabricante y que, para almacenarlos mas eficientemente, no midan menos de 45 cm. Al empezar los cortes se dio cuenta de que con esas dos condiciones algunos maderos no se podían cortar.
Con el libro Excel adjunto calculamos el tamaño óptimo que debe tener el corte. (Leñador.zip)

Funciones utilizadas:


De las dos condiciones puestas una de ellas es innegociable, no podemos cortar los leños con mas de 50 cm. La segunda condición es modificable, negociable, se puede incumplir, es una cuestión de llegar a un acuerdo para resolver aquellos casos que no pueden cumplir ambas condiciones.
Matemáticamente encontrar los tamaños que  impiden que ambas condiciones se cumplan es sencillo. Si  N es el número máximo de trozos que podemos cortar con la longitud máxima permitida, todos aquello maderos que midan mas de N*50 y menos de (N+1)*45 no se pueden cortar según lo exigido por ambas condiciones. Lógicamente, este caso nos obliga a redefinir las condiciones de corte. Una posible opción es cortar los trozos al tamaño máximo admitido por la chimenea y dejar el resto del  corte con el tamaño que sea. Otra posible opción es la de cortar los trozos con el tamaño mínimo deseado por mi amigo y dejar el corte restante del tamaño que salga. En ningún caso se pueden cortar con un tamaño superior a 50 cm. 
Ya puestos a calcular, las longitudes máxima y mínima las consideramos variables, en vez de constantes, y así este desarrollo nos vale para cualquier otra chimenea. En la página “Cortes” del libro Excel Leñador.xls, celdas C3 y B3 se pueden modificar los tamaños máximo y mínimo. En estos casos, dos celdas que contienen  valores mayores que cero, obligatoriamente distintos y uno de ellos (C3) siempre mayor que el otro (D3) es conveniente activar la validación de datos.
Validación de datos de D3


Validación de datos de C3


Así mismo es conveniente validar la celda B3 (longitud) para que su valor sea positivo.

En la página “Cortes”, celda  B5 del libro Excel “Leñador.xls” cálculo el número entero de trozos con la longitud máxima en que se puede cortar un tronco de longitud L mediante la fórmula :

=ENTERO($B$3/$C$3) 

El rango de valores que hace que no pueda cumplirse las condiciones pedidas está en las celdas B8 y C8. Las formulas utilizadas son:

En la celda B8   “=$C$3*$B$5” (N*Tam.Máx.) . En la celda C8  “=$D$3*$C$5” ((N+1)*Tam. Mín.)

Aquellos maderos que tengan una longitud superior a N*Tam.Máx y menor que (N+1)*Tam.Mín no pueden cumplir ambas condiciones. Por ejemplo, si partimos de un madero de longitud 162 cm, calculando el entero de dividir 162 entre 50 el resultado es N=3, multiplicando por 50 da 150. Si multiplicamos N+1 por 45 (4*45) nos da un resultado de 180, con lo que todas aquellas longitudes nayores (>) que 150 y menores que 180 no pueden cumplir las dos únicas condiciones impuestas (<=50 y >=45). En estos casos, como ya he dicho, hay que llegar a una solución de compromiso, que se aproxime lo mas posible a los valores pedidos.

Para aquellos casos que no incumplan las condiciones, es decir se pueden cortar con trozos mayores (o iguales) que 45 y menores (o iguales) a 50 se deben cortar en N+1 trozos, salvo los que tengan una longitud de N*50, que deben cortarse en N trozos.

No está de mas comprobar si un madero mide menos (o igual) que el máximo tamaño que admite la chimenea, indicando que no es necesario corte de ningun tipo.

 La fórmula  =SI($B$3<=$C$3;0;SI(RESIDUO(B3;C3)=0;B5;C5))  , en la celda  D5, calcula el número de trozos que salen de un madero, según las condiciones pedidas. Como podemos ver, un condicional SI dentro de otro.
La fórmula =SI($D$5>0;SI(Y(($B$3>=$B$8);($B$3<$C$8));$C3;($B$3/$D$5));"--"), en la celda D8 calcula el tamaño del corte. Por último en la celda F8, con la fórmula =RESIDUO($B$3;$D$8), calculo el tamaño del corte que incumple la condición de tamaño mínimo. En la línea 9 hago el cálculo para que los cortes de las excepciones se hagan a 45 cm. No solo hay un condicional dentro de otro, hay otras funciones dentro del condicional. En este caso una función Y().



  




 





viernes, 21 de enero de 2011

¿Quien se acuerda del Fat32?


¿Quien se acuerda del sistema de ficheros (file system) Fat32?: Casi nadie, el último sistema que lo utilizó fue windows 98.¿ Cual es el problema? :Un problema que tiene una probabilidad mínima de suceder, casi nadie se lo ha encontrado, pero es uno de esos problemas que como te lo encuentres es complejo de resolver, no admite ficheros de mas de 4gb. De hecho yo no lo conocí hasta que ocurrió por primera vez, cuando empecé a editar mis películas de vídeo en el ordenador, hace mas de ocho años. Con ficheros aromáticos tipo Excel, Word o Acces es muy improbable que se alcance ese tamaño.
 La penúltima vez que me encontré con el FS Fat32 fue cuando me compre un TDT con entrada USB. Las películas grabadas en lápiz de memoria, memoria USB o pendrive o etc.., que de todas esas maneras se conoce, el TDT las leía. Como quise mejorar la velocidad y el tamaño de la memoria indagué en Internet sobre el tema y encontré que los (o al menos el mío) TDT no leen los discos con formato distinto a Fat32.
 La última vez que me encontré con el FS Fat32 fue hace tres días. Mi cuñado Miguel estaba intentando pasar un álbum de fotos de 8gb a un pendrive de 65gb. y el sistema no se lo permitía. Este problema, como ya dije, es de difícil solución. La solución óptima sería la de formatear la memoria con un formato que no tenga esa limitación de tamaño, pero ese formateo puede que no nos permita ver películas con esa memoria.
 Tarde mucho en darme cuenta del problema, a mi se me ha producido muy pocas veces, ya no tengo win98 en ningún sitio, y , sobre todo, me estoy oxidando.
 Windows XP no formatea las memorias USB a NTFS. Tampoco formatea (de esto no estoy seguro, fue hace mucho tiempo) la primera partición de un disco a Fat32.  De lo que si estoy seguro es de que el particionado del disco para el TDT lo hice con linux. Cree una primera partición en Fat32 y una segunda con NTFS. Creo que con linux si se puede formatear una memoria en NTFS. Si se pudiese yo crearia dos particiones, una, la primera, en Fat32 y otra en NTFS.
 Para formatear un  disco no es necesario tener un PC con linux instalado, basta con utilizar un disco con una versión demo. Yo utilizo el GUADALINEX de la junta de Andalucía.