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

 

 


Tema destacado: Security Series.XSS. [Cross Site Scripting]


  Mostrar Temas
Páginas: 1 2 3 [4] 5 6 7 8 9 10 11 12
31  Programación / Programación C/C++ / Ayuda con ejercicio en C en: 28 Octubre 2012, 15:43 pm
Buenas!

Bueno pues de los ejercicios que me dejasteis en otro post eleji este para ir empezando:

Citar
Dado un numero entero positivo de segundos, se desea convertirlo a días.
En el archivo segundos.in se informa el número de segundos el cual
puede tener hasta 100 dígitos decimales, como una secuencia de dígitos.
La salida se grabará en el archivo segundos.out, cada respuesta en una
línea, y deberá contener:
1. Indicación de si el número de segundos dado equivale a un numero
entero de minutos o no (mediante una S para sí, y una N para no).
2. Indicación de si el número de segundos dado equivale a un numero
entero de horas, en el mismo formato que para la respuesta 1).
3. Indicación de si el número de segundos dado equivale a un numero
entero de días, en el mismo formato que para la respuesta 1).
4. Imprimir el numero de días, horas, minutos y segundos equivalente
al número de segundos dado.
Ejemplo:
Si segundos.in contiene:
5650560900
El archivo segundos.out debería contener:
S
N
S
65400 d, 0 h, 15 m, 0 s

Bueno yo cambie lo de archivos, porque aun no se manejarlos, y he llegado hasta los tres primeros puntos, pero el 4 no se como hacerlo, y queria que me dijerias a ver de que forma puedo hacerlo, no quiero codigo, solo como poder hacerlo, una idea para despues hacerlo yo, os dejo lo que llevo hecho:
Código
  1. #include <stdio.h>
  2. #include <stdint.h>
  3. #include <inttypes.h>
  4.  
  5.  
  6.  
  7. int main()
  8. {
  9. uint64_t segundos;
  10. double minutos;
  11. double horas;
  12. double dias;
  13.  
  14.  
  15. printf("Porfavor introduzca los segundos: \n");
  16. scanf("%llu", &segundos);
  17.  
  18. while(getchar() != '\n')
  19. ;
  20.  
  21. minutos = (double) segundos/60;
  22.  
  23.  
  24. if (((int) minutos) != minutos)
  25. printf("Numero entero de minutos: No\n");
  26. else if (((int) minutos) == minutos)
  27. printf("Numero entero de minutos: Si\n");
  28.  
  29. horas = (double) segundos/3600;
  30.  
  31. if (((int) horas) != horas)
  32. printf("Numero entero de horas: No\n");
  33. else if (((int) horas) == horas)
  34. printf("Numero entero de horas: Si\n");
  35.  
  36. dias = (double) (segundos/3600)/24;
  37.  
  38. if (((int) dias) != dias)
  39. printf("Numero entero de dias: No\n");
  40. else if (((int) dias) == dias)
  41. printf("Numero entero de dias: Si\n");
  42.  
  43.  
  44. return 0;
  45. }

Saludos
32  Programación / Programación C/C++ / Detectar si un numero es entero o no en: 25 Octubre 2012, 20:15 pm
Bueno pues sigo con el mismo ejercicio que estoy haciendo en el ultimo post que hice hace poco tiempo, pero esta vez es otro problema, aqui os dejo el codigo que llevo:

Código
  1. #include <stdio.h>
  2.  
  3. int main()
  4. {
  5. long int segundos;
  6. double minutos;
  7.  
  8.  
  9. printf("Porfavor introduzca los segundos: \n");
  10. scanf("%ld", &segundos);
  11.  
  12. while(getchar() != '\n')
  13. ;
  14.  
  15. minutos = segundos/60;
  16.  
  17. if (((int) minutos) == minutos)
  18. printf("Numero entero de minutos: Si");
  19. else
  20. printf("Numero entero de minutos: No");
  21.  
  22.  
  23. return 0;
  24. }

Lo primero que me pide el ejercicio es que segun el numero de segundos introducidos, analice si es un numero entero de minutos o no, y creo que este codigo esta bien, pero ponga el numero que ponga siempre me da que si, y ya lo he repasado mil veces y he probado a ponerlo de otras maneras pero siempre pasaba lo mismo, creo que estoy fallando en una tonteria pero no me doy cuenta.

Saludos

EDITO:He probado a cambiar la variable segundos de tipo int a tipo double y asi funciona perfectamente, y se que el error estaba el linea de asignacion a minutos despues del bucle while, pero sigo sin enetender el error

Saludos
33  Programación / Programación C/C++ / Como almacenar un numero de 10 cifras en: 25 Octubre 2012, 19:22 pm
Pues esa es la duda, he empezado con un problema de los que me habeis dejado en otro post que he crado preguntando por algunos problemas y ya he elegido uno que me parece que pensando un poco puedo llegar a sacarlo, y ese es el primer problema que se me presenta, que tipo de variable puedo usar para almacenar un numero de 10 cifras, he probado de las siguientes maneras:

Código
  1. int x;
Código
  1. long int x;
Código
  1. long long int x;
Código
  1. unsigned long long int x;

Y ninguna me ha servido, la unica forma que se me ocurre es utilizando un array, pero aun no he llegado a leer sobre ellos y pereferia evitarlos. En el problema se me presenta que ese numero lo contiene un fichero, pero como tampoco se manejar ficheros, pues no puedo hacerlo de esa manera y creo que se puede hacer como quiero yo

Saludos
34  Programación / Programación C/C++ / Ejercicios para practicar en C en: 23 Octubre 2012, 19:43 pm
Pues queria preguntaros a vosotros si se os ocurre asi algun programa para que pueda practicar yo lo que llevo aprendido hasta ahora (bucles, estructuras de control, funciones y poquito mas), porque ya he buscado por google muchos ejemplos pero esque la verdad los que he encontrado que pueda aplicar lo que he aprendido yo hasta ahora son bastante faciles, yo queria algo complejo, donde me tenga que poner a pensar para poder hacer el programa, pero es que ya he buscado bastante y lo que encuentro son problemas faciles donde por ejemplo se resuelve todo con un bucle y punto, y por eso os preguntaba a vosotros.

Saludos
35  Programación / Programación C/C++ / Duda en los include en: 21 Octubre 2012, 14:27 pm
Pues queria saber cual de las dos formas es la correcta al incluir las librerias en C

Código
  1. #include <stdio.h>
Código
  1. #include "stdio.h"

Cual es la correcta? o son las dos?

Saludos
36  Programación / Programación C/C++ / Error al compilar en Linux en: 20 Octubre 2012, 21:33 pm
Pues estaba probando a compilar el codigo de una calculadora que hice en windows, a hacerlo en Linux para ir viendo las diferencias porque me quiero pasar a Linux, el codigo es el que deje aqui:

http://foro.elhacker.net/programacion_cc/calculadora_hecha_en_c-t373901.0.html

Y lo unico que he cambiado es la linea

Código
  1. system("cls");

Por esta:

Código
  1. system("clear");

Pero me da error al compilar, que mas debo de cambiar del codigo para que me compile en Linux?

Saludos
37  Programación / Programación C/C++ / Calculadora hecha en C en: 20 Octubre 2012, 18:44 pm
Pues acabo de terminar esta calculadora y queria vuestra opinion, algunas cosas mas que le pueda implementar,si encontrais algun fallo, etc

Aqui os dejo el codigo:

main.c
Código
  1. #include <stdio.h>
  2. #include "funciones.h"
  3.  
  4. int main() {
  5.  
  6. int op;
  7.  
  8. do {
  9.  
  10. imprimir_menu();
  11.  
  12.  
  13. scanf("%d", &op);
  14. while (getchar() != '\n')
  15. ;
  16. system("cls");
  17. switch (op) {
  18.  
  19. case 1:
  20. sumar();
  21. break;
  22.  
  23. case 2:
  24. restar();
  25. break;
  26.  
  27. case 3:
  28. multiplicar();
  29. break;
  30.  
  31. case 4:
  32. dividir();
  33. break;
  34.  
  35. case 5:
  36. potencia();
  37. break;
  38.  
  39. case 6:
  40. raiz_cuadrada();
  41. break;
  42.  
  43. case 7:
  44. seno();
  45. break;
  46.  
  47. case 8:
  48. coseno();
  49. break;
  50.  
  51. case 9:
  52. tangente();
  53. break;
  54.  
  55. case 10:
  56. break;
  57.  
  58. default:
  59. printf("Ha elejido una opcion incorrecta\n");
  60. break;
  61. }//fin del switch
  62.  
  63. }while (op != 10);
  64.  
  65. return 0;
  66. }

funciones.h
Código
  1. #include <math.h> //para potencia y raiz cuadrada
  2.  
  3. void imprimir_menu(void) {
  4. system("cls"); //limpia la pantalla al volverse a ejecutar el do-while del archivo main.c
  5. printf("Elija una opcion:\n\n");
  6. printf("*********************************\n");
  7. printf("*\t [1] Sumar\t\t*\n");
  8. printf("*\t [2] Restar\t\t*\n");
  9. printf("*\t [3] Multiplicar\t*\n");
  10. printf("*\t [4] Dividir\t\t*\n");
  11. printf("*\t [5] Potencia\t\t*\n");
  12. printf("*\t [6] Raiz cuadrada\t*\n");
  13. printf("*\t [7] Seno\t\t*\n");
  14. printf("*\t [8] Coseno\t\t*\n");
  15. printf("*\t [9] Tangente\t\t*\n");
  16. printf("*\t [10] Salir\t\t*\n");
  17. printf("*********************************\n\n");
  18. return;
  19. }
  20.  
  21.  
  22.  
  23. void sumar(void) {
  24. double num1, num2;
  25. printf("\nIntroduzca los dos numeros a sumar: \n");
  26. scanf("%lf %lf", &num1, &num2);
  27. while (getchar() != '\n')
  28. ;
  29. printf("\n%lf", num1 + num2);
  30. return;
  31.  
  32.  
  33. }
  34.  
  35. void restar(void) {
  36. double num1, num2;
  37. printf("\nIntroduzca los dos numeros a restar: \n");
  38. scanf("%lf %lf", &num1, &num2);
  39. while (getchar() != '\n')
  40. ;
  41. printf("\n%lf", num1 - num2);
  42. return;
  43.  
  44.  
  45. }
  46.  
  47. void multiplicar(void) {
  48. double num1, num2;
  49. printf("\nIntroduzca los dos numeros a multiplicar: \n");
  50. scanf("%lf %lf", &num1, &num2);
  51. while (getchar() != '\n')
  52. ;
  53. printf("\n%lf", num1 * num2);
  54. return;
  55.  
  56.  
  57. }
  58.  
  59. void dividir(void) {
  60. double num1, num2;
  61. printf("\nIntroduzca los dos numeros a dividir: \n");
  62. scanf("%lf %lf", &num1, &num2);
  63. while (getchar() != '\n')
  64. ;
  65. printf("\n%lf", num1 / num2);
  66. return;
  67.  
  68.  
  69. }
  70.  
  71. void potencia(void) {
  72. double num1, num2;
  73. printf("\nIntroduzca la base: \n");
  74. scanf("%lf", &num1);
  75. while (getchar() != '\n')
  76. ;
  77. printf("Introduzca el exponente: \n");
  78. scanf("%lf", &num2);
  79. while (getchar() != '\n')
  80. ;
  81. printf("\n%lf", pow(num1, num2));
  82. return;
  83.  
  84.  
  85. }
  86.  
  87. void raiz_cuadrada(void) {
  88. double num1;
  89. printf("\nIntroduzca el numero: \n");
  90. scanf("%lf", &num1);
  91. while (getchar() != '\n')
  92. ;
  93. printf("La raiz cuadrada es: %lf \n", sqrt(num1));
  94.  
  95. return;
  96.  
  97.  
  98. }
  99.  
  100. void seno(void) {
  101. double num1;
  102. printf("\nIntroduzca el numero: \n");
  103. scanf("%lf", &num1);
  104. while (getchar() != '\n')
  105. ;
  106. printf("El seno es: %lf \n", sin(num1));
  107.  
  108. return;
  109.  
  110.  
  111. }
  112.  
  113. void coseno(void) {
  114. double num1;
  115. printf("\nIntroduzca el numero: \n");
  116. scanf("%lf", &num1);
  117. while (getchar() != '\n')
  118. ;
  119. printf("El coseno es: %lf \n", cos(num1));
  120.  
  121. return;
  122.  
  123.  
  124. }
  125.  
  126. void tangente(void) {
  127. double num1;
  128. printf("\nIntroduzca el numero: \n");
  129. scanf("%lf", &num1);
  130. while (getchar() != '\n')
  131. ;
  132. printf("La tangente es: %lf \n", tan(num1));
  133.  
  134. return;
  135.  
  136.  
  137. }
38  Programación / Programación C/C++ / Cambios de Windows a Linux en: 13 Octubre 2012, 21:23 pm
Pues acabo de instalar Ubuntu en mi PC, junto con Windows, y ya probe a hacer el tipico Hola Mundo y a compilarlo desde Linux, y la verdad me gusta eso de que el compilador ya venga con el sistema, no llevo mucho tiempo con esto de la programacion, la verdad es que de C he leido hasta funciones y poco mas, y queria saber las diferencias que hay de programar en Linux a hacerlo en Windows, quiero decir que voy a seguir programando para Windows, pero poco a poco con el tiempo quiero deshacerme de el por completo.

Saludos
39  Programación / Programación C/C++ / Duda sobre el ambito de las variables automaticas en: 6 Octubre 2012, 12:30 pm
el ambito de una variable una variable automatica puede ser menor que una funcion? una instruccion por ejemplo:
Código
  1. for (auto int i = 5; i < count; ++i)
  2. {
  3. /* code */
  4. }

Es decir, que el valor 5 para la variable solo valga para este bucle, no se si me explico, es que en el libro que estoy leyendo dice que si pero no da ningun ejemplo sobre como se puede utilizar de esta manera.

Saludos
40  Programación / Programación C/C++ / Estoy perdido con la recursividad en: 3 Octubre 2012, 19:35 pm
Pues estoy leyendo sobre la recursividad y estoy totalmente perdido, no entiendo nada, dice que las llamadas a la funcion no se realizan en el momento de la llamada, sino que se acumulan hasta cumpla una condicion, y despues se ejecutan en orden inverso, es decir, que la primera llamada que se hizo es la ultima en ejecutarse?
Alguien amable podria explicarme esto de una forma algo mas facil, porque estoy muy perdido.

Gracias

EDITO: a ver, algo creo que voy entendiendo, de ejemplo me trae este codigo:

Código
  1. #include <stdio.h>
  2.  
  3. #define EOLN '\n'
  4.  
  5. void inverso(void);
  6.  
  7. int main() {
  8. printf("Introduce una linea de texto debajo: \n");
  9. inverso();
  10. }
  11.  
  12. void inverso(void) {
  13. char c;
  14.  
  15. if((c = getchar) != EOLN) inverso();
  16. putchar(c);
  17. return;
  18. }

Antes de nada, no he compilado el codigo, voy a fiarme del libro, A ver si me explico y lo he entendido bien, este programa se supone que escribe el texto introducido al reves, ejemplo:

Citar
hola - aloh

Cuaado tu introduces una letra, por ejemplo a, no la escribe, sino que vuelve a llamar a la funcion, es decir entra en bucle ejecutando la linea:
Código
  1. if((c = getchar) != EOLN) inverso();
hasta que la condicion del if se cumpla, entonces como segun el libro el orden de las llamdas es inverso, la primera letra que introduje sera la ultima en mostrarse, y asi con el resto de caracteres, estoy en lo cierto?

Espero haberlo entendido bien, porque es el ultimo punto de este tema y estoy deseando pasar de tema, pero no sin antes haberlo entendido todo perfectamente.

Gracias de nuevo
Páginas: 1 2 3 [4] 5 6 7 8 9 10 11 12
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines