(^_^) me gustaria ayudar... pero aun soy noob en esto de programacion
Esta sección te permite ver todos los mensajes escritos por este usuario. Ten en cuenta que sólo puedes ver los mensajes escritos en zonas a las que tienes acceso en este momento.
Mostrar Mensajes MenúCitarEl 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.
/*********************
**********************
** **
** 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;
}
/*********************
**********************
** **
** 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);
}
/************************************/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);
/*****************/