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

 

 


Tema destacado: Trabajando con las ramas de git (tercera parte)


  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 23 24 25 26 27 ... 132
111  Programación / Programación C/C++ / Re: Archivo de audio en C en: 19 Julio 2014, 14:39 pm
Buenas, hace nada hice una "alarma" en C, con temporizador. El post está por aquí ya que necesité ayuda. Ahora, me gustaría que cuando sonara, en vez del pitido ("\a"), sonase una canción o un archivo de audio que yo quiera, supongo que se podrá, y pediría que alguien me guiase un pelín o me de alguna ayuda sobre el tema.

Gracias de antemano.

Una forma simple sería:

Código
  1. system("MiCancion.mp3");

si está en la misma carpeta, si no tendrás que especificar la ruta, algo como

Código
  1. system("C:\\carpeta\\OtraCarpeta\\MiCancion.mp3");

¡¡¡¡ Saluditos! ..... !!!!


112  Programación / Programación C/C++ / Re: Intersección linea - triángulo en: 19 Julio 2014, 14:06 pm
Hola, llevo un tiempo intentando dar con un algoritmo para detectar el punto de intersección (si existe) entre una linea (rayo) y un triángulo. ¿Alguno tiene implementado ya ésto?
Los parámetros a pasar serían:

Código
  1. Vec3f InterseccionRayoTriangulo(Vec3f T1, Vec3f T2, Vec3f T3, Vec3f R1, Vec3f R2)

Siendo T1, T2 y T3 los vértices del triángulo y R1 y R2, los puntos de la linea.

Alguna idea?

Supongo que T1 y compañía son tipo estrctura donde tienes los vértices de cada uno.

Lo primero es la nomenclatura:

Código
  1. a = ( y2 - y1 ) / ( x2 - x1 ) ///para recta R1 R2
  2. b = y1 - a * x1               ///para recta R1 R2
  3.  
  4. A = ( Y2 - Y1 ) / ( X2 - X1 ) ///para una de las Tini Tfinal
  5. B = Y1 - A * X1               ///para una de las Tini Tfinal
  6.  

donde con minúsculas represento a la recta R1 R2 y con mayúsculas a una de las rectas del triángulo y habrá que hacerlo para cada una de las tres rectas del triángulo, siempre con la misma R1 R2.

Y al meollo de la cuestión, dónde se cortan:

Código
  1. if ( a = A )
  2.  /** no se corta pues son paralelas // **/
  3. else
  4.  /** se cortan y el punto de corte es: **/
  5.  
  6.  x = ( B - b ) / ( a - A )
  7.  
  8.  y = ( a * B - A * b ) / ( a - A )

Así de simple. Existen otros métodos pero como supongo que trabajas con las coordenadas de los vértices me parece el mejor.

Espero no haberla pifiado al copiar los datos, no obstante lo he comprobado con un par de casos y va bien.

¡¡¡¡ Saluditos! ..... !!!!



113  Programación / Programación C/C++ / Re: Temporizadores en: 18 Julio 2014, 16:56 pm
Sin conio.h pero con:

Código
  1. #include <windows.h>
  2. #include <iostream>
  3. #include <iomanip>
  4. #include <unistd.h>
  5. #include <pthread.h>

Creo un hilo para el contador, que sigo usando Sleep por ganseria en lugar de cronos, y poco más. Sólo que el "Quedan" podemos evitarlo ya que distorsiona un poco la impresión. Pero bueno, como intento sin usar conio y que no espere hasta que se dé al ENTER creo que vale.....y ojo que no soy especialista en hilos, así que las críticas suaves, please  ;)

Código
  1. using namespace std;
  2.  
  3. void *hilo1(void *X){
  4.  int i , ss = 10 ;
  5.  cout << "Creando hilo " << endl;
  6.  while( 1 ){
  7.    for( i = ss ; i>= 0 ; i-=2 ){
  8.      Sleep(2000);
  9.    cout << "   Quedan: " << setw(2) << i << " segundos.\r"  ;
  10.    }
  11.    if ( i == -1 ) break;
  12.  }
  13.  cout << endl << "Tiempo excedido\n" << endl;
  14.  exit(1) ;
  15. }
  16.  
  17. int main(){
  18.  int  algo = 0 ;
  19.  pthread_t hilo ;
  20.  pthread_create (& hilo , NULL , hilo1 , NULL );
  21.  cout << endl << "No te olvides del ENTER " << endl;
  22.  cin >> algo ;
  23.  cout << endl << endl << "algo = " << algo << endl;
  24.  return 0;
  25. }

¡¡¡¡ Saluditos! ..... !!!!


114  Programación / Programación C/C++ / Re: Usar la hora en programa en: 17 Julio 2014, 12:26 pm
............................
Ya he corregido los detalles esos, pero el if no lo puedo quitar, si lo hago me suenan los pitidos desde el principio, hasta el final de la cuenta :/
.................................

Fíjate en el código que te puse que sin el if el printf va después del cierre de las llaves de los for, así sonará sólo al acabar los mismos es decir cuando ss=, mm=0 y hh=0 lo que equivale al if, por eso está de más.

Y por cierto, ahora que me fijo mejor es:

Código
  1. printf("La alarma sonara en: %02d:%02d:%02d\r",ii,ij,ik);

Así cuando queden, por ejemplo, nueve o menos segundo aparecerá 00:00:09 en lugar de 00:00:90 como lo tienes ahora.  ;)

Un fuerte saludo Baal_30!.
115  Programación / Programación C/C++ / Re: FUNCION PARA VALIDAR EDAD en: 16 Julio 2014, 22:59 pm
Muy bueno lo del bool Miseryk, pero el tema era:

Necesito una función que valide una edad entre 8 a 11 años, y que rechace numeros decimales, negativos, etc.

....o letras y tu código valida presuponiendo que la entrada es un entero.  ;)... y no es una crítica, sólo una observación.

En realidad tu propuesta es equivalente a:

Código
  1. ******************
  2. int edad;
  3.  
  4. cout << "Edad: >" << endl;
  5.  
  6. cin >> edad;
  7.  
  8. if (edad < 8 || edad > 11 )
  9. {
  10. cout << "Este software no es adecuado para tu edad, para solucionar tu problema ingresa a http://www.spammmmmm.com" << endl;
  11. }
  12. *******************************

Por lo que te podrías ahorrar el bool asd y, como ya comenté, queda pendiente la validación indicada por el autor del tema.

¡¡¡¡ Saluditos! ..... !!!!



116  Programación / Programación C/C++ / Re: Usar la hora en programa en: 16 Julio 2014, 22:23 pm
Te ha quedado "guay".  ;)

Sólo unos detallitos: te falta el prototipo de la función "cuenta", el return de la función main y te podrías ahorrar el último if de la función cuenta:

Código
  1.  for(ii=hh,i=0;ii>=0;ii--,i++){
  2.    if(i>0) {mm=59,ss=59;}
  3.    for(ij=mm,j=0;ij>=0;ij--,j++){
  4.      if(j>0) ss=59;
  5.      for(ik=ss;ik>=0;ik--){
  6.        Sleep(x);
  7.        printf("La alarma sonara en: %d:%d:%d\r",ii,ij,ik);
  8.      }
  9.    }
  10.  }
  11.  printf("\a\a\a\a\a\a\a\a\a\a\a\a\a\a\a\a\a\a\a");

Sólo he probado la función cuenta y te reitero que está guay. ¡¡¡Enhorabuena¡¡¡¡

¡¡¡¡ Saluditos! ..... !!!!



117  Programación / Programación C/C++ / Re: funcion tangente en: 16 Julio 2014, 21:44 pm
BUENAS ESTOY REALIZANDO UN CODIGO DONDE GRAFIQUE LA FUNCION SENO, COSE Y TANGENTE, YA TENGO HECHAS LAS 2 PRIMERAS PERO NO SE ME OCURRE COMO PODRIA GRAFICAR LA TANGENTE YA QUE ES EN FORMA VERTICAL, ME PODRIAN DAR ALGUN TIPS O IDEA DE COMO GRAFICARLA DE FORMA GENERAL, ES DECIR, SI INTRODUCIR PARAMETROS POR EL USUARIO. GRACIAS DE ANTE MANO

Antes que nada recordarte que escribir en mayúsculas no es de buena educación.

Si has podido graficar el seno y el coseno no entiendo qué problema te da la tangente, es como las anteriores sólo que con discontinuidades en los múltiplos impares de pi/2, pero saltando esos valores todo sería igual.

Además otra duda, ¿estas usando sólo el modo consola o alguna librería específica para gráficos?.

¡¡¡¡ Saluditos! ..... !!!!


118  Programación / Programación C/C++ / Re: Temporizadores en: 16 Julio 2014, 21:11 pm
...........................estoy en windows ..........................

Pues si estas en Windows podrías usar windows.h para "Sleep" y conio.h para kbhit:

Código
  1. #include <windows.h>
  2. #include <iostream>
  3. #include <conio.h>
  4. #include <iomanip>
  5.  
  6. using namespace std;
  7.  
  8. int main(){
  9.  int i , ss = 5 , algo = 0 ;
  10.  while( !kbhit() ){
  11.    for( i = ss ; i>= 0 ; i-- ){
  12.      if (kbhit()){
  13.        cout << endl;
  14.        break;
  15.      }
  16.    Sleep(1000);
  17.    cout << "Quedan: " << setw(2) << i << " segundos.\r" ;
  18.    }
  19.    if ( i == -1 ) break;
  20.  }
  21.  if ( i> -1){
  22.    cin >> algo;
  23.    cout << endl << "algo= " << algo << endl;
  24.  }
  25.  else cout << endl << "Tiempo excedido\n" << endl;
  26.  return 0;
  27. }

Y reitero lo de kutcher, sí ya sé que no es aconsejable usar conio, pero no se me apetece meterme ahora con las API de Windows.   ;)

¡¡¡¡ Saluditos! ..... !!!!



119  Programación / Programación C/C++ / Re: Usar la hora en programa en: 16 Julio 2014, 15:41 pm
.........................................
 no me funciona, me el primer printf, pongo el tiempo, me sale el segundo printf correcto, pero el printf del bucle me sale sólo una vez y con la misma hora que el 2º printf
..................................................

Si no me equivoco es debido al valor de X=1. Tendrías que poner x=1000.

Pero hay un error lógico y es que si introduces como tiempo 0:2:15 el cronómetro se inicia bien en justamente 0:2:15, pero al llegar a 0:2:0 pasaría a continuación a 0:1:15 en lugar de 0:1:59. Y análogamente con la hora .

Creo que lo puedes remediar con:

Código
  1. **********************************
  2.  int hh,mm,ss;
  3.  int i,j,ii,ij,ik;
  4.  int x = 1000;
  5.  printf("Introduzca el tiempo para realizar la cuenta atras(HH:MM:SS) :\n");
  6.  scanf("%d:%d:%d",&hh,&mm,&ss);
  7.  printf("La alarma sonara en %d:%d:%d\n",hh,mm,ss);
  8.  for(ii=hh,i=0;ii>=0;ii--,i++){
  9.    if (i>0) mm=59,ss=59;
  10.    for(ij=mm,j=0;ij>=0;ij--,j++){
  11.      if (j>0) ss=59;
  12.      for(ik=ss;ik>=0;ik--){
  13.        Sleep(x);
  14. printf("Quedan: %02d:%02d:%02d\r",ii,ij,ik);
  15.      }
  16.    }
  17.  }
  18. *****************************

¡¡¡¡ Saluditos! ..... !!!!


120  Programación / Programación C/C++ / Re: Numeros aleatorios con una distribución binomial negativa PARA QUIENES LE SIRVA en: 15 Julio 2014, 15:37 pm
La verdad es que ando dándole vueltas a qué tiene que ver el código que propones con una Distribución binomial negativa .

En esencia el cálculo de los pseudo-aleatorios se resume a:

.............................................
  srand((unsigned)time(NULL));
  for(i=1;i<=k;i++){
    r=sin((float)rand());
    rc=fabs(r);
.............................................


Es decir al cálculo de sin y claro así se obtienen salidas como éstas:

Citar
el r1 es:0.988268
el r2 es:0.999706
el r3 es:0.972046
el r4 es:0.901397
el r5 es:0.876692
el r6 es:0.820528
el r7 es:0.994781
el r8 es:0.237657
el r9 es:0.772648
el r10 es:0.566853
el r11 es:0.220925
el r12 es:0.750848
el r13 es:0.743281
el r14 es:0.986598
el r15 es:0.847679

OTRA SALIDA:

 el r1 es:0.358369
 el r2 es:0.453992
 el r3 es:0.882949
 el r4 es:0.891008
 el r5 es:0.766046
 el r6 es:0.965927
 el r7 es:0.587786
 el r8 es:0.754711
 el r9 es:0.939694
 el r10 es:0.544640
 el r11 es:0.906309
 el r12 es:0.207912
 el r13 es:0.809018
 el r14 es:0.882949
 el r15 es:0.945520

Donde se observa la preponderancia de valores superiores a 0.5 respecto a valores inferiores al mismo. Y es que al usar la función "sin" hay que recordar que, en grados sexagesimales para entenderlo mejor, para ángulos de 0-30 el valor del sin es inferior o igual a 0.5 mientras que para ángulos de 30-90 el valor es superior a 0.5. Es decir, y a lo breve, existen el doble de probabilidad de que el sin sea superior a 0.5 a que sea inferior, de ahí los resultados obtenidos.

¿No habrás querido decir otra cosa con eso de "Números aleatorios con una distribución binomial negativa"?.

¡¡¡¡ Saluditos! ..... !!!!


Páginas: 1 2 3 4 5 6 7 8 9 10 11 [12] 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 ... 132
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines