• Miércoles 8 de Mayo de 2024, 23:51

Mostrar Mensajes

Esta sección te permite ver todos los posts escritos por este usuario. Ten en cuenta que sólo puedes ver los posts escritos en zonas a las que tienes acceso en este momento.


Mensajes - ssaammuu

Páginas: 1 [2]
26
C/C++ / Re: Promedio de notas usando For
« en: Viernes 13 de Mayo de 2011, 03:16 »
Un array no es necesario ya que por el código, la aplicación no tiene que guardar los datos introducidos, únicamente añadir el número introducido al total en cada iteración y al final dividirlo por el x números introducidos. Por eso usando una variable y cambiandole el valor en cada iteración es la mejor forma de hacerlo. Con un array necesitarías x número de variables en forma de array y después iterar a través de ellos para conseguir la media que no vale la pena

Pero en caso de querer guardar todos los números introducido, si, un array sería necesario :)

27
C/C++ / Re: constructores c++
« en: Miércoles 11 de Mayo de 2011, 02:07 »
Código: C++
  1. MovieData(char t, char d, int y, int t2) //constructor
  2.  
Primero que el constructor lo has hecho privado por lo que no puedes crear objetos de esta clase desde fuera de la clase. Lo segundo es que si te fijas, tu constructor toma 4 argumentos y tu intentas crear objetos sin argumentos.

Creo lo que deberías hacer es:
Código: C++
  1. MovieData *miclase;
  2. MovieData *movie1, *movie2;
  3.  

Desués en info_pelicula, crear un objeto nuevo con memoria dinámica y rellernarlo. Es decir info_pelicula sería algo así:
Código: C++
  1.  
  2. void MovieData::impimir_pelicula(MovieData* m1,MovieData* m2){
  3. //recogemos datos de la pelicula uno
  4. //en tu caso t, d, y, t2
  5. m1=new MovieData(t, d, y, t2);
  6. //recogemos datos de la pelicula dos
  7. m2=new MovieData(t, d, y, t2);
  8. //...
  9. }
  10.  
  11.  

Otra cosa es que esto no está bien
Código: C++
  1.  
  2.      MovieData(char t, char d, int y, int t2) //constructor
  3.     {
  4.         title[M] = t,
  5.         director[M] = d,
  6.         year = y,
  7.         Running_time = t2;
  8.      }
  9.  
  10.  

Creo que intentas hacer esto:
Código: C++
  1.  
  2.      MovieData(char* t, char* d, int y, int t2) //constructor
  3.     {
  4.         title = t;
  5.         director = d;
  6.         year = y;
  7.         Running_time = t2;
  8.      }
  9.  
  10.  

Una última cosa, lo siento, pero este código está muy mal, y valdría la pena empezar otra vez. Como estás usando C++ también te recomiendo que hagas uso de los string en vez de simularlos con arrays de chars.

28
C/C++ / Re: Buscar subcadena
« en: Martes 10 de Mayo de 2011, 22:19 »
Si tu cadena es un array de chars, podrías utilizar strstr()
cplusplus.com/reference/clibrary/cstring/strstr/

Si estás usando C++ y un objeto string puedes usar la función find() del objeto.
cplusplus.com/reference/string/string/find/

29
C/C++ / Re: TMediaPlayer Aumento incesable de Memoria
« en: Martes 10 de Mayo de 2011, 20:52 »
La verdad es que no se mucho del tema, pero por lo que veo estás cargando el video otra vez en cada iteración. No deberías hacer las operaciones de cargado una vez. Después tener las funciones de reproducción llamadas en cada iteración y finalmente cerrar el archivo al salir del bucle ?

30
C/C++ / Re: palindromo
« en: Domingo 8 de Mayo de 2011, 22:01 »
He probado esa palabra con el código que escribí y dice que si es palíndromo.
En el código que tu posteaste no porque tus bucles están bastante mal. Si te fijas tienes un bucle que recorre todas las letras, y dentro de él, es decir, para cada letra, tienes OTRO BUCLE que hace algo bastante raro.

31
C/C++ / Re: Promedio de notas usando For
« en: Domingo 8 de Mayo de 2011, 21:44 »
De nada amigo.
Siempre es difícil encontrar un error tan pequeño como ese.
 :P

32
C/C++ / Re: Promedio de notas usando For
« en: Domingo 8 de Mayo de 2011, 19:39 »
Ahora mismo tienes aux = aux+y; fuera del ciclo por lo que solo añade el último valor. Simplemente muevelo dentro del bucle y funcionará :)

Código: C++
  1. for (i=1;i<=x;i++)
  2.     {
  3.     cout << "ingrese la" << i << "nota" << endl;
  4.     cin >> y;
  5.     aux +=y;
  6.     }
  7.  

33
C/C++ / Re: palindromo
« en: Domingo 8 de Mayo de 2011, 13:04 »
Código: C
  1.  
  2. bool pal=true;
  3.  
  4.  
Empezamos asumiendo que la palabra es un palíndromo

Código: C
  1.  
  2. for(int x=0;x<n/2;x++)
  3. if (cad[x]!=cad[n-x-1]) pal=false;
  4.  
  5.  
comparamos cada caracter desde 0 hasta la mitad con la posición equivalente empezando desde el final de la cadena  y si no son iguales decimos que la palabra no es un pilíndromo.

Es decir, toma por ejemplo "reconocer"
n/2=4.5 -> 4 porque n es int
pal=true;
[empieza bucle]
x=0  [r]econocer == reconoce[r]
x=1  r[e]conocer == reconoc[e]r
x=2  re[c]onocer == recono[c]er
x=3  rec
  • nocer == recon
  • cer

x=4 == n/2  -> termina bucle
resultado: si es palíndromo

34
C/C++ / Re: Necesito asistencia con este código
« en: Viernes 6 de Mayo de 2011, 23:48 »
Te recomiendo que te olvides de crear retrasos de esa manera ya que estás parando el programa entero durante ese tiempo. Una opción que de hecho yo suelo usar bastante, es la de tomar nota del tiempo cada vez que mueves los objetos. Si defines una velocidad para cada objeto, puedes mover el objeto por tiempoTranscurrido*velocidad. Para hacer esto debes tener una variable que guarde el tiempo de la llamada anterior.

Cuando epiza el programa hacemos
Código: C
  1.  
  2. int tiempoAnteior = clock();
  3.  
  4.  

Y cada vez que movemos los objetos
Código: C
  1.  
  2. float deltaTiempo=(clock()-tiempoAnterior)/CLOCKS_PER_SEC;
  3. tiempoAnterior=clock();
  4.  
  5.  

Otra cosa es que es imprescindible que uses estructuras y funciones para ordenar tu código, si no, aparte de estar escribiendo lo mismo una y otra vez, te va a costar mucho seguirlo y modificarlo en el futuro. De todas formas este tipo de juego es más complejo de lo que pueda parecer por lo que no te recomiendo empezar así. Empieza con algo más sencillo como el tres en raya o un pequeño juego RPG de texto.
 :)

35
C/C++ / Re: palindromo
« en: Viernes 6 de Mayo de 2011, 02:29 »
Lo podrías simplificar un poquito también
Código: C
  1.  
  2. #include <stdio.h>
  3. #include <string.h>
  4. #include <stdlib.h>
  5. #include <conio.h>
  6.  
  7. int main(int argc, char *argv[])
  8. {
  9.     char cad[30];
  10.     int n=0, cont=0;
  11.  
  12.     printf("introduzca una palabran");
  13.     gets(cad);
  14.  
  15.     n=strlen(cad);
  16.  
  17.     bool pal=true;
  18.     for(int x=0;x<n/2;x++)
  19.     if (cad[x]!=cad[n-x-1]) pal=false;
  20.  
  21.     if(pal)printf("es palindromen");
  22.     else printf("no es palindromen");
  23.  
  24.     getch();
  25.     return 0;
  26. }
  27.  
  28.  

36
C/C++ / Re: Punteros en modo grafico
« en: Miércoles 4 de Mayo de 2011, 13:27 »
Voy a ser sincero y decirte que no tengo ni idea de graphics.h. Pero si solo quieres es imprimir una sola letra no pudes hacer esto?
Código: C
  1.  
  2. #include <stdio.h>
  3. #include <graphics.h>
  4.  
  5. void modegraph()
  6. {
  7. int gd,gm;
  8. gd = DETECT;
  9. initgraph(&gd,&gm,"C:\tc\bgi");
  10. }
  11.  
  12. void letras (char &punt)
  13. {
  14.     clearviewport();
  15.     outtextxy(120,80,(char*)punt);
  16. }
  17.  
  18. void main()
  19. {
  20.     char titulo[]={'T','S','E','I','T','R'};
  21.     int i=0;
  22.    
  23.     modegraph();
  24.     clearviewport();
  25.  
  26.     while(i<=5){
  27.     for(int p=0;p<=160;p++)
  28.     {
  29.         letras(titulo[i]);
  30.     }
  31.             i++;
  32.     }
  33.     getch();
  34. }
  35.  
  36.  
Como te he dicho desconozco graphics.h por lo que no he podido probar esto así que perdona si no lo soluciona.

37
C/C++ / Re: senos y cosenos incorrectos
« en: Miércoles 4 de Mayo de 2011, 13:05 »
Código: C
  1. x = cos(a);
  2. y = sin(a);
  3.  

Te olvidas el radio :p
Código: C
  1. x = r*cos(a);
  2. y = r*sin(a);
  3.  

Y si bien el ángulo introducido no esta en radianes tendrás que convertirlo
Código: C
  1. x = r*cos(a*PI/180);
  2. y = r*sin(a*PI/180);
  3.  

38
C/C++ / Re: problema con codigo C++
« en: Lunes 2 de Mayo de 2011, 19:39 »
Si no consigues hacer que funcione, intenta este código.
Código: C++
  1.  
  2. #include <iostream>
  3. #include <stdlib.h>
  4. #include <string.h>
  5. #include <math.h>
  6.  
  7. using namespace std;
  8.  
  9. int main(string[])
  10. {
  11. int bri []={ 50000, 20000, 10000, 5000, 2000, 1000, 500, 200, 100, 50, 20, 10};// Identificando el arreglo
  12. const int numDeBilletes=sizeof(bri)/sizeof(bri[0]);//tamaño de pila
  13. int guardar [numDeBilletes];// Estbleciendo el limite del nuevo arreglo
  14. for (int i=0;i<numDeBilletes;i++)guardar[i]=0;//reiniciar a 0
  15.  
  16.  
  17. double total, pago, devuelta;//Declarandolas como reales porque puede tolerar valores decimales
  18.  
  19. cout<<"n Programa para calcular la devuelta ideal de una compra:";
  20. cout<<"nIntroduzca el Total de su compra: $ ";
  21. cin>>total;
  22. cout<<" nMe Pagara con un billete de :$";
  23. cin>>pago;
  24.  
  25.  
  26. devuelta = pago - total;//Operacion
  27.  
  28. int r=0;
  29. while (devuelta > 10)// 10 porque es el billete más pequeño
  30. {
  31. while (devuelta >= bri[r])
  32. {
  33. guardar[r]++;// El contador de la cantidad de billetes
  34. devuelta -= bri[r];
  35. }
  36. r++;
  37. }
  38.  
  39. for (r = 0; r < numDeBilletes; r++)// El contador de los tipos de billetes
  40. {
  41. if (guardar[r] != 0)//Condicionante para saber que no se quedara debiendo!!
  42. cout<<guardar[r]<< " billetes de " << " " << bri[r]<<endl;
  43. }
  44. }
  45.  
  46.  

Estaría bien que hacieras algunos chequeos, como mínimo para que el pago sea mayor que la compra...  ^_^

39
C/C++ / Re: borrar archivos
« en: Lunes 2 de Mayo de 2011, 19:36 »
Por lo que tengo entendido, no puedes hacer eso.
Vas a tener que iterar a través de los archivos y borrarlos uno a uno.
 :(

40
C/C++ / Re: problema con codigo C++
« en: Lunes 2 de Mayo de 2011, 19:19 »
Código: C++
  1. int bri;
  2. bri [15]={ 50000, 20000, 10000, 5000, 2000, 1000, 500, 200, 100, 50, 20, 10};// Identificando el arreglo
  3. int guardar;
  4. guardar [10];// Estbleciendo el limite del nuevo arreglo
  5.  
No se puede declarar una variable y despues convertirla en un array

Código: C++
  1. while (devuelta >= bri)
  2. devuelta -= bri;
  3. for (r = 0; r < bri; r++)
  4. cout<<guardar<< " billetes de " << " " << bri;
  5.  
En estas líneas, estás usando arrays como si de variables individuales se trataran, entonces, en lugar de estar usando el contenido de las variables, estás usando la dirección en memoria de el primer elemento del array.

41
Enlaces a Sitios sobre programación / Tres en Raya con C++ en Consola
« en: Lunes 2 de Mayo de 2011, 13:50 »
Tutorial para principiantes donde se muestra paso a paso como crear este sencillo y popular juego. Contiene tanto el diseño del juego como el desarrollo de este. Esta es una versión de un jugador por lo que incluye IA para controlar los movimientos del oponente (la máquina).

>> Tres en Raya en C++

Espero que lo disfrutéis.


Autor: ssaammuu

http://desarrollodejuegos.net/tres-en-raya-en-consola

42
C/C++ / Re: Problemas para mandar imprimir arreglo con ALLEGRO
« en: Lunes 2 de Mayo de 2011, 12:39 »
Cita de: "maggy153"
textprintf(screen, font, mens,60, palette_color[15], palabra);
Debería ser algo así
Código: C
  1. textprintf(screen, font, mens,60, palette_color[15], "%c" ,palabra[i]);
  2.  

De todos modos es recomondado que uses textprintf_ex
Código: C
  1. textprintf(screen, font, mens,60, palette_color[15], -1, "%c" ,palabra[i]);
  2.  

Páginas: 1 [2]