Dudas y Soluciones en C/C++

Volver al índice

Dudas y Soluciones en C/C++ by MaxClowReed at Sun Sep 9 20:51:42 2007

Para todos aquellos que tengan algúna duda en algúna de estas herramientas de programación; pueden preguntar con confianza, si no soy yo, seguramente habrá alguien mas sabiondo que se rifará para responder sus dudas.

Re: Dudas y Soluciones en C/C++ by coxanagi at Thu Oct 4 23:31:04 2007

FIjense que le instalamos el Borland a la compu de mi hermana y hay la poción de correrlo en windos y otra que es en ms-dos. Pos resulta que la función gotoxy solo funciona en DOS y no en guindos, y necesito hacer el programa que tenga gotoxy y textcolor pero cuando corro la de DOS sale un mensaje que dice "16 bit MS-DOS Subsystem este sistema no soporta el modo de pantalla completa, porfa cierralo para terminar la aplicacion.

Como le hago pa que sea de pantalla completa?

Tambien como le puedo hacer para compilar desde DOS?

Re: Dudas y Soluciones en C/C++ by ratman at Sat Oct 6 01:14:55 2007

Mmmmmm prueba abrir una ventana de [tt]cmd[/tt] y presionar Alt+Enter, luego corre el programa desde ahí.

Y para compilar desde DOS tendrías que cambiarte a la carpeta del Borland C y correr [tt]tc[/tt], aunque depende de la versión que tengas. También puedes experimentar con [tt]tcc[/tt], que es el puro compilador sin la IDE.

Nomás pa saber bien, ¿qué versión es?

Re: Dudas y Soluciones en C/C++ by coxanagi at Mon Oct 8 00:18:19 2007

Es borland c++ ver 3.1
Cual es la sintaxis para compilar desde cmd

Re: Dudas y Soluciones en C/C++ by ratman at Wed Oct 10 01:31:53 2007

Básicamente haz esto:
[tt]C:\Documents and settings\Usuario>cd \
C:\>cd borlandc\bin
C:\borlandc\bin>bcc
[/tt]

te va a salir un listado de las opciones disponibles. Si algo de lo que dice no es claro, postea todo lo que sale (le das click derecho y "seleccionar", luego le das enter y copiar) y postealo aquí para explicarte qué pedo con cada opción.

generalmente basta con ponerte en la carpeta donde tienes tu código, y escribir algo así como [tt]c:\borlandc\bin\bcc.exe holamundo.c[/tt]

Re: Dudas y Soluciones en C/C++ by SoulStealer at Tue Nov 27 03:50:33 2007

Necesito Ayuda con un programa en C que sea un arbol de carpetas y archivos, no necesitan ser reales, sólo estar indicados y debe pedir si se ingresará una carpeta o un archivo, y listarlos como en Windows, asi de esta forma fantocha:

C:
|-Archivos de Programa
|-Documents and Settings
|-Porno
|    |-Marketa
|           |-Videos
|           |      |-Marketa en Tanga.mpg
|           |      |-Marketa sin Tanga.mpg
|           |
|           |-Imagenes
|                   |-Foto de la Boda de Nitro y Marketa.jpg
|
|-Mas Porno
|-Windows

No necesita ser gráfico Puede ser ASCII, sólo que no tengo idea de como implementar el árbol para que haga eso XD.
Por cierto si me pueden indicar como guardarlo en un archivo de Acceso AleatorioSecuencialBinario les agradeceria mucho XD., quiero decir que se almacene en un archivo X sin importar como.

Re: Dudas y Soluciones en C/C++ by MaxClowReed at Tue Nov 27 17:57:34 2007

Es simple, si ya sabes arboles binarios, solo que no son binarios, sino que el arbol crece dependiendo de la hoja donde vayas haciendo crecer las ramas.

Re: Dudas y Soluciones en C/C++ by coxanagi at Wed Nov 28 02:47:50 2007

puedes hacer una estructura archivo
algo así
typedef struct archivo
        {
        char nom[15];
          archivo *next;
        }arch;

y otra de carpeta
typedef struct carpeta
      {
        char nombre[15];
          carpeta *sig;
          archivo *next;
        }carpet;

La estructura de carpeta tendrá un nombre de 15 caracteres la cual puede apuntar a otra carpeta y también puede apuntar hacia un archivo, los archivos pueden apuntar a otros archivos, solo que hay que utilizar la forma de listas ligadas y listo.

creamos las variables

carpet *a;
arch *b;
ya tenemos 2 punteros a las estructuras que creamos, ahora, si elegimos en un menú crear carpeta podemos hacerlo mediante el malloc o el new.
a=new(carpet);
b=new(arch);
ya tenemos un archivo y una carpeta, para ir metiendo archivos a la carpeta hacemos
a->next=b;
y para apuntar a otra carpeta debemos crear otra
otra=new(carpet);
a->sig=otra;
lo que tendremos se verá asi:

|-a(carpeta)
  |-b(archivo)
|-otra(carpeta)

Eso solo es una humilde opinion.

Re: Dudas y Soluciones en C/C++ by coxanagi at Thu Nov 29 00:31:52 2007

Como ya no tengo nada que hacer en la escuela mas que ir por calificaciones, me di a la tarea de hacer el programa  ;D jojojo, lo único que no hace es guardalo en un archivo, porque eso no lo aprendí muy bien  ;D A ver si se adjunta el ejecutable-dance y si era lo que buscabas pues te paso el codigo, pero dudo que vuelvas a revisar que fue lo que publicamos, de todos modos me entretuve haciéndolo.

Re: Dudas y Soluciones en C/C++ by SoulStealer at Sat Dec 1 03:18:21 2007

Pues la verdad que em ineresaría mucho tu proposición del código.
Quote:
Como ya no tengo nada que hacer en la escuela mas que ir por calificaciones, me di a la tarea de hacer el programa  ;D jojojo, lo único que no hace es guardalo en un archivo, porque eso no lo aprendí muy bien  ;D A ver si se adjunta el ejecutable-dance y si era lo que buscabas pues te paso el codigo, pero dudo que vuelvas a revisar que fue lo que publicamos, de todos modos me entretuve haciéndolo.

Porque mi programa da error de apuntadores y llevo 3 días tratnado de hacer que funcione una minima parte aunque sea, pero no lo he conseguido, así que si me pudieses enviar el código o publicarlo me harias un gran favor.

Y porque crees que no regresaría a ver la respuesta? ESta bien que no postee más que una vez a la semana pero siempre vuelvo, hasta de al cruz..... jajaja.

Re: Dudas y Soluciones en C/C++ by coxanagi at Sat Dec 1 08:44:50 2007

Jojojo, porque pensé que ibas a estar muy ocupado haciendolo como para regresar a ver si alguien tenía la respuesta a tus dudas, pero bueno, lo publico, por si hay alguna duda nada más digas en donde.
Quote:
#include <stdio.h>
#include <string.h>
#include <conio.h>
#include <iostream.h>

typedef struct archivo
      {
        char nom[50];
        archivo *next;
        }arch;

typedef struct carpeta
        {
        char nom1[50];
        archivo *next;
        carpeta *sig;
        }carpet;
carpet *ncarpet=NULL, *auxc=NULL,*inic=NULL,*finc=NULL,*auxc2=NULL; //LOS APUNTADORES DE LA ESTRUCTURA CARPETA

arch *nuevo_arch=NULL, *auxiliar=NULL,*pfinal=NULL,*pinicial=NULL;  //APUNTADORES DE LA ESTRUCTURA ARCHIVO


void inserta(char *);  //inserta un nuevo nodo en la lista de archivos
void insertac(char *); //inserta un nuevo nodo en la lista DE carpetas
void elige(int);      //este recorre las carpetas hasta encontrar la seleccionada
void imprime(void);    //imprime carpetas y archivos creados

void main()
    {
      int opc,carnum=0;
      char nombre[50],nomc[50];
    do{
      cout<<"0.-CREAR CARPETA"<<endl;
      cout<<"1.-INSERTAR ARCHIVO"<<endl;
      cout<<"2.-VER ARCHIVOS Y CARPETAS CREADOS"<<endl;
      cout<<"3.-SALIR"<<endl;
      cout<<endl<<"              OPCION: ";
      cin>>opc;
      switch(opc)
            {
            case 0:
                    {

                    cout<<"CUAL ES EL NOMBRE DE LA CARPETA"<<endl;
                    gets(nomc);
                    insertac(nomc);
                    break;
                    }
            case 1:
                    {
                    if(inic==NULL)
                    cout<<endl<<endl<<endl<<"DEBE DE CREAR PRIMERO UNA CARPETA"<<endl;
                    else{
                    cout<<"EN DONDE DESEA GUARDAR EL ARCHIVO, SELECCIONE NUMERO DE CARPETA"<<endl;
                    auxc=inic;
                    int k=1;
                    do{
                        cout<<k<<"\t"<<auxc->nom1<<endl;
                        k++;
                        auxc=auxc->sig;
                        }while(auxc!=NULL);
                    cin>>carnum;
                    elige(carnum); //este recorre las carpetas hasta encontrar la que se eligio carnum (numero de carpeta)

                    cout<<"CUAL ES EL NOMBRE DEL ARCHIVO"<<endl;
                    gets(nombre);
                    inserta(nombre); //inserta el archivo en la carpeta seleccionada
                    }
                    break;
                    }
              case 2:
                      {
                      if(inic==NULL)
                      cout<<endl<<endl<<endl<<"NO HAY ARCHIVOS NI CARPETAS QUE VER"<<endl;
                      else
                      imprime();
                      break;
                      }
                case 3:
                        {
                        cout<<endl<<endl<<endl<<"                          HASTA LA VISTA BABY !!!";
                        break;
                        }
                default :
                      {
                        cout<<endl<<endl<<endl<<"                          OPCION NO VALIDA";
                      break;
                      }
                    }//fin de switch
              getch();
              clrscr();
            }while(opc<=2||opc>3);
            }

void insertac (char *nomc)
          {
            if(inic==NULL)  //este if es para la primera carpeta creada
            {
            ncarpet=new(carpet);
            strcpy(ncarpet->nom1,nomc);
            ncarpet->next=NULL;
            ncarpet->sig=NULL;
            inic=ncarpet;
            ncarpet=NULL;
            finc=inic;
            }
            else{                      //este es cuando ya hay por lo menos una carpeta creada
                ncarpet=new(carpet);
                strcpy(ncarpet->nom1,nomc);
                finc->sig=ncarpet;
                ncarpet->next=NULL;
                ncarpet->sig=NULL;
                finc=ncarpet;
                }

            }
void inserta(char *nombre)
          {
          nuevo_arch=new(arch);
          strcpy(nuevo_arch->nom,nombre);
          nuevo_arch->next=NULL;
          pinicial=nuevo_arch;
          if(auxc2->next==NULL)
              auxc2->next=pinicial;
          else
              {
              auxiliar=auxc2->next;
              auxc2->next=pinicial;
              pinicial->next=auxiliar;
              cout<<pinicial->nom<<endl;
              auxiliar=NULL;
              auxc2=NULL;
              }

          }
void elige(int carnum)
        {
        int l=1;
        auxc2=inic;
        while(l!=carnum)
            {
              auxc2=auxc2->sig;
              l++;
              }
          cout<<"La carpeta elegida es "<<auxc2->nom1<<endl;

        }

void imprime(void)
    {
      auxc2=inic;
      while(auxc2!=NULL)
          {
          cout<<"|- "<<auxc2->nom1<<endl;
          auxiliar=auxc2->next;
          while(auxiliar!=NULL)
              {
                cout<<"|      ->"<<auxiliar->nom<<endl;
                auxiliar=auxiliar->next;
                }
          auxc2=auxc2->sig;
          }
      auxc2=NULL;
      auxiliar=NULL;
      }

Re: Dudas y Soluciones en C/C++ by SoulStealer at Sat Dec 1 17:10:21 2007

Muchas gracias coxanagi, me has salvado la vida, digo la calificación, tenía que entregarlo el Viernes, y no me quedo, pero me dieron chance de llevarlo el lunes, gracias por el código comentado.

Parece que no tego dudas, sólo debo pasarlo a C y ya.

Re:Dudas y Soluciones en C/C++ by Schattenpfeil at Tue Oct 27 00:29:42 2009

jeje Ok pues tengo una super mega duda, tengo que hacer un dado, que kalkule la cara que va a kaer y con que caras... y no me sale.

Re:Dudas y Soluciones en C/C++ by MaxClowReed at Tue Oct 27 22:00:35 2009

Pues hacer un dado es realmente sencillo.

en C ANSI debes de poenr la libreria math.h y stdlib.h

primero randomizas usando randomize()

y debemos guardar el valor del dado por si nos sirve de algo:

int dado = 0;

y luego lanzas el dado

dado = random(6)

Re:Dudas y Soluciones en C/C++ by Schattenpfeil at Tue Oct 27 22:38:38 2009

muchas gracias, deja lo intento ahoora y si me fuciono el contexto...