Menú

Mostrar Mensajes

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ú

Temas - Arnold Herrera

#1

tengo este código como header el problemma es que al momento de compilarlo no me funciona me aparece "iostream no such file or directory" me gustaria e colaboraran para resolver este problema
Código (c++) [Seleccionar]

#include<iostream>
#include<cstdlib>
#include<cstdio>
#include<conio.h>
#include<windows.h>
#include"arista1.h"
#include"cola.h"
#include"pila.h"

using namespace std;

class vertice{
public:
vertice *sig;
arista *ady;
bool marc;
char dato;
char leer();
vertice *insertar(vertice *cab);
vertice *crear();
bool verificar(vertice *cab);
int counternodes(vertice *cab);
void print(vertice *cab,arista *cab2);
void *creararistaa(vertice *Cab);
vertice *searchpositondata(vertice *Cab);
vertice *searchpositondata4(vertice *Cab);
vertice *searchpositondata2(vertice *cab,char id);
vertice *searchpositondata3(vertice *cab);
void grado(vertice *cab);
bool recorrido(vertice *cab,arista *nuevo);
void encolar(vertice *cab);
};

bool vertice::verificar(vertice *cab){ //verifica que exista el grafo o en su defecto que la cabecera sa dferente de NULL
bool v;
if(cab==NULL){
v=false;
return v;
}else{
if(cab!=NULL){
v=true;
return true;
}
}
}
char vertice::leer(){ //lee el dato de un archivo
char dato;
gotoxy(9,23);
cout<<"Por favor ingrese el dato(LETRA):";
cout<<"\x10 ";
cin>>dato;
return dato;
}


vertice *vertice::crear(){ //crea el vertice o nodo del grafo
vertice *nuevo;
nuevo =new vertice;
nuevo->dato=nuevo->leer();
nuevo->ady=NULL;
nuevo->sig=NULL;
nuevo->marc=false;
return nuevo;
}

vertice *vertice::insertar(vertice *cab){// se comienza a dar forma a el grafo
vertice *nuevo;
nuevo=nuevo->crear();
if(cab==NULL){
cab=nuevo;
gotoxy(9,24);
cout<<" HA INGRESADO EXITOSAMENTE EL PRIMER NODO DEL GRAFO\n";
return nuevo;
}else{
vertice *aux;
aux=cab;
while(aux->sig!=NULL){
aux=aux->sig;
}
aux->sig=nuevo;
}
}

int vertice::counternodes(vertice *cab){   //contador de nodos existentes en el grafo
vertice *aux;
aux=cab;
int c=0;
while(aux!=NULL){
aux=aux->sig;
c++;
}
return c;
}

void vertice::print(vertice *cab,arista *cab2){  //mostrar en pantalla del grafo en general
vertice *aux;
aux=cab;
int c=1;
arista *aux2;
aux2=cab->ady;
cout<<"\n GRAFO \n\n";
cout<<"[Lista principal(\31)]   sublista(\32)}\n\n\n";
while(aux!=NULL){
cout<<c<<"["<<aux->dato<<"]\32";
while(aux2!=NULL){
cout<<"{"<<aux2->dato<<"|"<<aux2->peso<<"}\32";
aux2=aux2->sig;

}
if(aux2==NULL){
cout<<"\xB0\xB1\xB2\xDB";
}
cout<<endl;
cout<<"   \31  \n";
aux=aux->sig;
if(aux!=NULL){
aux2=aux->ady;
}
if(aux==NULL){
cout<<"  \xCD\xCB\xCD";
}
c++;
}
cout<<"\n\n";
}

vertice *vertice::searchpositondata3(vertice *cab){
vertice *aux;
char id;
aux=cab;
cout<<"Ingrese la letra del nodo del cual desa saber el grado\n\n";
gotoxy(9,26);
cout<<"\x10 ";
cin>>id;
while(aux->sig!=NULL&&aux->dato!=id){
aux=aux->sig;
if(aux->dato==id){
return aux;
}
}
while(aux->dato!=id&&aux->sig==NULL){
cout<<"Esta letra no existe, por favor ingrese una letra valido\n\n";
gotoxy(9,29);
cout<<"\x10 ";
cin>>id;
}
return aux;
}

vertice *vertice::searchpositondata(vertice *cab){
vertice *aux;
char id;
aux=cab;
cout<<"Ingrese la letra donde desea ingresar la arista\n\n";
gotoxy(9,26);
cout<<"\x10 ";
cin>>id;
while(aux->sig!=NULL&&aux->dato!=id){
aux=aux->sig;
if(aux->dato==id){
return aux;
}
}
while(aux->dato!=id&&aux->sig==NULL){
cout<<"Esta letra no existe, por favor ingrese una letra valido\n\n";
gotoxy(9,29);
cout<<"\x10 ";
cin>>id;
}
return aux;
}

vertice *vertice::searchpositondata4(vertice *cab){
vertice *aux;
char id;
aux=cab;
cout<<"Ingrese la letra donde desea ingresar la arista\n\n";
gotoxy(9,26);
cout<<"\x10 ";
cin>>id;
while(aux->sig!=NULL&&aux->dato!=id){
aux=aux->sig;
if(aux->dato==id){
return aux;
}
}
while(aux->dato!=id&&aux->sig==NULL){
cout<<"Esta letra no existe, por favor ingrese una letra valido\n\n";
gotoxy(9,29);
cout<<"\x10 ";
cin>>id;
}
return aux;
}

vertice *vertice::searchpositondata2(vertice *cab,char id){
vertice *aux;
aux=cab;
while(aux->sig!=NULL&&aux->dato!=id){
aux=aux->sig;
if(aux->dato==id){
return aux;
}
}
int i=26,c=0;
while(aux->dato!=id&&aux->sig==NULL){
c++;
cout<<"Esta letra no existe, por favor ingrese una letra valido\n\n";
gotoxy(9,i);
if(c>0){
i=i+2;
}
cout<<"\x10 ";
cin>>id;
}
return aux;
}

void *vertice::creararistaa(vertice *Cab){  //inserta nodos al inicio de una sublista
int position,c;
bool v;
vertice *aux,*aux3;
arista  *b,*aux2,*aux4,*s;
bool verifyb;
gotoxy(9,25);
aux=aux->searchpositondata(Cab);
aux2=b->creararista(aux->ady);
v=aux->recorrido(Cab,aux2);
while(v==false){
delete aux2;
cout<<"\nESTE DATO NO EXISTE EN EL GRAFO POR FAVOR INGRESE UN DATO VALIDO\n";
aux2=b->creararista(aux->ady);
v=aux->recorrido(Cab,aux2);
}
/*aux3=aux3->searchpositondata2(Cab,aux2->dato);
aux4=b->creararista2(aux->ady,aux->dato);
s=aux3->ady;
aux3->ady=aux4;*/
aux->ady=aux2;

}

bool vertice::recorrido(vertice *cab,arista *nuevo){
vertice *aux;
arista *aux2;
bool v=false;
aux=cab;
aux2=nuevo;
while(aux!=NULL){
if(aux->dato==aux2->dato){
v=true;
return v;
}
aux=aux->sig;
}
if(aux==NULL){
v=false;
return v;
}
}

void vertice:: grado(vertice *cab){
vertice *aux1, *aux;
arista *aux2;
aux1=cab;
aux=cab;
char letra;
int pos=0,suma=0, con=0, suma2=0, con2=0;
if (cab==NULL){
cout<<"--> No hay elementos por mostrar \n\n";
}
else{
cout<<"Digite la letra del nodo a la que quiere saber su grado de entrada y de salida: \n";
gotoxy(9,26);
cin>>letra;   
while (aux!=NULL){
if(aux->dato==letra){
pos=1;
aux1=aux; //aux1 es el nodo de la letra       
}
aux=aux->sig;
}
if(pos==0){
gotoxy(9,27);
cout<<"\32NO SE ENCUENTRA EL NODO  \n";
}
else{
gotoxy(9,27);
cout<<"Nodo: "<<aux1->dato<<"\n";
aux2=aux1->ady;
while(aux2!=NULL){
suma=suma+aux2->peso;
con++;
aux2=aux2->sig;
}
gotoxy(9,28);
cout<<"Grado de salida: "<<con<<endl;
gotoxy(9,29);
cout<<"Suma de arcos de salida: "<<suma<<endl;

aux1=cab;
while (aux1!=NULL){
aux2=aux1->ady;
while (aux2!=NULL){
if(aux2->dato==letra){
suma2=suma2+aux2->peso;
con2++;
}
aux2=aux2->sig;
}
aux1=aux1->sig;
}
gotoxy(9,32);
cout<<"Grado de entrada: "<<con2<<endl;
gotoxy(9,33);
cout<<"Suma de arcos de entrada: "<<suma2<<endl;
}
}
}
void vertice::encolar(vertice *cab){
Nodo *cola=NULL;
/* vertice *aux;
int c=0;
while(aux!=NULL){
c++;
aux=aux->sig;
}
char cola[2][c];
for(int i = 0;i<=c;i++){
cola[0][i]='N';
}
aux=cab;
int i=0;
while(aux!=NULL&&i<=c){
cola[1][i]=aux->dato;
i++;
}
for(int i = 0;i<=1;i++){
for(int a = 0;a<=c;a++){
cout<<cola[i][a]<<" ";
}
}*/
vertice *aux,*aux2;
arista *aux3,*aux4;
aux=cab;
aux4=cab->ady;
aux2=aux2->searchpositondata4(cab);
aux3=aux2->ady;
cola=cola->encolar(cola,aux2->dato);
while(aux!=NULL){
while(aux4!=NULL){
if(aux4->dato=aux2->dato){
aux4->marc=true;
}
}
aux=aux->sig;
if(aux!=NULL){
aux4=aux->ady;
}
}
cola->eliminar(cola);

}
#2
Buenas tardes compañeros vengo a molestarlosun poco, es que estoy haciendo una eliminacion de nodos de un arbol binario pero no se que me este quedando mal, agredeceria su ayuda.

Código (=cpp) [Seleccionar]
arbol *arbol::eliminar(arbol *raiz){
arbol *a,*aux,*bor;
int dato;
cout<<"INGRESE EL VALOR A CONSULTAR: ";
cin>>dato;
cout<<endl;
aux=raiz;  
int c=0;  
while(aux!=NULL){
if(dato==aux->dato){
cout<<"EL DATO PERTENECE AL ARBOL\n";
cout<<"NIVEL : "<<c;
break;

}else{
if(dato>aux->dato){
aux=aux->der;
c++;
}else{
if(dato<aux->dato){
aux=aux->izq;
c++;
}
}
}
}
if(aux->izq==NULL&&aux->der==NULL){
delete aux;
}else{
if(aux->izq!=NULL&&aux->der==NULL){
bor=aux;
aux=aux->izq;
delete bor;
}else{
if(aux->der!=NULL&&aux->izq==NULL){
bor=aux;
aux=aux->der;
delete bor;
}
}

}

}


Agradeceria mucho su ayuda!!
#3
Buenos días estoy haciendo un algoritmo de una "calculadora" que me multiplique números binarios de la siguiente manera:

El usuario ingresara dos números en base 10.
la computadora me transformara estos números en base 2 o en binarios.
La computadora me multiplicara los números binarios en base a la tabla or:
1 o 1=1
1 o 0= 0
0 o 1=0
0 o 0= 0
el resultado de la multiplicación de los binarios debe ser transformado nuevamente en base 10.
((no se pueden operar los numero en base 10)
El programa esta hecho en Dev C++

y tengo las siguientes lineas de código
agradecería me ayudaran lo mas pronto posible, lo único faltante es la multiplicación y como hacer que me aparezca el resultado ya que con eso que tengo hay no me bota el resultado de la operacion.


#include<conio.h>
#include<stdlib.h>
#include<iostream>
#include<math.h>
#include<string.h>
using namespace std;
int main(void){
int cont,num,num2,cont2,i,aux1,aux2,op;
int bin[100];
int bin2[100];
string vec[100][100];
string acarreo[100];

cout<<endl;
cin>>num;
cont=0;
while(num!=1){
bin[cont]=fmod(num,2);
num=floor (num/2);

cont++;

}
bin[cont]=1;

cout<<"Numero binario es: ";
for (int i=cont;i>=0;i--){
cout<<bin[i];

}
cout<<endl;
cin>>num2;
cont2=0;
while(num2!=1){
bin2[cont2]=fmod(num2,2);
num2=floor (num2/2);

cont2++;

}
bin2[cont2]=1;


cout<<"Numero binario es: ";
for (int j=cont2;j>=0;j--){
cout<<bin2[j];

}
cout<<endl;
cout<<"Que operacion utilizara (+) ,(-),(/),(*)\n";
cin>>op;
if(op=='*'){
1*0==0;
0*0==0;
0*1==0;
1*1==1;
for (int i=cont;i>=0;i--){
for (int j=cont2;j>=0;j--){
if(bin[i]*bin2[j]==1*0){
vec[i][j]=(bin[1]*bin2[j]==0);
}
else{
if(bin[i]*bin2[j]==0*0){
vec[i][j]=(bin[i]*bin2[j]==0);
}
else{
if(bin[i]*bin2[j]==0*1){
vec[i][j]=(bin[i]*bin2[j]==0);
}
else(bin[i]*bin2[j]==1*1);{
vec[i][j]=(bin[i]*bin2[j]==1);
}
}
}
}
}
for (int i=cont;i>=0;i--){
for (int j=cont2;j>=0;j--){
cout<<vec[i][j];
}
  }
}






cout<<endl<<"Presione la s";
getch();
;
}