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

#91
Programación C/C++ / Re: Consulta punteros (C)
28 Agosto 2012, 18:43 PM
Hola.

No sé el motivo por el cuál deseas ese comportamiento del puntero, pero si tu objetivo es obtener o acceder a los medios octetos (nibbles) de cada elemento del arreglo, podes hacer:


int main()
{
  unsigned char v[5] = {0xF1,0xF2,0xF3,0xF4,0xF5}, *p, i, l, h;
  p = &v;
  for (i=0; i < 5; i++) {
    h = *p >> 4;
    l = *p & 0x0F;
    printf("%X %X\n",h, l);
    p++;
  }
  getchar();
}


Por otro lado la asignación:
p = (unsigned char *)p + 1

Es equvalente a hacer:
p++;
o
p += 1;
o
p = p +1;


Saludos.
#92
Programación C/C++ / Re: decimal a octal
28 Agosto 2012, 16:29 PM
Hola Ander123.

No entiendo muy bién lo que buscas pero a ver si esto te sirve...


#include <stdio.h>
#include <string.h>

/* Convierte numero en base 10 a base 2,3,..., N (probe hasta base 36) */
char *b10base_n(int num, unsigned char base) {
 char tmp[255], res[255];
 int mod, i, h=0;

 memset(tmp,'0',255);
 memset(res,'0',255);
 do {
   mod = num % base;
   num = num / base;
   if (mod < 10)
     tmp[h] = (char)mod + '0';
   else
     tmp[h] = (char)mod + '7';
   h++;
 } while (num > 0);
 tmp[h] = '\0';

 for(i=0; i < h; i++) res[i] = tmp[h-i-1];
 res[i] = '\0';

 return res;
}

/* Ejemplo de uso */
int main(int argc, char* argv[])
{
 int numero, base;
 printf("Numero en base 10: ");
 scanf("%d",&numero);
 printf("\nBase a la que convierte: ");
 scanf("%d",&base);
 printf("\n%d en base %d es: %s",numero,base, b10base_n(numero,base));

 while(getchar()!='\n');
 getchar();
 return 0;
}


Saludos.
#93
Hola Danubius.

No soy experto en el tema pero buscando un poco encontré estos dos:

C-Decompilery

IDR


Saludos. ::)
#94
Hola Danubius.

Citaralomejor podría descompilarse pero bueno gracias

Decompilarse si se puede, lo que no vas a lograr es el código fuente original.

Saludos.  ::)
#95
Hola Danubius.

No entiendo claramente lo que buscas, pero si lo que descargaste es un ejecutable y a partir de él deseas obtener el código fuente tál como fue escrito, no es posible.

Podrás inferir parte del código, pero distintos códigos de alto nivel pueden generar similares códigos máquina.

Saludos.
#96
Programación C/C++ / Re: programa confuso
27 Agosto 2012, 20:02 PM
Hola Ander123.

Lo que hace el código es pedir y guardar elementos en un arreglo y obtener su media aritmética (promedio). Te pongo el código comentado para aclarar el funcionamiento:


#include <stdio.h>

main() {
  int i,      /* variable de control */
  suma = 0,   /* almacena la suma de los elementos del arreglo */
  tabla[4];   /* arreglo */

  /* pedir los elementos */
  printf("\nEscriba 4 numeros\n");
  for (i=0; i<4; i++)
    scanf("%d", &tabla[i]);

  /* almacenar la suma de los elementos en 'suma' */
  for (i=0; i<4; i++)
    suma  += tabla[i];

  /* mostrar media arimetica */
  printf("\n\nLa media es: %8.2f", suma / 4.0);

  /* mostrar los elementos */
  printf("\nLos numeros introducidos son: ");
  for (i=0; i<4; i++)
    printf(" %d ", tabla[i]);

  /* pausa para ver el resultado */
  while(getchar()!= '\n');
  getchar();
}


Quite la variable media por que no es necesaria.

Saludos.
#97
Hola BlackZeroX.

No utilizo los valores como máscaras, sino para inicializar las variables hinibble y lonibble (0xE = 14 y 0xC = 12).

Saludos.

Pd: Estaba editando,  pero fuí muy lento... (estoy medio verde con el editor) :-(  y respondiste primero ;D
#98
Hola.

En el caso que se utilize el modificador const, cualquier intento de alterar el valor del argumento dentro de la función generará un error en tiempo de compilación. Es decir que  permanecerá en su estado original, no se le permite salir de él en ese ámbito.

Si lo que deseas es darle uso dentro de la funcion y que no se modifique el valor de la variable enviada tenes que pasarla por valor:

Código (cpp) [Seleccionar]

#include <iostream>

using namespace std;
void f(int v){
 v = -5;
}
int main()
{
 int x = 10;
 f(x);
 cout << x;  /* muestra 10, el valor no fue alterado */
 cin.get();
 return 0;
}


Si en el último ejemplo el parámetro v hubiera estado precedido por el referenciador &,  se habría alterado el contenido de x y su valor final sería -5.

Saludos.
#99
Hola vazquinhos .

Creo que te referis a const tipo &variable.

En la declaración de un argumento de función, permite enviar una variable por referencia evitando la copia local, ya sea para ganar memoria o velocidad, pero el modificador const garantiza que no se alterará el valor de la misma dentro de la función.

Ejemplo:

Código (cpp) [Seleccionar]

int f(const int &v) {
  v = 10; /* ERROR */
}


Saludos.
#100
Hola Gntzx.

De la porción de enunciado sólo te puedo orientar con el punto que dice "Se debe comprobar el archivo en su apertura", ya que el resto de las consignas o figuran en otra parte, o lo avanzado de la hora no me permite inferirlas... :huh:


#include <stdio.h>

int main() {
  FILE *in;

  if ((in=fopen("20-12-2-t1.dat","rt")) == NULL) {
    printf("Error abriendo archivo");
    getchar();
    return 1;
  }
  ...



Saludos