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 - CalgaryCorpus

#91
En C++ esta permitido saltar sobre definiciones.

Código (cpp) [Seleccionar]
{
  // algunas instrucciones antes ...

  goto etiqueta;  // salto incondicional a donde este' la etiqueta

  int x;    // permitido saltarse esto

  // mas instrucciones ...

etiqueta:
 
  x = 1;  // pero a pesar del salto la variable x existe aqui, con valor inicial desconocido.
}


Pero esta prohibido saltar las declaraciones con inicializaciones.


Ejemplo:

Código (cpp) [Seleccionar]

{
  // algunas instrucciones antes ...

  goto etiqueta;  // salto incondicional

  int x = 3;    // no esta permitido saltarse esto

   // mas instrucciones ...

etiqueta:
    // no se puede saltar aqui
}



cada case de un switch es una etiqueta, y la variable es visible dentro de todo el switch, en el case actual y los siguientes.

Dado que la ejecucion del switch es un salto a cada etiqueta, al poner una definicion con inicializacion, se da el caso que esta prohibido, por ello el error de compilacion.

#92
En ese caso, tal vez funciona mejor asi?

Código (cpp) [Seleccionar]

   // Main loop
   bool bOpen = true;
   while (bOpen)
   {
       SDL_Event event;
       static bool bMouseClicked=false;
        int xPos, yPos;
       static int xMPos=0,yMPos=0;
       while (SDL_PollEvent(&event))
       {
           if(event.type == SDL_MOUSEBUTTONDOWN)
           {
               if(event.button.button == SDL_BUTTON_LEFT && !bMouseClicked)
               {
                   bMouseClicked=true;
                   SDL_GetWindowPosition(window,&xPos,&yPos);
                   SDL_CaptureMouse(SDL_TRUE);
                   SDL_GetMouseState(&xMPos,&yMPos);
               }
           } else
           if(event.type == SDL_MOUSEBUTTONUP)
           {
               if(event.button.button == SDL_BUTTON_LEFT)
               {
                   bMouseClicked=false;
                   SDL_CaptureMouse(SDL_FALSE);
               }
           } else
           if(event.type == SDL_MOUSEMOTION)
           {
               int xMPosN,yMPosN;
               if(bMouseClicked)
               {
                   SDL_GetMouseState(&xMPosN,&yMPosN);
                   xPos+=xMPosN-xMPos;
                   yPos+=yMPosN-yMPos;
                   SDL_SetWindowPosition(window,xPos,yPos);
               }
           } else
           if (event.type == SDL_QUIT)
               bOpen = false;
       }
#93
Que pasa si mueves la instruccion que toma la posicion de la ventana al momento donde se detecta el click del mouse?

osea

Código (cpp) [Seleccionar]
SDL_GetWindowPosition(window,&xPos,&yPos);

al interior del
Código (cpp) [Seleccionar]
if(event.button.button == SDL_BUTTON_LEFT)

?

(Eliminando donde ahora esta')
#94
Java / Re: Objeto se sobrescribe en otro.
23 Febrero 2019, 14:03 PM
En la clase Ficheros, no tiene sentido tener campos static para una clase que tiene 1 solo metodo. Esto tiene consecuencias si vas a invocar  a ese metodo mas de 1 vez.

Sugiero que definas todas los campos al interior de ese unico metodo. Con esto, cada vez que invoques ese metodo tendras versiones frescas de lo que creas y no estaras pisando lo anterior.
#95
Java / Re: invertir cola
23 Febrero 2019, 13:38 PM
Cita de: sheiking en 13 Febrero 2019, 19:35 PM
amigo probe lo que me dices cree una clase llamada stack con sus metodos pero me sigue saliendo los mismos datos iguales

Creo que lo que explica que tu metodo invert() no funcione es esta:

1. El metodo invert que definiste crea una Queue de nombre result, que por supuesto originalmente esta vacia.
2. El primer ciclo no hace nada pues la cola esta vacia, por lo que el stack definido para la ocasion no se toca en absoluto.
3. El segundo ciclo no hace nada pues el stack esta vacio, por lo dicho anteriormente, y
4. luego no se hace nada con la cola result.
#96
Java / Re: invertir cola
23 Febrero 2019, 13:27 PM
Cita de: EdePC en 14 Febrero 2019, 00:53 AM
-- Mmm..., me pone nervioso ese Unsafed Operations >:D

Tienes que definir la linkedList y el Stack usando el diamond operator:

Código (java) [Seleccionar]
Queue<String> myQueue = new LinkedList<>();
...
Stack<String> stack = new Stack<>();
#97
Tiene cara de ser la parte entera de la mitad de la raiz cuadrada del numero.
#98
Se ve interesante y entretenido. Felicitaciones!

Si encuentras entusiasmo para continuarlo, te sugiero separar algunas funcionalidades para poder probar que ellas trabajan correctamente y no dudar de otras cosas si algo llega a fallar.

Tests de funcionalidades por separado podrian ayudarte a detectar y corregir problemas antes de unirlas al codigo principal.

Un problema que podria haber sido capturado siguiendo esto aparece en las lineas 434 y suguientes : 
https://github.com/velorek1/C-edit/blob/master/src/cedit.c#L434

Copio a continuacion:

  if(editBuffer[positionY].charBuf[oldPosition].ch != CHAR_NIL ||
     editBuffer[positionY].charBuf[oldPosition].ch !=
     END_LINE_CHAR) {


Puedo estar equivocado, pero este if parece SIEMPRE cierto tal como esta escrito y por tanto lo que quieres hacer solo en 2 ocasiones (o excepto en 2 ocasiones?), lo estas haciendo siempre.

La solucion, en este caso, es reemplazar el || por &&
#99
Programación C/C++ / Re: ayuda
15 Febrero 2019, 08:31 AM
usa el objeto creado para llamar los metodos, no la clase.

vale decir: En vez de Empleado.capturar(), haz:  emp.capturar()
#100
El ++i no deberia ser i++?