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ú

Mensajes - josue_tux

#31
Programación C/C++ / ayuda en validacion
25 Mayo 2010, 02:30 AM
bueno estoy en la desarollando un sistema de invetario lo que no se como puedo hacer es hacer la validacion de texto por ejemplo yo hice este programa que valida la entrada de 5 caracteres de una cadena y no permite mas caracteres exactamente  5, pero el problema me surge que el programa lo estoy trabajano en linux no se si habra otra forma de hacer esto porque en linux.
En linux  da error por la libreria conio... les agradeceri si hay alguna forma de validar cadena ya sea con un ciclos for , while les estaria muy agradecido


por ejemplo si el usuario quiere difitar lo siguiente
  codigo -> elhacker
el programa solo le escribira "elhac" y aunque el usuario digite no se le deplegara mas caracactere solo exactamente 5, eso es lo que hace este programa. pero lo malo que se vale mucho de la libreria conio y el problema que lo desarollo en linux

vean

//****  este programa lo desarolle en turbo c++ 3.0 ***** ///
// permite la entrada solo de 5 caracteres ideales para validacion de cadenas

#include <stdio.h>
#include <conio.h>
int main(void)
{
    char cadena[6];       // contiene el array char
    char *puntero;         // es el puntero donde se almacena el array char
    clrscr();
    cadena[0] = 6;       
    printf("Digite el codigo:\n");
    puntero = cgets(cadena);
    fflush(stdin);
putchar(*puntero);
putchar('\n');

    getch();
    return 0;
}

#32
bueno es un diccionario con arboles binarios,  la estructuras de mi programa son las siguiente


struct nodos
{
char ingles[50];
char español[50];
struct nodos *der;
struct nodos *izq;
int siguiente;
};
     typedef struct nodos Arbol;
     typedef Arbol *ARBOL;
     int listo;
    char in[50],es[50];


la consulta es como guardo todo el diccionario en un .txt

yo lo intente haci


void cargar()
{
  nodos Arbol info;
  FILE *fp;

  fp=fopen("arbol.txt","r");
  if(fp==NULL)
  {
     printf("No se puede abrir el archivo\n");
     return;
  }

  while(!feof(fp))
  {
     if(fread(&info, sizeof(nodos Arbol), 1, fp)!=1) break;
      agregar(&raiz);
  }

  fclose(fp);
}

void guardar()
{
   nodos Arbol info;
  FILE *fp;

  fp=fopen("arbol.txt","w");
  if(fp==NULL)
  {
     printf("No se puede abrir el archivo\n");
     return;
  }



pero no me sirve y me da como 7 errores no se a que se debera alguien si sabe me podria decir en que equivoco

errores:
undefined symbol nodos
statement mising
expected
if statementm missing
undefine symbol raiz
declaration syntax error

no se que sera

*******************************************************************
bueno aca el codigo completo del programa si alguien puede poner esa opcion de guardar  en un txt se lo agradeceria :


#include "stdio.h"
#include "stdlib.h"
#include "conio.h"
#include "string.h"
#include "iostream.h"
//-------------------------------------------------------------------------------------
// Estructura del Nodo
//-------------------------------------------------------------------------------------
struct nodos{
char ingles[50];
char espanol[50];
struct nodos *der;
struct nodos *izq;
int Fe;
};
//-------------------------------------------------------------------------------------
// --------------------
//-------------------------------------------------------------------------------------
typedef struct nodos Arbol;
typedef Arbol *ARBOL;
int listo;
char in[50],es[50];
//-------------------------------------------------------------------------------------
// Protótipos de las funciones
//-------------------------------------------------------------------------------------
void menu();
void menu_agregar();
void menu_ingles();
void menu_espanol();
void menu_borrar();
void menu_listar();
void agregar(ARBOL  *nodoarb);
void buscar_ingles(ARBOL nodoarb);
void buscar_espanol(ARBOL nodoarb);
void listar(ARBOL nodoarb);
void rotacionddsimple(ARBOL *nodoarb);
void rotaciondidoble(ARBOL *nodoarb);
void rotaciondd2(ARBOL *nodoarb);
void rotacionii2(ARBOL *nodoarb);
void rotacioniisimple(ARBOL *nodoarb);
void rotacioniddoble(ARBOL *nodoarb);
void menor(ARBOL nodoarb);
void actualizarbi(ARBOL *nodoarb, int *ban);
void actualizarbd(ARBOL *nodoarb, int *ban);
void eliminar(ARBOL *nodoarb, int *ban);
void borrar(ARBOL *nodoarb , int *ban);
//-------------------------------------------------------------------------------------
//     PROGRAMA PRINCIPAL
//-------------------------------------------------------------------------------------
void main()
{
char opc='1';
int ban=1;
ARBOL raiz=NULL;
do
{
menu();
cin>>opc;
switch(opc){
case '1':
menu_agregar();
    cout<<"Introduzca Palabra en Ingles : ";
cin>>in;
cout<<"Introduzca Palabra en Espanol : ";
cin>>es;
agregar(&raiz);
    break;
case '2':
menu_borrar();
cout<<"Que Palabra en Ingles desea Borrar? : ";
cin>>in;
borrar(&raiz,&ban);
cout<<"Elemento Borrado!";
    break;
case '3':
    menu_ingles();
cout<<"Que Palabra en Ingles desea Buscar? : ";
cin>>in;
listo=0;
buscar_ingles(raiz);
if (listo==0)
cout<<"Elemento no encontrado!";
getch();
listo=0;
break;
   
case '4':
menu_espanol();
cout<<"Que Palabra en Espanol desea Buscar? : ";
cin>>es;
listo=0;
buscar_espanol(raiz);
if (listo==0)
cout<<"Elemento no encontrado!";
getch();
listo=0;
break;
case '5':
menu_listar();
listar(raiz);
getch();
    break;
}
} while (opc !='6');
}
//-------------------------------------------------------------------------------------
//     Funcion Menu
//-------------------------------------------------------------------------------------
void menu()
{
system("cls");
cout<<"--------------------------------------------------------------------------------"<<endl;
cout<<"                                                                                "<<endl;
cout<<"               TRADUCTOR INGLES - ESPANOL / ESPANOL INGLES                      "<<endl;
cout<<"                                                                                "<<endl;
cout<<"--------------------------------------------------------------------------------"<<endl;
cout<<"                                                                                "<<endl;
cout<<"                  1. Agregar palabras al diccionario                            "<<endl;
cout<<"                                                                                "<<endl;
cout<<"                  2. Borrar palabras del diccionario                            "<<endl;
cout<<"                                                                                "<<endl;
cout<<"                  3. Consultar Palabra en Ingles                                "<<endl;
cout<<"                                                                                "<<endl;
cout<<"                  4. Consultar Palabra en Espanol                               "<<endl;
cout<<"                                                                                "<<endl;
cout<<"                  5. Listar Palabras                                            "<<endl;
cout<<"                                                                                "<<endl;
cout<<"                  6. Salir                                                      "<<endl;
cout<<"                                                                                "<<endl;
cout<<"--------------------------------------------------------------------------------"<<endl;
cout<<"                                                                                "<<endl;
cout<<"                                                                                "<<endl;
cout<<"                                                                                "<<endl;
cout<<"  Digite su Opcion?????                                                         "<<endl;

}

//-------------------------------------------------------------------------------------
//     Funcion Menu Agregar
//-------------------------------------------------------------------------------------
void menu_agregar()
{
system("cls");
cout<<"--------------------------------------------------------------------------------"<<endl;
cout<<"                                                                                "<<endl;
cout<<"                      AGREGAR PALABRAS AL TRADUCTOR                             "<<endl;
cout<<"                                                                                "<<endl;
cout<<"--------------------------------------------------------------------------------"<<endl;
cout<<"                                                                                "<<endl;
cout<<"                                                                                "<<endl;
cout<<"                                                                                "<<endl;
cout<<"                                                                                "<<endl;
}

//-------------------------------------------------------------------------------------
//     Funcion Menu Buscar Ingles
//-------------------------------------------------------------------------------------
void menu_ingles()
{
system("cls");
cout<<"--------------------------------------------------------------------------------"<<endl;
cout<<"                                                                                "<<endl;
cout<<"                         BUSCAR PALABRA EN INGLES                               "<<endl;
cout<<"                                                                                "<<endl;
cout<<"--------------------------------------------------------------------------------"<<endl;
cout<<"                                                                                "<<endl;
cout<<"                                                                                "<<endl;
cout<<"                                                                                "<<endl;
cout<<"                                                                                "<<endl;
}

//-------------------------------------------------------------------------------------
//     Funcion Menu Buscar Espanol
//-------------------------------------------------------------------------------------
void menu_espanol()
{
system("cls");
cout<<"--------------------------------------------------------------------------------"<<endl;
cout<<"                                                                                "<<endl;
cout<<"                        BUSCAR PALABRA EN ESPANOL                               "<<endl;
cout<<"                                                                                "<<endl;
cout<<"--------------------------------------------------------------------------------"<<endl;
cout<<"                                                                                "<<endl;
cout<<"                                                                                "<<endl;
cout<<"                                                                                "<<endl;
cout<<"                                                                                "<<endl;
}

//-------------------------------------------------------------------------------------
//     Funcion Menu Borrar
//-------------------------------------------------------------------------------------
void menu_borrar()
{
system("cls");
cout<<"--------------------------------------------------------------------------------"<<endl;
cout<<"                                                                                "<<endl;
cout<<"                      BORRAR PALABRA DEL DICCIONARIO                            "<<endl;
cout<<"                                                                                "<<endl;
cout<<"--------------------------------------------------------------------------------"<<endl;
cout<<"                                                                                "<<endl;
cout<<"                                                                                "<<endl;
cout<<"                                                                                "<<endl;
cout<<"                                                                                "<<endl;
}
//-------------------------------------------------------------------------------------
//     Funcion Menu Listar
//-------------------------------------------------------------------------------------
void menu_listar()
{
system("cls");
cout<<"--------------------------------------------------------------------------------"<<endl;
cout<<"                                                                                "<<endl;
cout<<"                      LISTAR PALABRAS DEL TRADUCTOR                             "<<endl;
cout<<"                                                                                "<<endl;
cout<<"--------------------------------------------------------------------------------"<<endl;
cout<<"                                                                                "<<endl;
}

//-------------------------------------------------------------------------------------
//      Funcion Agregar palabras al Diccionario
//-------------------------------------------------------------------------------------

void agregar(ARBOL  *nodoarb)
{

int det;
if (*nodoarb == NULL){
*nodoarb = new(Arbol);
if (*nodoarb != NULL){
strcpy((*nodoarb)->ingles,in);
strcpy((*nodoarb)->espanol,es);
(*nodoarb)->der=NULL;
(*nodoarb)->izq=NULL;
}
else{
            system("cls");
cout<<"No hay memoria suficiente!";
}
}
else
{
det=strcmp(in,(*nodoarb)->ingles);

if (det < 0)
agregar (&((*nodoarb)->izq));
else
if (det > 0)
agregar (&((*nodoarb)->der));
else
{
system("cls");
cout<<"¡¡¡ Dato duplicado !!!";
getch();
system("cls");
}
}
}

//-------------------------------------------------------------------------------------
//     Funcion Buscar Ingles
//-------------------------------------------------------------------------------------

void buscar_ingles(ARBOL nodoarb)
{
if (nodoarb != NULL){
buscar_ingles(nodoarb->izq);
if (strcmp(in,nodoarb->ingles)==0)
{
cout<<endl;
cout<<endl;
cout<<endl;
cout<<"                        "<<nodoarb->ingles<<" -> "<<nodoarb->espanol<<endl;
listo=1;
return;
}
buscar_ingles(nodoarb->der);
}
}

//-------------------------------------------------------------------------------------
//     Funcion Buscar Ingles
//-------------------------------------------------------------------------------------

void buscar_espanol(ARBOL nodoarb)
{
if (nodoarb != NULL){
buscar_espanol(nodoarb->izq);
if (strcmp(es,nodoarb->espanol)==0)
{
cout<<endl;
cout<<endl;
cout<<endl;
cout<<"                        "<<nodoarb->espanol<<" -> "<<nodoarb->ingles<<endl;
listo=1;
return;
}
buscar_espanol(nodoarb->der);
}
}
//-------------------------------------------------------------------------------------
//     Funcion listar Palabras
//-------------------------------------------------------------------------------------


void listar(ARBOL nodoarb)
{
if (nodoarb != NULL){
listar(nodoarb->izq);
cout<<"                            "<<nodoarb->ingles<<" -> "<<nodoarb->espanol<<endl;
listar(nodoarb->der);
}
}

//-------------------------------------------------------------------------------------
//     Funcion rotacionddsimple
//-------------------------------------------------------------------------------------

void rotacionddsimple(ARBOL *nodoarb)
{
  ARBOL nda=NULL;
nda=(*nodoarb)->der;
(*nodoarb)->der=nda->izq;
nda->izq=(*nodoarb);
nda->Fe=0;
(*nodoarb)->Fe=0;
}

//-------------------------------------------------------------------------------------
//     Funcion rotaciondidoble
//-------------------------------------------------------------------------------------

void rotaciondidoble(ARBOL *nodoarb)
{
  ARBOL nda1=NULL, nda2=NULL;
nda1=(*nodoarb)->der;
nda2=nda1->der;

nda1->izq=nda2->der;
nda2->der=nda1;
(*nodoarb)->der=nda2->izq;
nda2->izq=(*nodoarb);

if (nda2->Fe == 1)
(*nodoarb)->Fe=-1;
else
(*nodoarb)->Fe=0;
if (nda2->Fe == -1)
(*nodoarb)->Fe=1;
else
(*nodoarb)->Fe=0;

nda2->Fe=0;
(*nodoarb)=nda2;
}

//-------------------------------------------------------------------------------------
//     Funcion rotaciondd2
//-------------------------------------------------------------------------------------

void rotaciondd2(ARBOL *nodoarb)
{
  ARBOL nda=NULL;
nda=(*nodoarb)->der;
(*nodoarb)->der=nda->izq;
nda->izq=(*nodoarb);
nda->Fe=-1;
(*nodoarb)->Fe=1;
(*nodoarb)=nda;
}

//-------------------------------------------------------------------------------------
//     Funcion rotacionii2
//-------------------------------------------------------------------------------------

void rotacionii2(ARBOL *nodoarb)
{
  ARBOL nda=NULL;
nda=(*nodoarb)->izq;
(*nodoarb)->izq=nda->der;
nda->der=(*nodoarb);
nda->Fe=1;
(*nodoarb)->Fe=-1;
(*nodoarb)=nda;
}

//-------------------------------------------------------------------------------------
//     Funcion rotacionsimple
//-------------------------------------------------------------------------------------


void rotacioniisimple(ARBOL *nodoarb)
{
  ARBOL nda=NULL;
nda=(*nodoarb)->izq;
(*nodoarb)->izq=nda->der;
nda->der=(*nodoarb);
nda->Fe=0;
(*nodoarb)->Fe=0;
        *nodoarb=nda;
}

//-------------------------------------------------------------------------------------
//     Funcion rotacioniddoble
//-------------------------------------------------------------------------------------

void rotacioniddoble(ARBOL *nodoarb)
{
  ARBOL nda1=NULL, nda2=NULL;

nda1=(*nodoarb)->izq;
nda2=nda1->der;
nda1->der=nda2->izq;
nda2->izq=nda1;

(*nodoarb)->izq=nda2->der;
nda2->der=(*nodoarb);

if (nda2->Fe == 1)
nda1->Fe=-1;
else
nda1->Fe=0;
if (nda2->Fe == -1)
(*nodoarb)->Fe=1;
else
(*nodoarb)->Fe=0;

nda2->Fe=0;
(*nodoarb)=nda2;
}

//-------------------------------------------------------------------------------------
//     Funcion Menor
//-------------------------------------------------------------------------------------

void menor(ARBOL nodoarb)
{
if (nodoarb->izq == NULL)
{
strcpy(in,nodoarb->ingles);
strcpy(es,nodoarb->espanol);
}
else
menor(nodoarb->izq);
}

//-------------------------------------------------------------------------------------
//     Funcion Actualizarbi
//-------------------------------------------------------------------------------------

void actualizarbi(ARBOL *nodoarb, int *ban)
{
switch((*nodoarb)->Fe){
case -1:
(*nodoarb)->Fe=0;
break;
case 0:
(*nodoarb)->Fe=1;
*ban=0;
break;
case 1:
switch((*nodoarb)->der->Fe){
case 1:
rotacionddsimple(&(*nodoarb));
break;
case -1:
rotaciondidoble(&(*nodoarb));
break;
case 0:
rotaciondd2(&(*nodoarb));
*ban=0;
break;

}
break;
}
}
//-------------------------------------------------------------------------------------
//     Funcion Actualizarbd
//-------------------------------------------------------------------------------------


void actualizarbd(ARBOL *nodoarb, int *ban)
{
switch((*nodoarb)->Fe){
case 1:
(*nodoarb)->Fe=0;
break;
case 0:
(*nodoarb)->Fe=-1;
*ban=0;
break;
case -1:
switch((*nodoarb)->izq->Fe){
case -1:
rotacioniisimple(&(*nodoarb));
break;
case 1:
rotacioniddoble(&(*nodoarb));
break;
case 0:
rotacionii2(&(*nodoarb));
*ban=0;
break;

}
break;
}
}

//-------------------------------------------------------------------------------------
//     Funcion Eliminar
//-------------------------------------------------------------------------------------

void eliminar(ARBOL *nodoarb, int *ban)
{
ARBOL aux=NULL;

if ((*nodoarb)->izq == NULL){
aux=*nodoarb;
*nodoarb=(*nodoarb)->der;
free(aux);
*ban=1;
}
else{
if ((*nodoarb)->der == NULL){
aux=*nodoarb;
*nodoarb=(*nodoarb)->izq;
free(aux);
*ban=1;
}
else{
menor((*nodoarb)->der);
borrar(&(*nodoarb)->der,&(*ban));
if (*ban)
actualizarbd(&(*nodoarb),&(*ban));
}
}
}


//-------------------------------------------------------------------------------------
//     Funcion Borrar
//-------------------------------------------------------------------------------------


void borrar(ARBOL *nodoarb , int *ban)
{
if (nodoarb == NULL)
*ban=0;
else
if (strcmp((*nodoarb)->ingles,in)==0)
eliminar(&(*nodoarb),&(*ban));

else
if (strcmp((*nodoarb)->ingles,in) > 0 ){
borrar(&(*nodoarb)->izq,&(*ban));
if (*ban)
actualizarbi(&(*nodoarb),&(*ban));
}
else{
borrar(&(*nodoarb)->der,&(*ban));
if (*ban)
actualizarbd(&(*nodoarb),&(*ban));

}
}

//-------------------------------------------------------------------------------------
//                FIN
//-------------------------------------------------------------------------------------



#33
hola estoy creando un programa que me imprime circulo pero me lo imprime haci:




yo utilizo la funcion circle(300,250,50); bueno mi consulta seria como rellenar ese circulo de esta manera (este es solo un ejemplo el):



si alguien sabe le estaria muy agradecido  porque quisiera saber como hacerlo.
#34
bueno resulto que encontre un programa que venian los siguientes archivos

interfaz.h
funciones.h
principal.cpp
colas.cpp
pilas.cpp

entonces no se sinceramente no se si sera como un projecto si alguien sabe como hacerlo en turbo c++ 3.0 (Borlan) me puede decir como compilarlo es que ya probe y nada, les estaria muy agradecido.
#35
Programación C/C++ / Juegos
12 Mayo 2010, 23:14 PM
alguien conoce algun juego hecho con la metodologia de un arbol binario si lo sabe me puede hacer el favor de desirmelo. Le estaria muy agradecido, es que quiero hacer un juego pero sencillo  con arboles binarios ya sea en c++ o dev.
#36
Programación C/C++ / Una consulta
9 Mayo 2010, 19:56 PM
Que sifnifica cuando estos  ciclo for se efectua de esta manera. Porque tengo unos programas que me los pasaron y estan de esta manera y soy sincero no creia que se pudiera hacer eso por eso les pido de favor si alguien sabe me lo diga.



1.  que pasa cuando un ciclo for lo podemos de esta manera que efectua

for(; ;)
    {

     }


2. o cuando se pone de esta manera que realiza

for(10;10; ;)
        {

        }



#37
Programación C/C++ / Arboles binarios
9 Mayo 2010, 04:53 AM
Bueno hice los siguientes ejercicios:
- Secuencias de nodos que ordene de preorden, inorden, postorden
- Un arbol de bisqueda
- Cuantos nodos tiene que tener un arbol
- arbol que imprima las hojas de un arbol binario y los nodos interno de un arbol
- entre otros

Pero la consulta: que aplicacion de la vida cotidiana puedo demostrar utilizando arboles binarios pues la quiero pasar a c++ y demostarla , pues no pongo esos programas porque estan en la red por eso le pide que me den ideas de que puedo desarollar.

Por ejemplo yo habia pensado un arbol genealogico

                  abuela         abuelo                         abuela           abuelo   
                             papa                                             mama     
                                                hijo                 hija     
                                   
por esos le pido de favor me den mas ideas que otras aplicaciones puedo demostrar..