miércoles, 19 de diciembre de 2007

BrOmAsDeLpAnDaShOw

bRoMaS dEl PaNdA sHoW

This is the url, place it on vlc or rythmbox

http://sc56.panda.fast-serv.com:80/

ReBoOtUbUnTuWiThSoMeKeYs

En caso de que Ubuntu no reaccione a nada y vos deseaís reiniciar vuestro sistema
tendraís que teclear lo siguiente:

* Pulsa Alt+ ImprPantalla y mantenlos pulsados.
* Teclea RSEIUB y tu sistema se reiniciará.

Aquí está lo que hace cada tecla con detalle:

* R devuelve el control al teclado.
* S sincroniza.
* E manda a los procesos la señal term.
* I manda a los procesos la señal kill.
* U desmonta los sistemas de ficheros.
* B reinicia el sistema.

martes, 18 de diciembre de 2007

VlCmEdIaPlAyEr



VLC media player is a highly portable multimedia player for various audio and video formats (MPEG-1, MPEG-2, MPEG-4, DivX, mp3, ogg, ...) as well as DVDs, VCDs, and various streaming protocols. It can also be used as a server to stream in unicast or multicast in IPv4 or IPv6 on a high-bandwidth network.

sudo apt-get install vlc



WEbPaGe

sábado, 15 de diciembre de 2007

sábado, 1 de diciembre de 2007

LiStAoPeRaCiOnYmAnTeNiMiEnTo


#include {stdio.h}
#include {stdlib.h}
/* estructura auto_referenciada */
struct nodoLista {
char dato; /* cada nodoLista contiene un caracter */
struct nodoLista *ptrSiguiente; /* apuntador al siguiente nodo */
}; /* fin de la estructura nodoLista */

typedef struct nodoLista NodoLista; /* sinonimo para la estructura nodoLista */
typedef NodoLista *ptrNodoLista; /* sinonimo para de NodoLista* */

/* prototipos */
void insertar( ptrNodoLista *ptrS, char valor );
char eliminar( ptrNodoLista *ptrS, char valor );
int estaVacia( ptrNodoLista ptrS );
void imprimeLista( ptrNodoLista ptrActual );
void instrucciones( void );

int main()
{
ptrNodoLista ptrInicial = NULL; /* inicialmente no existen nodos */
int eleccion; /* eleccion del usuario */
char elemento; /* caracter introducido por el usuario */

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

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

switch ( eleccion ) {

case 1:
printf( "Introduzca un caracter: " );
scanf( "\n%c", &elemento );
insertar( &ptrInicial, elemento ); /* inserta el elemento en la lista */
imprimeLista( ptrInicial );
break;

case 2:

/* si la lista no esta vacia */
if ( !estaVacia( ptrInicial ) ) {
printf( "Introduzca un caracter para eliminar: " );
scanf( "\n%c", &elemento );

/* si encuentra el caracter, lo remueve */
if ( eliminar( &ptrInicial, elemento ) ) { /* elimina elemento */
printf( "caracter %c eliminado.\n", elemento );
imprimeLista( ptrInicial );
} /* fin de if */
else {
printf( "no se encuentra el caracter %c.\n\n", elemento );
} /* fin de else */

} /* fin de if */
else {
printf( "La lista esta vacia.\n\n" );
} /* fin de else */

break;

default:
printf( "Opcion invalida.\n\n" );
instrucciones();
break;

} /* fin de switch */

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

printf( "Fin de la ejecucion.\n" );

return 0; /* indica termincacion exitosa */

} /* fin de main */

/* despliega las instrucciones del programa para el usuario */
void instrucciones( void )
{
printf( "Introduzca su eleccion:\n"
" 1 para insertar un elemento en la lista.\n"
" 2 para eliminar un elemento de la lista.\n"
" 3 para terminar.\n" );
} /* fin de la funcion instrucciones */

/* Inserta un nuevo valor dentro de la lista en orden */
void insertar( ptrNodoLista *ptrS, char valor )
{
ptrNodoLista ptrNuevo; /* apuntador a un nuevo nodo */
ptrNodoLista ptrAnterior; /* apuntador a un nodo previo de la lista */
ptrNodoLista ptrActual; /* apuntador al nodo actual de la lista */

ptrNuevo = malloc( sizeof( NodoLista ) ); /* crea un nodo */

if ( ptrNuevo != NULL ) { /* es espacio disponible */
ptrNuevo->dato = valor; /* coloca el valor en el nodo */
ptrNuevo->ptrSiguiente = NULL; /* el nodo no se liga a otro nodo */

ptrAnterior = NULL;
ptrActual = *ptrS;

/* ciclo para localizar la ubicacion correcta en la lista */
while ( ptrActual != NULL && valor > ptrActual->dato ) {
ptrAnterior = ptrActual; /* entra al ... */
ptrActual = ptrActual->ptrSiguiente; /* ... siguiente nodo */
} /* fin de while */

/* inserta un nuevo nodo al principio de la lista */
if ( ptrAnterior == NULL ) {
ptrNuevo->ptrSiguiente = *ptrS;
*ptrS = ptrNuevo;
} /* fin de if */
else { /* inserta un nuevo nodo entre ptrAnterior y ptrActual */
ptrAnterior->ptrSiguiente = ptrNuevo;
ptrNuevo->ptrSiguiente = ptrActual;
} /* fin de else */

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

} /* fin de la funcion insertar */

/* Elimina un elemento de la lista */
char eliminar( ptrNodoLista *ptrS, char valor )
{
ptrNodoLista ptrAnterior; /* apuntador a un nodo previo de la lista */
ptrNodoLista ptrActual; /* apuntador al nodo actual de la lista */
ptrNodoLista tempPtr; /* apuntador a un nodo temporal */

/* elimina el primer nodo */
if ( valor == ( *ptrS )->dato ) {
tempPtr = *ptrS; /* almacena el nodo a eliminar */
*ptrS = ( *ptrS )->ptrSiguiente; /* desata el nodo */
free( tempPtr ); /* libera el nodo desatado */
return valor;
} /* fin de if */
else {
ptrAnterior = *ptrS;
ptrActual = ( *ptrS )->ptrSiguiente;

/* ciclo para localizar la ubicacion correcta en la lista */
while ( ptrActual != NULL && ptrActual->dato != valor ) {
ptrAnterior = ptrActual; /* entra al ... */
ptrActual = ptrActual->ptrSiguiente; /* ... siguiente nodo */
} /* fin de while */

/* elimina el nodo de ptrActual */
if ( ptrActual != NULL ) {
tempPtr = ptrActual;
ptrAnterior->ptrSiguiente = ptrActual->ptrSiguiente;
free( tempPtr );
return valor;
} /* fin de if */

} /* fin de else */

return '\0';

} /* fin de la funcion eliminar */

/* Devuelve 1 si la lista esta vacia, de lo contrario, 0 */
int estaVacia( ptrNodoLista ptrS )
{
return ptrS == NULL;

} /* fin de la funcion estaVacia */

/* Imprime la lista */
void imprimeLista( ptrNodoLista ptrActual )
{

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

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

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

} /* fin de la funcion imprimeLista */

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.

sábado, 20 de octubre de 2007

MoDeLaDoSiStEmAdEcOmPuErTa

Modelado Sistema de Compuerta

HoJa1


HoJa2

viernes, 19 de octubre de 2007

DiVeRgEnCiAdEfInIcIoN

"La divergencia de un vector A es el limite de la cantidas de flujo por unidad de volumen que sale de una pequeña superficie cerrada cuando el volumen tiende a cero"

La interpretación física de la divergencia proporcionada por esta afirmación es útil a menudo en la obtención de información cualitativa acerca de la divergencia de un campo vectorial sin recurrir a la investigación matemática. Por ejemplo, considérese la divergencia de la velocidad del agua en una bañera después de que el desgue ha sido abierto. El flujo neto a través de cualquier superficie que se encuentre enteramente dentro del agua debe ser cero. El agua es esencialmente incompresible, y la cantidad de agua que entra y sale endiferentes regiones de la sueprficie cerrada debe ser la mísma. de aquí que la divergencia de suvelocidad sea cero

FuEnTeSdEvOlTaJeYcOrRiEnTe

Fuentes de voltaje y corriente

EsPeCtRoDeFrEcUeNcIAs

Espectro De Frecuencias

DiAgRaMaSdEcUeRpOlIbRe

Diagramas de curpo libre

¿Puede dibujarlos cualquiera?

Los diagramas de cuerpo libre son un instrimento fundamental en el estudio de la Mecánica. La resolucion de los problemas, tamto de estática como de dinámica, comienza con la elaboración de uno de éstos diagramas. Cuando Newton menciona la palabra "fuerza" al enunciar sus leyes, en especial la segunda, se refiere a la resultante del sistema que actúa sobre un cuerpo. Y por ello resulta imprescindible determinar, m,ediante un diagrama de cuerpo libre, qué cuerpo es el que está estudiando y cuáles son sus límites. Si, según el viejo adagio griego quien bien comienza tiene la mitad hecha, un buen diagrama es medio problema resuelto.

La naturaleza de los diagramas de cuerpo libre es muy simple. Se trata de un dibujo que representa el cuerpo en estudio, en que que se señalan sus características geométricas y las fuerzas externas que actúan sobre él.

Se llaman diagramas de cuerpo libre por que solo debe dibujarse el cuerpo en estudio, aislado del resto. Y una de las claves en su correcta elaboración es la palabra "externas": un diagrama de cuerpo libre de ningún modo incluye todas las fuerzas que actúan sobre un cuerpo, sino solamente las que otros cuerpos ejeccen sobre él.

Puesto que las fuerzas que obran sobre un cuerpo solamente pueden ser ejercidas por otro cuerpo no hace falta una especial perspicacia para determinar cuáles son las fuerzas externas que deben representarse en un diagrama de cuerpo libre. Además las fuerzas se ejercen por contacto o a distancia. pero las que se ejercen a distancia o son gravitatorias o son magnéticas. O sea que, además del peso de un cuerpo solo aparecen fuerzas en los contáctos del cuerpo en estudio con los otros cuerpos

Tomado del profesor Ing. Juan Ocáriz Castelazo

SubirPeldañosAlCielo

¡Oh hermanos mios! Existen tablas creadas por el cansancio y tablas creadas por la pereza. Aunque cuando hablan del mismo modo, quieren ser oídas de modo distinto.
¡Mirad a ese que languidece! ¡Solo un palmo le separa de su meta! No obstante, a causa de la fatiga, se ha tumbado tercamente en la arena. ¡Es un valiente!
Fatigado bosteza del camino y de la tierra, y de su meta, y de sí mismo: no quiere dar un paso más. ¡Es un valiente!
Ahora el sol clava sus dardos en él, le abrasa; y los perros lamen su sudor: más allí está, tumbado tercamente, y prefiere languidecer, ¡desmayarse a un palmo de su meta! En verdad, habría que llevarle arrastrándole por los pelos hasta su mismo cielo. ¡Es un héroe!
Mejor será dejarlo tirado ahí donde se tumbó, hasta que le llegue el sueño, el consolador, con lluvia refrescante.
¡Dejadle acostado hasta que se despierte por sí mismo, hasta que renuncie a su fatiga y a lo que en él enseñaba fatiga! Pero auyentad de él a los perros, a los hipócritas, perezosos, y a todo ese enjambre de sabandijas de los {cultos} que se regala con el sudor de los héroes.

VivirMejor

Hermanos mios, ¿Me mostraré cruel si os digo: a lo que esta cayendo debe dársele, además un empujón?
Todas las cosas de hoy estan cayendo, decaen: quién querría sostenerlas! Pero yo, por mi parte, ¡Quiero darles además un empujoncito!
¿Conocéis la voluptuosidad que hace rodar las piedras en profundidades cortadas a pico? ¡Mirad a esos hombres de hoy, cómo ruedan hacia mis profundidades!
Yo soy un preludio de los mejores actores, hermanos míos, y un ejemplo. ¡Obrad según mi ejemplo!
A quién no le enseñéis a volar, enseñadle ¡a caer más deprisa!

ExampleQuicksort.c


//ExAaaaaAAAAaamPlE QuIcKsOooOOOooRt *Ordenating words*
//Change your Software if you wanna be better
#include {stdio.h}
#include {string.h}

void quickSortMain(char items[][10], int count);
void quickSort(char items[][10], int left, int right);

int main(void)
{
int i;
char str[][10] = { "openpaco","change","the","software"};

quickSortMain(str, 4);

for(i=0; i<4; i++) {
printf("%s ", str[i]);
}
printf("\n") ;
system("PAUSE") ;
return 0;

}
void quickSortMain(char items[][10], int count)
{
quickSort(items, 0, count-1);
}

void quickSort(char items[][10], int left, int right)
{
int i, j;
char *x;
char temp[10];

i = left;
j = right;
x = items[(left+right)/2];

do {
while((strcmp(items[i],x) < 0) && (i < right)) {
i++;
}
while((strcmp(items[j],x) > 0) && (j > left)) {
j--;
}
if(i <= j) {
strcpy(temp, items[i]);
strcpy(items[i], items[j]);
strcpy(items[j], temp);
i++;
j--;
}
} while(i <= j);

if(left < j) {
quickSort(items, left, j);
}
if(i < right) {
quickSort(items, i, right);
}
}

jueves, 18 de octubre de 2007

IdEnTiFiCaNdOaLoSlInUxErOs…

No habia oido nada parecido aunque en un chiste decia otras cosas

- En lugar de decir: te puedo presentar a una amiga
dicen: te puedo montar a una amiga

- Cuando te dicen que cortes a tu novia(o) dicen: oye ya dale kill a tu novio no ?

- Despues de decirte una serie de pasos complicados terminan la expresion con facil
ejemplo:
“primero te descargar el paquete getxa, con el gpte, luego lo descomprimex con el tar xadf-r, compilas el kernel. si te marco error te metes al vi/ext/org.conf, modificas el user –rx– , y ya, facil…”

- Siempre buscan errores en las ventanas….. incluso en las que estan en las paredes de su casa...

- Creen que por ser linuxeros no se deben de bañar, cortarse el cabello, afeitarse, usar calzado cerrado o incluso pantalones…

- En lugar de castigar a sus hijos, solo les “restringen los permisos” ….

- No saben que es una reposteria pero si saben que es un repositorio

- Siempre sueñan en el Doom y que andan “matando demonios”

- Siempre quieren tener su escritorio “limpio”

- Piensan que hay muchas mujeres diferentes, algunas mas complicadas que otras, algunas con mejores “graficas” que otras, otras que si les metes mano ya te chingaste, otras que les puedes meter mano y con un buen respaldo no dicen nada, unas con mas aplicaciones que otras, pero al fin a cabo todas basadas sobre el mismo molde…

- Tienen la filosofia napster… “tu veniste a la tierra a compartir ….”

- No son catolicos fanaticos, pero disfrutan mucho evangelizar . . .

- ya no pueden ver un pinguino como un pinguino sino que esa imagen abrasa sus ojos en lagrimas…

- Para ellos la libertad no es una estatua, sino una amaca, una laptop, unas sandalias, y mucha mucha creatividad…


Si conoces a alguien con estos sintomas quizas es linuxero o fue linuxero en su vida pasada... Yo soy Linuxero de corazon!!

Si veamos Migue: sois Linuxero

Tomado de IgAnKuChZ

miércoles, 17 de octubre de 2007

MenúGnome

Los menús de GNOME tienen una especie de contador que retrasa la apertura y visualización del subnivel del menú siguiente. Esto está hecho a conciencia ya que el efecto visual quizá más agradable a que se abran según vas pasando el ratón.

Sin embargo muchos prefieren mayor rapidez en dicha apertura y no consideran molesto el efecto que acabo de comentar. Para aquellos que tengan esta preferencia podéis hacer lo siguiente.

Id a vuestra carpeta personal. Cread un fichero de texto y llamadlo exactamente “.gtkrc-2.0″. Abridlo con vuestro editor favorito (nano, gedit…) y en su interior escribid lo siguiente:

gtk-menu-popup-delay = 0"| tee -a .gtkrc-2.0

Guarda el fichero, cierra el editor.

Entrada original: "Entre Tuxes Y Pepinos"

jueves, 11 de octubre de 2007

DePcAOsCiLoScOpIo

Iba caminando por el web y me encontré

este link

se habla de como convertir el Pc en un osciloscopio

Ademas de como convertir el Pc en un generador de baja frecuencia

Los archivos se pueden descargar desde el link anterior

Y no pesan mas de 200 kas, una foto pesa mas que los dos archivos

Por eso me parece que no anda mal, una Pc con muy pocos recursos

Lo permite ejecutar



Puden buscar

Digital Oscilloscope 3.0 y bajarlo de donde sea

lunes, 8 de octubre de 2007

NuevosAspirantes

NuevosAspirantes

jueves, 27 de septiembre de 2007

Ubuntu7.10GutsyGibbonBeta

Ya se publico hoy la version beta de ubuntu gutsy

Es libre de descargar bajo la siguiente dirección

http://releases.ubuntu.com/releases/gutsy/

su wallpaper es:

lunes, 24 de septiembre de 2007

___-.Ondas Electromagnéticas.-___

ECUACIONES DE LAS ONDAS ELECTROMAGNÉTICAS

Las ecuaciones de Maxwell implican que tanto el campo eléctrico como el campo magnético se propagan en forma de ondas; ondas cuya amplitud decrece al avanzar en medios de conductividad no nula.

El medio de propagación.

Para obtener la estructura matemática de las ondas electromagnéticas, es decir, las ondas de propagación del campo eléctrico y del campo magnético, podemos partir de las cuatro ecuaciones de Maxwell, que en el vacío y en el sistema CGS Gauss, pueden expresarse por


(J es la densidad de corriente, r es la densidad de carga eléctrica, c es la velocidad de la luz)
Pueden definirse los vectores “Desplazamiento”, D, e “Inducción Magnética”, B, por la relación particular con el vector Campo Eléctrico y Campo Magnético, respectivamente, de modo que las ecuaciones de Maxwell pueden expresarse por


Siendo el conjunto de las relaciones del desplazamiento D con el vector campo eléctrico, y de la inducción magnética B con el vector campo magnético lo que realmente define el tipo de medio en el que se efectúa la propagación del campo electromagnético.

sábado, 15 de septiembre de 2007

MeDiRcAdEnAsInStRlEn


#include {stdio.h}
main()
{
int i ;
char cad[] = "nuevo comienzo" ;
printf("%s\n",cad) ;
for(i = 0 ; cad[i] != '\0' ; i++ ) ;
printf("la longitud de la cadena es:%d\n",i) ;
system("PAUSE") ;
}

viernes, 14 de septiembre de 2007

http://goodbye-microsoft.com/

Adios a windows





http://goodbye-microsoft.com/


El uso del logotipo de Debian no implica apoyo por parte del proyecto Debian.
No tenemos ningún tipo de afiliación con Microsoft.
'Microsoft' es una marca registrada de Microsoft Corporation.

Ophcrack

Es una herramienta para crackear las contraseñas de Windows basada en las tablas Rainbow. Es una implementación muy eficiente de las tablas rainbow hecha por los inventores de este método. Viene con una Interfaz Gráfica de Usuario GTK+ y corre bajo Windows, Mac OS X (CPU Intel) y también en Linux.


Ophcrack 2.3.4 - 2007-02-19
Soporte para Vista
Bkhive 1.1.0
Samdump2 1.1.0
Soporte para crackear hashes LM con caracteres alemanes
Facilidad de cambiar las tablas en el LiveCD

Características

* » Corre bajo Windows, Linux y Mac OS X (intel).
* » Rompe hashes LM y NTLM.
* » Tablas libres disponibles para hashes LM alfanuméricos.
* » Carga hashes desde SAM local y SAM remota.
* » Carga hashes desde SAM encriptadas recuperadas desde una partición Windows, incluyendo Vista.

Ophcrack LiveCD 1.1.4 - 2007-02-19

El LiveCD de Ophcrack contiene un sistema Linux completo (SLAX), ophcrack para Linux y las tablas Rainbow para contraseñas alfanuméricas.

El liveCD crackea las contraseñas automáticamente, sin necesidad de una instalación y sin la necesidad de conocer la contraseña de administrador (solo es necesario arrancar desde el CD).

La versión 1.1.4 crackea el archivo SAM de Windows Vista

ver el link para mas informacion

http://ophcrack.sourceforge.net/es.index.php

Ubuntu Gutsy finalmente traerá Compiz Fusion por defecto

Desde hace casi un mes el equipo de Ubuntu se ha estado planteando si usar el conocido gestor de ventanas por defecto o no. Recordad que había una serie de inconvenientes que provocó la duda ya que era uno de los objetivos de esta versión.

Parece que la decisión ya ha sido tomada, y Gutsy traerá Compiz Fusion por defecto como ha venido haciéndolo en sus versiones Tribe.

Actualizada con más info de la charla y la votación de la decisión de habilitar Compiz.

Según Travis Watkins, más conocido como Amaranth, la mayoría de los bugs que hay en Compiz Fusion son problemas menores y señala que en el peor de los casos, no funcionaría, es de suponer que se refiere a circunstancias de hardware, no de la aplicación.

El mismo Amaranth está colaborando en la corrección de bugs. Ha hecho una lista de 12 que espera resolver en los próximos días, aunque la mitad de ellos son simples errores en la configuración. Nos insta a que aquellos que lo deseen lo prueben ya mismo sin esperar a que llegue la versión beta de Gutsy y comuniquemos cada bug que podamos encontrar.

Estas son las líneas de la votación que se produjo ayer para habilitar Compiz Fusion por defecto:

10:31 mdz_ mvo,Amaranth: do you think this is good enough to be our default?
10:31 Amaranth I think so, yes
10:31 mvo within the limitations outlined in my mail to ubuntu-devel yes
10:32 Amaranth It still has some rough spots but if we don’t get it out there at some point it’ll never get good enough
10:32 mjg59 Amaranth: The rough spots are issues that are not directly related to compiz
10:32 Amaranth mjg59: I meant aside from those
10:32 mjg59 Shipping compiz won’t make those problems get fixed faster

Resumiendo, Travis Watkins (Amaranth) y Michael Vogt (mvo) votan positivo y Matthew Garret (mjg59) que se muestra menos seguro comentando que hay algunos problemas no relacionados directamente con Compiz y que no hará que se resuelvan antes incluyendo Compiz por defecto. Amaranth piensa lo contrario y sigue la lógica de que al haber mayor número de usuarios más información de los problemas habrá y más “presión” se puede producir (por ejemplo a los desarrolladores de drivers) para resolverlos.

Hay que comentar que uno de los problemas principales está ligado con los drivers de las gráficas Intel, así que es probable que no os funcione. Otros problemas derivan a NVIDIA y ATI y se espera que con sus futuras versiones de sus drivers los solventen.

Algunos otros problemas derivan de XOrg 7.3 y comentan que sus desarrolladores no cuenta con Compiz como objetivo prioritario hoy por hoy, sin embargo el que se extienda el uso del gestor de ventanas puede provocar que la prioridad sea mayor.

En la charla de ayer se ha hablado también de otras aplicaciones como Automatix (cuyo desarrollador no ha contestado a una invitación a hablar con ellos) o tracker y deskbar. Al parecer tracker tiene algunos problemas de rendimiento y en algunos casos puede llegar a comerse la CPU. Se sospecha que puede estar relacionado con alguna actualización del kernel y están investigándolo.

La conversación entre los desarrolladores es realmente muy interesante. Si entendéis inglés y queréis estar al tanto de todo lo que se cuece, de las opiniones de los responsables y de cómo se toman las decisiones os recomiendo su lectura. Podéis leerla aquí.

Finalmente añadir que aquellos usuarios que tengan problemas o que simplemente no les guste, pueden seguir usando el gestor de ventanas Metacity como siempre, en lugar de Compiz Fusion.

Agenda.c

//Programa diseñar un programa que haga una agenda

#include {stdio.h} //Se introduce la librería estándar "input" and "output"

#include {conio.h}> //Se introduce librería para usar el "gets()" y "getch()"

#include {string.h} //Se introduce la librería de cadenas

#include {stdlib.h} //librería necesaria para utilizar la función "atoi"

main() //Inicia programa con función principal "main()"

{

//Inicia cualquier función con '{' y termina con '}'

char ver, nuamigo ;

//Para ver la agenda en la "segunda parte", la "primera

//parte" es donde se piden los datos con un ciclo 'for'

//'nuamigo' es de tipo char se puede cambiar a valor entero

//con la función atoi, en éste programa cuando cambiamos una

//cadena de letras o cualquier caracter a valor entero

//nos regresa un cero al convertir, si convertimos una

//serie de números lo que nos regresa es ese mismo valor


int a, b, n, i = 0;

//'a' es una variable para conocer la cantidad de amigos

//'b' es una variable para contar ciclos dentro del 'for'

//'n' es para ver el número de amigo ingresado

//'i' es una variable para contar la posición de caracter


printf("\t\t\t:=ESTA ES TU AGENDA=:\n\n") ;

printf("\t\tCuantos amigos quieres agregar (no mayor a cinco)?\n\n\t\t") ;

scanf("%d",&a) ;

//Se pide el valor de la variable 'a'

//Se guarda ese valor de 'a' mediante la función 'scanf'

char amigo[a][15];

char carrera[a][10];

char generacion[a][5];

char semestre[a][1];

char numerodecuenta[a][9];

char promedio[a][3];

//Los datos de los amigos son arreglos, son de tipo char

//Para que C no se trabe cuando usamos enteros y que

//recibamos caracteres del teclado todo lo dejamos en caracteres

//y si necesitamos valores enteros usamos la función 'atoi'

for( b = 0 ; b <>

//Entra en un ciclo para acomodar los datos de los amigos

//mediante un 'for' comienza el ciclo utilizando la

//variable 'b' contando desde cero hasta 'a - 1'

//cuando 'b' toma el valor de 'a' sale de este ciclo

if( a > 5 )

{

printf("\n\n\t\tQUE NO MAS DE CINCO!") ;

getch() ;

break;

}

//Imprime mensaje si se trató de introducir mas de cinco

//amigos en ésta agenda, en clase de algoritmos se

//especifico así, por lo tanto no se aceptan mas ce cinco

system("cls") ;

printf("\t\t\tTECLEAME LOS DATOS DE TU AMIGO %d\n",b+1) ;

getchar();

//Limpia pantalla, luego muestra mensaje, después

//una pausa, espera confirmación

printf("\n\tDame su nombre completo\n\t\t\t") ;

while ( 1 == 1 ) {

amigo[b][i]=getch() ;

printf("%c",amigo[b][i]) ;

if( i == 15 ) break ;

i++ ;

} i = 0 ; getchar() ;

//Pide el nombre del amigo 'b'

//Atrapa del teclado el nombre del amigo amigo 'b'

//Lee quince caracteres los demás no los lee, no se almacenan


printf("\tEstudia ingenieria en .. \n\t(Ej: computacion)\n\t\t\t") ;

while ( 1 == 1 ) {

carrera[b][i]=getch() ;

printf("%c",carrera[b][i]) ;

if( i == 10 ) break ;

i++ ;

} i = 0 ; getch() ;

//Pide la carrera del amigo 'b', muestra ejemplo

//Atrapa del teclado la carrera del amigo 'b'

printf("\n\tEs de la generacion .. \n\t(Ej: 2004-2)\n\t\t\t") ;

while ( 1 == 1 ) {

generacion[b][i]=getch() ;

printf("%c",generacion[b][i]) ;

if( i == 5 ) break ;

i++ ;

} i = 0 ; getch() ;

//Pide La generación del amigo 'b', muestra ejemplo

//atrapa del teclado la generación del amigo 'b'

printf("\n\tSemestres en la facultad .. \n\t(Ej: 8)\n\t\t\t") ;

while ( 1 == 1 ) {

semestre[b][i]=getch() ;

printf("%c",semestre[b][i]) ;

if( i == 0 ) break ;

i++ ;

} i = 0 ;

//Pide el número de semestres cursados del amigo 'b'

//Atrapa del teclado el semestre que ha cursado el amigo 'b'

//se espera leer un solo caracter para salir


printf("\n\tSu numero de cuenta es .. \n\t(Ej: 400400123)\n\t\t\t") ;

while ( 1 == 1 ) {

numerodecuenta[b][i]=getch() ;

printf("%c",numerodecuenta[b][i]) ;

if( i == 8 ) break ;

i++ ;

} i = 0 ;

//Pide el numero de cuenta del amigo 'b'

//Atrapa del teclado su número de cuenta del amigo 'b'

//se espera leer al menos 9 caracteres para salir



printf("\n\tSu promedio es .. \n\t(Ej: 10.0)\n\t\t\t") ;

while ( 1 == 1 ) {

promedio[b][i]=getch() ;

printf("%c",promedio[b][i]) ;

if( i == 3 ) break ;

i++ ;

} i = 0 ;

//Pide el promedio del amigo 'b'

//Atrapa del teclado el promedio del amigo 'b'

//Se espera leer al menos tres caracteres

system("cls") ;

printf("\t\t<-=:Ha sido agregado tu amigo:=-> \n\n\t\t\t") ;

for( i = 0 ; i <>

{

printf("%c",amigo[b][i]) ;

}

getch() ;

//Se limpia pantalla con 'system("cls")'

//Se notifica que se agrego correctamente

//si 'b' no alcanza el valor de 'a' se regresa al 'for'

//y comienza de nuevo con el ciclo de pedir datos

}

//Hemos salido del ciclo 'for' .... continúa programa

while( 1 == 1 )

{

//Se abre un ciclo infinito para revisar la agenda

//normalmente no se puede limitar el uso de una agenda personal

//viéndolo por ese lado se abre éste ciclo

system("cls") ;

//Limpiamos pantalla después de haber agregado o no

//información a la agenda del usuario


printf("\t\tQuieres revisar tu agenda?, s/n ") ;

ver = getch() ;

if( ver == 'n' ) { break ; }

//Cuando sí se ha introducido información de "el" o "los"

//amigo(s), pregunta si se quiere ver esa información

//teclea 'cualquier tecla' para ver o 'n' para no ver y salir

system("cls") ;

printf("\t\tDame el numero que le corresponde a tu amigo\n\t\t") ;

nuamigo = getch() ;

n = atoi(&nuamigo);

//Se pide el número que se registro del amigo aquí la función

//'scanf("%d",&n)' se pudo utilizar pero para que no haya

//errores utilizamos la función 'atoi'



if( n <> 5 )

{

system("cls") ;

printf("\t\tSALIMOS DE LA AGENDA, ESE NUMERO NO EXISTE") ;

getch();

break ;

} else;

//Si la variable 'n' toma el valor de 0 o menor a éste

//sale del programa y manda un mensaje para evitar errores

if( n > 0 )

{

n = n - 1 ;

system("cls") ;

//Si la variable 'n' toma el valor de 1 o mayor a éste

//inmediatamente se muestran el contenido de la agenda

//Se limpia la pantalla con "system("cls")"



printf("\t\tHa sido seleccionado tu amigo ") ;

for( i = 0 ; i <>

printf("%c",amigo[n][i]) ;

printf("\n\n\tEstudia ingenieria en ") ;

for( i = 0 ; i <>

printf("%c",carrera[n][i]) ;

printf("\n\n\tEs de la generacion ") ;

for( i = 0 ; i <>

printf("%c",generacion[n][i]) ;

printf("\n\n\tSemestres en la facultad ") ;

for( i = 0 ; i <>

printf("%c",semestre[n][i]) ;

printf("\n\n\tSu numero de cuenta es ") ;

for( i = 0 ; i <>

printf("%c",numerodecuenta[n][i]) ;

printf("\n\n\tSu promedio es ") ;

for( i = 0 ; i <>

printf("%c",promedio[n][i]) ;

getch() ;

//Imprime los datos de la agenda en pantalla

}

//Sale el programa del 'if' donde 'i' debe ser mayor a 0

//Se regresa al ciclo de nuevo siempre y cuando no quiera

//revisar la agenda o haya pedido información que no exista



}

//El ciclo infinito while ha terminado, ya no se van a

//ver datos de otro amigo que se hayan ingresado


struct {

char name[22];

char ingenieria[10] ;

char generac[5] ;

char semester[2] ;

int nucuenta ;

float promd ;

} agenda[2] ;

//Se hace la estructura de los creadores de la agenda

//nombre, carrera, semestre, generación, promedio, etc

//La estructura es de tipo agenda y para hacer referencia

//al contenido de cada parámetro en la agenda se añade un '.'

//de esa forma se manda a llamar a ese parámetro

strcpy(agenda[0].name,"Francisco Perez Jimenez") ;

strcpy(agenda[0].ingenieria,"electronica") ;

strcpy(agenda[0].generac,"2004-2") ;

strcpy(agenda[0].semester,"5") ;

agenda[0].nucuenta = 302197022 ;

agenda[0].promd = 8.47 ;

strcpy(agenda[1].name,"Ismael Solano Perez") ;

strcpy(agenda[1].ingenieria,"computacion") ;

strcpy(agenda[1].generac,"2004-2") ;

strcpy(agenda[1].semester,"7") ;

agenda[1].nucuenta = 400400123 ;

agenda[1].promd = 7.90 ;

//Dado que son valores fijos solo se les asigna un valor

//'strcpy' se utiliza para asignar valor a las cadenas

//los que son tipo entero y flotante no necesitan eso

//se les asigna el valor directamente

while ( 1 == 1 )

{

system("cls") ;

printf("\t\tQuieres ver la informacion de los creadores s/n\n\n\t\t") ;

ver = getch() ;

if( ver == 'n' ) { break ; }

//inprime mensale al usuario

//Se teclea 's' para ver o 'n' para no ver y salir

system("cls") ;

printf("\t\tFrancisco (1) Ismael (2)\n\n\t\t") ;

nuamigo = getch() ;

n = atoi(&nuamigo);

//A Francisco le corresponde el valor de '1'

//A Ismael le corresponde el valor de '2'


if( n <> 2 )

{

system("cls") ;

printf("\t\tSOLAMENTE HAY DOS CREADORES") ;

getch();

break ;

} else;

//Si la variable 'n' toma el valor de 0 o menor a éste

//o que pida un número mayor a dos sale del programa

if( n > 0 )

{

n = n - 1 ;

system("cls") ;

//Si la variable 'n' toma el valor de 1 o mayor a éste

//inmediatamente se muestran el contenido de la agenda

//Se limpia la pantalla con "system("cls")"



printf("\t\tHa sido seleccionado tu amigo ") ;

for( i = 0 ; i <>

printf("%c",agenda[n].name[i]) ;

printf("\n\n\tEstudia ingenieria en ") ;

for( i = 0 ; i <>

printf("%c",agenda[n].ingenieria[i]) ;

printf("\n\n\tEs de la generacion ") ;

for( i = 0 ; i <>

printf("%c",agenda[n].generac[i]) ;

printf("\n\n\tSemestres en la facultad ") ;

for( i = 0 ; i <>

printf("%c",agenda[n].semester[i]) ;

printf("\n\n\tSu numero de cuenta es ") ;

printf("%d",agenda[n].nucuenta) ;

printf("\n\n\tSu promedio es ") ;

printf("%f",agenda[n].promd) ;

getch() ;

//Imprime los datos de la agenda en pantalla

}

}

//El ciclo infinito while ha terminado, ya no se van a

//ver datos de los creadores de éste programa



}

//Fin del programa agenda