viernes, 30 de noviembre de 2007

ShOuNdErSmEtHoD


//Método de la burbuja (ordena números de menor a mayor)
#include {stdio.h}
#include {conio.h}
#define MAX 10

void burbuja (void);
int compara (int[], int*);

void main ()
{
burbuja();
system("PAUSE") ;
}

void burbuja (void)
{
int i, p, h, a[MAX], pos= 1;
printf("\t\tINTRODUCE DIEZ DIGITOS\n\n") ;
for ( i = 0 ; i < MAX ; i++ )
{
printf("\tIntroduce el numero %d: ",i+1);
scanf("%d",&a[i]);
}
while (compara(a,&pos));
for ( p = 1 ; p <= MAX-pos ; p++ )
for ( i = 0 ; i <= MAX-pos-1 ; i++ )
if (a[i] > a[i+1])
{
h= a[i];
a[i]= a[i+1];
a[i+1]= h;
}
printf("Valores ordenados: ");
for ( i = 0 ; i < MAX ; i++ )
printf("%d ",a[i]);
}
int compara ( int a[], int *pos )
{
int i ;
for( i = 0 ; i < MAX-(*pos) ; i++ )
if ( a[MAX-(*pos)] < a[i] )
return 0 ;

if ( *pos < MAX )
return ++(*pos) ;

else
return 0 ;
}

martes, 27 de noviembre de 2007

ReLiGioNdOmAbLeInDoMaBlE

Esta frase me gusta, la cual yo no inventé que dice así:
"¿Y tu como haces: mee o muu?"

Cada persona piensa que tiene la razón

-Así es, muchas personas en el mundo estan dispuestas a matar o morir por defender el concepto que tienen de dios. Lo que mata no son las balas, son las ideas. En fin, seguimos.

Tú tienes una idea de dios que recibiste de tu sociedad. No lo elegiste, te fue forzado. Ese concepto esta metido en lo más profundo de tu mente, y es bastante feo.


-¿Como que feo? Si es un dios que nos ama y nos cuida.

Tu dios, el dios que te han dado, no es un dios amoroso. Es un dios que te critica, que te juzga, que te castiga, que no te acepta.

Tu dios, el concepto de dios al que te han obligado a creer, no es un dios justo. Es un dios que te llena de limitaciones, de deseos, de instintos, de pasiones y después se enoja contigo por que respondes a ellas

Es un dios lleno de contradicciones, que te dice que eres libre pero que si no haces lo que él dice sufrirás por toda la eternidad. ¿Qué clase de libertad es esa?

No es un dios compasivo, es un dios dispuesto a castigarte por los errores que cometes; errores que son resultado de las limitaciones que él mismo te impulsó. ¿Dónde esta la compasión en eso?


-A ver, vamos por partes, ¿me obligaron a creer en ese dios?

-Si, cuando eras niño y antes de que lo preguntaras siquiera, te hablaron de papá dios y te mostraron imagenes suyas, te llevaron a lo que te digeron que era su casa. Y lo peor de todo es que te empezaron a inculcar temor hacia él: "Se va a enojar diosito"."Si dices mentiras dios te castigará."

-A mi me daba mucho miedo ir a la iglesia.

-Claro que te daba miedo, llena de imagenes de personas ensangrentadas, tristes y sufriendo. Te dijeron que te callaras y que estuvieras quieto. Parece que a ese dios no le gustan los niños que estan llenos de vida. Esa es una religión que promueve la culpa y la tristeza. No hay una sola imagen en las iglesias de personas sonriendo o celebrando.


-Pues nunca lo había visto así.

-Ese es el problema: Lo socialmente aceptado es pocas veces analizado.

¿Qué crees que siente un niño cuando le dicen que una persona que está clavada en una cruz, llena de heridas, murió por su culpa?


-supongo que siente una culpa y un miedo terribles.

-Seguro que si.


-Espera un momento, también tiene cosas buenas.

-¿Como qué?


-Bueno puedes sentir que alguien cuida de ti y tus seres queridos.

-Por un lado, y por el otro no tienes libertad ni privacidad, alguien te observa todo el tiempo, alguien siempre esta al pendiente de tus actos y lleva un registro de todo lo que haces. Alguien te dice siempre lo que tienes que hacer.

-Pues si, es muy pesado estar siempre "temeroso de dios" como dicen los mayores. Además sintiéndose desvalido y mal acerca de uno mismo. ¿Como es que nadie piensa esto?

-Pues porque lo repiten como pericos, están llenos de miedo y prefieren ignorar las contradicciones, justificar los actos atroces de sus líderes religiosos; a sentir el miedo de hacerse responsables de uno mismo.


-¿Qué tiene que ver ser responsable con dios?

-Pues que si simplemente aceptaste un concepto de dios sin cuestionarlo, si aceptaste un conjunto de reglas que te dieron otros, si las sigues por miedo al castigo, eres justamente lo que ellos quieren que seas: una oveja, un borrego. No eres responsable de nada.

lunes, 26 de noviembre de 2007

SeGuIdOrDeLiNeAbAsIcO

LM339

L293

Las señales C1 y C2 son los bits de control de los motores y estas señales son generadas en la etapa de sensado.

CoLaOpErAcIoNyMaNtEnImIeNtO


#include {stdio.h}
#include {stdlib.h}

/* estructura autoreferenciada */
struct nodoCola {
char dato; /* define dato como un char */
struct nodoCola *ptrSiguiente; /* apuntador nodoCola */
}; /* fin de la estructura nodoCola */

typedef struct nodoCola NodoCola;
typedef NodoCola *ptrNodoCola;

/* prototipos de las funciones */
void imprimeCola( ptrNodoCola ptrActual );
int estaesta( ptrNodoCola ptrCabeza );
char retirar( ptrNodoCola *ptrCabeza, ptrNodoCola *ptrTalon );
void agregar( ptrNodoCola *ptrCabeza, ptrNodoCola *ptrTalon,
char valor );
void instrucciones( void );

/* la funcion main comienza la ejecucion del programa */
int main()
{
ptrNodoCola ptrCabeza = NULL; /* incializa ptrCabeza */
ptrNodoCola ptrTalon = NULL; /* incializa ptrTalon */
int eleccion; /* eleccion de menu del usuario */
char elemento; /* entrada char del usuario */

instrucciones(); /* despliega el menu */
printf( "Eleccion:= " );
scanf( "%d", &eleccion );

/* mientras el usuario no introduzca 3 */
while ( eleccion != 3 ) {

switch( eleccion ) {

/* agrega el valor */
case 1:
printf( "Introduzca un caracter: " );
scanf( "\n%c", &elemento );
agregar( &ptrCabeza, &ptrTalon, elemento );
imprimeCola( ptrCabeza );
break;

/* retira el valor */
case 2:

/* si la cola no esta¡ vacia */
if ( !estaesta( ptrCabeza ) ) {
elemento = retirar( &ptrCabeza, &ptrTalon );
printf( "Se desenfilo %c.\n", elemento );
} /* fin de if */

imprimeCola( ptrCabeza );
break;

default:
printf( "Eleccion no valida.\n" );
instrucciones();
break;

} /* fin de switch */

printf( "Eleccion:= " );
scanf( "%d", &eleccion );
} /* fin de while */

printf( "Fin de programa.\n" );

return 0; /* indica terminacion exitosa */

} /* fin de main */

/* despliega las instrcciones del programa para el usuario */
void instrucciones( void )
{
printf ( "Introuzca su eleccion:\n"
" 1 para retirar un elemento a la cola\n"
" 2 para eliminar un elemento de la cola\n"
" 3 para terminar\n" );
} /* fin de la funcion instrucciones */

/* inserta un nodo al final de la cola */
void agregar( ptrNodoCola *ptrCabeza, ptrNodoCola *ptrTalon,
char valor )
{
ptrNodoCola ptrNuevo; /* apuntador a un nuevo nodo */

ptrNuevo = malloc( sizeof( NodoCola ) );

if ( ptrNuevo != NULL ) { /* es espacio disponible */
ptrNuevo->dato = valor;
ptrNuevo->ptrSiguiente = NULL;

/* si esta vacia inserta un nodo en la cabeza */
if ( estaesta( *ptrCabeza ) ) {
*ptrCabeza = ptrNuevo;
} /* fin de if */
else {
( *ptrTalon )->ptrSiguiente = ptrNuevo;
} /* fin de else */

*ptrTalon = ptrNuevo;
} /* fin de if */
else {
printf( "No se inserto %c. No hay memoria disponible.\n", valor );
} /* fin de else */

} /* fin de la funcion agregar */

/* elimina el nodo de la cabeza de la cola */
char retirar( ptrNodoCola *ptrCabeza, ptrNodoCola *ptrTalon )
{
char valor; /* valor del nodo */
ptrNodoCola tempPtr; /* apuntador a un nodo temporal */

valor = ( *ptrCabeza )->dato;
tempPtr = *ptrCabeza;
*ptrCabeza = ( *ptrCabeza )->ptrSiguiente;

/* si la cola esta¡ vacia */
if ( *ptrCabeza == NULL ) {
*ptrTalon = NULL;
} /* fin de if */

free( tempPtr );

return valor;

} /* fin de la funcion retirar */

/* Devuelve 1 si la cola esta¡ esta, de lo contrario devuelve 0 */
int estaesta( ptrNodoCola ptrCabeza )
{
return ptrCabeza == NULL;

} /* fin de la funcion estaesta */

/* Imprime la cola */
void imprimeCola( ptrNodoCola ptrActual )
{

/* si la cola esta vacia */
if ( ptrActual == NULL ) {
printf( "La cola esta vacia.\n" );
} /* fin de if */
else {
printf( "La cola es:\n" );

/* mientras no sea el final de la cola */
while ( ptrActual != NULL ) {
printf( "%c --> ", ptrActual->dato );
ptrActual = ptrActual->ptrSiguiente;
} /* fin de while */

printf( "NULL\n" );
} /* fin de else */

} /* fin de la funcion imprimeCola */

ReCoRrIdOdEuNaRbOl


//crea un arbol binario y lo recorre en
//preorden, inorden, y en posorden
#include {stdio.h}
#include {stdlib.h}
#include {time.h}

//estructura autorreferenciada
struct nodoArbol {
struct nodoArbol *ptrIzq ; //apuntador al subarbol izquierdo
int dato ; //valor del nodo
struct nodoArbol *ptrDer ;
} ; //fin de la estructura nodoArbol

typedef struct nodoArbol NodoArbol ; //sinonimo de la estructura nodoArbol
typedef NodoArbol *ptrNodoArbol ; //sinonimo de NodoArbol*

//prototipos
void insertaNodo( ptrNodoArbol *ptrArbol, int valor ) ;
void inOrden( ptrNodoArbol ptrArbol ) ;
void preOrden( ptrNodoArbol ptrArbol ) ;
void posOrden( ptrNodoArbol ptrArbol ) ;

//la funcion main comienza la ejecucion del programa
int main()
{
int i ; //contador para el ciclo 1 a 10
int elemento ; //variable para almacenar valores al azar
ptrNodoArbol ptrRaiz = NULL ; //arbol inicialmente vacio

srand ( time( NULL ) ) ;
printf("Los numeros colocados en elarbol son:\n") ;

//inserta valores al azar entre 1 y 15 en el arbol
for( i = 1 ; i <= 10 ; i++ ) {
elemento = rand() % 15 ;
printf("%3d",elemento) ;
insertaNodo( &ptrRaiz, elemento) ;
}
//recorre el arbol en preorden
printf("\n\nEl recorrido en preorden es:\n") ;
preOrden( ptrRaiz ) ;

//recorre el arbol en inorden
printf("\n\nEl recorrido en inorden es:\n") ;
preOrden( ptrRaiz ) ;

//recorre el arbol en posorden
printf("\n\nEl recorrido en posorden es:\n") ;
preOrden( ptrRaiz ) ;
printf("\n\n") ;
system("PAUSE") ;

return 0 ; //indica termonacion exitosa

}//fin del main

//inserta un nodo dentro del arbol
void insertaNodo( ptrNodoArbol *ptrArbol, int valor )
{

//si el arbol esta vacio
if( *ptrArbol == NULL ){
*ptrArbol = malloc( sizeof( NodoArbol ) ) ;

//si la memoria esta asignada, entonces asigna el dato
if( *ptrArbol != NULL ){
(*ptrArbol )->dato = valor ;
(*ptrArbol )->ptrIzq = NULL ;
(*ptrArbol )->ptrDer = NULL ;
}//fin del if
else{
printf("no se inseto %d. No hay memoria disponible. \n",valor) ;
}//fin del else
}//fin del if
else{//el arbol no esta vacio

//el dato a insertar es menor que el dato en el nodo actual
if( valor < ( *ptrArbol )-> dato ){
insertaNodo( &( ( *ptrArbol)->ptrIzq ), valor ) ;
}//fin del if

//el dato a insertar es mayor que el dato en el nodo actual
else if( valor > ( *ptrArbol )->dato ){
insertaNodo( &( ( *ptrArbol)->ptrDer ), valor ) ;
}// fin del else if

}//fin del else

}//fin de la funcion insertaNodo

//comienza el recorrido de la funcion inOrden
void inOrden( ptrNodoArbol ptrArbol ){

//si el arbol no esta vacio, entonces recorrelo
if( ptrArbol != NULL ){
inOrden( ptrArbol->ptrIzq ) ;
printf("%3d",ptrArbol->dato) ;
inOrden( ptrArbol->ptrDer ) ;
}//fin del if

}//fin de la funcion inOrden

//comienza el recorrido de la funcion preOrden
void preOrden( ptrNodoArbol ptrArbol ){

//si el arbol no esta vacio, entonces recorrelo
if( ptrArbol != NULL ){
printf("%3d",ptrArbol->dato) ;
preOrden( ptrArbol->ptrIzq ) ;
preOrden( ptrArbol->ptrDer ) ;
}//fin del if

}//fin de la funcion preOrden

//comienza el recorrido de la funcion posOrden
void posOrden( ptrNodoArbol ptrArbol ){

//si el arbol no esta vacio, entonces recorrelo
if( ptrArbol != NULL ){
posOrden( ptrArbol->ptrIzq ) ;
posOrden( ptrArbol->ptrDer ) ;
printf("%3d",ptrArbol->dato) ;

}//fin del if

}//fin de la funcio posOrden

domingo, 25 de noviembre de 2007

JaVaOpErAcIoNeSmAtEmAtIcAsFaCiLeS


import java.io.*;
class OperacionesMatematicas
{
public static void main(String arg[]) throws IOException
{
BufferedReader in = new BufferedReader(new InputStreamReader(System.in));
double operacion,ang_hex,ang_rad,numero;
int opcion,num,potencia;
System.out.println("Calculo : Seno y Coseno de un angulo, Logaritmo Natural, Raiz Cuadrada, potencia");
System.out.println("\n1. Seno y Coseno de un angulo ");
System.out.println("\n2. Logaritmo Natural ");
System.out.println("\n3. Raiz Cuadrada ");
System.out.println("\n4. Potencia ");
System.out.print("\n Ingrese Opcion : ");
operacion = Double.parseDouble(in.readLine());

if( Math.abs(operacion) == 1 )
{
System.out.println("\nEligio: Opcion "+operacion);
System.out.println("\nIngrese el valor del angulo [-18,18]\n");
ang_hex = Double.parseDouble(in.readLine());
if( Math.abs(ang_hex) <= 18000.0 )
{
ang_rad = (Math.PI / 180.0) * ang_hex;
System.out.println("\nAngulo en radianes : " + ang_rad);
System.out.println("\nOpciones : ");
System.out.println("\t1.- coseno");
System.out.println("\t2.- seno");
System.out.print("\nIngrese opcion : ");
opcion = Integer.parseInt(in.readLine());
System.out.println();
switch(opcion)
{
case 1 : System.out.println("cos("+ ang_hex + ") : " + Math.cos(ang_rad)); break;
case 2 : System.out.println("sin("+ ang_hex + ") : "+ Math.sin(ang_rad)); break;
default : System.out.println("La opcion no corresponde");
}
}
else System.out.println("\nEl valor del angulo no corresponde.");
}

if( Math.abs(operacion) == 2 )
{
System.out.println("\nEligio: Opcion "+operacion);
System.out.println("\nIngrese un valor positivo y mayor a cero\n");
numero = Double.parseDouble(in.readLine());
if( Math.abs(numero) > 0 )
{
System.out.println("log("+ numero + ") : "+ Math.log(numero));
}
else System.out.println("\nEl valor introducido no corresponde.");
}

if( Math.abs(operacion) == 3 )
{
System.out.println("\nEligio: Opcion "+operacion);
System.out.println("\nIngrese un valor positivo y mayor a cero\n");
numero = Double.parseDouble(in.readLine());
if( Math.abs(numero) >= 0 )
{
System.out.println("sqrt("+ numero + ") : "+ Math.sqrt(numero));
}
else System.out.println("\nEl valor introducido no corresponde\n\n.");
}

if( Math.abs(operacion) == 4 )
{
System.out.println("\nEligio: Opcion "+operacion);
System.out.println("\nIngrese un valor el cual quiere elevar\n\n");
num = Integer.parseInt(in.readLine());
System.out.println("\nIngrese la Potencia\n\n");
potencia = Integer.parseInt(in.readLine());
if( num != 0 )
{
System.out.println("pow("+ num + "," + potencia + ") : "+ Math.pow(num,potencia));
}
else System.out.println("\nEl valor 0 a la potencia que sea es cero\n\n");
}
}
}

viernes, 23 de noviembre de 2007

ReSpUeStAtRaNsItOrIaSiStEmAsUbAmOrTiGuAdO

Respuesta transitoria de un sistema de segundo orden para una función escalón unitario

Metodo de solución (desarrollo en fracciones parciales)







jueves, 22 de noviembre de 2007

TeOrEmAdEhEaViSiDe

Teorema de Heaviside

DiAgRaMaSdEbLoQuEs(ReDuCciOnEs)

Diagramas de bloques (Teorema de Mason)


Diagramas de bloques (Teorema de Mason)

miércoles, 21 de noviembre de 2007

PiLaPoStFiJa


/*Pila Posfija*/
#include {stdio.h}
#include {string.h}
#include {ctype.h}
#define N 40

void conv_posfija (char [], char []) ;
int prioridad (char) ;

main ()
{
char ei[N]={""} ;
char epos[N]={""} ;
printf ("\tPILA POSTFIJA\n") ;
printf("\n\n\tDame una expresion matematica: ") ;
gets(ei) ;
//ATRAPA DEL TECLADO UNA FUNCION MATEMATICA//
conv_posfija (ei, epos);
system("PAUSE") ;
return 0;
}

void conv_posfija (char ei [], char epos [])
{
int top=-1, i=0, c_pos=0;
char pila [N];

while (ei[i] != '\0')
{
//MIENTRAS NO SEA FIN DE LINEA//
if (ei[i] == '(')
{
pila[++top]=ei[i];
}
else
{
if (ei[i] == ')')
{

while (pila[top] != '(' && top > (-1))
epos[c_pos++]=pila[top--];
if (top > (-1))
top--;
}
else
{
if (!ispunct (ei [i]))
epos[c_pos++]=ei[i];
else
{
while (top > (-1) && prioridad(ei[i]) < prioridad(pila[top]))
{
//ABRE LA FUNCION PRIORIDAD PARA LO QUE NO SEA
//PARENTESIS//
if (pila[top] != '(')
epos[c_pos++]=pila[top];
--top;
}
top ++;
pila [top] = ei [i];
}
}
}
i++;
}
printf("\n\tla expresion postfija es: ") ;
while (top > (-1))
epos[c_pos++]=pila[top--];
epos[c_pos]='\0';
printf("\t\t");puts(epos);
}

int prioridad (char c)
{
int x;
switch (x)
{

case '^':x = 4;
break;
case '*':x = 3;
break;
case '/':x = 3;
break;
case '+':x = 2;
break;
case '-':x = 1;
break;
}
return x;
}

lunes, 19 de noviembre de 2007

ChIsTeSlIgErOs

Y QUE ES UN INGENIERO...

1. Un Ingeniero no es que sea prepotente, es que está rodeado de inútiles.
2. Un Ingeniero no tiene el ego muy Grande, es que el cuarto es muy chiquito
3. No es que quieran tener la razón siempre, es que los otros siempre se equivocan.
4. Un Ingeniero no es que carezca de sentimientos, es que Los otros son unas nenas lloronas
5. Un Ingeniero no tiene vida desorganizada, es solo que tiene un ritmo de vida particular.
6. Un Ingeniero no ve el mundo, lo cambia.
7. Un Ingeniero no es que sea un crecido, es que los simples mortales no lo comprenden.
8. Un Ingeniero no es un ser calculador y frío, simplemente, le parece divertido pasar por encima de la gente común.
9. Un Ingeniero no es un Enredador, es que los usuarios se enredan porque no entienden nada.
10. Un Ingeniero no es un crítico, es que los errores de la gente son muy evidentes.
11. Un Ingeniero no es un inútil para hacer tareas cotidianas, es que para que demonios gastan sus valiosas energías en bobadas.
12. No es que el trabajo los absorba es que... De que carajos estaba hablando?
13. No es que se crean la gran cosa, ES QUE LO SON!!!

Pero recuerden, ser tan cercano a la perfección tiene sus problemas así que los que no son ingenieros comprendan a estas tristes almas torturadas entre la genialidad y la incomprensión.

******

TEOREMA: "Todos los números enteros son interesantes"
DEMOSTRACION: Supongamos que no, por lo tanto existe un mínimo número entero no interesante. Este número es, obviamente interesante, lo cual contradice el hecho de que no es interesante. Por contradicción, la suposición de que existen números no interesantes es falsa.

******

Se abre el telon y se ven tres vectores linealmente independientes.
¿Cómo se llama la obra?
Rango 3.

******

¿Qué es un oso polar ?
Un oso rectangular, despues de un cambio de coordenadas.

******

Había una vez un ingeniero que tenia un don excepcional para arreglar cualquier aparato mecánico. Después de trabajar lealmente para su empresa durante mas de treinta años, se jubilo felizmente.
Algunos años mas tarde, la empresa contacto con el por un problema al parecer imposible de resolver que tenían en una maquina valorada en millones de dólares. Habían intentado todo para volver a poner en marchala máquina pero sin resultado.
Desesperados, llamaron al ingeniero jubilado que en el pasado había resuelto tantos problemas.
El ingeniero acepto el reto encantado. Se paso el día estudiando la inmensa maquina. Al final del día, marco una pequeña 'x' con tiza sobre un cierto componente de la maquina y dijo:
-"Aquí es donde esta el problema".
El componente se cambio y la maquina volvió a trabajar perfectamente.
La empresa recibió del ingeniero una factura de 50.000 dólares por sus servicios. Ante la petición de la empresa de una descripción detallada de la factura, el ingeniero respondió escuetamente:
- Por la marca de tiza: 1 dólar
- Por saber donde ponerla: 49.999 dólares
Se le pago hasta el ultimo centavo y el ingeniero volvió a su apacible retiro.

******

Un día, un ingeniero estaba cruzando una carretera cuando una rana le llamo y le dijo "Si me besas, me convertiré en una hermosa princesa".
Se agacho, recogió la rana y se la puso en el bolsillo.
La rana hablo de nuevo y dijo "Si me besas y me conviertes en una hermosa princesa, me quedare contigo durante una semana". El ingeniero saco la rana de su bolsillo, sonrió y la devolvió a su lugar.
Entonces, la rana grito "Si me besas y me conviertes en princesa, me quedare contigo y haré lo que quieras".
Nuevamente, el ingeniero saco la rana, sonrió y la volvió a meter en el bolsillo.
Finalmente, la rana pregunto:
- Pero bueno, ¿qué pasa? Te he dicho que soy una hermosa princesa, que me quedare contigo una semana y que haré lo que quieras. Entonces...¿por que no me das un beso?
- Mira, yo soy ingeniero. No tengo tiempo para una novia, ¡pero una rana que habla.... mola un montón...!.

******

En una fiesta de funciones está bailando 'seno de x' con 'coseno de x', 'seno de x' se da cuenta de 'e a la x' está sentado solo a un costado de la pista. Entonces se le acerca amigablemente y le dice: * ¡Ven a bailar, INTÉGRATE!. Y él le responde: * No, para qué?. Si da igual.

******

¿Qué es un niño complejo?.
Un niño con la madre real y el padre imaginario.

******

Se murió un ingeniero y se fue a reportar a las puertas del Cielo.San Pedro buscó en su archivo, pero últimamente andaba un poco desorganizado y no lo encontró en la maraña de papeles, así que le dijo, "Lo lamento, no estás en listas...".De modo que el ingeniero se fue a tocar la puerta del infierno y le dieron albergue y alojamiento inmediatamente.Poco tiempo pasó y el ingeniero se cansó de padecer las miserias del infierno, y se puso a diseñar y construir mejoras. Al paso del tiempo, ya tenían ISO 9000, sistema de monitoreo de cenizas, aire acondicionado, inodoros con drenaje, escaleras eléctricas, equipos electrónicos, redes de telecomunicaciones, programas de mantenimiento predictivo, sistemas de control visual etc., etc., etc. ... y el "Inge" se hizo de muy buena reputación.Un día Dios le habló al Diablo por teléfono, y con tono de sospecha le preguntó... "¿Y cómo han estado por allá en el infierno?" "¡¡Estamos a todo trapo!!! Tenemos ISO 9000, sistema de monitoreo de cenizas, aire acondicionado, inodoros con drenaje, equipos electrónicos, internet, etc. Mi dirección de mail es, apúntate esto mi estimado, es: satan@gmail.com Y no se cuál sea la próxima sorpresa del Ingeniero!". "¿Qué?, ¡¿QUÉ?!. ¿Tienen un ingeniero allá?? Eso es un error, nunca debió haber llegado ahí un ingeniero. ¡Me lo mandas para acá inmediatamente!"."¡Ni loco!. Ya me gustó tener un ingeniero en la organización, y me voy a quedar con él eternamente". "Mándalo para acá, o ¡¡TE DEMANDARE!!...".Y el diablo, con la visión nublada por la tremenda carcajada que soltó, le contesta a Dios:"Sí, ¿cómo no?, y no más que por curiosidad... ¿DE DONDE CARAJO VAS A SACAR UN ABOGADO?".

******

Dios es real, a menos que sea declarado entero.

******

Jesús a sus discípulos: en verdad os digo: y = x²+3x+4.
Los discípulos empiezan a hablar entre sí hasta que Pedro se dirige a Jesús y le dice: Maestro no entendemos.
Es una parábola bruto.

******
¿2+2=?.

Ingeniero: 4.
Físico: 4.000000004 ± 0.00000006.
Matemático: espere, solo unos minutos más, ya he probado que la solución existe y es única, ahora la estoy acotando.
Filósofo: ¿qué quiere decir 2+2?.
Lógico: defina mejor 2+2 y le responderé.

******

¿Cómo se calcula el volumen de una vaca?.

Ingeniero: metemos la vaca dentro de una gran cuba de agua y la diferencia de volumen es la vaca.
Matemático: parametrizamos la superficie de la vaca y se calcula el volumen mediante una integral triple.
Físico: supongamos que la vaca es esférica.

******

¿Porqué los osos blancos se disuelven en agua?.
* Por que son polares.

******

¿Qué hace un electrón cuando cae al suelo?.
* Planck.

******

Reza la leyenda que, cuando Dios dotó a los hombres con el conocimiento de cómo construir y proyectar cosas, determinó que ese "saber" quedaría restricto a un grupo muy pequeño y seleccionado. Pero, en este pequeño grupo, donde todos se creen "semi-dioses", ya había aquél que iria a roer la cuerda y traicionar las determinaciones divinas… y entonces, sucedió lo peor...Dios, tomado por la ira resolvió hacer valer algunos mandamientos para estos que lo traicionaron: 1º No tendrás vida personal, familiar o sentimental. 2º No verás a tu hijo crecer. 3º No tendrás feriados, fines de semana o cualquier otro tipo de días de descanso. 4º Tendrás gastritis, si tienes suerte. Normalmente, tendrás úlcera. 5º La prisa será tu único amigo y tus refecciones principales serán los sandwichs, las pizzas y el china in a box. 6º Tus cabellos se volverán blancos antes de tiempo, si te sobran cabellos. 7º Tu salud mental será puesta en jaque antes que completes 5 años de trabajo;8º Dormir será considerado período de descanso, luego, no dormirás bien, nunca. 9º Trabajo será tu asunto preferido, talvez el único. 10º Las personas serán divididas en 2 tipos: las que entienden de Ingenieria y las que no entienden. Y verás gracia en eso. 11º La máquina de café será tu mejor colega de trabajo, pero, la cafeína no te hará más efecto.12º Happy Hours serán excelentes oportunidades de tener algún tipo de contacto con otras personas locas como tú.13º Tendrás sueños, con cálculos o proveedores, y no raro, resolverás problemas de trabajo en este período de sueño. 14º Exibirás ojeras como trofeo de guerra. Y, lo peor... 15º INEXPLICAVELMENTE, ¡¡¡TE GUSTARÁ TODO ESTO!!!

******

¿Y cuándo eructa?.
* Boooooorh.

******

Dos vectores se encuentran y uno le dice al otro:
¿Tienes un momento?.

******

¿Qué le dice la curva a la tangente?.
* No me toques.

******

Me gustan los polinomios, pero solo hasta cierto grado.

******

¿Qué le dice un superconductor a otro?.
Que frío hace, no resisto más.

******

Profesor: a ver, dígame usted una forma de comprobar el efecto Doppler, usando la luz en vez del sonido?.
Alumno: hmmm, cuando es de noche, las luces de los coches se ven blancas cuando se acercan y rojas cuando se alejan.

******
Las tres leyes de la termodinámica:

1.- No puedes ganar.

2.- No puedes empatar.

3.- No puedes abandonar el juego.

******

Para los que saben informática:

Para entender que es la recursividad, antes hay que entender que es la recursividad.

Hardware, es aquello que acaba estropeándose.
Software, es aquello que acaba no funcionando.
Hardware, es aquello a lo que pueden dar patadas.
Software, es aquello a lo que solo puedes maldecir.

******

Un científico, es alguien que lo sabe todo de nada, mientras que un filósofo, es aquel que sabe nada de todo, (¿entendiste?).



'No somos más ignorantes que ingenuos. Sabemos siempre lo que creemos que nos conviene saber'.

domingo, 11 de noviembre de 2007

LaPlAcEtRaNsFoRm&TrAnSfErFuNcIoN

Transformada de Laplace y Función de Transferencia

Hoja 1





Hoja 2

sábado, 10 de noviembre de 2007

SuMaPiLaDiNaMiCa


//suma en una pila
#include {stdio.h}
#include {stdlib.h}
#define MAX 10000
struct nodoPila /*estructura auto referenciada*/
{
int dato ; /*define un dato como int*/
struct nodoPila *ptrSiguiente ; /*apuntador a nodoPila*/
} ; /*fin de la estructura nodoPila*/
typedef struct nodoPila NodoPila ; /*sinonimo de la estructura nodoPila*/
typedef NodoPila *ptrNodoPila ; /*sinonimo para nodoPila*/

/*PROTOTIPOS*/
void empujar(ptrNodoPila *ptrCima, int info) ;
int sacar(ptrNodoPila *ptrCima) ;
int estaVacia(ptrNodoPila ptrCima) ;
void imprimePila(ptrNodoPila ptrActual) ;
void instrucciones(void) ;
void imprimeSuma(int suma) ;

/*la funcion main comienza la ejecucion del programa*/

int main()
{
ptrNodoPila ptrPila = NULL ; /*apunta al tope de la pila*/
int eleccion ;/*eleccion del menu del usuario*/
int valor ;/*entrada del usuario*/
int sum[MAX] ;
int suma = 0 ;
int i, n = 0 ;
for( i=0 ; i{10000 ; i++ )
sum[i]=0;

instrucciones() ; /*despliega el menu*/
printf("seleccion: ") ;
scanf("%d",&eleccion) ;

/*mientras el usuario no introduzca 3*/

while( eleccion != 3 )
{
switch(eleccion) {
/*empuja el valor dentro de la pila*/

case 1:
printf("introduzca un entero: ") ;
scanf("%d",&valor) ;
sum[n]=valor ;
suma += sum[n] ;
empujar(&ptrPila, valor) ;
imprimePila(ptrPila) ;
n++ ;
printf("la secuencia de la suma es: ");
printf("%d ",sum[0]) ;
for(i=1;i{n;i++)
printf("+ (%d) ",sum[i]) ;
printf("\n") ;
break ;
/*saca el valor de la pila*/

case 2:
/*si la pila no esta vacia*/

if(!estaVacia(ptrPila))
{
printf("el valor sacado es %d.\n",sacar(&ptrPila)) ;
}
if(n>0)
{
n-- ;
suma -= sum[n] ;
printf("la secuencia de la suma es: ") ;
printf("%d ",sum[0]) ;
for(i=1;i{n;i++)
printf("+ (%d) ",sum[i]) ;
printf("\n") ;
}
/*fin del if*/
imprimePila(ptrPila) ;

break ;

default :
printf("Eleccion no valida.\n\n") ;

instrucciones() ;
break ;
} /*fin del switch*/

printf("seleccion: ") ;
scanf("%d",&eleccion) ;

}/*fin del while*/

imprimeSuma(suma) ;
printf("fin del programa.\n") ;
system("PAUSE") ;
return 0 ; /*indica terminacion exitosa*/
}
/*fin del main*/

/*despliega las instrucciones del programa para el usuario*/

void instrucciones(void)
{
printf("introduzca eleccion:\n"
"1 para empujar el valor dentro de la pila\n"
"2 para sacar un valor de la pila\n"
"3 para terminar el programa\n") ;

}/*fin de la funcion instrucciones*/

/*insertar un nodo en la cima de la pila*/

void empujar( ptrNodoPila *ptrCima, int info )
{
ptrNodoPila ptrNuevo ; /*apuntador al nuevo nodo*/
ptrNuevo = malloc( sizeof( NodoPila ) ) ;

/*insertar el nodo en la cima de la pila*/

if( ptrNuevo != NULL )
{
ptrNuevo->dato=info ;
ptrNuevo->ptrSiguiente=*ptrCima ;
*ptrCima=ptrNuevo ;
} /*fin del if*/

else { /*no queda espacio disponible*/
printf("%d no se inserto. Memoria insuficiente.\n",info) ;
}/*fin del else*/
}/*fin de la funcion empujar*/

/*elimina un nodo de la cima de la pila*/

int sacar(ptrNodoPila *ptrCima)
{
ptrNodoPila ptrTemp ; /*apuntador a un nodo temporal*/
int valorElim ; /*valor del nodo*/
ptrTemp=*ptrCima ;
valorElim=(*ptrCima)->dato ;
*ptrCima=(*ptrCima)->ptrSiguiente ;
free(ptrTemp) ;
return valorElim ;

} /*fin de la funcion sacar*/

/*imprime la Pila*/

void imprimePila(ptrNodoPila ptrActual)
{
/*si la pila esta vacia*/
if(ptrActual == NULL)
{
printf("la pila esta vacia.\n") ;
}/*fin del if*/
else {
printf("la pila es: \n") ;

/*mientras no sea el final de la pila*/

while( ptrActual != NULL )
{
printf("%d->",ptrActual->dato) ;
ptrActual=ptrActual->ptrSiguiente ;
}/*fin del while*/

printf("NULL\n") ;
}/*FIN DEL ELSE*/
}/*FIN DE LA FUNCION imprimePila*/

/*devuelve 1 si la pila esta vacia, de lo contrario 0 */

int estaVacia(ptrNodoPila ptrCima)
{
return ptrCima == NULL ;

}
/*FIN DE LA FUNCION estaVacia*/

void imprimeSuma(int suma)
{
printf("la suma es: %d\n",suma) ;
}
/*FIN DE LA FUNCION imprimeSuma*/

miércoles, 7 de noviembre de 2007

ClOsEaWiNdOWtHaTdOeSn'TrEsPoNsE

En ocasiones hay aplicaciones y ventanas que se quedan fritas, no responden. La verdad es que no pasa muy a menudo, pero sucede de vez en cuando. Con este consejo algunos descubrirán una forma mucho más sencilla para cerrarlas rápidamente que mirar el proceso y cerrarlo manualmente.

XKILL

La mayoría ya conoceréis el comando “kill“, que sirve para matar/cerrar un proceso indicado con un identificador numérico que sigue al comando.

xkill hace lo mismo sólo que no le especificamos qué tiene que cerrar, al menos no lo hacemos manualmente. Tras ejecutar este comando en consola o en “Alt+F2“, el puntero cambiará de forma por una cruceta o una simpática calavera (es el caso de Ubuntu). Hacemos click izquierdo sobre la ventana que queremos cerrar y lo hará.

Cuidado, porque no cerrará sólo la que marquemos, sino todas las que sean iguales. Es decir, si matamos una terminal, se cerrarán todas, al igual que si lo hacemos sobre una ventana de nautilus todas se cerrarán.

Obviamente la utilidad está para aquellas ventanas que se queden oscurecidas y no respondan, no para cerrar una ventana “sana“.

APPLET "FORZAR CIERRE"

Y por otro lado tenemos un pequeño applet que podemos añadir en un panel. Sirve para lo mismo sólo que no tenemos que introducir el comando.

Hacemos botón derecho sobre un panel, seleccionamos “Añadir al panel…” y buscamos en la sección “Escritorio y ventanas” un icono con una ventana rota que se llama “Forzar cierre“. Lo añadimos con un doble click sobre él y aparecerá esa ventana rota en el panel.

Cuando pinchamos sobre dicho icono el icono cambiará por la cruceta y nos saldrá unas pequeñas indicaciones en el centro que nos dice que pinchemos sobre la ventana que queremos cerrar o pulsemos escape para cancelarlo.

Pinchamos sobre la ventana y, al igual que antes, se cerrarán todas las ventanas de ese tipo.


entrada original: entre tuxes y pepinos

LaReInAaLiCiA

............::.....:::....::::....:::.....::............

-¿Podría decirme, por favor si la, ...? -comenzó a decir con cierta timidez, dirigiendose a la Reina Roja.

-¡No hables si no te preguntan! -dijo ella interrumpiendola con brusquedad.

-Bueno, pero si todo el mundo siguiera esa regla -objetó Alicia, un poco molesta y con ganas de discutir-; es decir, si nadie hablase hasta que alguien le preguntara algo, nadie diría nada, pues no se daría nunca la pregunta.

-eso es ridículo-gritó la reina-¿Es que no te das cuenta, niña que...? -Y entonces se interrumpió, frunciendo el ceño, y se dispuso a cambiar el tema de la conversación -¡ Con qué derecho te atribuyes el título de reina!...¡Entérate que para ser reina se requiere aprobar el correspondiente examen!; así que más vale poner manos a la obra, pues el tiempo apremia.

-Yo solamente quise decir que...! -se excusó Alicia, con gran humildad.
Las dos reinas se miraron de una manera significativa para ellas, y la Reina Roja, con un cierto estremecimiento, observó:

-Ella pretende haber dicho que si fuese reina...

-Pero ella ha querido decir mucho más que eso -dijo la Reina Blanca, frotándose las manos con entusiasmo o nerviosismo-, ¡mucho más que eso!

-Pues sí, así es, y tú lo sabes perfectamente -dijo la Reina Roja a Alicia en un tono de reproche-; las reglas son: Primera: Decir siempre la verdad... Segunda: Siempre pensar antes de hablar... Tercera: Escribir con buena letra.

-¡Pues yo estoy segura de que nunca quise decir...! -comenzó a decir Alicia, a modo de defensa, pero la Reina Roja le cortó la palabra.

-¡Eso es precisamente lo que se te reprocha!: que nunca quisiste decir nada... A ver, dime, ¿para qué sirve una niña que no quiere decir nada?... Hasta un chiste quiere decir algo..., y una niña, supongo, es más importante que un chiste; eso no podrías negarlo, aunque lo jurases con ambas manos.

-¡Yo no juro con las manos! -dijo Alicia, molesta.

-Yo no he dicho que lo hagas -dijo la Reina Roja-, lo que yo dije es que no podrías aunque quisieras.

-La actitud de esta niña -observó la Reina Blanca, es la típica de la persona que quiere negar algo..., ¡pero no sabe qué negar!

-¡Y vaya que tiene mal carácter! -agregó la Reina Roja, y después se hizó un incómodo silencio que duró varios minutos

Por fin la Reina Roja rompió el silencio al dirigirse a la Blanca:

-Te invito a la cena que da Alicia esta noche.

Entonces la Reina Blanca esbozó una sonriza cómplice y dijo a su vez:

-Y yo te invito a ti.

-Bueno, ¡pues ahora me entero de que daré una cena! -dijo Alicia entre sorprendida y molesta-; pero si soy yo la que va a dar la cena, creo que deberia ser yo la que invitara a la misma, ¿no creen?

-Estamos siendo muy condescendientes contigo, pero cre que te hacen mucha falta lecciones de buenos modales -observó la Reina Roja.

-Los buenos modales no se aprenden con lecciones -objetó Alicia-; las lecciones son para aprender a hacer cuentas, y cosas por el estilo.

-¿Y tu sabes sumar? -preguntó sarcástica la Reina Blanca-; a ver: ¿cuanto es uno más uno, más uno, más uno, más uno, más uno, más uno, más uno, más uno, más uno?

-Pues no lo sé -dijo Alicia, desconcertada-; ya perdí la cuenta.

-¡No es capaz de hacer una simple adición! -dijo la Reina Roja-... ¿y que tal una sustracción?: resta nueve de ocho.

-¿Nueve de ocho?, ¡imposible! -contestó Alicia muy segura.

-¡Tampoco sabe restar! -dijo la Reina Blanca-; ¿sabrás entonces hacer una división?..., a ver divide un pan entre un cuchillo... ¿cuál es la respuesta?

-Bueno..., supongo... -comenzó a decir Alicia, pero fue interrumpida por la Reina Roja- Se obtienen tostadas de pan con mantequilla, por supuesto... a ver, probemos con otra resta: Si a un perro le quitas un hueso, ¿qué queda?

Alicia reflexionó un rato.

-Desde luego que no queda el hueso, ya que lo hemos tomado del perro... Y es de suponerse que el perro tampoco va a quedarse tan tranquilo, puesto que le hemos quitado un hueso, por lo que intentará morderme... ¡Así que al final yo tampoco me quedaría!

-Sucede entonces que no queda nada?

-Si, creo que esa es la respuesta -dijo Alicia.

-¡Pues como siempre te equivocas! -le gritó la Reina Roja-. El perro perdería la paciencia, ¿no crees?

-Pues..., sí, creo que sí -respondió Alicia, con cautela.

-Entonces, si el perro se aleja, lo que queda es solamente la paciencia -dijo la reina, en un tono triunfal.

Reflexionando, Alicia dijo con la mayor serenidad que pudo:

-¿Y si fueron por caminos distintos? -pero no pudo dejar de pensar en la cantiad de tonterías que se estaban diciendo.

-¡La verdas es que no tienes la menor idea de las operaciones matemáticas!- dijeron a coro las reinas.