dilluns, 25 de juny de 2012

Seno, coseno y tangente

Tenemos un punto A a una distancia y un ángulo concreto de un punto B. Si consideramos que el punto A está en el centro de un eje de coordenadas y abscisas, si el ángulo y la distancia son positivos y superiores a 0, la cosa quedaría como un triángulo rectángulo tal que así:



Supongamos que la distancia entre A y B es de 15 metros. Es decir, el valor de la hipotenusa es 15 metros.

Supongamos que el ángulo de A es de 25º

Aplicando

seno(A)= cateto opuesto / hipotenusa

tenemos que

cateto opuesto = seno(A)* hipotenusa
cateto opuesto = 0,42 * 15 = 6,34

[ para calcular el seno de 25º en Excel =seno(radianes(25)) ]

Si queremos proyectar -manteniendo el valor angular- 1 metro la hipotenusa y tenmos que obgtener la nueva coordenada xy habrá que calcular -con valor de hipotenusa 16- tanto el cateto opuesto como el adyacente.

Completamos el cateto adyacente para el valor 15 de la hipotenusa:

coseno (A) = cateto adyacente / hipotenusa

cateto adyacente = coseno (A) * hipotenusa
cateto adyacente = 0,91 * 15 = 13,59

Por tanto, desde el punto xy=0,0 las coordenadas del punto B serían:

x= cateto adyacente
y= cateto opuesto

xy= 13.59 , 6.34

Ahora vamos a incrementar 1 metro la hipotenusa

seno(25) = cateto opuesto / hipotenusa +1
cateto opuesto = seno(25)* hipotenusa +1 = 0,42 * 16 = 6,76

coseno (25) =cateto adyacente / hipotenusa +1
cateto adyacente = coseno (25) * hipotenussa +1 = 0,91 * 16 = 14,50

Por tanto, incrementando un metro la hipotenusa tenemos.

xy=14.50 , 6.76

En ningún caso será 14.59 , 7.34 ya que incrementar un metro xy simultáneamente sería aplicar un nuevo ángulo de 45º...

La imagen ha sido extraida de:
http://www.mathematicsdictionary.com/spanish/vmd/full/t/trigonometricratios.htm

dissabte, 16 de juny de 2012

dissabte, 9 de juny de 2012

Escriptura sobre fitxers amb VBA

Tenim dos fitxers en dues carpetes diferents i volem afegir un texte al final de cada línia i que totes les dades acabin en un únic fitxer.





Si anem per parts, com Jack el Esbudellador, primer fem un mòdul per afegir la cadena MAMIFERS al primer fitxer:

Public Sub CargaAnimales()

Dim strListadoAnimales$, linia1$
Dim LongListadoAnimales As Long

LongListadoAnimales = FreeFile

strListadoAnimales = "e:\access\bichos\mamiferos\listado.txt"
Open strListadoAnimales For Input As #LongListadoAnimales

While Not EOF(LongListadoAnimales)
Line Input #LongListadoAnimales, linia1
linia1 = linia1 & "MAMIFERS" & ";"
Wend

Close #LongListadoAnimales


Ara ho farem una mica millor, en lloc d'escriure la ruta dins el codi, la calcularem amb CurrentProject.path



Ara ja veiem que podem obtenir el resultat que voliem però encara no ho hem aconseguit ni tan sols pel primer fitxer. Amb el següent codi -comentat- ho podrem resoldre pel primer fitxer:




Funciona. Ja ens crea un fitxer final afegint MAMIFEROS al final de cada línia, però encara no hem aconseguit que passi pel altre fitxer i, a banda, lamentablement, encara estem escrivint a ma el que volem que ens afegeixi (puntets vermells)

El que farem es crear un fitxer de clases (clases.txt) que contingui dues linies:
MAMIFEROS
PECES

Ara farem que es recorregui el fitxer de clases (mamifers i peixos) i que la lectura de cada línia es guardi per fer-la servir posteriorment. El codi amb aquests canvis i sense comentaris ni debugs seria aquest:



Tot i que es tracta d'un codi bastant simple, fa una mica de por. El que podem fer-ho, tot seguint el nostre referent Jack l'esbudellador, es fer-ho en quatre mòduls. Sols cal tenir una mica en compte el tema de que algunes variables tindran que passar de privades a públiques. Ens podria quedar una cosa així:



I finalment, el resultat:

diumenge, 3 de juny de 2012

El llit de Procust

Llegint a José Antonio Marina en Ética para náufragos, en el primer diàleg entre la lectora i l'autor, la lectora fa servir l'expressió "lecho de Procusto".

Com a "inculturazo" militant no tenia ni idea del sentit de l'expressió tot i que fins i tot es fa servir en temes de deformació gràfica i en informàtica.

Procust és un dels personatges que amenitzen el viatge de Teseu des de Trezen fins a Atenes. Primer es troba i mata a Perifetes pispant-li la seva maça. Tot seguit mata a Sinis (que tant va contribuir als guions de Tarzan) i té una relació amb la seva filla Perigune. Desprès mata a la truja de Cromió, a Escirió llençant-lo al mar (i imagino que essent menjat per la tortuga), mata a Eleusis i finalment es troba amb Procust.

Procust era un bandit que seduia a les seves víctimes i les allitaba. Si la víctima era més gran que el llit, li tallaba les parts que sobraven (peus i cap). Si la víctima era més petita que el llit, li trencaba les articulacions perquè s'adaptés a la mida del llit. Ningú era de la mida justa perquè sembla ser que el llit es podia allargar o fer més curt a voluntat de Procust.

Teseu el va ensarronar i el va lligar al llit on li aplicà el seu mètode. D'aquesta manera, un cop més, Teseu va aplicar la seva medicina als seus enemics.

En informàtica, en una cadena de text de longitud fixa farcim amb espais en blanc o trunquem el valor. A aquest mètode se li diu procustià.

Tags:
Lecho de Procusto