UTNianos

Versión completa: Tu noticia NO importante del día
Actualmente estas viendo una versión simplificada de nuestro contenido. Ver la versión completa con el formato correcto.
hiper embole
Tengo foro en la empresa nueva, por lo menos hasta que lo bloquen.


Off-topic:

Pri: no te funciona el chat del foro tampoco? (donde ves lo que escriben)
(01-11-2011 16:34)shadow_mx escribió: [ -> ]Tengo foro en la empresa nueva, por lo menos hasta que lo bloquen.


Off-topic:

Pri: no te funciona el chat del foro tampoco? (donde ves lo que escriben)

no me funciona el chat, me funciona el foro nomas =P ...
Me estoy poniendo con las materias y vengo entendiendo... espero que no se corte!
termine de leer cinematica del cuerpo rigido


leer de lugares extraños es mas efectivo que ir a las clases.... creo que voy a seguir faltando.
tres





.
Atroden.
Me muero de embole!!!

todavia me faltan permisos para laburar y no tengo mails, facebook, msn, chat del foro!
El sábado voy al personal fest con oswi =)
1) Tengo 2 semanas de vacaciones!!!! Pense que al ser pasante no tenia, o que como mucho me correspondia solo 1 semana. =P

2) Ya me habilitaron OSDE en el laburo wiii
Me estoy cuestionando seriamente asistir a clase de análisis II,el parcial es en una semana y voy como 3 capítulos atrás,mi carpeta esta hecha un desastre y mis intento por pasarla y que quede prolija no ayuda mucho.Tengo 1 hora antes de tener que partir y asistir a la clase.Y ahora noto que mi profe se olvido de dar un par de temas y no puedo hacer las guias.
Falte a la facu.. sali muy tarde del laburo y no llegaba
Gracias a dios los ejercicios que no me salian de química no entran en el parcial =) =P
Me levante temprano y no tengo muchas ganas de hacer algo.

Demonios!
Quedó una obra de arte! Pero no funciona del todo bien...

Spoiler: Mostrar
//Librerías.
#include <stdio.h>
#include <stdlib.h>
#include <string.h>

//Estructura.
struct nodo
{
char nombre[50];
int socio;
struct nodo *Siguiente;
struct nodo *Anterior;
struct nodo *Inicio;
struct nodo *Fin;
int tam;
};

//Prototipos de las funciones.
int insertar (struct nodo *Lista , char *n, int s);
struct nodo *intercambiar (struct nodo *Lista, char *cadena1, char *cadena2);
int comparar(char *cad1,char *cad2);
void *copiar(struct nodo *Lista, char letra);
int menu (struct nodo *Lista);
void imprimir (struct nodo *Lista);

//---------------------------------------MAIN-------------------------------------------//
int main (void)
{
struct nodo *lista;
lista=malloc(sizeof(struct nodo));
char *nom;
nom=malloc(50);
int opcion=1;
int soc;
int aux;
char *str1, *str2;
char l;

str1=malloc(50);
str1=malloc(50);

//Incicialización de variables.
lista->Inicio=NULL;
lista->Fin=NULL;
lista->tam=0;

while (opcion!=4)
{
opcion=menu(lista);
switch (opcion)
{
case 4:
printf ("\nFin de la ejecución.\n");
exit(-1);
break;
case 0:
printf ("\nIngrese un nombre:");
scanf ("%s",nom);
printf ("\nIngrese nro. de socio:");
scanf ("%d",&soc);
insertar (lista,nom, soc);
imprimir(lista);
printf ("\n%d elementos.\n",lista->tam);
break;
case 1:
printf ("\nIngrese primer nombre:");
scanf ("%s",str1);
printf ("\nIngrese segundo nombre:");
scanf ("%s",str2);
intercambiar (lista,str1,str2);
imprimir (lista);
break;
case 2:
printf ("\nIngrese primer nombre:");
scanf ("%s",str1);
printf ("\nIngrese segundo nombre:");
scanf ("%s",str2);
aux = comparar (str1,str2);
if (aux==0)
printf ("\nCadenas iguales.\n");
if (aux==1)
printf ("\nPrimera cadena mayor.\n");
if (aux==-1)
printf ("\nSegunda cadena mayor.\n");
break;
case 3:
printf ("\nIngrese letra:");
scanf ("%c",&l);
getchar();
copiar (lista,l);
}
}

return 0;
}

//---------------------------------------MENU-------------------------------------------//
int menu (struct nodo *Lista)
{
int eleccion;

if (Lista->tam==0)
{
printf ("\nElija una de las opciones que aparecen en pantalla:\n");
printf ("\n0-Insertar elemento.\n1-Salir.\n");
printf ("\nOpción:");
scanf ("%d",&eleccion);
if (eleccion==1)
eleccion=4; //Para que coincida con el menú de abajo.
}
else
{
printf ("\nElija una de las opciones que aparecen en pantalla:\n");
printf ("\n0-Insertar elemento.\n1-Intercambiar nodos.\n2-Comparar nodos.\n3-Copiar nodos.\n4-Salir.\n");
printf ("\nOpción:");
scanf ("%d",&eleccion);
}

return eleccion;
}

//---------------------------------INSERTAR NUEVO NODO----------------------------------//
int insertar (struct nodo *Lista , char *n, int s)
{
struct nodo *Nuevo, *Actual;
int insert;
int i=0;

if ( (Nuevo = malloc (sizeof (struct nodo) ) ) == NULL)
return -1;
//if ( (Nuevo->nombre = malloc (sizeof (char *) ) ) == NULL)
//return -1;

for( i=0; *(n+i)!='\0'; i++ )
{
Nuevo->nombre[i] = *(n+i);
}

Nuevo->nombre[i]='\0';
Nuevo->socio=s;

if (Lista->tam==0)
{
Nuevo->Anterior=Lista->Inicio;
Nuevo->Siguiente=Lista->Fin;
Lista->Inicio=Nuevo;
Lista->Fin=Nuevo;
Lista->tam++;
return 0;
}

else //Inserta después del último nodo ingresado.
{
Actual=Lista->Inicio;
while ( Actual->Siguiente != NULL && strcmp(n,Actual->nombre ) !=0 )
Actual=Actual->Siguiente;


Nuevo->Anterior=Actual;
if (Actual->Siguiente==NULL)
Lista->Fin=Nuevo;
else Actual->Siguiente->Anterior=Nuevo;
Actual->Siguiente=Nuevo;
Lista->tam++;
return 0;
}
}

//------------------------------------IMPRIMIR LISTA--------------------------------------//
void imprimir (struct nodo *Lista)
{
struct nodo *Inverso, *Actual;
int choice;

printf ("\nElija una de las opciones que aparecen en pantalla:\n");
printf ("\n1-Imprimir lista.\n2-Imprimir lista al revés.\n");
printf ("\nOpción:");
scanf ("%d",&choice);

Actual=Lista->Inicio;
printf ("\n----->");

if (choice==1)
{
while (Actual!=NULL)
{
Inverso=Actual;
printf ("Nombre:%s/Socio:%d----->",Actual->nombre,Actual->socio);
Actual=Actual->Siguiente;
}
}

Inverso=Inverso->Anterior; //Porque sino comienza de NULL.
if (choice==2)
{
while (Inverso!=NULL)
{
printf ("Nombre:%s/Socio:%d----->",Inverso->nombre,Inverso->socio);
Inverso=Inverso->Anterior;
}
}
}

//------------------------------------COMPARA NODOS-----------------------------------//
int comparar(char *cad1,char *cad2)
{
int i=0, j=0, aux=0;

for (i=0 ; *(cad1+i)!='\0' ; i++)
for (j=0 ; *(cad2+j)!='\0' ; j++)
{
if (*(cad1+i)==*(cad2+j))
aux=0;
if (*(cad1+i)<*(cad2+j))
aux=-1;
if (*(cad1+i)>*(cad2+j))
aux=1;
}

return aux;
}

//------------------------------------INTERCAMBIA NODOS-------------------------------//
struct nodo *intercambiar (struct nodo *Lista, char *cadena1, char *cadena2)
{
char *auxn1=NULL, *auxn2=NULL;
int auxs1=0, auxs2=0;
struct nodo *Actual, *Aux1, *Aux2;
int i=0;

Aux1 = malloc (sizeof (struct nodo) );
Aux2 = malloc (sizeof (struct nodo) );

auxn1=malloc(50);
auxn2=malloc(50);

Actual=Lista->Inicio;
while (Actual!=NULL)
{
if (comparar (Actual->nombre,cadena1)==0) //Al ser 0, quiere decir que las cadenas son iguales.
{
//Copia información del nodo Actual (nombre y socio) en variables auxiliares.
auxn1=Actual->nombre;
auxs1=Actual->socio;
Aux1=Actual;
break;
}
Actual=Actual->Siguiente;
}

Actual=Lista->Inicio;
while (Actual!=NULL)
{
if (comparar (Actual->nombre,cadena2)==0) //Al ser 0, quiere decir que las cadenas son iguales.
{
//Copia información del nodo Actual (nombre y socio) en variables auxiliares.
auxn2=Actual->nombre;
auxs2=Actual->socio;
Aux2=Actual;
break;
}
Actual=Actual->Siguiente;
}

if (Aux1==NULL || Aux2==NULL)
return NULL;

printf ("\n%s",auxn1);
printf ("\n%s",auxn2);

printf ("\n%d",auxs1);
printf ("\n%d",auxs2);

//Intercambia información entre nodos:
for( i=0; *(auxn2+i)!='\0'; i++ )
Aux1->nombre[i]=*(auxn2+i);
Aux1->socio=auxs2;
for( i=0; *(auxn1+i)!='\0'; i++ )
Aux2->nombre[i]=*(auxn1+i);
Aux2->socio=auxs1;

return Lista->Inicio;
}

//-------------------------------------ARRAY DE NODOS---------------------------------//
void *copiar(struct nodo *Lista, char letra)
{
struct nodo *Actual;
int i=0;
char *p[Lista->tam];

Actual=Lista->Inicio;
printf("\n----->");
while (Actual!=NULL)
{
if (Actual->nombre[0] == letra)
{
p[i]=Actual->nombre;
printf ("%s----->",p[i]);
i++;
}
Actual=Actual->Siguiente;
}
}


PD.1:
Spoiler: Mostrar
FUUUUUUCK!

PD.2:
Spoiler: Mostrar
Se nota que ando con ganas de ponerle un spoiler al auto(?)
URLs de referencia