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

 

 


Tema destacado: Guía actualizada para evitar que un ransomware ataque tu empresa


  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
141  Programación / Programación C/C++ / Re: Necesito un poco de ayuda :$ en: 18 Abril 2016, 20:44 pm
Yo lo haria asi:

Código
  1. #include <iostream>
  2. #include <stdio.h>
  3. #include <stdlib.h>
  4. #include <string.h>
  5.  
  6. using namespace std;
  7.  
  8. /*
  9. Capicupa (palindromo) ?
  10. */
  11.  
  12. const char* r_bool(bool b);
  13. bool es_capicua(int x);
  14. void print_capicua_rango(int a, int b);
  15.  
  16.  
  17. int main(void)
  18. {
  19. cout << r_bool(es_capicua(10000)) << endl; // false
  20. cout << r_bool(es_capicua(10001)) << endl; // true
  21. cout << r_bool(es_capicua(10501)) << endl; // true
  22. cout << r_bool(es_capicua(807)) << endl; // false
  23. cout << r_bool(es_capicua(808)) << endl; // true
  24.  
  25. print_capicua_rango(19,100);
  26.  
  27. }
  28.  
  29. void print_capicua_rango(int a, int b){
  30. int i,count=0;
  31. for (i=a; i<b; i++){
  32. if (es_capicua(i)){
  33. cout << i << endl;
  34. count++;
  35. }
  36. }
  37. cout << "El numero de terminos capicua es " << count;
  38. }
  39.  
  40. bool es_capicua(int x){
  41. char buffer [10];
  42. int i;
  43. bool exito = true;
  44.  
  45. itoa(x,buffer,10);
  46.  
  47. int len = strlen(buffer);
  48. for (i = 0; i<(int)len/2 && exito; i++)
  49. exito = buffer[i]==buffer[len-1-i];
  50.  
  51. return exito;
  52. }
  53.  
  54. const char* r_bool(bool b){
  55.  return (b ? "true" : "false");
  56. }
  57.  

142  Programación / Programación C/C++ / Re: Duda con funcion creada para consulta (no funciona) en: 18 Abril 2016, 13:59 pm
class_openGL te dio la respuesta, debes hacer algo asi:

Código
  1. #include <iostream>
  2. #include <string>
  3. using namespace std;
  4.  
  5. class propietario
  6. {
  7.  private:
  8.            string nombre, domicilio, curp;
  9.            int propiedades, telefono, edad;
  10.  
  11.  public:
  12.  
  13. void captura_nombre(string x){
  14.    nombre=x;}
  15.  
  16. string imprimir_nombre(){
  17. return nombre;}
  18.  
  19. void captura_edad(int x){
  20. edad=x;}
  21.  
  22. int imprimir_edad(){
  23. return(edad);}
  24.  
  25. void captura_telefono(int x){
  26. telefono=x;}
  27.  
  28. int imprimir_telefono(){
  29. return(telefono);}
  30.  
  31. void captura_propiedades(int x){
  32. propiedades=x;}
  33.  
  34. int imprimir_propiedades(){
  35. return(propiedades);}
  36.  
  37. void captura_domicilio(string x){
  38. domicilio=x;}
  39.  
  40. string imprimir_domicilio(){
  41. return(domicilio);}
  42.  
  43. void captura_curp(string x){
  44. curp=x;}
  45.  
  46. string imprimir_curp(){
  47.    return(curp);}
  48. };
  49.  
  50. void reg_pro(propietario *registro){
  51.  
  52.    string nom, domi, curp;
  53.    int edad, propi, tel;
  54.  
  55.    cout<<"Ingrese el nombre: ";
  56.    cin>> nom;
  57.    while(getchar()!='\n');
  58.    cout<<"Ingrese edad: ";
  59.    cin>> edad;
  60.    while(getchar()!='\n');
  61.    cout<<"Ingrese domicilio: ";
  62.    cin>> domi;
  63.    while(getchar()!='\n');
  64.    cout<<"Ingrese telefono: ";
  65.    cin>> tel;
  66.    while(getchar()!='\n');
  67.    cout<<"Ingrese curp: ";
  68.    cin>> curp;
  69.    while(getchar()!='\n');
  70.    cout<<"Ingrese numero de propiedades: ";
  71.    cin>>propi;
  72.    while(getchar()!='\n');
  73.  
  74.    registro->captura_nombre(nom);
  75.    registro->captura_edad(edad);
  76.    registro->captura_domicilio(domi);
  77.    registro->captura_telefono(tel);
  78.    registro->captura_curp(curp);
  79.    registro->captura_propiedades(propi);
  80.  
  81.  
  82. }
  83.  
  84. void con_pro(propietario registro){
  85. int x;
  86. cout<<"Seleccione el campo que desea consultar:" <<endl;
  87. cout<<"1.-Nombre\n2.-Edad\n3.-Domicilio\n4.-Telefono\n5.-Curp\n6.-Propiedades\n";
  88. cin>> x;
  89. switch (x){
  90. case 1:
  91.    cout<<"Nombre: ";
  92.    cout<<registro.imprimir_nombre();
  93.    break;
  94. case 2:
  95.    cout<<"Edad: "<<registro.imprimir_edad();
  96.    break;
  97. case 3:
  98.    cout<<"Domicilio: "<<registro.imprimir_domicilio();
  99.    break;
  100. case 4:
  101.    cout<<"Telefono: "<<registro.imprimir_domicilio();
  102.    break;
  103. case 5:
  104.    cout<<"Curp: "<<registro.imprimir_curp();
  105.    break;
  106. case 6:
  107.    cout<<"Propiedades: "<<registro.imprimir_propiedades();
  108.    break;
  109. default:
  110.    break;
  111. }
  112.  
  113. }
  114.  
  115. int main()
  116.    {
  117.    propietario registro;
  118.    int x;
  119.  
  120.        cout << "Usted desea acceder a:"  << endl  << endl
  121.             << "1-Propietario"  << endl
  122.     << "2-Difunto"  << endl
  123.     << "3-Propiedades"  << endl
  124.     << "4-Salir";
  125.        cin >> x;
  126.  
  127.    switch(x){
  128.  
  129.        case 1:
  130.  
  131.            reg_pro(&registro);
  132.            con_pro(registro);
  133.            break;
  134.        }
  135. }
  136.  


Al pasar un puntero, usas otros operadores como -> con estructuras excepto quieras hacer algo asi:  (*registro).captura_nombre(nom);

Te cambié un poco el uso de cout en el main() para que veas que puede quedar un poco mas legible si lo usas multilinea

PD: fijate que es necesario limpiar el buffer de teclado.

143  Programación / Programación C/C++ / Re: ¿Direccion del apuntador de un arreglo? en: 18 Abril 2016, 00:30 am
La direccion  que ves como del puntero es la direccion como dices del primer elemento del array.

El puntero podria estar en si en la pila, o en otro lado pero tu ves la dirección a donde apunta el contenido.   Supongo la dirección real del puntero no es algo que le concierna al programador y por eso no se provee.



PD: habia hecho una edición pero veo se perdió y vuelvo a hacerla.
144  Programación / Programación C/C++ / Re: Base de datos c++ en: 17 Abril 2016, 23:58 pm
.
145  Programación / Programación C/C++ / Re: variables con & en: 17 Abril 2016, 20:37 pm
No veo la razon de no re-abrir temas....... pero ya dirá el moderador presente

Por otro lado...... gracias...... no sabia lo que me comentas, siempre aprendiendo algo nuevo con tu ayuda.
146  Programación / Programación C/C++ / Re: ¿Que funciones puedo agregar a mi libreria? en: 17 Abril 2016, 20:35 pm
Para empezar, no es muy ordenado mezclar funciones de sistema, entrada-salida con manejo de cadenas

Cada cosa en su lugar (su propia libreria)
147  Programación / Programación C/C++ / Re: variables con & en: 17 Abril 2016, 20:15 pm
Buen consejo el que te dieron... y somos dos que debemos leer, sin embargo te aporto algo:

Código
  1. #include <stdio.h>
  2.  
  3.  
  4. int main(void)
  5. {
  6. int a = 8;
  7.  
  8. int b= (int) &a;  // b = direccion de memoria de a
  9. int *c= (int*) a; // c = apuntador a la variable a
  10.  
  11. printf("La direccion de memoria de a es %d\n",&a);
  12. printf("b = %d\n",b);
  13. printf("c = %d\n",c); // 8
  14.  
  15. a = 10; // cambia
  16. printf("c = %d\n",c); // 10 <-- cambia
  17. }
  18. }

Ya ves, & te da la direccion de memoria de una variable y * te permite declarar una variable como tipo puntero (apuntador)

Lo que escribiste no tiene sentido........ pero si miras el ejemplo veras varias cosas como que cuando preguntas por c te da el contenido de a, eso hacen los apuntadores!

Otro ejemplo:

Código
  1. #include <stdio.h>
  2.  
  3. int main(void)
  4. {
  5. int a[2] = {8,10};
  6. int *p= (int*) a;
  7.  
  8. printf("p = %d\n",p[0]);   // 8
  9.  
  10. *p++;  // <-- movi el puntero
  11. printf("p = %d\n",p[0]);   // 10
  12. }
  13.  
148  Programación / Programación C/C++ / Re: [C] char * vs char [] en: 17 Abril 2016, 20:10 pm
Mil gracias Ivan
149  Programación / Programación C/C++ / Re: [C] char * vs char [] en: 17 Abril 2016, 19:58 pm
Gracias Ivan, me imaginaba venia por punteros dobles el tema.... estoy probando y no me compila:

Código
  1. int main(void)
  2. {
  3. // En este caso habría 2 punteros: uno en el heap (*p), y el otro en la pila (p)
  4.  
  5. int** p = (int**)malloc(sizeof(int*));  
  6. *p = (int*)malloc(sizeof(int));  // en la pila
  7. **p = 5;
  8. }

12   19   C:\C++\heap_stack_ptrs.c   [Warning] incompatible implicit declaration of built-in function 'malloc'


Gracias desde ya....... lo miro y lo veo bien pero no quiere compilarse
150  Programación / Programación C/C++ / Re: [C] char * vs char [] en: 17 Abril 2016, 17:47 pm
En StackOverflow tambien dicen eso.... "es una  tipo (de variable) mas"

"Pointers are just a type of variable, so they can be wherever you want them to be (on the heap if you malloc() them, on the stack if they're local variables, or in the data section if they're global)."

Sin embargo, no entiendo bien el tema de malloc() aqui: ¿ que tiene que ver si se reserva memoria para el contenido con donde queda el puntero en memoria ? (mas alla del caso particular de un puntero nulo)
Páginas: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 [15] 16 17 18 19 20 21 22
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines