• Viernes 14 de Marzo de 2025, 11:42

Mostrar Mensajes

Esta sección te permite ver todos los posts escritos por este usuario. Ten en cuenta que sólo puedes ver los posts escritos en zonas a las que tienes acceso en este momento.


Mensajes - BLADDE

Páginas: 1 2 [3]
51
Java / Backtraking Y Java
« en: Martes 25 de Julio de 2006, 05:44 »
que tal amigos veran necesito una ayudita necesito hacer un proyec usando la tecnica de backtraking (vuelta atras) en si el problema es un laberinto dividido en casilllas cada casilla puede estar ocupada o no o puede contener un tesoro el cual elevara el poder de desplazamiento del jugador el detalle esta en q se lee desde un archivo de entrada es decir el usuarrio no teclea nada cabe destacar q no se deven mostrar los movimientos pero la verdad ni idea como hacerlo en java me dicen q las cosas son distintas al trabajar  backtraking en java ==?¿¿ es cierto? bueno si algen tiene un ejemplo en java porfis les agradeseria (disculpen la exigencia pero que corra hay gente q me a tratado de ayudar pero me envian .java q se apoyan en otra librerias q no tengo porlo tanto que do igual de perdido )  GRACIAS  ; )

52
C++ Builder / Re: Crear Imagenes (objetos) En Tiempo De Ejecucion
« en: Lunes 26 de Junio de 2006, 06:05 »
gracias amigo la verdad no lo pude conseguiir lo estoy haciendo de otra forma usando varias imgenes y cargandolas en distints imgenes ya puestas en el form y moviendolas con los timer. sino es molestia puedes poner un codigo ke haga ese trabajo porfavor creo ke amuchos nos ayudaria
gracias

53
Java / Re: Cola Pila Y Listas En Java
« en: Sábado 24 de Junio de 2006, 19:53 »
ok muchs grcis de tods forms si jcretor es un ide la version free tiene menos ayuds K La PRO PERO BUENO GRCIS DE TODS FORMS

54
Java / Re: Cola Pila Y Listas En Java
« en: Sábado 24 de Junio de 2006, 05:55 »
Muchas gracias nagiza te lo agradesco ya que  devo hacer una implementacion de pila en java con respecto a las expresiones Prefijas y postfija aaa una pregunta saves como poner el Jcreator Pro 3.05 a funcianar ?? osea el funciono solo por un tiempo yo lo parchie pero ya no sirve saves como arreglar eso?

55
Java / Cola Pila Y Listas En Java
« en: Viernes 23 de Junio de 2006, 07:19 »
que tal estoy empesando a trabajar con listas en java y me gustaria saver bastante sobre el hecho de que en java "no hay punteros" aunq si hay referencias
ademas si algen tiene un ejemplo de cola y pila en java con Jcreator y lo puede poner porfavor seria de mucha ayuda.
gracias.

aaaa algen save que es lo que pasa con el Jcreator pro??? y su parche
lo crakie y de igual manera se vencio no hay manera de arreglarlo ojo estoy hablando de Jcreator Pro no de el LE

56
C++ Builder / Re: Crear Imagenes (objetos) En Tiempo De Ejecucion
« en: Martes 20 de Junio de 2006, 03:36 »
lo ultimo que he hecho si me pueden ayudar por favor a solucionar el hecho que se borren las imagenes cargads

struct persona{//ESTRUCTURAS DE LOS TERMINOS
TImage *imag;// tipo TImage
int mesa_come;
persona *sig;
};
typedef persona *pter;
pter person;
pter nuevo;


//aqui cargo las imagenes y creo el objeto dando espacio de memoria

void imag(TImage *Image1)
{
pter aux;
aux=person;
i++;
//if(person->sig==NULL)
nuevo->imag=new TImage (Application);
nuevo->imag=Image1;
nuevo->imag->Picture->Bitmap->FreeImage();
nuevo->imag->Picture=NULL;
if(i==1)
{
nuevo->imag->Picture->LoadFromFile("e:\\Muñec1.bmp");
nuevo->imag->Visible=false;

}
else{
if(i==2)
{
nuevo->imag->Picture->LoadFromFile("e:\\Muñec2.bmp");
nuevo->imag->Left=50;
nuevo->imag->Top=80;
nuevo->imag->Visible=false;
}
else{
if(i==3)
{
nuevo->imag->Picture->LoadFromFile("e:\\Muñeca2.bmp");
nuevo->imag->Left=150;
nuevo->imag->Top=180;
nuevo->imag->Visible=false;

}
else{
nuevo->imag->Picture->LoadFromFile("e:\\Muñeca1.bmp");
nuevo->imag->Left=250;
nuevo->imag->Top=280;
nuevo->imag->Visible=false;

}
}
}

este codigo carga cada uno de los archivos .bmp y crea la lista pero cuando carga de un archivo al otro el archivo uno se borra es decir el carga y muestra muñec1 cuando carga muñec2 se borra muñec1 y apesar de que cuando trato de moverme en la lista no se muestran las imagenes

57
C++ Builder / Re: Crear Imagenes (objetos) En Tiempo De Ejecucion
« en: Lunes 19 de Junio de 2006, 02:07 »
de esa fomar no pude pero veran encontre esto

cim++;
TImage *Image = new TImage (Application);//aqui creo el objeto
Image->Align=alNone;// pongo los atributos q quiero
Image->AutoSize=false;
Image->Center=false;
Image->Constraints->MaxHeight=0;
Image->Constraints->MaxWidth=0;
Image->Constraints->MinWidth=0;
Image->Constraints->MinHeight=0;
Image->Cursor=crDefault;
Image->DragCursor=crDrag;
Image->DragKind=crDrag;
Image->DragMode=dmManual;
Image->Enabled=true;
Image->Visible=true;
Image->Height=105;
Image->HelpContext=0;
Image->HelpKeyword="";
Image->HelpType=htContext;
Image->Hint="ui esta";
Image->IncrementalDisplay=false;
Image->Left=40;
Image->Name="imag"+IntToStr(cim);
Image->ParentShowHint=true;
Image->Picture->Bitmap->FreeImage();
Image->Picture->Bitmap->LoadFromFile("c:\\m.bmp");//cArgo la imagen
Image->Proportional=false;
Image->ShowHint=true;
Image->Stretch=false;
Image->Tag=0;
Image->Top=80;
Image->Transparent=true;
Image->Visible=true;
Image->Width=105;


PEro no se ve nada en el form eso lo puse dentro de un botton aldarle clic se creara un objeto TImage pero este no seve algen save como hcer?

58
C++ Builder / Re: Crear Imagenes (objetos) En Tiempo De Ejecucion
« en: Domingo 18 de Junio de 2006, 06:08 »
pues provare de esa manera hber si me funciona. me dicen que lo mas dificil es eso crear y destruir objetos ya q la simulacion no es dificil solo el crear cada imagen y obviamente destruirla luego si algen save mas sobre simulciones les gradeceria la  yuda cuando la termine la pondre para el ue tenga mis dudas gracias amigos

59
C/C++ / Re: Sobre Archivos En Dev-c++
« en: Sábado 17 de Junio de 2006, 22:04 »
que tal otraves veran la libreria styring.h tiene la funcion strcpy ahora el StrToInt nop tiene esta atoi pero ami no me funciona vean mi implementacion:

void polinomios::separar(){
int exp=0;
//POLI.OUT (FICHERO DE SALIDA)
ofstream out;
out.open("POLI.OUT");
out.close();//CERRAR ARCHIVO
//----------------------------------------------------
ifstream in; //in es el archivo de entrada
//----------- -----------------------------------------
in.open("POLI.IN");  //se abre el archivo
in>>cantidad;
while (cont<=cantidad){ caso1=0;caso2=0;signo='\0';ind=0;i=0;exp=0;co=0;

char a[20]=" ";
in >>a;  //SE LEE POLINOMIO ACTUAL
c=a[0]; //SE LE ASIGNA EL PRIMER CARACTER
inicializart();//INICIALIZA EL PUNTERO TERMINO
nuevop();//INGRESA UN NUEVO POLINOMIO
/***********************
*SEPARACION DE TERMINOS*
************************/
while (c!='\0'){
    if ((c=='+')||(c=='-')){signo=c;i++;c=a;caso1=0;caso2=0;exp=0;co=0;ind=0;
     }//para el signo
/***************
*    CASOS:    *
*CASOS SIMPLES *
****************/            //ESTA DE AQUI ERA PARA:
     if ((c!='x')&(caso1!=2)){//c es de tipo char
      co=(co*10)+(atoi©); //Aqui da el error y entodas la secciones que llamo atoi
       caso1=1;
     }//finsi
     if ((c=='x')&(caso1==1)){  //se puede hacer otro caso con 0
     caso2=1;
     caso1=2;
     exp=0;
     }//finsi
     if ((c!='x')&(caso1==2)&(caso2==1)){
     exp=(exp*10)+(atoi©);
     }//fin si
/*************
*    CASOS   *
*  ESPECIALES*
**************/
     if ((c=='x')&(caso1==0)){  //se puede hacer otro caso con 0
     co=1;
     if (signo=='-'){co=(co*-1);}
     caso2=1;
     caso1=2;
     }//finsi
     if ((c=='x')&((a[i+1]=='+')||(a[i+1]=='-')||(a[i+1]=='\0')))
     {exp=1;
     }//FINSI
    i++;
    c=a;

     if ((c=='+')||(c=='-')||c=='\0'){ //hay que mejorarlo por el vacio
     if (signo=='-'){co=co*-1;}
     x=0;y=0;
     nuevot( co, exp);}
 }//fin mientras
enlazar();
 cont++;
}//fin mientras mayor
//**************DESCOMPOSICION Y OPERACIONES ******************
//------------------------------------------------------------------
char b[20]=" ";

while (c!='#'){
char b[20]=" ";
in >>b;
c=b[0];
inicializart();//INICIALIZA EL PUNTERO TERMINO PARA UN NUEVO POLINOMIO
//------------------------------------------------------------------
if ((b[0]=='A')||(b[0]=='S')||(b[0]=='M')){
insertar(B);//CREO UN NODO PARA OPERACION QUE CONTENDRA EL POLINOMIO
}//FIN SI
if ((b[0]!='A')&(b[0]!='S')&(b[0]!='M')&(b[0]!='#')){
 co=0;exp=0;caso1=0;caso2=0;
i=0;
c=b[0];
 while (c!='\0'){
    if ((c=='+')||(c=='-')){signo=c;i++;c=b;caso1=0;caso2=0;exp=0;co=0;ind=0;
     }//para el signo
/***************
*    CASOS:    *
*CASOS SIMPLES *
****************/            //ESTA DE AQUI ERA PARA:
     if ((c!='x')&(caso1!=2)){//recueda que la 3er condicion es para que
       co=(co*10)+(atoi©);            //no se confunda con el termino indipendiente
       caso1=1;
     }//finsi
     if ((c=='x')&(caso1==1)){  //se puede hacer otro caso con 0
     caso2=1;
     caso1=2;
     exp=0;
     }//finsi
     if ((c!='x')&(caso1==2)&(caso2==1)){
     exp=(exp*10)+(atoi©);
     }//fin si
/*************
*    CASOS   *
*  ESPECIALES*
**************/
     if ((c=='x')&(caso1==0)){  //se puede hacer otro caso con 0
     co=1;
     if (signo=='-'){co=(co*-1);}
     caso2=1;
     caso1=2;
     }//finsi
     if ((c=='x')&((b[i+1]=='+')||(b[i+1]=='-')||(b[i+1]=='\0')))
     {exp=1;
     }//FINSI
    i++;
    c=b;
     if ((c=='+')||(c=='-')||c=='\0'){ //hay que mejorarlo por el vacio
     if (signo=='-'){co=co*-1;}
     x=0;y=0;
     nuevot2( co, exp);}
 }//fin mientras
enlazar2();
}//FIN SI
}//FIN MIENTRAS
in.close();
}//FIN PROCEDIMINETO
//ºººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººº
 

el error que da es
428 F:\Nueva carpeta\principal.cpp invalid conversion from `char' to `const char*'
428 F:\Nueva carpeta\principal.cpp   initializing argument 1 of `int atoi(const char*)'

es que acaso el no toma un char sino una cadena????? 'a' o "a"??

60
C/C++ / Re: Sobre Archivos En Dev-c++
« en: Sábado 17 de Junio de 2006, 21:19 »
Muchas gracias amigo si definitivamente eso era lo puse como dijiste y funciono de verdad gracias. en el otro msj esta el error que dava. ahora si algen puede responder en dev c++ no existen las funciones StrCopy,StrToInt de ser asi tiene alguna funcion que haga el trabajo de estas? como les dije hice mi .h en builder es la primera vez q trabajo en dev c++
gracias geo y a todos

Este es el error que bota:
4 D:\Dev-Cpp\include\c++\3.4.2\backward\fstream.h:31, from F:\Nueva carpeta\principal.cpp In file included from D:/Dev-Cpp/include/c++/3.4.2/backward/fstream.h:31, from F:\Nueva carpeta\principal.cpp

61
C++ Builder / Re: Crear Imagenes (objetos) En Tiempo De Ejecucion
« en: Sábado 17 de Junio de 2006, 20:50 »
amigo gracias por responder pero no me funciona veras tengo una lista que guarda un puntero de tipo TImage veras




struct persona{//ESTRUCTURAS DE LOS TERMINOS
   TImage *imag;
   int a;
   persona *sig;
   };
typedef  persona *pter;


void insert(pter nuevo,pter person)//este es el insertar en la lista
{
pter aux;
if(person==NULL)
{

person=nuevo;
}
else{
 aux=person;
 while(aux->sig!=NULL)
 {
  aux=aux->sig;
 }
 aux->sig=nuevo;
}

}


void crear(pter nuevo)
{
 
 nuevo->sig=NULL;// aqui me da un error
 nuevo->imag->Picture->Bitmap->FreeImage();//saltando el error anterior aqui
 }                                                                    //tambien me da un error

la funcion crear e insertar la llamo al precionar un boto el codigo en ese boton es

void __fastcall TForm1::Button3Click(TObject *Sender)
{
pter person;
pter nuevo;
pter aux;
crear(nuevo);
insert(nuevo,person);
person->imag->Visible=true;
person->imag->Picture->Bitmap->LoadFromFile("e:\\muñeca2.bmp");

}
es que acaso es muy complicado trabajar de esta forma? ha varias personas le e preguntado y no saben responder
de todas formas gracias amigo

62
C++ Builder / Crear Imagenes (objetos) En Tiempo De Ejecucion
« en: Sábado 17 de Junio de 2006, 07:33 »
que tal amigos necesito realizar una simulacion y quisera implementar algo como esto crear un objeeto TImage en tiempo de ejecucion cada ves q1ue nesecite un muñeco ya lo hice usando una lista donde tengo definido una variable TImage *ima todo se detectabien pero al momento de poner lista->ima->picture->loadfromfile("c:archivimag"); me da un error y el programa se cierra. me dijeron pero no me supieron explicar como crear y destruir estos objetos entendiendo por esto que ya noseria de la forma en que lo pienso (es una interrogante ya q nose crear ni destruir ) trabajo con unos timer q controlanm los movimientos se que otra forma es tener n+1 imagenes cargadas en el programa y ir poniendolas visibles para moverlas pero no creo que sea muy eficas (apesar de que si no haverigua la otra forma la hago de esa : ))
gracias amigos de verdad si consigo algo sobre esto se los traigo para todos aprender :comp:

63
C/C++ / Sobre Archivos En Dev-c++
« en: Sábado 17 de Junio de 2006, 07:21 »
que tal amigos. veran estoy haciendo un programa que deve realizar operaciones de polinomios(suma,resta,multiplicacion) usando listas el detalle es que justo cuando entre a ver la materia cambiaron de c++ y c++ builder a DEVc++ bueee...
el show de todo es que hice mi punto h (polinomio.h) ahi pretendo hacer todo ahi estan todas mis funciones ya importo la libreria poniendo en la cabesera #include<polinomio.h> using namespace std; y de ahi trato de crear el objeto de tipo clase polinomios definida en el .h pero no funciona aqui les dejo el codigo de mi .h si a algen le es de ayuda con confiansa meta mano:
#include <fstream.h>
#include <iostream.h>
#include <cstdlib.h>

//---------------------------------------------------------------------------
//**************************************************************
char c;
int co=0,i=0,cont=1,cantidad=0,x=0,y=0;
int ind=0,co2=0,exp2=0;
int caso1=0,caso2=0,nope=0;
char signo,encontrado;

//--------------------------------------------------------------
//--------------------------------------------------------------
//structuras para los terminos
struct termino{//ESTRUCTURAS DE LOS TERMINOS
   int co;     //COEFICIENTE
   int exp;    //EXPONENTEW
   termino *sig; //PUNTERO A SIGUIENTE TERMINO
   termino *ant; //PUNTERO A TERMINO ANTERIOR
};
typedef  termino *pter;
//------------------------------------------------------
struct polinomio{  //ESTRUCTURA DE LOS POLINOMIO
   pter  term;     //PUNTERO AL PRIMER TERMINO DEL POLINOMIO
   polinomio *sig; //PUNTERO A SIGUIENTE POLINOMIO
   polinomio *ant; //PUNTERO AL POLINOMIO ANTERIOR
   };
typedef polinomio *nodo;
//-----------------------------------------------------
struct polinomio2{  //ESTRUCTURA DE LOS POLINOMIO
   pter  term;     //PUNTERO AL PRIMER TERMINO DEL POLINOMIO
   polinomio *sig; //PUNTERO A SIGUIENTE POLINOMIO
   polinomio *ant; //PUNTERO AL POLINOMIO ANTERIOR
   };
typedef polinomio2 *nodo2;
//-----------------------------------------------------
struct lista2{ //ESTRUCTURA DE LAS OPERACIONES CON LOS DEMAS POLINOMIOS
char operacion[2];//VARIABLE PARA LA OPERACION
pter poli; //PUNTERO AL PRIMER TERMINO DEL POLINOMIO
lista2 *sig;   //PUNTERO AL SIGUIENTE POLINOMIO
lista2 *ant;
};
typedef lista2 *plista;
//-----------------------------------------------------
class polinomios{
public:
void inicializar();
void inicializart();
void nuevop();
void nuevot(int co,int exp);
void enlazar();
void separar();
void insertar(char aux[20]);
void enlazar2();
void nuevop2();
void nuevot2(int co,int exp);
void SUMAR();
void RESTAR();
void MULTIPLICAR();
void operacion ();
void nuevotR(int co,int exp);
char mostrar();
private:
plista auxl;
plista list;
pter listat2;
pter auxt2;
pter tmp2;
nodo listap2;
nodo auxp2;

pter listat;
nodo listap;//PRINCIPAL PARA INGRESAR AL PRIMER POLINOMIO DE LA LISTA
nodo auxp;
pter auxt;
pter tmp;
};
//-------------------------------------------------------
//ºººººººººººººººººººººINICIALIZAR
/*char polinomios::mostrar(){
auxt=auxp->term;
i=0;
do {
i++;
}while(auxt!=auxp->term);
}//FIN PROCEDIMIENTO*/
void polinomios::inicializar()
{
auxp=NULL;
listat=NULL;
auxt=NULL;
listap=NULL;
auxl=NULL;
list=NULL;
}

void polinomios::inicializart(){
auxt=NULL;
auxt2=NULL;
listat=NULL;//INICIALIZA UN PUNTERO  A TERMINO
listat2=NULL;//INICIALIZA UN PUNTERO  A TERMINO
}
//-------------------------------------------------------
//ºººººººººººººººººINSERCION DE POLINOMIO POR EL FINAL
void polinomios::nuevop(){

if (listap==NULL){//por que es el primero
listap=new(polinomio);
listap->sig=listap;
listap->ant=listap;
listap->term=NULL;
auxp=listap;
auxp->sig=auxp;
auxp->ant=auxp;

}//finsi
else //sino
if (listap!=NULL){
auxp=new(polinomio);//AUTOMATICAMENTE auxp QUEDA APUNTANDO AL NUEVO POLINOMIO
auxp->sig=listap;
auxp->ant=listap->ant;
listap->ant->sig=auxp;
listap->ant=auxp;
/*listap->term=NULL;*/ }
}//fin procedimiento
//-------------------------------------------------------
//ºººººººººººººººººINSERCION DE TERMINO ORDENADOS
void polinomios::nuevot(int x,int y){
if (listat==NULL){   //CREO EL PRIMER NODO
listat=new(termino);
listat->sig=listat;
listat->ant=listat;
listat->co=x;
listat->exp=y;
auxt=listat;
auxt->sig=listat;
auxt->ant=listat;
}//fin si
else
if (listat!=NULL){
//CREO EL NODO
auxt=new(termino);
auxt->co=x;
auxt->exp=y;
auxt->sig=NULL;
auxt->ant=NULL;
//REVISO SI ES EL DE GRADO MAYOR
//..............................................................................
if ((auxt->exp)>=(listat->exp)){ //AQUI DEBE ENTRAR ORDENADO Y SIN REPETIR
if ((auxt->exp)==(listat->exp)){  //SI ES IGUAL LO SUMO
listat->co=listat->co+auxt->co; //AQUI SE SUMAN SI SON IGUALES LOS EXPONENTES PARA NO REPETIR TERMINOS
}
else
if (auxt->exp>listat->exp){//SINO LO ANEXO COMO EL MAYOR
auxt->sig=listat;
auxt->ant=listat->ant;
listat->ant->sig=auxt;
listat->ant=auxt;
listat=auxt;}
}//finsi
else
//REVISO SI ES EL DE GRADO MENOR
//..............................................................................
if (auxt->exp<=listat->ant->exp){
if (auxt->exp==listat->ant->exp) {//SI ES IGUAL LO SUMO
listat->ant->co=listat->ant->co+auxt->co;//AQUI SE SUMAN SI SON IGUALES LOS EXPONENTES PARA NO REPETIR TERMINOS
}//FIN SI
else
if (auxt->exp<listat->ant->exp){   //SINO LO ANEXO
auxt->sig=listat;
auxt->ant=listat->ant;
listat->ant->sig=auxt;
listat->ant=auxt;}
}//fin si
else
if ((auxt->exp!=listat->ant->exp)&(auxt->exp)!=(listat->exp))  {
//SI ESTA DENTRO DE LA LISTA
//..............................................................................
tmp=listat->sig;
while (auxt->exp<tmp->exp){
tmp=tmp->sig;      //ME DA LA POSICION DONDE DEBO INSERTAR
}//fin mientras
if (tmp->exp==auxt->exp){   //ME DA LA POSICION DONDE DEBE ESTAR
tmp->co=tmp->co+auxt->exp;
}
else
if (tmp->exp<auxt->exp){//SINO LO ANEXO ADELANTE
auxt->sig=tmp;
auxt->ant=tmp->ant;
tmp->ant->sig=auxt;
tmp->ant=auxt;}//FIN SI
}//FIN SI
}
}//fin procedimiento
//ºººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººº
void polinomios::enlazar(){
auxp->term=listat; //**ENLAZO CON EL PUNTERO DE POLINOMIO
}//FIN PROCEDIMIENTO
//ººººººººººººººººººººººººººººººººººººººººººººººººººººººº2
void polinomios::enlazar2(){
auxl->poli=listat2; //**ENLAZO CON EL PUNTERO DE POLINOMIO
nope++;
}//FIN PROCEDIMIENTO

//ººººººººººººººººººººººººººººººººººººººººººººººººººººººº2
void polinomios::insertar(char aux[20]){  //PARA LA SEGTUNDA LISTA
auxl=new(lista2);  //LA OTRA LISTA SE CREA PARA LAS OPERACIONES CON LOS DEMAS POLINOMIOS
//..............................................................................
if (list==NULL){  //SI NO HAY NINGUN POLINOMIO
auxl->sig=auxl;//APUNTA ASI MISMO
auxl->ant=auxl;//APUNTA ASI MISMO
auxl->poli=NULL; //AUN NO SE ENLAZA
list=auxl;
list->poli=NULL; //AUN NO SE ENLAZA
list=auxl;//ASIGNO EL PUNTERO A LA PRIMERA OPERACION
list->sig=auxl;//APUNTA ASI MISMO
list->ant=auxl;//APUNTA ASI MISMO
StrCopy(list->operacion,aux); //GUARDO LA OPERACION
StrCopy(auxl->operacion,aux); //GUARDO LA OPERACION
}//FIN SI
else
if (list!=NULL){ //SI YA HAY UNA OPERACION CON POLINOMIO
auxl->sig=list;  //INSERTO LA SIGUIENTE
auxl->ant=list->ant;
list->ant->sig=auxl;
list->ant=auxl;
auxl->poli=NULL;
StrCopy(auxl->operacion,aux);
}//FIN SI
}//FIN PROCEDIMIENTO
//ºººººººººººººººººINSERCION DE TERMINO ORDENADOS
void polinomios::nuevot2(int x,int y){ //PARA INSERTAR LOS TERMINOS ORDENADOS DE LA 2da LISTA
if (listat2==NULL){   //CREO EL PRIMER NODO
listat2=new(termino);
listat2->sig=listat2;
listat2->ant=listat2;
listat2->co=x;
listat2->exp=y;
auxt2=listat2;
auxt2->sig=listat2;
auxt2->ant=listat2;
}//fin si
else
if (listat2!=NULL){
//CREO EL NODO
auxt2=new(termino);
auxt2->co=x;
auxt2->exp=y;
auxt2->sig=NULL;
auxt2->ant=NULL;
//REVISO SI ES EL DE GRADO MAYOR
//..............................................................................
if ((auxt2->exp)>=(listat2->exp)){ //AQUI DEBE ENTRAR ORDENADO Y SIN REPETIR
if ((auxt2->exp)==(listat2->exp)){  //SI ES IGUAL LO SUMO
listat2->co=listat2->co+auxt2->co; //AQUI SE SUMAN SI SON IGUALES LOS EXPONENTES PARA NO REPETIR TERMINOS
}
else
if (auxt2->exp>listat2->exp){//SINO LO ANEXO COMO EL MAYOR
auxt2->sig=listat2;
auxt2->ant=listat2->ant;
listat2->ant->sig=auxt2;
listat2->ant=auxt2;
listat2=auxt2;}
}//finsi
else
//REVISO SI ES EL DE GRADO MENOR
//..............................................................................
if (auxt2->exp<=listat2->ant->exp){
if (auxt2->exp==listat2->ant->exp) {//SI ES IGUAL LO SUMO
listat2->ant->co=listat2->ant->co+auxt2->co;//AQUI SE SUMAN SI SON IGUALES LOS EXPONENTES PARA NO REPETIR TERMINOS
}//FIN SI
else
if (auxt2->exp<listat2->ant->exp){   //SINO LO ANEXO
auxt2->sig=listat2;
auxt2->ant=listat2->ant;
listat2->ant->sig=auxt2;
listat2->ant=auxt2;}
}//fin si
else
if ((auxt2->exp!=listat2->ant->exp)&(auxt2->exp!=listat2->exp))  {
//SI ESTA DENTRO DE LA LISTA
//..............................................................................
tmp2=listat2->sig;
while (auxt2->exp<tmp2->exp){
tmp2=tmp2->sig;      //ME DA LA POSICION DONDE DEBO INSERTAR
}//finmientras
if (tmp2->exp==auxt2->exp){   //ME DA LA POSICION DONDE DEBE ESTAR
tmp2->co=tmp2->co+auxt2->exp;
}
else
if (tmp2->exp<auxt2->exp){//SINO LO ANEXO ADELANTE
auxt2->sig=tmp2;
auxt2->ant=tmp2->ant;
tmp2->ant->sig=auxt2;
tmp2->ant=auxt2;}//FIN SI
}//FIN SI
}
}//fin procedimiento
//ºººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººº
//ºººººººººººººººººINSERCION DE TERMINO ORDENADOS
void polinomios::nuevotR(int x,int y){
if (listat==NULL){   //CREO EL PRIMER NODO
listat=new(termino);
listat->sig=listat;
listat->ant=listat;
listat->co=x;
listat->exp=y;
auxt=listat;
auxt->sig=listat;
auxt->ant=listat;
}//fin si
else
if (listat!=NULL){
//CREO EL NODO
auxt=new(termino);
auxt->co=x;
auxt->exp=y;
auxt->sig=NULL;
auxt->ant=NULL;
//REVISO SI ES EL DE GRADO MAYOR
//..............................................................................
if ((auxt->exp)>=(listat->exp)){ //AQUI DEBE ENTRAR ORDENADO Y SIN REPETIR
if ((auxt->exp)==(listat->exp)){  //SI ES IGUAL LO SUMO
listat->co=listat->co-auxt->co; //AQUI SE SUMAN SI SON IGUALES LOS EXPONENTES PARA NO REPETIR TERMINOS
}
else
if (auxt->exp>listat->exp){//SINO LO ANEXO COMO EL MAYOR
auxt->sig=listat;
auxt->ant=listat->ant;
listat->ant->sig=auxt;
listat->ant=auxt;
listat=auxt;}
}//finsi
else
//REVISO SI ES EL DE GRADO MENOR
//..............................................................................
if (auxt->exp<=listat->ant->exp){
if (auxt->exp==listat->ant->exp) {//SI ES IGUAL LO SUMO
listat->ant->co=listat->ant->co-auxt->co;//AQUI SE SUMAN SI SON IGUALES LOS EXPONENTES PARA NO REPETIR TERMINOS
}//FIN SI
else
if (auxt->exp<listat->ant->exp){   //SINO LO ANEXO
auxt->sig=listat;
auxt->ant=listat->ant;
listat->ant->sig=auxt;
listat->ant=auxt;}
}//fin si
else
if ((auxt->exp!=listat->ant->exp)&(auxt->exp)!=(listat->exp))  {
//SI ESTA DENTRO DE LA LISTA
//..............................................................................
tmp=listat->sig;
while (auxt->exp<tmp->exp){
tmp=tmp->sig;      //ME DA LA POSICION DONDE DEBO INSERTAR
}//fin mientras
if (tmp->exp==auxt->exp){   //ME DA LA POSICION DONDE DEBE ESTAR
tmp->co=tmp->co-auxt->exp;
}
else
if (tmp->exp<auxt->exp){//SINO LO ANEXO ADELANTE
auxt->sig=tmp;
auxt->ant=tmp->ant;
tmp->ant->sig=auxt;
tmp->ant=auxt;}//FIN SI
}//FIN SI
}
}//fin procedimiento

//ºººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººº
void polinomios::separar(){
int exp=0;
//POLI.OUT (FICHERO DE SALIDA)
ofstream out;
out.open("POLI.OUT");
out.close();//CERRAR ARCHIVO
//----------------------------------------------------
ifstream in; //in es el archivo de entrada
//----------- -----------------------------------------
in.open("POLI.IN");  //se abre el archivo
in>>cantidad;
while (cont<=cantidad){ caso1=0;caso2=0;signo='\0';ind=0;i=0;exp=0;co=0;
char a[20]=" ";
in >>a;  //SE LEE POLINOMIO ACTUAL
c=a[0]; //SE LE ASIGNA EL PRIMER CARACTER
inicializart();//INICIALIZA EL PUNTERO TERMINO
nuevop();//INGRESA UN NUEVO POLINOMIO
/***********************
*SEPARACION DE TERMINOS*
************************/
while (c!='\0'){
    if ((c=='+')||(c=='-')){signo=c;i++;c=a;caso1=0;caso2=0;exp=0;co=0;ind=0;
     }//para el signo
/***************
*    CASOS:    *
*CASOS SIMPLES *
****************/            //ESTA DE AQUI ERA PARA:
     if ((c!='x')&(caso1!=2)){//recueda que la 3er condicion es para que
       co=(co*10)+(StrToInt©);            //no se confunda con el termino indipendiente
       caso1=1;
     }//finsi
     if ((c=='x')&(caso1==1)){  //se puede hacer otro caso con 0
     caso2=1;
     caso1=2;
     exp=0;
     }//finsi
     if ((c!='x')&(caso1==2)&(caso2==1)){
     exp=(exp*10)+(StrToInt©);
     }//fin si
/*************
*    CASOS   *
*  ESPECIALES*
**************/
     if ((c=='x')&(caso1==0)){  //se puede hacer otro caso con 0
     co=1;
     if (signo=='-'){co=(co*-1);}
     caso2=1;
     caso1=2;
     }//finsi
     if ((c=='x')&((a[i+1]=='+')||(a[i+1]=='-')||(a[i+1]=='\0')))
     {exp=1;
     }//FINSI
    i++;
    c=a;

     if ((c=='+')||(c=='-')||c=='\0'){ //hay que mejorarlo por el vacio
     if (signo=='-'){co=co*-1;}
     x=0;y=0;
     nuevot( co, exp);}
 }//fin mientras
enlazar();
 cont++;
}//fin mientras mayor
//**************DESCOMPOSICION Y OPERACIONES ******************
//------------------------------------------------------------------
char b[20]=" ";

while (c!='#'){
char b[20]=" ";
in >>b;
c=b[0];
inicializart();//INICIALIZA EL PUNTERO TERMINO PARA UN NUEVO POLINOMIO
//------------------------------------------------------------------
if ((b[0]=='A')||(b[0]=='S')||(b[0]=='M')){
insertar(B);//CREO UN NODO PARA OPERACION QUE CONTENDRA EL POLINOMIO
}//FIN SI
if ((b[0]!='A')&(b[0]!='S')&(b[0]!='M')&(b[0]!='#')){
 co=0;exp=0;caso1=0;caso2=0;
i=0;
c=b[0];
 while (c!='\0'){
    if ((c=='+')||(c=='-')){signo=c;i++;c=b;caso1=0;caso2=0;exp=0;co=0;ind=0;
     }//para el signo
/***************
*    CASOS:    *
*CASOS SIMPLES *
****************/            //ESTA DE AQUI ERA PARA:
     if ((c!='x')&(caso1!=2)){//recueda que la 3er condicion es para que
       co=(co*10)+(StrToInt©);            //no se confunda con el termino indipendiente
       caso1=1;
     }//finsi
     if ((c=='x')&(caso1==1)){  //se puede hacer otro caso con 0
     caso2=1;
     caso1=2;
     exp=0;
     }//finsi
     if ((c!='x')&(caso1==2)&(caso2==1)){
     exp=(exp*10)+(StrToInt©);
     }//fin si
/*************
*    CASOS   *
*  ESPECIALES*
**************/
     if ((c=='x')&(caso1==0)){  //se puede hacer otro caso con 0
     co=1;
     if (signo=='-'){co=(co*-1);}
     caso2=1;
     caso1=2;
     }//finsi
     if ((c=='x')&((b[i+1]=='+')||(b[i+1]=='-')||(b[i+1]=='\0')))
     {exp=1;
     }//FINSI
    i++;
    c=b;
     if ((c=='+')||(c=='-')||c=='\0'){ //hay que mejorarlo por el vacio
     if (signo=='-'){co=co*-1;}
     x=0;y=0;
     nuevot2( co, exp);}
 }//fin mientras
enlazar2();
}//FIN SI
}//FIN MIENTRAS
in.close();
}//FIN PROCEDIMINETO
//ºººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººº
void polinomios::SUMAR() {
caso1=1;
auxt2=auxl->poli;
auxt=listap->term;
tmp=auxt;
i=tmp->exp;
ind=auxt2->exp;

do {
      nuevop();  //CREO UN NUEVO POLINOMIO
   do{

        if ((tmp->co!=0)||(tmp->exp!=0)) {
        co2=tmp->co;
        exp2=tmp->exp;
        nuevot(co2,exp2);
        }
       tmp=tmp->sig;
      }while (tmp->exp!=i);//FIN REPETIR

      do {   //REPETIR
      co2=auxt2->co;
      exp2=auxt2->exp;
      nuevot(co2,exp2);
      auxt2=auxt2->sig;
      }while (auxt2->exp!=ind);//FIN REPETIR
      enlazar();
       listat=NULL;
//................SE AVANZA EN LOS POLINJOMIOS
      auxp2=auxp2->sig;
      auxt=auxp2->term;
      tmp=auxt;
      caso1++;
 }while(caso1<=cantidad);//FIN MIENTRAS
  cantidad=(cantidad*2);//DUPLICO LA CANTIDAD DE POLINOMIOS
 }//FIN PROCEDIMIENTO
//ºººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººº
void polinomios::RESTAR(){
caso1=1;
auxt2=auxl->poli;
auxt=listap->term;
tmp=auxt;
i=tmp->exp;
ind=auxt2->exp;

do {
      nuevop();  //CREO UN NUEVO POLINOMIO
   do{

        if ((tmp->co!=0)||(tmp->exp!=0)) {
        co2=tmp->co;
        exp2=tmp->exp;
        nuevotR(co2,exp2);
        }
       tmp=tmp->sig;
      }while (tmp->exp!=i);//FIN REPETIR

      do {   //REPETIR
      co2=auxt2->co;
      exp2=auxt2->exp;
      nuevotR(co2,exp2);
      auxt2=auxt2->sig;
      }while (auxt2->exp!=ind);//FIN REPETIR
      enlazar();
       listat=NULL;
//................SE AVANZA EN LOS POLINJOMIOS
      auxp2=auxp2->sig;
      auxt=auxp2->term;
      tmp=auxt;
      caso1++;
 }while(caso1<=cantidad);//FIN MIENTRAS
  cantidad=(cantidad*2);//DUPLICO LA CANTIDAD DE POLINOMIOS
}//FINPROCEDIMIENTO
//ºººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººº
void polinomios::MULTIPLICAR (){}//FINPROCEDIMIENTO
//ºººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººº
void polinomios::operacion()//PARA ELEGIR LA OPERACION
{
caso2=0;
auxl=list;
auxp=listap;//EL PRIMER POLINOMIO DE LA LISTA
auxp2=auxp;
do{
if (auxl->operacion[0]=='A'){ SUMAR();   }//FINSI
if (auxl->operacion[0]=='S'){RESTAR(); }//FINSI
if (auxl->operacion[0]=='M'){MULTIPLICAR(); }//FINSI
auxl=auxl->sig;
caso2++;
} while(caso2<=nope);
auxp=listap;
}//FIN PROCEDIMIENTO


Este es el error que bota:
4 D:\Dev-Cpp\include\c++\3.4.2\backward\fstream.h:31,               from F:\Nueva carpeta\principal.cpp In file included from D:/Dev-Cpp/include/c++/3.4.2/backward/fstream.h:31,               from F:\Nueva carpeta\principal.cpp

aclaro la libreria esta declarada tanto en el principal como en el .h
a los que tomen el codigo les explico ese codigo lo hice primero en c++builder y ahora lo trato de traducir a dev c++ muchas gracias por atender esto y aquien tome el codigo suerte

Páginas: 1 2 [3]