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

 

 


Tema destacado: Arreglado, de nuevo, el registro del warzone (wargame) de EHN


  Mostrar Mensajes
Páginas: [1] 2
1  Programación / Programación C/C++ / Re: Pasar matriz char a una función como referencia en: 18 Junio 2013, 13:07 pm
Respuesta corta: Las matrices siempre se pasan por referencia por lo que no hace falta ponerlo explícitamente:

Código
  1. int ingresarDatos__PrimerLote(char descCat[7][64], int sueldoCat[7], int valorHoraExtraCat[7]); // Prototipo
  2.  
  3. int main()
  4. {
  5.   //...
  6.  
  7.   ingresarDatos__PrimerLote(desCat,sueldoCat,valorHoraExtraCat);
  8.  
  9.  //...
  10. }
  11.  
  12. int ingresarDatos__PrimerLote(char descCat[7][64], int sueldoCat[7], int valorHoraExtraCat[7])
  13. {
  14.  //...
  15. }

Respuesta larga: desCat es una referencia (puntero) al primer elemento del vector. Como no estás cambiando la referencia sino los datos, se puede pasar por valor perfectamente.
Hola amchacon,
Se solucionaron los problemas y funciona correctamente, me complique demasiado al pedo.

Muchas gracias por la explicación también!
2  Programación / Programación C/C++ / Pasar matriz char a una función como referencia en: 18 Junio 2013, 10:55 am
Hola,
Tengo un problema al pasar una matriz char a una función como referencia, he intentado como veinte formas diferentes y todas me arrojan errores, iguales o diferentes.

Es para un trabajo de la facultad, todavía no vimos punteros, por lo que no los podemos usar, y sinceramente no se si estoy o no usando punteros, si pudieran aclararme, se los agradecería.

Código
  1. #include <iostream>
  2. #include <stdio.h>
  3.  
  4. int ingresarDatos__PrimerLote(char &, int &, int &);
  5.  
  6. int main()
  7. {
  8. char descCat[7][64];
  9.  
  10. int sueldoCat[7];
  11. int valorHoraExtraCat[7];
  12.  
  13. ingresarDatos__PrimerLote(&descCat, &sueldoCat, &valorHoraExtraCat);
  14.  
  15. system("pause");
  16.  
  17. return 0;
  18. }
  19.  
  20. int ingresarDatos__PrimerLote(char *descCat[7][64], int *sueldoCat[7], int *valorHoraExtraCat[7])
  21. {
  22. int i;
  23. for(i = 1; i <= 6; ++i)
  24. {
  25. printf("Ingrese descripción de la categoría #%d: ", i);
  26. fflush(stdin);
  27. gets(*descCat[i]);
  28.  
  29. printf("Ingrese sueldo basico de la categoría #%d: ", i);
  30. scanf("%d", *sueldoCat[i]);
  31.  
  32. printf("Ingrese el valor de la hora extra de la categoría #%d: ", i);
  33. scanf("%d", *valorHoraExtraCat[i]);
  34. }
  35.  
  36. return 0;
  37. }

NOTA: Uso Dev-C++ 4.9.9.2

Saludos y gracias de antemano!
3  Programación / Bases de Datos / Re: Ranking con todos los registros en: 10 Mayo 2013, 02:23 am
Si es como dice s00rk, podria ser:

Código
  1. SELECT nombre, valor, (SELECT COUNT(*) FROM Datos ORDER BY valor DESC) rank FROM Datos ORDER BY rank

Aunque no tengo acá para probar...  :P

Saludos!
El problema es que no tengo un campo que reemplace a rank.



Lo que dijo s00rk es exactamente lo que quiero.
La segunda parte funciona bárbaro creo, el UPDATE ese lo hago aproximadamente cada 10 minutos y debería funcionar joya.

Muchísimas gracias a todos!
4  Programación / Bases de Datos / Re: Ranking con todos los registros en: 9 Mayo 2013, 00:05 am
Está bien lo que decís, te entiendo, pero no es lo que estoy buscando.
Te doy un ejemplo chiquito.

Supongamos que tengo tres registros.

id | nombre | valor
1  | AKA      | 500
2  | LOL      | 400
3  | AST      | 600


Cuando yo ejecuto la query que todavía no sé como es, quiero que me devuelva lo siguiente:

id | nombre | campo_nuevo (campo creado por la query)
3  | AST      | 1
1  | LOL      | 2
2  | AKA      | 3


Entonces yo lo que hago es simplemente un SELECT del campo_nuevo WHERE id = al usuario que realizó el pedido.


Si se sigue sin entender avisen que intento dar otro ejemplo.
5  Programación / Bases de Datos / Ranking con todos los registros en: 8 Mayo 2013, 20:02 pm
Hola, quiero hacer algo, pero la única manera que se me ocurre es la más mala de todas.

Código
  1. SELECT nombre FROM datos ORDER BY valor DESC;

Lo que quiero realizar, es que cuando un usuario de la web pide saber su posición en el ranking, le devuelva la posición en la que está, sin tener que pasar por todos los registros, hacer un contador y verificar si el id coincide con el del usuario.

Quisiera saber si hay otra manera, porque debo decir que si esta es la única manera, me siento decepcionado.

Porque tengo aproximadamente 20 mil registros, no puedo hacer un bucle que se repita 20 mil veces cada vez que alguien hace el pedido.


Saludos y gracias de antemano!
6  Programación / Bases de Datos / Re: ERROR: Note: #1592 Statement may not be safe to log in statement format. en: 11 Marzo 2013, 19:08 pm
Hola,
Actualmente estoy usando la 3.5.5
7  Programación / Bases de Datos / Re: ERROR: Note: #1592 Statement may not be safe to log in statement format. en: 8 Marzo 2013, 08:04 am
Y bueno, esa es la consulta que se generó, la que te mostré en la 2da imagen, yo la veo bien, dale ZOOM de última, creo que se llega a distinguir.
Gracias.
8  Programación / Bases de Datos / Re: ERROR: Note: #1592 Statement may not be safe to log in statement format. en: 7 Marzo 2013, 17:12 pm
No me entendiste, esa consulta no la hago yo, la realiza automáticamente el PhpMyAdmin cuando le doy a Guardar luego de editar un dato.
9  Programación / Bases de Datos / Re: ERROR: Note: #1592 Statement may not be safe to log in statement format. en: 7 Marzo 2013, 08:39 am
Acá está el DESCRIBE: http://img401.imageshack.us/img401/7869/db00123.jpg
Y esta es la consulta que se realiza automáticamente cuando editas algo desde el PhpMyAdmin, junto al "error" que sale arriba: http://img221.imageshack.us/img221/489/db0123.jpg
10  Programación / Bases de Datos / ERROR: Note: #1592 Statement may not be safe to log in statement format. en: 6 Marzo 2013, 15:30 pm
Hola,
Tengo un pequeño "problema" y lo pongo entre comillas porque no se si verdaderamente es un problema.

Lo que me sucede es que yo tengo una DB y a veces entro desde PhpMyAdmin para ver distintas cosas y de vez en cuando editar algo.

Sin embargo, me viene pasando hace mucho, y quisiera saber que es y como solucionarlo esto que voy a mencionar ahora.


Cuando edito un registro de la DB y le doy a Guardar, el cambio se produce, sin embargo, arriba de todo, en un recuadro rojo, me sale lo siguiente:
Citar
1 fila afectada.
Note: #1592 Statement may not be safe to log in statement format.

Y no se que hacer, no sé como solucionarlo, no sé si está perjudicandome en algo, pero de alguna forma me molesta y quisiera saber si hay una solución.

He buscado por Google como normalmente hago, y vi varias respuestas que decían que había una columna con una longitud que era más chica que el valor que contenía un registro, sin embargo, he probado con una tabla nueva, con solo un registro, y sigue pasando lo mismo, ningún valor supera la longitud máxima del campo.

Como mucho la IGUALA, pero ninguna lo supera.


Lamento haberme extendido mucho.
Saludos y muchas gracias de antemano.
Páginas: [1] 2
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines