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

#941
Como te picas Leosan  ;-)

Es evidente, goto no es "imprescindible" pero es una herramienta que en alguna ocasiones resulta la salida más sencilla (y eficiente). Incluso Java que eliminó el goto de su repertorio permitió "algunos saltos" en determinadas circunstancias excepcionales (como la línea anterior a un for).

Yo personalmente nunca he necesitado usarlos. Pero defiendo que tiene algunos usos.
#942
Cita de: Zodiak98 en 18 Mayo 2013, 16:35 PM
Automaticamente me envia las dirreciones de memoria de cada arreglo?, es decir, &a[0], &a[1],&a[2],&a[3].
En un arreglo, las variables se guardan consecutivamente en la memoria. De ahí que en el ejemplo haya puesto (+1,+2,+3...).

Pero supongo que ya te has dado cuenta :)
#943
Cita de: Zodiak98 en 18 Mayo 2013, 16:12 PMHehe amchacon ya esta listo, no me había fijado en el segundo código que me pasaste. :)
Los tres códigos que se han posteado son equivalentes, es escribir lo mismo de distintas formas.

El operador [] es un operador de puntero al igual que * y &.
#944
Cita de: Zodiak98 en 18 Mayo 2013, 15:46 PM
Ahora estoy tratando de hacer eso mismo pero con un arreglo.
Es igual pero sustituyendo el [] por un asterisco en la definición de la función:

Código (cpp) [Seleccionar]
#include <iostream>

using namespace std;

void muestraD_arreglo(int** pArreglo)
{
    cout << (int)pArreglo[0] << endl;
    cout << (int)pArreglo[1] << endl;
    cout << (int)pArreglo[2] << endl;
    cout << (int)pArreglo[3] << endl;
}

int main()
{
   int b = 15 , c = 30 , d = 29 , e = 76 ;
   int *a[4];

   a[0] = &b;
   a[1] = &c;
   a[2] = &d;
   a[3] = &e;

   muestraD_arreglo(a);

   cin.get();
   return 0;
}


O si lo prefieres:

Código (cpp) [Seleccionar]
#include <iostream>

using namespace std;

void muestraD_arreglo(int** pArreglo)
{
    cout << (int) *(pArreglo) << endl;
    cout << (int) *(pArreglo+1) << endl;
    cout << (int) *(pArreglo+2) << endl;
    cout << (int) *(pArreglo+3) << endl;
}

int main()
{
   int b = 15 , c = 30 , d = 29 , e = 76 ;
   int *a[4];

   a[0] = &b;
   a[1] = &c;
   a[2] = &d;
   a[3] = &e;

   muestraD_arreglo(a);

   cin.get();
   return 0;
}


Al fin al cabo, el [] no es más que una comodidad sintática. Se puede variar como quieras. El código de CCross era correcto.
#946
Citarpero por lo que entendí leyendo, supuestamente cuando se vuelve a llamar a la función las variables f1 y f2 volverían a tomar los valores 1 y 2, eso entendí yo
Ahí está tu error.

Las variables static son variables que "persisten". Cuando se ejecutan por primera vez obtienen el valor 1 y 2 pero después mantienen su valor al finalizar la función. Aquí tienes otro ejemplo:


#include <stdio.h>

void Ejemplo()
{
 static int Repeticiones = 0;

 printf ("Esta funcion ha sido repetida: %d \n",Repeticiones);
 
 Repeticiones++;
}

int main()
{
 Ejemplo();
 Ejemplo();
 Ejemplo();
 
 getchar(); // Pausa
 return 0;
}


Te debería mostrar por pantalla 0,1,2.
#947
Pues la verdad no lo sé, en su momento busqué en google "Como instalar MacOs en virtualbox" y en unos de los tutoriales venía la descarga.
#948
Cita de: Cönnectome en 16 Mayo 2013, 22:01 PMY por último. OBLIDATE ABSOLUTAMENTE DE LOS GOTO. Son horrorosos. En cualquier lugar veras que no son nada recomendables, ya que dificulta la lectura de un programa.
Ojo goto si que tiene sus usos (al igual que las variables globales). Por ejemplo si tenemos un montón de bucles anidados y queremos forzar su repetición en caso de error:

Código (cpp) [Seleccionar]

repetir:

for (int i = 0; i < 30; i++)
  for (int j = 0; j < 30; j++)
     for (int k = 0; k < 30; k++)
        for (int l = 0; l < 30; l++)
            if (Matriz[i][j][k][l] == ERROR)
                     goto repetir;



También podría servir para forzar la salida en caso de que encontremos el resultado (recordemos que un break solo serviría para el primer for).
#949
Una pregunta, si tienes Linux. ¿Para que quieres montar estos fregados? *_*

Por comodidad no creo, puesto que CodeBlocks está también para Linux (y la interfaz es exactamente igual).

Cita de: pacoperico en 17 Mayo 2013, 18:26 PM
Lo que buscas es un cross-compiler o compilador cruzado, es un tipo de compilador que te permite crear archivos ejecutables para otros sistemas operativos. Nunca he utilizado ninguno, asi que no puedo servirte de mucha guia. Creo recordar que cygwin te permite realizar una compilacion cruzada.
Pues no sabía eso, gracias siempre viene bien saber algo nuevo.
#950
Cita de: Revkxis en 17 Mayo 2013, 18:12 PM"despues copias el código en tu maquina virtual y lo compilas ahí."
es que baje un compilador para linux, lo instale haí y copie y pegue el codigo que escrbi en mi compilador de windows? me parece muy raro :/
Sí con matices, VirtualBox permite una opción que se llama "Drag and Drop". Es decir, puedes arrastrar la carpeta de tu proyecto directamente en la maquina virtual Linux.

Cita de: Revkxis en 17 Mayo 2013, 18:12 PM
para eso hago todo el trabajo sobre linux..
En realidad me referías que hicieses el código y lo probases en el mismo Windows.

Cuando ya tengas una versión final totalmente operativa, lo pasas al Linux y lo compilas.