[Empezando] Programando en C...

Colapsar
X
 
  • Tiempo
  • Mostrar
Limpiar Todo
nuevos mensajes
  • klaus?
    >>>
    • 10-09-2004
    • 1247

    #1

    [Empezando] Programando en C...

    Vayan directamente a la parte B para saltearse la introducción (?)

    A)

    Bueno hace poco tuve mi primer clase de "programación" por así decirlo,
    en sí la clase la entendí, ya de por sí sabía cómo funcionaban los operadores lógicos, (...), while, if, for, switch y todas esas cosas nd.

    Al principio no entendía nada (me perdí una clase), pero luego cuando el profesor resolvía los ejercicios de programación empezé a comprenderlo mejor.

    La cosa es que quiero probar los ejercicios que hacemos en clase en un programa, para corroborar que los haya hecho bien xD. Para eso me fije en la página de la facultad programas que te compilen los códigos. Al poner los códigos de los ejercicios no me lo toma y me tira error al compilarlos. (Ok, tiene sentido porque necesito tener las librerías para que funcionen)... la cosa es.. cómo poner esas librerías?

    fdsf

    --------B)


    En la página de la facultad tengo para bajarme las librerías de los programas que quiero correr y no puedo.

    Es un rar que contiene los siguientes archivos:

    pilacola.h
    Código:
    #define MAXCOLA 100
    #define TOPEPILA 0
    #define CABEZACOLA 0
    #define FONDOCOLA 1
    
    typedef int pila[MAXPILA];
    typedef int cola[MAXCOLA];
    
    void inicializarpila(pila p);
    int pilavacia(pila p);
    int tope(pila p);
    void apilar(pila p, int e);
    void desapilar(pila p);
    void inicializarcola(cola c);
    int colavacia(cola c);
    int primero(cola c);
    void acolar(cola c, int e);
    void desacolar(cola c);
    void pasarpila2(pila destino, pila origen);
    void imprimirpila2(char *titulo,pila dada);
    void pasarcola2(cola destino, cola origen);
    void imprimircola2(char *titulo,cola dada);
    pilacola.c
    Código:
    #include <stdio.h>
    #include <stdlib.h>      // abs()
    #define MAXPILA 100
    #define MAXCOLA 100
    #define TOPEPILA 0
    #define CABEZACOLA 0
    #define FONDOCOLA 1
    
    typedef int pila[MAXPILA];
    typedef int cola[MAXCOLA];
    
    void inicializarpila(pila p) {
        p[TOPEPILA]=0;
    }
    
    int pilavacia(pila p) {
        if (p[TOPEPILA]==0)
            return 1;
        else
            return 0;
    }
    
    int tope(pila p) {
        if (!pilavacia(p))
            return p[p[TOPEPILA]];
        else
            return -1;
    }
    
    void apilar(pila p, int e) {
        if (p[TOPEPILA]+1<=MAXPILA) {
            p[TOPEPILA]++;
            p[p[TOPEPILA]]=e;
        }
    }
    
    void desapilar(pila p) {
        if (!pilavacia(p))
            p[TOPEPILA]--;
    }
    
    void inicializarcola(cola c) {
        c[CABEZACOLA]=2;
        c[FONDOCOLA]=1;
    }
    
    int colavacia(cola c) {
        if (c[CABEZACOLA]==1 || c[CABEZACOLA]>c[FONDOCOLA])
            return 1;
        else
            return 0;
    }
    
    int primero(cola c) {
        if (!colavacia(c))
            return c[c[CABEZACOLA]];
        else
            return -1;
    }
    
    void acolar(cola c, int e) {
        if (abs(c[FONDOCOLA]-c[CABEZACOLA])+1<MAXCOLA) {     // hay lugar
            c[FONDOCOLA]=(c[FONDOCOLA]+1) % MAXCOLA;
            c[c[FONDOCOLA]]=e;
        }
    }
    
    void desacolar(cola c) {
        if (!colavacia(c)) 
            c[CABEZACOLA]=(c[CABEZACOLA]+1) % MAXCOLA;
    }
    
    void pasarpila2(pila destino, pila origen) {
        while (!pilavacia(origen)) {
            apilar(destino,tope(origen));
            desapilar(origen);
        }
    }
    
    void imprimirpila2(char *titulo,pila dada) {
        pila aux;
        inicializarpila(aux);
        printf("\n%s\n",titulo);
        while (!pilavacia(dada)) {
            printf("%4d",tope(dada));
            apilar(aux,tope(dada));
            desapilar(dada);
        }
        printf("\n");
        pasarpila2(dada,aux);
    }
    
    void pasarcola2(cola destino, cola origen) {
        while (!colavacia(origen)) {
            acolar(destino,primero(origen));
            desacolar(origen);
        }
    }
    
    void imprimircola2(char *titulo,cola dada) {
        cola aux;
        inicializarcola(aux);
        printf("\n%s\n",titulo);
        while (!colavacia(dada)) {
            printf("%4d",primero(dada));
            acolar(aux,primero(dada));
            desacolar(dada);
        }
        printf("\n");
        pasarcola2(dada,aux);
    }
    y tengo las siguientes instrucciones:

    Instrucciones:
    Código:
    1. Abrir Visual C++ 2005/2008
    
    2. Crear un nuevo proyecto: Archivo/Nuevo/Proyecto, seleccionar "Win32" y "Aplicación de consola Win32". Darle un nombre cualquiera y presionar Aceptar.
    
    3. En el "Asistente para aplicaciones Win32", presionar el botón Siguiente y marcar "Aplicación de consola" y "Proyecto vacío". No olvidar marcar esto último!!! Presionar Finalizar.
    
    4. El proyecto se mostrará en el Explorador de Soluciones. Presionar el botón DERECHO del mouse sobre "Archivos de código fuente" y elegir Agregar/Nuevo elemento/Código/Archivo C++ (.cpp). Darle un nombre al programa y agregarle manualmente la extensión .c, por ejemplo "prueba.c". Observar cuidadosamente el contenido de "Ubicación" porque luego será necesario. Presionar Agregar.
    
    5. Escribir el programa en la ventana del editor. 
    
    6. Copiar los dos archivos pilacola.c y pilacola.h en la misma carpeta del programa .c, la que estará dentro de la ubicación anotada en el paso 4. Ambos archivos deben copiarse EN LA MISMA CARPETA del .c, tal vez sea necesario buscar en alguna subcarpeta.
    
    7. Agregar las siguientes líneas debajo del #include <stdio.h>:
    
            #include "pilacola.h" 
            #pragma warning (disable:4996) 
    
    Observe que en este #include se escriben comillas en lugar de los signos < y >.
    
    8. Compilar el programa, seleccionando el archivo .c en el Explorador de Soluciones y presionando CTRL-F7 o eligiendo Generar/Compilar.
    
    9. Corregir cualquier error que pudiera haber, hasta que la ventana inferior informe "0 errores, 0 advertencias - Generar: 1 correctos, 0 incorrectos, 0 actualizados, 0 omitidos"
    
    10. En el Explorador de Soluciones presionar el botón derecho del mouse sobre "Archivos de código fuente", elegir Agregar/Elemento existente y seleccionar "pilacola.c" de la misma carpeta donde se grabó el programa.
    
    11. Repetir el paso anterior con "Archivos de encabezado" y eligiendo "pilacola.h".
    
    12. Enlazar el programa presionando F7 o eligiendo Generar/Generar solución. Si todo está bien debe aparecer el mensaje "0 errores, 0 advertencias - Generar: 1 correctos, 0 incorrectos, 0 actualizados, 0 omitidos"
    
    13. El programa está listo para ser ejecutado, seleccionando Depurar/Iniciar sin depurar o presionando CTRL-F5.
    Lo hago tal cual, pero no puedo ejecutar los códigos de ejemplo (que ya hizo el profesor)
    al compilar el programa ya me dice que hay algo que está mal en un dll (WTF), no sé si es por mierda windows vista... no debería ser así.

    fdsf
    posteo un ejemplo?
  • murof_lege
    Pelotudo
    • 01-06-2009
    • 126

    #2
    usa un port de gcc, por el amor de dios.

    Comentario

    • Kpoyo
      Mandatory rape!
      • 16-05-2004
      • 8042

      #3
      Tip, si vas a empezar a escribir en foros de programacion, empeza a poner la informacion completa.

      OS:
      Compilador:
      Errores detallados:
      Cosas probadas que no funcionaron:
      Informacion Adicional:

      Antes de eso, ni intentes hacer perder el tiempo a los demas, esperando que te pregunten eso.

      Comentario

      • Night Walker
        イノベイター。
        • 22-11-2006
        • 9213

        #4
        No vieron la estructuras basicas de datos? (pila, cola, lista)?

        Si lo vieron te combiene programar vos las funciones y listo.

        Sino copia las funciones y pegalas en el codigo del programa asi no tenes que importar nada.

        sdf Que compilador estas usando y que error de dll te tiro?

        Comentario

        • klaus?
          >>>
          • 10-09-2004
          • 1247

          #5
          buee, me bajé otros tmb CFree o algo así ajauj y tampoco me fue.

          Ahora pruebo lo que me decís... pero iguald.
          edit: era para murof_lege ahora pongo más info,

          por eso dije lo de "muestro un ejemplo?"
          por esi faltaban datos o cosas así.
          Editado por última vez por klaus?; 25-08-2009, 04:18 PM.

          Comentario

          • Night Walker
            イノベイター。
            • 22-11-2006
            • 9213

            #6
            Yo uso el Dev C++ en mi casa o el borlan en la facultad.

            Comentario

            • klaus?
              >>>
              • 10-09-2004
              • 1247

              #7
              bue, al final lo pude hacer andar...
              xDD
              con prueba y error como con casi todo lo que aprendí en programación fd.

              Gracias igual por pasarme los programitas y el tip ese para preguntar de programación jajaj..

              no se alejen demasiado por si surge otro inconvenienteng

              Comentario

              Trabajando...