• Jueves 2 de Abril de 2026, 11:55

Mostrar Mensajes

Esta sección te permite ver todos los posts escritos por este usuario. Ten en cuenta que sólo puedes ver los posts escritos en zonas a las que tienes acceso en este momento.


Mensajes - johndoe90

Páginas: [1]
1
Solucionado.

2
Visual Basic 6.0 e inferiores / Re: El argumento no es opcional
« en: Lunes 18 de Mayo de 2009, 15:58 »
Solucionado.

3
Visual C++ / Re: error LINK 2001
« en: Lunes 18 de Mayo de 2009, 15:53 »
Solucionado.

4
Visual C++ / Re: error 49
« en: Lunes 18 de Mayo de 2009, 15:52 »
Solucionado.

5
Visual C++ / Re: error LINK 2001
« en: Lunes 18 de Mayo de 2009, 15:43 »
Que es eso de la DLLmain?

6
Visual C++ / Re: error LINK 2001
« en: Jueves 14 de Mayo de 2009, 13:49 »
Hola que tal?
Ahora no tengo un constructor en CProcess, pero si en pila, ya que lo necesito para crearla.
Porque me vuelve a dar este error si esta ya inicializada?

Linking...
   Creating library Debug/CProcess.lib and object Debug/CProcess.exp
CProcess.exp : warning LNK4070: /OUT:CProcess.dll directive in .EXP differs from output filename "Debug/CProcess.exe"; ignoring directive
Debug/CProcess.exe : warning LNK4086: entrypoint "_mainCRTStartup" is not __stdcall with 12 bytes of arguments; image may not run
LIBCD.lib(crt0.obj) : error LNK2001: unresolved external symbol _main
Debug/CProcess.exe : fatal error LNK1120: 1 unresolved externals
Error executing link.exe.

CProcess.exe - 2 error(s), 2 warning(s)

Código: Text
  1. typedef char Tpalabra [20];
  2.  
  3. class CProcess
  4. {
  5. private:
  6.     Tpalabra imageName;
  7.     float cpuUsage;
  8.     int memUsage;
  9.  
  10. public:
  11.     CProcess();
  12.     void pon_imageName(char name[20]);
  13.     char* dame_imageName();
  14.     void pon_cpuUsage(float cpu);
  15.  float dame_cpuUsage();
  16.     void pon_memUsage(int mem);
  17.     int dame_memUsage();
  18.     float valor_inicial_cpu();
  19.     int valor_inical_mem();
  20. };
  21.  

Código: Text
  1. #include "CProcess.h"
  2. #define MAXPILA 5
  3.  
  4. class CPila
  5. {
  6. private:
  7.     CProcess Vector[MAXPILA];
  8.     int CimPila;
  9.  
  10. public:
  11.     CPila(void);
  12.     int PilaVacia(void);
  13.     int PilaLlena(void);
  14.     void PushPila(CProcess &c);
  15.     CProcess PopPila(void);
  16. };
  17.  

Código: Text
  1. #include "CProcess.h"
  2. #include <string.h>
  3.  
  4. void CProcess::pon_imageName(Tpalabra name)
  5. {
  6.     strcpy(imageName,name);
  7. }
  8.  
  9. Tpalabra* CProcess::dame_imageName()
  10. {
  11.     return (&imageName);
  12. }
  13.  
  14. void CProcess::pon_cpuUsage(float cpu)
  15. {
  16.     cpuUsage=cpu;
  17. }
  18.  
  19. float CProcess::dame_cpuUsage()
  20. {
  21.     return (cpuUsage);
  22. }
  23.  
  24. void CProcess::pon_memUsage(int mem)
  25. {
  26.     memUsage=mem;
  27. }
  28.  
  29. int CProcess::dame_memUsage()
  30. {
  31.     return (memUsage);
  32. }
  33.  

Código: Text
  1. #include "pila.h"
  2.  
  3. CPila::CPila(void)
  4. {
  5.     CimPila=-1;
  6. }
  7. int CPila::PilaVacia(void)
  8. {
  9.     return(CimPila==-1);
  10. }
  11. int CPila::PilaLlena(void)
  12. {
  13.     return(CimPila==MAXPILA-1);
  14. }
  15. void CPila::PushPila(CProcess &p)
  16. {
  17.    Vector[++CimPila]=p;
  18. }
  19. CProcess CPila::PopPila(void)
  20. {
  21.     return(Vector[CimPila--]);
  22. }
  23.  

Código: Text
  1. #include "Windows.h"
  2. #include "pila.h"
  3.  
  4.  
  5. CProcess my_Process;
  6. CPila mi_pila;
  7.  
  8.  
  9.  
  10. int FAR PASCAL DLLanade_proceso(Tpalabra name, float cpu, int mem)
  11. {
  12.     CProcess c;
  13.  
  14.     if (mi_pila.PilaLlena())
  15.         return -1;
  16.     else {
  17.         c.pon_imageName(name);
  18.         c.pon_cpuUsage(cpu);
  19.         c.pon_memUsage(mem);
  20.  
  21.         mi_pila.PushPila(c);
  22.         return 0;
  23.     }
  24. }
  25.  
  26. int FAR PASCAL DLLquita_proceso(Tpalabra name, float* cpu, int* mem)
  27. {
  28.     if (mi_pila.PilaVacia())
  29.         return -1;
  30.     else {
  31.         CProcess c = mi_pila.PopPila();
  32.         strcpy(name, *c.dame_imageName());
  33.         *cpu = c.dame_cpuUsage();
  34.         *mem = c.dame_memUsage();
  35.  
  36.         return 0;
  37.     }
  38. }
  39.  

LIBRARY CProcess.dll
DESCRIPTION 'DLL cola de procesos'
HEAPSIZE 1024

EXPORTS
   DLLanade_proceso   @1
   DLLquita_proceso   @2

7
Visual Basic 6.0 e inferiores / El argumento no es opcional
« en: Jueves 14 de Mayo de 2009, 13:18 »
Hola el error me da en la linea marcada con negrita:
Alguien me pude decir como solucionarlo?
Gracias.

Private Sub cambiar_Click()
Dim nueva, ide As String
Dim er As Long
nueva = nuevo.Text
nuevo.Text = "              "
er = DLLmodificar_id(nueva_id)
If er = 0 Then
pintar_matriz
End If

End Sub

Modulo:

Public Declare Function DLLmodificar_id _
Lib "tren.dll" _
(ByVal nueva_id As String, ByVal id As String) _
As Long

8
Visual C++ / Re: error LINK 2001
« en: Jueves 14 de Mayo de 2009, 12:48 »
Gracias, solucioné el problema.

Pero la etiqueta CODE donde deberia ir? en C++ o en VB? a que te refieres con cada bloque?

9
Entonces si quisiera que me retornase un valor deberia escrbirse asi?

float FAR PASCAL DLLdame_cpuUsage(float cpuUsage)
{
   return my_Process.dame_cpuUsage(cpuUsage);
}

Yo lo que quiero es que me retorne el valor previamente introducido en esa variable float.

10
Hola, estoy haciendo un programilla de VB 6.0 a partir de una dll en C++, y me da este error en la siguiente linea:

Alguien sabe el motivo o como solucionarlo?

Gracias.

Adjunto codigo:

Option Explicit


Private Sub Command1_Click()
Dim name As String
Dim cpu As Single
Dim mem As Long

name = "                    "
name_in.Text = name
cpu_in.Text = cpu
mem_in.Text = mem

DLLpon_imageName (name)
DLLpon_cpuUsage (cpu)
DLLpon_memUsage (mem)
MsgBox "Datos introducidos correctamente"


End Sub

Private Sub Command2_Click()
Dim palabra As String
Dim cpuUsage As Single
Dim memUsage As Long
palabra = "                  "

DLLdame_imageName (palabra)
DLLdame_cpuUsage (cpuUsage)
DLLdame_memUsage (memUsage)

name_out.Text = palabra
cpu_out.Text = cpuUsage
mem_out.Text = memUsage

End Sub


Codigo C++

typedef char Tpalabra [20];

class CProcess
{
private:
   Tpalabra imageName;
   float cpuUsage;
   int memUsage;

public:
   void pon_imageName(Tpalabra name);
   Tpalabra* dame_imageName();
   void pon_cpuUsage(float cpu);
   float dame_cpuUsage();
   void pon_memUsage(int mem);
   int dame_memUsage();
   float valor_inicial_cpu();
   int valor_inical_mem();
};

#include "CProcess.h"
#include <string.h>

float CProcess::valor_inicial_cpu()
{
   return cpuUsage;
}

int CProcess::valor_inical_mem()
{
   return memUsage;
}


void CProcess::pon_imageName(Tpalabra name)
{
   strcpy(imageName,name);
}

Tpalabra* CProcess::dame_imageName()
{
   return (&imageName);
}

void CProcess::pon_cpuUsage(float cpu)
{
   cpuUsage=cpu;
}

float CProcess::dame_cpuUsage()
{
   return (cpuUsage);
}

void CProcess::pon_memUsage(int mem)
{
   memUsage=mem;
}

int CProcess::dame_memUsage()
{
   return (memUsage);
}

LIBRARY CProcess.dll
DESCRIPTION 'Dll CProcess'
HEAPSIZE 4024

EXPORTS
      DLLpon_imageName   @1
      DLLdame_imageName  @2
      DLLpon_cpuUsage    @3
      DLLdame_cpuUsage   @4
      DLLpon_memUsage    @5
      DLLdame_memUsage   @6


#include "Windows.h"
#include "CProcess.h"

CProcess my_Process;

void FAR PASCAL DLLpon_imageName(Tpalabra name)
{
   my_Process.pon_imageName(name);
}

void FAR PASCAL DLLdame_imageName(Tpalabra name)
{
   strcpy(name,*my_Process.dame_imageName());
}

void FAR PASCAL DLLpon_cpuUsage(float cpu)
{
   my_Process.pon_cpuUsage(cpu);
}

float FAR PASCAL DLLdame_cpuUsage()
{
   return my_Process.dame_cpuUsage();
}

void FAR PASCAL DLLpon_memUsage(int mem)
{
   my_Process.pon_memUsage(mem);
}

int FAR PASCAL DLLdame_memUsage()
{
   return my_Process.dame_memUsage();
}

11
Visual C++ / Re: error 49
« en: Lunes 11 de Mayo de 2009, 16:26 »
Lo he arreglado un poco más, pero me sigue dando el mismo error, te subrayo en negrita donde me lo da

La etiqueta [CODE] donde va exactamente?

Y bueno, ya que esto es una mezcla de C++ y VB, no se si ponerlo en este foro de C++ o en el de VB, ya que el error es en VB lo postearé en el otro foro.

typedef char Tpalabra [20];

class CProcess
{
private:
   Tpalabra imageName;
   float cpuUsage;
   int memUsage;

public:
   void pon_imageName(Tpalabra name);
   Tpalabra* dame_imageName();
   void pon_cpuUsage(float cpu);
   float dame_cpuUsage();
   void pon_memUsage(int mem);
   int dame_memUsage();
   float valor_inicial_cpu();
   int valor_inical_mem();
};

#include "CProcess.h"
#include <string.h>

float CProcess::valor_inicial_cpu()
{
   return cpuUsage;
}

int CProcess::valor_inical_mem()
{
   return memUsage;
}


void CProcess::pon_imageName(Tpalabra name)
{
   strcpy(imageName,name);
}

Tpalabra* CProcess::dame_imageName()
{
   return (&imageName);
}

void CProcess::pon_cpuUsage(float cpu)
{
   cpuUsage=cpu;
}

float CProcess::dame_cpuUsage()
{
   return (cpuUsage);
}

void CProcess::pon_memUsage(int mem)
{
   memUsage=mem;
}

int CProcess::dame_memUsage()
{
   return (memUsage);
}

#include "Windows.h"
#include "CProcess.h"

CProcess my_Process;

void FAR PASCAL DLLpon_imageName(Tpalabra name)
{
   my_Process.pon_imageName(name);
}

void FAR PASCAL DLLdame_imageName(Tpalabra name)
{
   strcpy(name,*my_Process.dame_imageName());
}

void FAR PASCAL DLLpon_cpuUsage(float cpu)
{
   my_Process.pon_cpuUsage(cpu);
}

float FAR PASCAL DLLdame_cpuUsage()
{
   return my_Process.dame_cpuUsage();
}

void FAR PASCAL DLLpon_memUsage(int mem)
{
   my_Process.pon_memUsage(mem);
}

int FAR PASCAL DLLdame_memUsage()
{
   return my_Process.dame_memUsage();
}


LIBRARY CProcess.dll
DESCRIPTION 'Dll CProcess'
HEAPSIZE 4024

EXPORTS
      DLLpon_imageName   @1
      DLLdame_imageName  @2
      DLLpon_cpuUsage    @3
      DLLdame_cpuUsage   @4
      DLLpon_memUsage    @5
      DLLdame_memUsage   @6

Option Explicit


Private Sub Command1_Click()
Dim name As String
Dim cpu As Single
Dim mem As Long

name = "                    "
name_in.Text = name
cpu_in.Text = cpu
mem_in.Text = mem

DLLpon_imageName (name)
DLLpon_cpuUsage (cpu)
DLLpon_memUsage (mem)
MsgBox "Datos introducidos correctamente"


End Sub

Private Sub Command2_Click()
Dim palabra As String
Dim cpuUsage As Single
Dim memUsage As Long
palabra = "                  "

DLLdame_imageName (palabra)
DLLdame_cpuUsage (cpuUsage)
DLLdame_memUsage (memUsage)

name_out.Text = palabra
cpu_out.Text = cpuUsage
mem_out.Text = memUsage

End Sub

12
Solucionado, en vez de ser Sub es Function, y devuelve un As Long.

13
Public Declare Sub DLLdame_id _
Lib "tren.dll" _
(ByVal id As String, ByVal k As Long)

14
Gracias, pero me sigue dando el mismo error.

15
De acuerdo, esta funcion va a llamar en la dll la función escrita en C++ siguiente:

int FAR PASCAL DLLdame_id(char id [20],int i)
{
   t=*mis_trenes.dame_tren(i);
   strcpy (id,*t.dame_id());
   return 0;
}

Definida en DLLtrenes.cpp en VC++ 6.0

Esta dame_id esta definida en tren.cpp

Tpalabra* CTren::dame_id(void)
{
   return (&id);
}

De la clase CTren en public:

Tpalabra* dame_id(void);

16
Tienes un mail para que pueda enviarte el proyecto todo comprimido y mirarlo todo con mas calma?

17
Hola que tal?
A que es debido este error? Si, ya se que esperaba una funcion o una variable, pero en esencia, porque suele pasar este tipo de error?
El bucle esta bien escrito?
El error me lo marca con amarillo en Private Sub Form_Load() y en azul me subraya DLLdame_id.
Gracias.

Option Explicit

Private Sub Form_Load()
Dim n As Long
Dim k As Integer
Dim id As String
Dim t As String
Dim er As Long
Dim x As Long
x = 0
er = DLLcargar
If er = -1 Then
MsgBox "Error al cargar el fichero"
ElseIf er = -2 Then
MsgBox "Error al leer el id"
ElseIf er = -3 Then
MsgBox "error al leer el porcentaje de ocupacion"
ElseIf er = -4 Then
MsgBox "error al leer las cooredenadas"
ElseIf er = -5 Then
MsgBox "Las coordenadas exceden la capacidad de la matriz"
ElseIf er = -6 Then
MsgBox "Error al leer los datos personales"
Else
MsgBox "Fichero cargado correctamente"



id = "                    "
n = DLLdame_num_trenes
For k = 0 To n
    t = "                    "
    x = DLLdame_id(id, k)
    If x = 0 Then
        t = id
    End If
    List1.AddItem t
   
Next k
End Sub

18
Visual C++ / error LINK 2001
« en: Lunes 27 de Abril de 2009, 13:23 »
Hola, haciendo un codigo en C++ en objetos para hacer una pila sencilla, al compilar me salieron estos errores, si alguien sabe a que se deben o como solucionarlos que me lo diga por favor.
Gracias.

Linking...
pila.obj : error LNK2001: unresolved external symbol "public: __thiscall CProcess::CProcess(void)" (??0CProcess@@QAE@XZ)
principal.obj : error LNK2001: unresolved external symbol "public: __thiscall CProcess::CProcess(void)" (??0CProcess@@QAE@XZ)
Debug/CProcess.exe : fatal error LNK1120: 1 unresolved externals
Error executing link.exe.

CProcess.exe - 3 error(s), 0 warning(s)

CProcess.h

Código: Text
  1. typedef char Tpalabra [20];
  2.  
  3. class CProcess
  4. {
  5. private:
  6.     Tpalabra imageName;
  7.     float cpuUsage;
  8.     int memUsage;
  9.  
  10. public:
  11.     CProcess();
  12.     void pon_imageName(char name[20]);
  13.     char* dame_imageName();
  14.     void pon_cpuUsage(float cpu);
  15.     float dame_cpuUsage();
  16.     void pon_memUsage(int mem);
  17.     int dame_memUsage();
  18.     float valor_inicial_cpu();
  19.     int valor_inical_mem();
  20. };
  21.  

pila.h

Código: Text
  1. #include "CProcess.h"
  2. #define MAXPILA 5
  3.  
  4. class CPila
  5. {
  6. private:
  7.     CProcess Vector[MAXPILA];
  8.     int CimPila;
  9.  
  10. public:
  11.     CPila(void);
  12.     int PilaVacia(void);
  13.     int PilaLlena(void);
  14.     void PushPila(CProcess &t);
  15.     CProcess* PopPila(void);
  16. };
  17.  

CProcess.cpp

Código: Text
  1. #include "CProcess.h"
  2. #include <string.h>
  3.  
  4. void CProcess::pon_imageName(char name[20])
  5. {
  6.     strcpy(imageName,name);
  7. }
  8.  
  9. char* CProcess::dame_imageName()
  10. {
  11.     return (imageName);
  12. }
  13.  
  14. void CProcess::pon_cpuUsage(float cpu)
  15. {
  16.     cpuUsage=cpu;
  17. }
  18.  
  19. float CProcess::dame_cpuUsage()
  20. {
  21.     return (cpuUsage);
  22. }
  23.  
  24. void CProcess::pon_memUsage(int mem)
  25. {
  26.     memUsage=mem;
  27. }
  28.  
  29. int CProcess::dame_memUsage()
  30. {
  31.     return (memUsage);
  32. }
  33.  
  34. pila.cpp
  35.  
  36. #include "pila.h"
  37.  
  38. CPila::CPila(void)
  39. {
  40.     CimPila=-1;
  41. }
  42. int CPila::PilaVacia(void)
  43. {
  44.     return(CimPila==-1);
  45. }
  46. int CPila::PilaLlena(void)
  47. {
  48.     return(CimPila==MAXPILA-1);
  49. }
  50. void CPila::PushPila(CProcess &p)
  51. {
  52.    Vector[++CimPila]=p;
  53. }
  54. CProcess* CPila::PopPila(void)
  55. {
  56.     return(&Vector[CimPila--]);
  57. }
  58.  

Código: Text
  1. #include "CProcess.h"
  2. #include <string.h>
  3. #include <stdio.h>
  4.  
  5. void main()
  6. {
  7.     CProcess my_Process;
  8.     Tpalabra name;
  9.     float cpu;
  10.     int mem;
  11.  
  12.     printf("Escribe los datos del proceso.n");
  13.     printf("Nombre de la imagen.n");
  14.     scanf("%s",name);
  15.     my_Process.pon_imageName(name);
  16.     printf("Uso de la cpu, ha de ser un valor comprendido entre 0 y 100, es un tanto por ciento.n");
  17.     scanf("%f",&cpu);
  18.     my_Process.pon_cpuUsage(cpu);
  19.     printf("Uso de la memoria.n");
  20.     scanf("%d",&mem);
  21.     my_Process.pon_memUsage(mem);
  22.  
  23.     printf("El proceso %s tiene un uso de: n", my_Process.dame_imageName());
  24.     printf("%f de cpu.n", my_Process.dame_cpuUsage());
  25.     printf(" y %d de memoria.n",my_Process.dame_memUsage());
  26.  
  27. }
  28.  


PD: Como se puede poner un codigo tan largo un poco mas comprimido que no ocupe todo el post?

19
Visual C++ / error 49
« en: Lunes 27 de Abril de 2009, 13:15 »
Hola, estoy intentando hacer un programa en VB a partir de una dll hecha con C++ en objetos. El programa consiste en introducir el nombre, uso de cpu y memoria de un proceso, y luego mostrarlo, todo va bien hasta que se le da a mostrar, entonces me sale el error 49: "La convencion de llamadas a DLL es incorrecta". Alguien sabria decirme donde esta el fallo?

Gracias.

Adjunto código.

CProcess.h

typedef char Tpalabra [20];

class CProcess
{
private:
   Tpalabra imageName;
   float cpuUsage;
   int memUsage;

public:
   CProcess();
   void pon_imageName(Tpalabra name);
   Tpalabra* dame_imageName();
   void pon_cpuUsage(float cpu);
   float dame_cpuUsage();
   void pon_memUsage(int mem);
   int dame_memUsage();
   float valor_inicial_cpu();
   int valor_inical_mem();
};

CProcess.cpp

#include "CProcess.h"
#include <string.h>

Tpalabra newProc;

CProcess::CProcess()
{
   strcpy(imageName,newProc);
   cpuUsage=0.0;
   memUsage=0;
}

float CProcess::valor_inicial_cpu()
{
   return cpuUsage;
}

int CProcess::valor_inical_mem()
{
   return memUsage;
}


void CProcess::pon_imageName(Tpalabra name)
{
   strcpy(imageName,name);
}

Tpalabra* CProcess::dame_imageName()
{
   return (&imageName);
}

void CProcess::pon_cpuUsage(float cpu)
{
   cpuUsage=cpu;
}

float CProcess::dame_cpuUsage()
{
   return (cpuUsage);
}

void CProcess::pon_memUsage(int mem)
{
   memUsage=mem;
}

int CProcess::dame_memUsage()
{
   return (memUsage);
}

DLLCProcess.cpp

#include "Windows.h"
#include "CProcess.h"

CProcess my_Process;

void FAR PASCAL DLLpon_imageName(Tpalabra name)
{
   my_Process.pon_imageName(name);
}

void FAR PASCAL DLLdame_imageName(Tpalabra name)
{
   strcpy(name,*my_Process.dame_imageName());
}

void FAR PASCAL DLLpon_cpuUsage(float cpu)
{
   my_Process.pon_cpuUsage(cpu);
}

float FAR PASCAL DLLdame_cpuUsage()
{
   return my_Process.dame_cpuUsage();
}

void FAR PASCAL DLLpon_memUsage(int mem)
{
   my_Process.pon_memUsage(mem);
}

int FAR PASCAL DLLdame_memUsage()
{
   return my_Process.dame_memUsage();
}


CProcess.def

LIBRARY CProcess.dll
DESCRIPTION 'Dll CProcess'
HEAPSIZE 4024

EXPORTS
      DLLpon_imageName   @1
      DLLdame_imageName  @2
      DLLpon_cpuUsage    @3
      DLLdame_cpuUsage   @4
      DLLpon_memUsage    @5
      DLLdame_memUsage   @6


VB

Form 1

Option Explicit


Private Sub Command1_Click()
Dim name As String
Dim cpu As Single
Dim mem As Long

name = "                    "
name_in.Text = name
cpu_in.Text = cpu
mem_in.Text = mem

DLLpon_imageName (name)
DLLpon_cpuUsage (cpu)
DLLpon_memUsage (mem)
MsgBox "Datos introducidos correctamente"


End Sub

Private Sub Command2_Click()
Dim palabra As String
Dim cpuUsage As Single
Dim memUsage As Long
palabra = "                  "

DLLdame_imageName palabra
DLLdame_cpuUsage cpuUsage
DLLdame_memUsage memUsage

name_out.Text = palabra
cpu_out.Text = cpuUsage
mem_out.Text = memUsage

End Sub

Module1

Option Explicit

Public Declare Function DLLpon_imageName _
Lib "CProcess.dll" _
(ByVal name As String) _
As Long

Public Declare Function DLLdame_imageName _
Lib "CProcess.dll" _
(ByVal imageName As String) _
As Long

Public Declare Function DLLpon_cpuUsage _
Lib "CProcess.dll" _
(ByVal cpu As Single) _
As Long

Public Declare Function DLLdame_cpuUsage _
Lib "CProcess.dll" _
(ByVal cpuUsage As Single) _
As Long

Public Declare Function DLLpon_memUsage _
Lib "CProcess.dll" _
(ByVal mem As Long) _
As Long

Public Declare Function DLLdame_memUsage _
Lib "CProcess.dll" _
(ByVal memUsage As Long) _
As Long



PD: Hay alguna manera de no meter un codigo tan largo en un post? Comprimirlo o algo asi?

20
Visual C++ / pilas
« en: Jueves 5 de Marzo de 2009, 23:22 »
Hola, estoy estudiando este interesante mundo de las pilas y colas.He hecho el siguiente programa que lee una secuencia de numeros y los devuelve al revés.
Adjunto el codigo en C para que me puedan decir si esta bien, en especial las funciones, gracias.

#include <stdio.h>
#define MAXPILA 5

typedef struct
{
   int pilavector[MAXPILA];
   int cimpila;
}Tpila;

void crear_pila(Tpila *pila)
{
   pila->cimpila=-1;
}

int pila_vacia(Tpila pila)
{
   if (pila.cimpila=-1)
   {
      return 1;
   }
   else
   {
      return 0;
   }
}

int pila_llena(Tpila pila)
{
   return (pila.cimpila==MAXPILA-1);
}


void pushpila(Tpila *pila, int n)
{
   pila->pilavector [++pila->cimpila] = n;
}

int poppila(Tpila *pila)
{
   return pila->pilavector[pila->cimpila];
   pila->pilavector[--pila->cimpila];
}



void main ()
{
   Tpila mi_pila;
   int n;

   crear_pila (&mi_pila);
   printf ("Escribe el primer número de la secuencian");
   scanf ("%d",&n);
   while (n!=0)
   {
      if (!pila_llena (mi_pila))
         pushpila (&mi_pila,n);
      else
         printf ("La pila ya está llenan");
      printf ("Escribe el siguiente número de la secuencian");
      scanf ("%d",&n);
   }
   printf("Ahora los números al revésn");
   while (!pila_vacia (mi_pila))
   {
      poppila(&mi_pila);
      printf ("%d",&n);
   }
}

21
Visual C++ / Matrices en una pila
« en: Miércoles 4 de Marzo de 2009, 12:38 »
Hola, estoy estudiando pilas y colas en C y me preguntaba si se puede almacenar matrices en una pila (1 matriz por una posicion de la pila).
Alguien sabe como lo podria hacer? Gracias.

22
Visual C++ / Re: Fecha y vector de caracteres
« en: Sábado 10 de Enero de 2009, 22:20 »
fopen () ? y dentro de los parentesis que va?

23
Visual C++ / Fecha y vector de caracteres
« en: Lunes 5 de Enero de 2009, 23:21 »
Buenos dias.

Estoy diseñando un programa que maneja a comerciales de una agencia de pisos, cada comercial tiene unos pisos asignados. He tenido problemas con dos cosillas:

1. Como puedo hacer para que el programa me muestre la hora y fecha actual?
2. Hacer que lea, cargue y guarde de un archivo un vector de caracteres (para el nombre del comerciante y del piso).

Gracias.

Páginas: [1]