ivancea96 hay algunas cosas que no entiendo, por ejemplo, si yo no incluyo una linea de código dentro del programa que me diga cuál es la biblioteca que quiero enlazar, como indico eso? Si coloco los comandos -I y -L que sólo contienen la dirección del directorio de la biblioteca pero no indica cuál es la misma, como le indico cual es?
Subo mi código para tener una guia de lo que estoy haciendo:
POR UN LADO LA BIBLIOTECA:
//Etcheverry Pablo
//etcheverrypablol@gmail.com
//3-3-2016
//
//Introducción a la Algorítmica y Programación
//
//Práctico 17: Tipos Abstractos de Datos: uso e implementación
//
// Implementación del TAD PILA(Enteros) con arreglos en el lenguaje C
#include <stdio.h>
struct TPila
{
int a[10]; //Arreglo de enteros
int tope; //Número de elementos de la pila
};
struct TPila p;
/*
Parámetros:
p:pila
Función: Retona verdadero si la pila está vacía (valor de tope cero) o falso. Observa que no es necesario pasar la pila como puntero.
*/
int Vacia (struct TPila p){
return p.tope==-1;
}
/*
Parámetros:
p: pila
Lo que hace la función es inicializar la pila dándole el valor 0 a tope. Se debe pasar la pila como puntero, para al momento de llamar la función, darle la dirección de memoria de la pila que le pasemos como parámetro (Inicializar struct TPila &p). Al darle la dirección de memoria, estamos logrando un pasaje de parámetro por REFERENCIA, lo que significa que al retornar un valor la función, quedará modificada la variable que se le haya pasado como parámetro.
*/
void Inicializar (struct TPila *p){
p->tope=-1;
}
/*
Parámetros:
p:pila
x:número a insertar
max:número máximo de elementos que soporta la pila
Función: Inserta un elemento pasado como parámetro en el tope de la pila. Observar que se deben pasar p como puntero, ya que se debe pasar por referencia para poder modificar su valor.
*/
void Insertar (struct TPila *p, int x, int max){
if(p->tope!=max){
p->tope=p->tope+1;
p->a[p->tope]=x;
}
}
/*
Parámetros:
p:pila
num:variable donde se alamacena el valor del tope
Función: Guardar el valor del tope de la pila en una variable
*/
void Tope (struct TPila p, int *num){
*num=p.a[p.tope];
}
/*
Parámetros:
p:pila
Función: Disminuye el valor de la varible tope de la pila, lo que es análogo a suprimir el tope de la misma.
*/
void Suprimir (struct TPila *p){
p->tope--;
}
Y POR OTRO, EL PROGRAMA QUE LA USA:
//Etcheverry Pablo
//etcheverrypablol@gmail.com
//5 de marzo de 2016
//
//Introducción a la Algorítmica y Programación
//
//Práctico 17: Tipos Abstractos de Datos: uso e implementación
//
//Ejercicio 1: Dada una pila de números enteros, usando el TAD PILA(enteros) desarrolla un algoritmo que imprima en pantalla el contenido de dicha pila. La pila debe quedar en su estado original.
#include <stdio.h>
#include "/home/etcheverry/Documentos/Algoritmica/2016/bibliotecas/tadPila.h"
void MostrarPila (struct TPila p,int max);
void CargarPila(struct TPila *pnumeros, int max);
int main(int argc, char const *argv[])
{
struct TPila pnumeros; //Pila donde se van a almacenar los enteros
int max=sizeof(pnumeros.a)/(sizeof(pnumeros.a[0])); //Se utiliza para asegurar una carga máxima de 10 enteros
printf("El numero máximo que soporta la pila es: %d\n",max
); CargarPila(&pnumeros,max);
printf("Tope de la fila al salir de la carga: %d\n", pnumeros.
tope); MostrarPila(pnumeros,max);
return 0;
}
/*
Parámetros:
pnumeros: pila
max: número máximo de elementos que soporta la pila
Función: Se encerga sólo de la cuestión de carga de la pila. Observar que se debe pasar como puntero la pila, ya que al terminar esta función, nos interesa que se haya modificado la misma.
*/
void CargarPila(struct TPila *pnumeros, int max){
int i; //Para llevar el control de cantidad de elementos que se ingresan
int num; //Para almacenar el valor tope de la pila
char resp; //Respuesta del usario para cargar elemento o no
i=0;
Inicializar(pnumeros);
puts("CARGA DE LA PILA."); puts("Desea ingresar un numero a la pila? s/n: "); while ((resp=='s' || resp=='S' ) && i<max){
puts("Ingrese un numero: "); Insertar(&(*pnumeros),num,max);
puts("Desea ingresar otro numero? s/n: "); i++;
}
}
void MostrarPila (struct TPila p,int max){
int num; //Variable utilizada para el tope
struct TPila pAux; //Para guardar la pila en esta variable y luEgo colocarla en la original
puts("LOS ENTEROS QUE SE INGRESARON A LA PILA SON: "); if(Vacia(p)){
}else{
while(!(Vacia(p))){
Inicializar(&pAux);
Tope(p,&num);
Insertar(&pAux,num,max);
Suprimir(&p);
}
/* El código que sigue es para dejar la pila en el estado original.IMPORTANTE: Este código no es necesario, ya que la pila se ha pasado como un parámetro por valor */
while(!(Vacia(pAux))){
Tope(pAux,&num);
Insertar(&p,num,max);
Suprimir(&pAux);
}
}
}