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

 

 


Tema destacado: Sigue las noticias más importantes de seguridad informática en el Twitter! de 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
131  Programación / Programación C/C++ / Re: ayuda: programa en lenguaje c en: 20 Abril 2016, 16:56 pm
Deberias ofrecer cash $$$  ;D


EDIT: creí que era una consigna de la cátedra que hicieras el cambio pero como dices que no .... te lo resuelvo
132  Programación / Programación C/C++ / Re: Hola,me gustaria saber como modificar un juego desde un archivo binario(bin,dat) en: 20 Abril 2016, 04:08 am
Tamaño de los archivos a modificar ?

Que has planteado hasta ahora ? muestra algo
133  Programación / Programación C/C++ / Re: Intercalacion de numeros pares e impares en vectores en: 19 Abril 2016, 19:12 pm
En si....

Código
  1. MIENTRAS (TRUE)
  2. {
  3.    SI (NO HAY DATOS) BREAK;
  4.    next(dato)
  5.    PUSH (dato, vector1)
  6.  
  7.    SI (NO HAY DATOS) BREAK;
  8.    next(dato)
  9.    PUSH (dato, vector2)
  10.  
  11.    SI (NO HAY DATOS) BREAK;
  12.    next(dato)
  13.    PUSH (dato, vector3)
  14.  
  15.    SI (NO HAY DATOS) BREAK;
  16.    next(dato)
  17.    PUSH (dato, vector4)
  18. }
  19.  

Puedes hacer un solo bucle o dividirlo en N bucles si tienes N-vectores o arreglos, ejemplo en C:

Código
  1. #include <iostream>
  2. #include <stdlib.h>
  3. #include <stdio.h>
  4. using namespace std;
  5.  
  6. const int elems = 20;
  7. const int nv = 4;
  8.  
  9. int main ()
  10. {
  11.    int ary[] = { 1,2,3,4,
  12.                  5,6,7,8,
  13.                  9,10,11,12,
  14.                  13,14,20
  15.                };
  16.  
  17.    int* vec[nv];    
  18.    int dl[nv]; // dimesiones logicas
  19.    int i,j, limit;
  20.  
  21.    // reserva de memoria (new) e inicializaciones
  22.    for (j=0;j<nv;j++){
  23.        vec[j] = (int*) malloc(elems * sizeof(int));
  24.        dl[j] = 0;
  25.    }      
  26.  
  27.    limit = sizeof(ary)/sizeof(ary[0]);
  28.  
  29.    for (j=0;j<nv;j++)    
  30.        for (i=j; i< sizeof(ary)/sizeof(ary[0]) ;){
  31.       vec[j][dl[j]] = ary[i];  
  32.   i+=nv;dl[j]++;
  33.    }    
  34.  
  35.  
  36.    // Imprimo
  37.  
  38.    for (j=0;j<nv;j++){
  39.        cout << "V1 = ";
  40.        for (i=0; i<dl[j]; i++)
  41.           cout << vec[j][i] << " ";
  42.        cout << endl;
  43.    }    
  44.  
  45.  
  46.    return 0;
  47. }
  48.  
  49.  

Y la otra forma que te comentaba (siempre en C)

Código
  1. #include <iostream>
  2. #include <stdlib.h>
  3. #include <stdio.h>
  4. using namespace std;
  5.  
  6. const int elems = 20;
  7. const int nv = 4;
  8.  
  9. int main (void)
  10. {
  11.    int ary[] = { 1,2,3,4,
  12.                  5,6,7,8,
  13.                  9,10,11,12,
  14.                  13,14,20
  15.                };
  16.  
  17.    int* vec[nv];    
  18.    int dl[nv]; // dimesiones logicas
  19.    int i,j, limit;
  20.  
  21.    // reserva de memoria (new) e inicializaciones
  22.    for (j=0;j<nv;j++){
  23.        vec[j] = (int*) malloc(elems * sizeof(int));
  24.        dl[j] = 0;
  25.    }      
  26.  
  27.    limit = sizeof(ary)/sizeof(ary[0]);
  28.  
  29.    for (i=0;i<limit; ){    
  30.        for (j=0;j<nv;j++){        
  31.           vec[j][dl[j]] = ary[i];
  32.           dl[j]++; i++;
  33.           if (i==limit-1) goto outside;
  34.        }  
  35.    }
  36.  
  37.    outside:    
  38.  
  39.    // Imprimo
  40.  
  41.    for (j=0;j<nv;j++){
  42.        cout << "V1 = ";
  43.        for (i=0; i<dl[j]; i++)
  44.           cout << vec[j][i] << " ";
  45.        cout << endl;
  46.    }    
  47.  
  48.    return 0;
  49. }
  50.  

No uso vector y menos una libreria como T++ pero creo se puede ver la logica de cualquiera de los ejemplos.

Salu2
134  Programación / Programación C/C++ / Re: copiar ciertos valores de una variable en otra variable en lenguaje C. en: 19 Abril 2016, 16:47 pm
Gracias, me pareció interesante tu codigo y el enlace a StackOverflow   ;)
135  Programación / Programación C/C++ / Re: copiar ciertos valores de una variable en otra variable en lenguaje C. en: 19 Abril 2016, 14:25 pm
Compañero @xiruko : te consulto por el uso de sscanf() con "%d"

Tu sabras si es mas eficiente que usar atoi() ?
136  Programación / Programación C/C++ / Re: [AYUDA] piramide en c++? en: 19 Abril 2016, 12:38 pm
i,j o e,i son variables de control de lazo (bucle, ciclo)

Se podria haber hecho con un solo while() si sabes cuantos caracteres esperas al final:

Código
  1. #include <iostream>
  2. using namespace std;
  3.  
  4. int main(void)
  5. {
  6.    int num = 5, pad, inc, row, tmp;
  7.    char c = '*';    
  8.  
  9. // cantidad de caracteres =  suma de los n primeros naturales: n(n+1)/2
  10. pad = num * (num+1) * 0.5;
  11.  
  12. inc = 0; row =1; tmp = 1;
  13. while (inc<pad){
  14. cout << c;
  15. if (tmp==row){
  16. cout << endl;
  17. tmp=0;
  18. row++;
  19. }
  20. inc++;
  21. tmp++;
  22. }
  23.  
  24.    return 0;
  25. }
  26.  


Este tipo de problemas se puden resolver con 2 bucles pero tambien con 1 bucle + 1 if() interno y seria como hacer una transformacion del mundo (x,y) al (u,v) :


(bucle externo, bucle interno) ---> (bucle externo 2, if interno)


El bucle externo no es el mismo y por tanto el if() interno no reemplaza (estoy editando mi respuesta) al bucle interno. Por esto se puede hablar de transformación en sentido matematico.


PD:  ya habia dado una respuesta......... pero no daré respuestas a ejercicios completos en otros hilos.  Me disculpo por eso.
137  Programación / Programación C/C++ / Re: copiar ciertos valores de una variable en otra variable en lenguaje C. en: 19 Abril 2016, 04:16 am
Si solo quieres sacar por pantalla juntos ciertos valores....... es muy simple:

Código
  1. cout << a << b << c << d .... << ... << endl;
  2.  


Si verdaderamente necesitas concatenar porque vas a devolver eso en una funcion, etc...

Código
  1. #include <iostream>
  2. #include <stdio.h>
  3. #include <stdlib.h>
  4. #include <string.h>
  5.  
  6. using namespace std;
  7.  
  8. // se puede generalizar
  9. char* concatnum(int a, int b){
  10. char as[10], bs[10];
  11. static char out[30];
  12.  
  13. itoa(a,as,10);
  14. itoa(b,bs,10);
  15.  
  16. strcpy(out,as);
  17. strcat(out,bs);
  18.  
  19. // podria devolver un "string" (char*) o un entero
  20. return out;
  21. }
  22.  
  23.  
  24. int main(void){
  25. cout << concatnum(2,0);
  26. }
  27.  


EDIT: La funcion que puse no tiene verdadera utilidad (solo te sirve para mirar como funcionan strcpy y strcat) porque solo recibe 2 valores, iba a generalizar pero me tuve que ir a dormir y otro compañero ya te dio una respuesta mejor ahora.
138  Programación / Programación C/C++ / Re: copiar ciertos valores de una variable en otra variable en lenguaje C. en: 19 Abril 2016, 01:22 am
Podrias hacerlo con la funcion strok()
139  Programación / Programación C/C++ / Re: Ayuda con archivos .c y .h en: 19 Abril 2016, 01:16 am
Las definiciones de las funciones (que son opcionales en ciertos casos) se pueden colocar en un archivo aparte de "headers" (de extension .h y con el mismo nombre que tu .c)

Código:
// palindromos.c

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

using namespace std;

/*
Capicupa (palindromo) ?

*/

// todo esto podria estar en palindromos.h
const char* r_bool(bool b);
bool es_capicua(int x);
void print_capicua_rango(int a, int b);


int main(void)
{
cout << r_bool(es_capicua(10000)) << endl; // false
cout << r_bool(es_capicua(10001)) << endl; // true
cout << r_bool(es_capicua(10501)) << endl; // true
cout << r_bool(es_capicua(807)) << endl; // false
cout << r_bool(es_capicua(808)) << endl; // true

print_capicua_rango(19,100);

getchar();
}

void print_capicua_rango(int a, int b){
int i,count=0;
for (i=a; i<b; i++){
if (es_capicua(i)){
cout << i << endl;
count++;
}
}
cout << "El numero de terminos capicua es " << count;
}

bool es_capicua(int x){
char buffer [10];
int i;
bool exito = true;

itoa(x,buffer,10);

int len = strlen(buffer);
for (i = 0; i<(int)len/2 && exito; i++)
exito = buffer[i]==buffer[len-1-i];

return exito;
}

const char* r_bool(bool b){
  return (b ? "true" : "false");
}


Se convierte en......

Código:
// palindromos.h

const char* r_bool(bool b);
bool es_capicua(int x);
void print_capicua_rango(int a, int b);


Código:
// palindromos.c

#include <iostream>
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include "palindromos.h"

using namespace std;

/*
Capicupas (palindromos)
*/


int main(void)
{
cout << r_bool(es_capicua(10000)) << endl; // false
cout << r_bool(es_capicua(10001)) << endl; // true
cout << r_bool(es_capicua(10501)) << endl; // true
cout << r_bool(es_capicua(807)) << endl; // false
cout << r_bool(es_capicua(808)) << endl; // true

print_capicua_rango(19,100);

getchar();
}

void print_capicua_rango(int a, int b){
int i,count=0;
for (i=a; i<b; i++){
if (es_capicua(i)){
cout << i << endl;
count++;
}
}
cout << "El numero de terminos capicua es " << count;
}

bool es_capicua(int x){
char buffer [10];
int i;
bool exito = true;

itoa(x,buffer,10);

int len = strlen(buffer);
for (i = 0; i<(int)len/2 && exito; i++)
exito = buffer[i]==buffer[len-1-i];

return exito;
}

const char* r_bool(bool b){
  return (b ? "true" : "false");
}
140  Programación / Programación C/C++ / Re: [AYUDA] piramide en c++? en: 18 Abril 2016, 21:43 pm
Código
  1. #include <iostream>
  2. using namespace std;
  3.  
  4. int main(void)
  5. {
  6.    int cols = 7,e,i;
  7.    char c = '*';    
  8.  
  9. e = 0;  
  10. while (e<cols){    
  11.            i = 0;
  12.            while (i<e){
  13.         cout << c;
  14.         i++;
  15.    }
  16.    cout << endl;
  17.    e++;
  18.    }        
  19.  
  20.    return 0;
  21. }
  22.  
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