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


Tema destacado: ¿Eres nuevo? ¿Tienes dudas acerca del funcionamiento de la comunidad? Lee las Reglas Generales


  Mostrar Mensajes
Páginas: 1 ... 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 [55] 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 ... 235
541  Informática / Software / Re: ¿Como saber dirc. web usadas hace 24 horas en: 9 Noviembre 2018, 02:27 am
No se si el RECUVA sirve para eso

Pues depende si ya borraron los datos del navegador o no.

Tienes el navegador funcional?
542  Seguridad Informática / Seguridad / Re: NECESITO AYUDA en: 9 Noviembre 2018, 01:07 am
recomendaciones.

- Cambiar las contraseñas de TODAS las cuentas de Correo.
- Activar 2FA de los correos, con un numero telefónico que no este en un smartphone (Teléfono desechable que solo pueda recibir los mensajes de texto).
- Cambiar las contraseñas de las redes sociales y activar 2FA de estas mismas.

Todo lo anterior desde una Computadora Segura, recien instalado o desde un sistema Live.

Saludos
543  Foros Generales / Foro Libre / Re: Exclusividades en la superficial en: 9 Noviembre 2018, 00:48 am
Que seria todo lo que tiene de exclusivo la internet superficial?

reformula tu pregunta y quitale todo el cantifleo.. (Explicate mejor)

Interenet superficial.... vides de gatitos, NoP0r y mas NoP0r. Streming de video en general consume como el 80% del trafico de internet.

Saludos
544  Programación / Programación C/C++ / Re: Programa de divisas en: 8 Noviembre 2018, 22:50 pm
5) if ... else if... else if... else... con pruebas de condición sobre enteros, debes usar switch / case.

Estaba por comentarle cosas similares, pero me ganaste.

respecto al codigo tiene fallas e ineficiencias por ejemplo el siguiente codigo hace varias comprofaciones inecesarias.

Código:
   			for(i=0;i<7;i++){	
   cout<<"moneda "<<mon[i]<<endl;
   cout<<"cantidad "<<moneda[i]<<endl;
   if (i==0){
   cout<<"cantidad en Quetzales "<<moneda[i]*7.72<<endl;
   total=total+(moneda[i]*7.72);
   }else if (i==1){
   cout<<"cantidad en Quetzales "<<moneda[i]*8.8<<endl;
   total=total+(moneda[i]*8.8);
   } else if (i==2){
   cout<<"cantidad en Quetzales "<<moneda[i]*5.89<<endl;
   total=total+(moneda[i]*5.89);
   }else if (i==3){
   cout<<"cantidad en Quetzales "<<moneda[i]*10.03<<endl;
   total=total+(moneda[i]*10.03);
   }else if (i==4){
   cout<<"cantidad en Quetzales "<<moneda[i]*7.7<<endl;
   total=total+(moneda[i]*7.7);
   }else if (i==5){
   cout<<"cantidad en Quetzales "<<moneda[i]*5.55<<endl;
   total=total+(moneda[i]*5.55);
   }else if (i==6){
   cout<<"cantidad en Quetzales "<<moneda[i]*5.13<<endl;
   total=total+(moneda[i]*5.13);
   }
  }

Siendo que todo eso esta dentro de un for realmente i solo puede tener un valor a la vez por lo cual podrias poner TODO FUERA DEL FOR y ahorrarte las evaluaciones de la siguiente manera.

Código:
cout<<"moneda "<<mon[0]<<endl;
cout<<"cantidad "<<moneda[0]<<endl;
cout<<"cantidad en Quetzales "<<moneda[0]*7.72<<endl;
total=total+(moneda[0]*7.72);

cout<<"moneda "<<mon[1]<<endl;
cout<<"cantidad "<<moneda[1]<<endl;
cout<<"cantidad en Quetzales "<<moneda[1]*8.8<<endl;
total=total+(moneda[1]*8.8);


cout<<"moneda "<<mon[2]<<endl;
cout<<"cantidad "<<moneda[2]<<endl;
cout<<"cantidad en Quetzales "<<moneda[2]*5.89<<endl;
total=total+(moneda[2]*5.89);

cout<<"moneda "<<mon[3]<<endl;
cout<<"cantidad "<<moneda[3]<<endl;
cout<<"cantidad en Quetzales "<<moneda[3]*10.03<<endl;
total=total+(moneda[3]*10.03);

cout<<"moneda "<<mon[4]<<endl;
cout<<"cantidad "<<moneda[4]<<endl;
cout<<"cantidad en Quetzales "<<moneda[4]*7.7<<endl;
total=total+(moneda[4]*7.7);

cout<<"moneda "<<mon[5]<<endl;
cout<<"cantidad "<<moneda[5]<<endl;
cout<<"cantidad en Quetzales "<<moneda[5]*5.55<<endl;
total=total+(moneda[5]*5.55);

cout<<"moneda "<<mon[6]<<endl;
cout<<"cantidad "<<moneda[6]<<endl;
cout<<"cantidad en Quetzales "<<moneda[6]*5.13<<endl;
total=total+(moneda[6]*5.13);

O dentro del FOR pero ahorrandote los IF de igualmanera

Código
  1. float fix[7] = {7.72,8.80,5.89,10.03,7.71,5.58,5.13};
  2.  
  3. for(i=0;i<7;i++){
  4. cout<<"moneda "<<mon[i]<<endl;
  5. cout<<"cantidad "<<moneda[i]<<endl;
  6. cout<<"cantidad en Quetzales "<<moneda[i]*fix[i]<<endl;
  7. total=total+(moneda[i]*fix[i]);
  8. }
  9.  
  10.  
Este ultimo es el mas eficiente a mi manera de ver las cosas, sobre el por que no los imprime seria cuestion de que me expliques como  es que funciona esta parte del codigo. Yo se como funciona, pero si no entienda esa parte no sabras realmente que estas haciendo

Código:
if (reporte=="si"){
545  Programación / Programación C/C++ / Re: ayuda con programa en c++ para ingreso de N alumnos en: 8 Noviembre 2018, 22:39 pm
Recomendaciones antes de darte la solucion.

Si es muy comun vengan aqui preguntan por su tarea, y no hay problema cuando se tiene tiempo se les ayuda, sin embargo lo que no acepto es que vengan con un código copiado/pegado de quien sabe cuantas fuentes distintas. (Si se va a copiar un codigo es por que lo entiendes y no tienes dudas de que hacada una de sus instrucciones)

Tienes tanto "printf" como "cout", esto denota que has copiado y pegado el codigo de distintas fuentes de programacion, ademas se notan estilos de programacion diferente. Ademas las funciones de adorno como SetConsoleTextAttribute entre otras son incesarias, te estan enseñando a programar no a diseñar, asi que podrias presindir de ellas para hacer la tarea un poco mas sencilla.

El problema de tu codigo radica en que copiaste o tu mismo hiciste un codigo que esta mal, no considera los arreglos de forma correcta, esto es no empiezas desde la poscion 0.

En programacion empezamos a contar desde 0 como el primer elemento. Con exepcion de Visual Mi3rd4 que si lo hace apartir de la posicion 1 para el primer element

Si tienes un arreglo de 4 elementos ej.

int Arreglo[4];

Lo ideal hacer un FOR o While para Rellenarlo empezando desde la posicion 0 hasta la poscion 3.

Cuenta conmigo:

Código:
arreglo[0] = 1; //La posicion 0 del arreglo es el primer elemento del mismo
arreglo[1] = 2; //La posicion 1 del arreglo es el segundo elemento del mismo
arreglo[2] = 3; //La posicion 2 del arreglo es el tercer elemento del mismo
arreglo[3] = 4; //La posicion 3 del arreglo es el cuarto elemento del mismo.



En tu codigo tienes un FOR donde inicias a la variable 'i' desde 1 hasta menor o igual a 4.
Cuando realmente deberia de inicialzarse en 0 hasta menor que 4

Tu codigo:

Código:
for(i=1;i<=4;i++)
{

Cuando deberia de ser lo siguiente para todos los FOR desde donde los capturas hasta donde los imprimes

Código:
for(i=0;i<4;i++)
{

La razon por la cual salen valores no validos es por que estas leyendo en posiciones de memoria que estan siendo utilizadas por otras variables.

Saludos!
546  Programación / Programación C/C++ / Re: Valor primo absoluto C++ en: 8 Noviembre 2018, 17:17 pm
Derterminar si un numero es Primo

Como se podria crear una lista con todos los primos absolutos desde 1 hasta un numero en cuestion?

Bienvenido al mundo de los numeros primos, la respuesta te la estas dando tu mismo.

Primero necesitas determinar los numero Primos que existen desde 2 hasta el numero en cuestion.

Una vez definida esa lista necesitas procesar los digitos de cada uno de esos numeros y detenerminar si suma es un numero primo hasta llegar a un solo digito.

Por lo cual tu primer problema es detenerminar si un numero es primo o no.

Metodos para lo mismo hay muchos, desde exhaustivos, probabilisticos.

Lo ideal para estar 100% seguro de que es primo o no, es ir contruyendo una lista de numeros primos, y probar todos los numero siguientes contra esa lista. Por ejemplo emepzamos con el 2, primer numero primo.

Luego 3, ¿es tres divisible entre 2? en otras palabras ¿ 3 modulo 2 es 0 ?  Si la respuesta a esta ultma es negativa podemos agregar 3 a nuestra lista de numeros primos.

Luego 4, ¿Es cuatro divisible entre 2? si 4 % 2 es 0, entonces 4 No es numero primo.

Luego 5 es cinco divisible entre 2, como 5%2 no es 0, y como 5 % 3 no es 0, entonces agregamos 5 a nuestra lista de numeros primos.

Asi sucedivamnete hasta el numero N, entonces ya con la lista definida de numeros primos, procedes a simplificar la suma de sus digiitos como mencionaste hasta llegar a un numero de un solo digito, con lo cual tienes tu problema resulto.

Código
  1. #include<stdio.h>
  2. #include<stdlib.h>
  3. #include<string.h>
  4.  
  5. unsigned int *primos = NULL;
  6. int n_primos = 0;
  7.  
  8. int agregar_numero(unsigned int numero);
  9. int es_primo(unsigned int numero);
  10. int es_primo_absoluto(unsigned int numero);
  11.  
  12. int main() {
  13. unsigned int i,j;
  14. unsigned int N = 0xFFFFFF;
  15. agregar_numero(2);
  16. printf("El numero %i es primo y ademas es Primo Absoluto\n",2);
  17. i = 3;
  18. while(i < N) {
  19. j = 0;
  20. if(es_primo(i)) {
  21. printf("El numero %i es primo\n",i);
  22. agregar_numero(i);
  23. if(es_primo_absoluto(i)){
  24. printf("El numero %i es primo y ademas es Primo Absoluto\n",i);
  25. }
  26. }
  27. i+=2; //Vamos de 2 en 2 por que no necesitamos evaluar los numeros pares, es decir solo 3, 5, 7, 9 .... Asi evistamos llamdas inecesarias a la funcion es_primo, haciendo nuestro programa un tanto mas eficiente
  28. }
  29. return 0;
  30. }
  31.  
  32. int agregar_numero(unsigned int numero) {
  33. primos = realloc(primos,sizeof(int) * (n_primos+1));
  34. primos[n_primos] = numero;
  35. n_primos++;
  36. }
  37.  
  38. int es_primo(unsigned int numero) { //Esta funcion solo determina correctamente si es primo o no, cuando ya hemos EVALUADO todos los numeros PREVIOS a este numero
  39. int es_primo = 1;
  40. int j = 0;
  41. while(j < n_primos && primos[j] < (numero/2) && es_primo) {
  42. es_primo = (numero % primos[j++] == 0) ? 0 : 1 ;
  43. }
  44. return es_primo;
  45. }
  46.  
  47. int es_primo_absoluto(unsigned int numero) {
  48. int retornar;
  49. char temporal[20] = {0};
  50. unsigned suma = 0;
  51. int len,i;
  52. sprintf(temporal,"%u",numero);
  53. len = strlen(temporal);
  54. if(len == 1) {
  55. switch(numero) {
  56. case 2:
  57. case 3:
  58. case 5:
  59. case 7:
  60. retornar = 1;
  61. break;
  62. default:
  63. retornar = 0;
  64. break;
  65. }
  66. }
  67. else {
  68. i = 0;
  69. while(i < len) {
  70. suma = temporal[i++] - '0';
  71. }
  72. if(es_primo(suma)) {
  73. retornar = es_primo_absoluto(suma);
  74. }
  75. else {
  76. retornar = 0;
  77. }
  78. }
  79. return retornar;
  80. }
  81.  

Saludos

547  Programación / Programación C/C++ / Re: matriz de adyacencia en: 8 Noviembre 2018, 05:08 am
'n' es  el dato ya que esta declarado como un solo char.
548  Programación / Programación C/C++ / Re: Grafos en: 8 Noviembre 2018, 04:56 am
Los grafos como tal son bastante enredados, y mas si todavia tienes dudas de estructuras mas basicas como listas ligadas, doblemente ligadas, circulares, y demás.

Pero si entiendes los grafos avanzaras mucho en tu entendimiento del la programación en cualquier lenguaje.

básicamente se utiliza la lista ligada para mantener un control sobre el numero total de nodos creados, pero no indica que la estructura de Lista ligada necesariamente tenga que ser parte de grafo.

saludos
549  Programación / Programación C/C++ / Re: Guardar una linea de enteros separados por un espacio en C en: 8 Noviembre 2018, 04:52 am
Excelente!  ;-)

Ahhhh!, arreglo de Enteros. si convertirlos mediante atoi esta bien. Suponiendo que siempre sea un numero valido. La otra funcion mas rubusta es strtol().

Saludos
550  Programación / Programación C/C++ / Re: Guardar una linea de enteros separados por un espacio en C en: 7 Noviembre 2018, 22:28 pm
Pues técnicamente el "arreglo" es un Arrglo,

Es un arreglo de apuntadores que apuntan valga la redundancia a donde estan guardados los valores leídos

Si ves en las lineas

Código:
		arreglo[i] = calloc(len+1,sizeof(char));
memcpy(arreglo[i],token,len);
printf("Numero %i: %s\n",i+1,arreglo[i]);

Siempre se hace referencia a arreglo.



Tal vez lo que necesitas es un arreglo Fijo, pero al no conocer que te van a dar como N , no podras por metodos de arreglos fijos prevenir correctamente el valor de N

char arreglo[N][30];

Supongamos un N = 1000


Ejemplo:

Código
  1. #include<stdio.h>
  2. #include<stdlib.h>
  3. #include<string.h>
  4.  
  5. int main() {
  6. int  N,i = 0,len;
  7. char *buffer;
  8. char *token = NULL;
  9. char temporal[5000];
  10. fgets(temporal,1000,stdin);
  11. N = strtol(temporal,NULL,10);
  12. char arreglo[N][30];
  13. token = strtok(buffer," ");
  14. fgets(temporal,5000,stdin);
  15. token = strtok(temporal," ");
  16. do {
  17. //arreglo[i] = token; // Esta linea esta bien, pero realmente recomiendo moverl el contenido de esta posicion de memoria a uno que si controlemos nosotros
  18. len = strlen(token);
  19. memcpy(arreglo[i],token,len);
  20. printf("Numero %i: %s\n",i+1,arreglo[i]);
  21. token = strtok(NULL," ");
  22. i++;
  23. }while(i < N && token != NULL);
  24. }

Salida para N = 10

Código:
C:\codigos>ts1.exe
10
1 2 3 4 5 6 7 8 9 0
Numero 1: 1
Numero 2: 2
Numero 3: 3
Numero 4: 4
Numero 5: 5·a
Numero 6: 6
Numero 7: 7fúw~
Numero 8: 8
Numero 9: 9ÖÖ
Numero 10: 0


Salida para N=1000

Código:
Numero 961: 1
Numero 962: 2w╕τa
Numero 963: 3æ╝w Φa
Numero 964: 4
Numero 965: 5τa
Numero 966: 6w
Numero 967: 7@8
Numero 968: 8⌠
Numero 969: 9
Numero 970: 0µ
Numero 971: 1
Numero 972: 2
Numero 973: 3
Numero 974: 4
Numero 975: 5Θa
Numero 976: 6
Numero 977: 7
Numero 978: 8
Numero 979: 9ó╛wƱOuÉ
Numero 980: 0
Numero 981: 1
Numero 982: 2
Numero 983: 3
Numero 984: 4
Numero 985: 5
Numero 986: 6
Numero 987: 7
Numero 988: 8
Numero 989: 9Ωa
Numero 990: 0
Numero 991: 1Ωa
Numero 992: 2w
Numero 993: 3Ēw
Numero 994: 4
Numero 995: 5╝íw
Numero 996: 6
Numero 997: 7
Numero 998: 8
Numero 999: 9
Numero 1000: 0


Le memoria se podria limpiar con

char arreglo[N][30] = {0};

pero se me hace ineficiente hacerlo de esta forma.

Saludos
Páginas: 1 ... 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 [55] 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 ... 235
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines