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

 

 


Tema destacado: Recopilación Tutoriales y Manuales Hacking, Seguridad, Privacidad, Hardware, etc


  Mostrar Mensajes
Páginas: 1 ... 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 [27] 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 ... 161
261  Programación / Programación C/C++ / Re: Detectar ENTER pero como tipo entero y no Char en: 18 Diciembre 2018, 10:28 am
Los carácter es, internamente, son valores enteros. Por ejemplo: el '\n' es un 10 en decimal.
A menos que quieras excluir todas las edades de 10 años deberás encontrar otra forma de hacerlo.

La tabla ASCII te indicará el valor de cada carácter.

Veo que te han enseñado C sin enseñarte cómo funciona la memoria. Una lástima porque C está muy ligado a la memoria.
262  Programación / Programación C/C++ / Re: Consulta acerca de posición/distancia de funciones virtuales en una clase en: 16 Diciembre 2018, 17:20 pm
Los métodos, internamente, no son miembros de las funciones.

En la memoria, código y datos están en segmentos separados, ya de por sí no pueden pertenecer al mismo objeto.

Después está la forma en que C++ nombra a los métodos. Las clases pueden compartir el mismo nombre en sus métodos y los propios métodos con los mismos nombres pero diferente firma hacen cosas diferentes. El compilador, a la hora de generar la tabla de símbolos y saber a qué método referirse, lo que hace es decorarlos. Partiendo de su nombre  le suma a éste datos de la firma e incluso puede añadir el nombre de la base.

Así se puede modificar un poco tu ejemplo anterior para que veas que, a pesar de que se generan tres objetos CNieto, cada uno con su propio espacio, su método Funcion48 son exactamente el mismo, es decir, sólo hay una copia de ellos en memoria. Lo que nos lleva a concluir que no son miembros propiamente dichos de la clase.

Código
  1. #include <cstdio>
  2. #include <cstddef>
  3.  
  4. class CAbuelo
  5. {
  6. public:
  7. virtual void Funcion1() {}
  8. virtual void Funcion2() {}
  9. virtual void Funcion3() {}
  10. // ....
  11. virtual void Funcion20() {}
  12. virtual void Funcion21() {}
  13. };
  14.  
  15. class CPadre : CAbuelo
  16. {
  17. public:
  18. virtual void Funcion22() {}
  19. virtual void Funcion23() {}
  20. // ....
  21. virtual void Funcion45() {}
  22. virtual void Funcion46() {}
  23. virtual void Funcion47() {}
  24. };
  25.  
  26. class CNieto : CPadre
  27. {
  28. public:
  29. virtual void Funcion48() {}
  30. virtual void Funcion49() {}
  31. virtual void Funcion50() {}
  32. // ....
  33. virtual void Funcion101() {}
  34. virtual void Funcion102() {}
  35. virtual void Funcion103() {}
  36. };
  37.  
  38. CNieto objNieto1;
  39. CNieto objNieto2;
  40. CNieto objNieto3;
  41.  
  42. int main()
  43. {
  44. printf("objNieto1: 0x%p\nobjNieto1.Funcion48(): 0x%p\n",
  45. &objNieto1, &objNieto1.Funcion48);
  46. puts("");
  47. printf("objNieto2: 0x%p\nobjNieto2.Funcion48(): 0x%p\n",
  48. &objNieto2, &objNieto2.Funcion48);
  49. puts("");
  50. printf("objNieto3: 0x%p\nobjNieto3.Funcion48(): 0x%p\n",
  51. &objNieto3, &(objNieto3.Funcion48));
  52. }
263  Programación / Programación C/C++ / Re: validacion de puntos geograficos, grados, minutos, segundos y comparacion en: 13 Diciembre 2018, 15:50 pm
Sí, sólo si se cumple la cadena de ifs llegas a return true, en caso contrario acabarás en return false.
264  Programación / Programación C/C++ / Re: validacion de puntos geograficos, grados, minutos, segundos y comparacion en: 13 Diciembre 2018, 07:16 am
Dentro de iguales: Quita las llaves del primer if y la palabra else.
265  Programación / Programación C/C++ / Re: Consulta - Punteros en: 12 Diciembre 2018, 17:27 pm
El tercer argumento es un puntero a función por el cual le pasarás la función que realmente va a comparar.
Es cómo la función qsort, fíjate en ella.

La idea es: cada función que compara dos elementos por [lo que sea] devuelve:
  • un entero negativo si al_1 es menor a al_2
  • 0 si al_1 es igual a al_2
  • un entero positivo si al_1 es mayor a al_2

La firma de estas funciones auxiliares sería algo así:
Código:
int funcion(alumno *al_1, alumno *al_2);
Las funciones reciben punteros para no andar copiando estructuras enteras cada vez, por tanto dentro de la función tendrás que usar notación de punteros para acceder a los miembros.

La firma de tu función principal sería
Código:
alumno* Busca_mayor(alumno *base, size_t size, int (*comparar) (alumno *al_1, alumno *al_2))

Dentro de ella tendrás que buscar el mayor de tu array haciendo uso de la función de comparación para ir encontrado el mayor de los elementos comparados.
266  Programación / Programación C/C++ / Re: ayuda en programa para noob (yo) en: 10 Diciembre 2018, 00:36 am
rodea el código entre etiquetas code, al igual que lo haces con quote. Sino no hay forma de seguir el código ya que el sufijo i es una etiqueta que significa texto en cursiva.
267  Programación / Programación C/C++ / Re: ayuda en programa para noob (yo) en: 10 Diciembre 2018, 00:10 am
Un array de estructuras.

Código
  1. struct tsignals {
  2.    int sigA;
  3.    int sigB;
  4.    int sigC;
  5.    int sigD;
  6.    int sigE,
  7. } signals[10];
  8.  
  9. // ...
  10.  
  11. signals[i].sigA = getSignal();
268  Programación / Programación C/C++ / Re: Proyecto Dev C en: 9 Diciembre 2018, 20:58 pm
Código:
while(datos[i] != '$')
{
    RS232_PollComport(cport_nr, buf, 1);
    datos[i]=buf[0];
}
i++;
Tienes un problema con la adquisición de datos, aquí un ejemplo:
Vas adquiriendo datos pero terminan siempre en el mismo sitio así que realmente es cómo si no recibieras nada.
269  Programación / Programación C/C++ / Re: Guardar una frase en los elementos de un vector en: 8 Diciembre 2018, 19:41 pm
Para eso no debes usar la técnica de letra a letra sino que deberás separar las palabras con un array de strings y a cada palabra que consigas mirar si ya existe en el array.
270  Programación / Programación C/C++ / Re: Guardar una frase en los elementos de un vector en: 8 Diciembre 2018, 18:28 pm
Si el enunciado es mostrar una frase palabra a palabra lo puedes simplificar tanto como:
Recorre la frase de principio a fin. Si encuentras un espacio escribe un avance de línea, en caso contrario escribe el carácter que has encontrado.

Código
  1. #include<stdio.h>
  2. #include<string.h>
  3. #include<ctype.h>
  4.  
  5. int main() {
  6. char cadena[100];
  7. printf("Ingrse una frase: ");
  8. scanf("%100s", cadena);
  9.  
  10. for(int i=0; i<strlen(cadena); ++i)
  11.        putchar(isblank(cadena[i])? '\n' : cadena[i]);
  12. }
Páginas: 1 ... 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 [27] 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 ... 161
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines