elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Como proteger una cartera - billetera de Bitcoin


  Mostrar Temas
Páginas: [1]
1  Programación / Programación C/C++ / polinomios C en: 21 Julio 2011, 00:13 am
Antes que nada gracias, por ayudarme anteriormente pues  recibí ayuda muy buena,
ahora tengo otro proyecto, y pues al parecer, ya logre crear mis listas doblemente enlazadas, para un polinomio (así lo pidió el maestro).
pero pues me gustaría poder ingresar el polinomio completo, mi polinomio hasta ahora lo tengo que ingresar termino por termino.

Citar
El formato de los polinomios, tanto los que son ingresados por el usuario como los que mostrara el programa como resultado es el siguiente:
a)   3x3-x2-8x+1    ===   3x*3-1x*2-8x*1+1x*0 
b)   5x4+3x   ===    5x*4+3x*1
El polinomio debe ser ingresado y mostrado en orden a la potencia de la variable que ira decreciendo, y no debe haber términos semejantes. Sólo se trabajara con polinomios de una sola variable. El programa debe validar que el usuario ingrese un polinomio valido de acuerdo a estas consideraciones.


existe alguna forma de hacerlo?
algun codigo que me identifike los terminos o algop por el estilo?


2  Programación / Programación C/C++ / HELP ME! en: 12 Julio 2011, 06:30 am
hola, espero me puedan ayudar, me pasa algo bien raro, estoy aprendiendo a usar las listas.
mi problema aki es el sig.
tengo este código

libreria
Código:
/*********************
**********************
**                  **
**    stlist.h      **
**                  **
**********************
*********************/
#include "stdio.h"
#include "stdlib.h"
#include "string.h"
//Definimos el tipo de dato a ingresarse en la lista
struct ElementoLista
{
  int valor;                        // -> Dato que guardara la lista
  struct ElementoLista *sig;             // -> Apuntador permitirá el acceso al próximo elemento
};
typedef struct ElementoLista _dato;

struct ListaIdentificar{
_dato *inicio;
_dato *fin;
int tamano;
};
typedef struct ListaIdentificar _lista;
//hacemos la funcion que inicializa la lista en NULL
void iniciaLista(_lista *LISTA)
{
    LISTA->inicio=NULL;
    LISTA->fin=NULL;
    LISTA->tamano=0;

}
//funcion para ingresar un 1° valor
/* inserción en una lista vacía */
_lista *ins_en_lista(_lista *lista,int dato)
{


  _dato *nuevo,*inicio_lista;
  _lista *apuntadorAux;
    nuevo=(_dato *) malloc(sizeof(_dato));
    nuevo->valor=dato;
    nuevo->sig=NULL;//printf("\nCreamos un nuevo _dato con valor: %d *sig: %s",nuevo->valor,nuevo->sig);
    if (nuevo!=NULL)
        {
            if(lista->inicio==NULL && lista->fin==NULL)
            {
                lista->inicio=nuevo;
                lista->fin=nuevo;
                lista->tamano=lista->tamano+1;
                //printf("\nVALORES DE LA LISTA [%d]",dato);
                //printf("\nInicio->valor: %d",lista->inicio->valor);
                //printf("\nInicio->*sig: %s",lista->inicio->sig);
                //printf("\nFin->valor: %d",lista->fin->valor);
                //printf("\nFin->*sig: %s",lista->fin->sig);
            }
            else
            {   inicio_lista=lista->inicio;
                apuntadorAux=lista;
                //printf("\n\nVALORES AUXILIARES iniciales DE LA LISTA [%d]",dato);
                //printf("\nInicio->valor: %d",apuntadorAux->inicio->valor);
                //printf("\nInicio->*sig: %s",apuntadorAux->inicio->sig);
                //printf("\nFin->valor: %d",apuntadorAux->fin->valor);
                //printf("\nFin->*sig: %s",apuntadorAux->fin->sig);
                while(apuntadorAux->inicio->sig!=NULL)
                {
                    apuntadorAux->inicio=apuntadorAux->inicio->sig;
                }
                apuntadorAux->inicio->sig=nuevo;
                apuntadorAux->inicio=inicio_lista;
                lista->fin=nuevo;
                lista->tamano++;
                //printf("\n\nVALORES AUXILIARES finales DE LA LISTA [%d]",dato);
                //printf("\nInicio->valor: %d",apuntadorAux->inicio->valor);
                //printf("\nInicio->*sig: %s",apuntadorAux->inicio->sig);
                //printf("\nFin->valor: %d",apuntadorAux->fin->valor);
                //printf("\nFin->*sig: %s",apuntadorAux->fin->sig);
            }
        }
    else
        {
            printf("!!!!!!!!!!NO HAY MEMORIA!!!!!!!!!");
        }
return lista;


}
void imprime_lista(_lista *lista)
{
    _dato *nodo;
    nodo=lista->inicio;
    printf("\ninicio-> ");
    while(nodo!=NULL)
    {
        printf("%d-> ",nodo->valor);
        nodo=nodo->sig;
    }
    printf("fin de la lista\n");
    printf("\nCARDINALIDAD: %d",lista->tamano);
}

int pertenencia(_lista *lista,int busca)
{
    /*printf("XXX");*/
     _lista *apuntador_aux;
        int regresa;
        apuntador_aux=lista;
        while(apuntador_aux->inicio->valor!=busca && apuntador_aux->inicio->sig!=NULL)
        {
            apuntador_aux->inicio=apuntador_aux->inicio->sig;
        }
        if(apuntador_aux->inicio->valor==busca)
        {
            regresa=1;
        }
        if(apuntador_aux->inicio->sig==NULL)
        {
            regresa=0;
        }
return regresa;
}


codigo
Código:
/*********************
**********************
**                  **
**   conjuntos.c    **
**                  **
**********************
*********************/
#include<string.h>
#include<stlist.h>
#include<stdio.h>
#include<stdlib.h>
#include<conio.h>
void main()
{
    _lista *lista_A;
   _lista *lista_B;
    int opc,dat,pert;
    iniciaLista(lista_A);
    do{
        opc=0;
        printf("\nIngresa valor 1° conjunto");
        fflush(stdout);
        scanf("%d",&dat);
        /************************************/
        ins_en_lista(lista_A,dat);
        printf("\nDeseas ingresar otro valor ingresa 1\n");
        scanf("%d",&opc);
    }while(opc==1);
    imprime_lista(lista_A);
    /*****************/pert=pertenencia(lista_A,dat);

    iniciaLista(lista_B);
    do{opc=0;
        printf("\nIngresa valor 2° conjunto");
        scanf("%d",&dat);
        ins_en_lista(lista_B,dat);
        printf("\nDeseas ingresar otro valor ingresa 1");
        scanf("%d",&opc);
    }while(opc==1);


imprime_lista(lista_B);

}


 :-\ ok funciona perfecto... pero  mi bronka es que si pongo el sig. código ya no jala
(nececito hacer que no se repita un mismo valor en un conjunto, por lo cual mando llamar a pertenencia para que me indique si el elemento existe o no y asi poder )

Código:

        /************************************/pert=pertenencia(lista_A,dat);
        ins_en_lista(lista_A,dat);
        printf("\nDeseas ingresar otro valor ingresa 1\n");
        scanf("%d",&opc);
    }while(opc==1);
    imprime_lista(lista_A);
    /*****************/

CAMBIE pert=pertenencia(lista_A,dat);  de los asteriscos cortos al mas largo



 espero me puedan explicar por que demonios pasa eso... por su atencion gracias
Páginas: [1]
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines