elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Únete al Grupo Steam elhacker.NET


  Mostrar Mensajes
Páginas: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 [17] 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33
161  Programación / Programación C/C++ / Re: Necesito ayuda con un generador de numeros al azar en: 5 Diciembre 2018, 05:11 am
Reemplaza printf por fprintf para escribir en el archivo.
162  Programación / Programación C/C++ / Re: Función que diga si dos columnas/filas de una matriz son iguales. en: 5 Diciembre 2018, 02:05 am
Me gusto la solucion propuesta.

Mientras la miraba se me ocurrio otra, pero es definitivamente mas complicada, asi que la presento solo para incluir una idea adicional.

Si uno mantiene adicionalmente algun valor para cada columna / fila (por ejemplo la suma de los elementos), se puede descartar rapidamente si una fila es candidata a ser igual a otra.

Código:
  1   2   3  4
  4   5   6  8
  7   8   9  0
[12  15  18  12]  <-- sumas


Solo es necesario comparar la 1a y 4ta columna.
Lo que significa para el codigo propuesto es hacer 1 comparacion que controle si hay que hacer el ciclo for de la linea 11 o no.

La modificacion es, en la linea 10, cambiar la asignacion y hacer:
Código
  1.             iguales = (sumas[i] == sumas[m]);

El arreglo sumas se crea en generaMat.

163  Programación / Programación C/C++ / Re: Problema entrada estándar en: 5 Diciembre 2018, 01:50 am
Esto puede servir:

https://stackoverflow.com/questions/1312922/detect-if-stdin-is-a-terminal-or-pipe
164  Programación / Programación C/C++ / Re: Problema entrada estándar en: 5 Diciembre 2018, 00:02 am
Si presionas ^D (Control D) en linux o ^Z en windows, generas un eof para la entrada estandar.
165  Programación / Programación C/C++ / Re: do while actua en bucle continuo en: 4 Diciembre 2018, 16:12 pm
Una precision, pues hay algo incorrecto en lo anterior, una asignacion es una expresion, y las expresiones tienen un valor. El valor de la expresion de asignacion es el valor que se asigna.

Dado esto, x = 0 tiene valor 0, no tiene valor 1 (o "siempre es cierta") como se indico en el comentario anterior.

Para el ejemplo:

Código
  1. if( x = 0 ) {
  2.   // cualquier instruccion
  3. }
  4.  

la instruccion nunca se ejecutara.
166  Programación / Programación C/C++ / Re: Primero en Entrar, primero en salir FIFO, Cola o Fila en: 3 Diciembre 2018, 00:01 am
Si haces el buffer circular, simplificaras el codigo, pues no necesitaras hacer copias en de_queue como lo haces ahora.
167  Programación / Programación C/C++ / Re: Ayuda, violación de segmento en: 2 Diciembre 2018, 15:41 pm
El nombre del archivo solo se usa para abrir este, no tiene otra utilidad, de modo que la funcion que lo abre podria llamarse, por ejemplo, abrirArchivo, no pasar ningun parametro y retornar el FILE*. Internamente puede definir la variable que guarda el nombre, no es necesario definirla en el main, pasarsela a la funcion y modificarla. Una excepcion seria que que despues el main la use para algo, pero no es el caso aqui.

Código
  1. FILE* abrirArchivo() {
  2.    char nombre[ALGUN_TAMANO_AQUI];
  3.    FILE* archivo;
  4.    ..
  5.    // pedir nombre, do-while, etc. usarlo para abrir el archivo
  6.  
  7.    return archivo;
  8. }
  9.  
  10. int main() {
  11.     FILE* archivo = abrirArchivo();
  12.  
  13.     // usar archivo
  14.  
  15.    return 0;
  16. }
  17.  
168  Programación / Programación C/C++ / Re: Primero en Entrar, primero en salir FIFO, Cola o Fila en: 1 Diciembre 2018, 23:38 pm
Te estas ganando innecesariamente un problema al poner los prototipos al lado de la implementacion. No tienen ningun uso alli, deberian estar al lado del main que usa las funciones o un en un header file aparte.

Por otro lado, estar pidiendo memoria y copiando el contenido de la cola todas las veces que insertas, y andar moviendo todos los elementos cada vez que borras parece ineficiente, especialmente a medida que la cola se use mas y mas,

Sugiero usar un buffer circular: No mueves los contenidos al borrar, y solo pides memoria al agregar si ya no queda espacio en el buffer, pero si lo hay solo se copia el contenido en algun lugar disponible. Solo es necesario pedir memoria y mover si el buffer esta lleno,

Por esa ultima razon, parece mejor pedir memoria en potencias de 2, o en algo mayor que 1 cada vez, para darle la oportunidad a la cola que o bien desocupe algunos espacios para las siguientes inserciones o bien haya algun espacio antes de pedir otra vez.
169  Programación / Programación C/C++ / Re: Primero en Entrar, primero en salir FIFO, Cola o Fila en: 1 Diciembre 2018, 22:41 pm
O bien no estas compilando el codigo, o estas ignorando los warnings que se presentan y si no hay warnings, sugiero cambiar de compilador.

Linea 16, el prototipo de la funcion en_queue dice retornar int, pero la definicion, linea 34 establece void en el tipo de retorno.,
170  Programación / Programación C/C++ / Re: Primero en Entrar, primero en salir FIFO, Cola o Fila en: 1 Diciembre 2018, 17:04 pm
Por qué free_queue dice que devuelve int y no devuelve valor alguno?
Páginas: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 [17] 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines