Heheh ok gracias.
Esta sección te permite ver todos los mensajes escritos por este usuario. Ten en cuenta que sólo puedes ver los mensajes escritos en zonas a las que tienes acceso en este momento.
Mostrar Mensajes MenúCita de: Akai en 29 Marzo 2011, 16:35 PMComo puedo saber formas de optimizar mis códigos?
Si, a eso me refería. Y no, no te ahorras un if. Bueno, quizá en el código si, pero en ejecución ahorras iterar comprobando cada vez.
Cita de: Akai en 29 Marzo 2011, 15:29 PMVoy analizar bien lo que dices para ver si lo puedo optimizar como dices en lo escrito. pero creo que lo conforme esta los hace esa comparación cuando llega al '-'.
Un consejo, Xafi:
Si esta comprobaciónif(i<10)name[j+1]='0';
else name[j+1]=t[0];
if(i<10)name[j+2]=t[0];
else name[j+2]=t[1];
La sacases fuera del bucle, ganarías en velocidad. De hecho, podrías hacer dos bucles, uno de 0 a 9, otro de 10 en adelante.
Simplemente un consejo para evitar comprobaciones que no tienen sentido una vez pasas la frontera del 10
#include <iostream>
#include <sstream>
using namespace std;
class clase{
private:
public:
clase();
char nombre[100];
void acarga_imagen(char *name,int n);
};
clase::clase(){
strcpy(nombre,"megaman-01.bmp");
};
void clase::acarga_imagen(char *name,int n){
char t[2];
for(int i=1;i<n+1;i++){
if(n<10){
for(int j=0;;j++){
if(name[j]=='.')break;
if(name[j]=='-'){
sprintf(t,"%d",i);
name[j+1]='0';
name[j+2]=t[0];
break;
}
}
}
else {
for(int j=0;;j++){
if(name[j]=='.')break;
if(name[j]=='-'){
sprintf(t,"%d",i);
name[j+1]=t[0];
name[j+2]=t[1];
break;
}
}
}
cout << name << endl;
}
};
int main(int argc,char *argv[]){
clase c;
c.acarga_imagen(c.nombre,5);
cin.get();
return 0;
}
#include <iostream>
#include <sstream>
using namespace std;
class clase{
private:
public:
clase();
char nombre[100];
void acarga_imagen(char *name,int n);
};
clase::clase(){
strcpy(nombre,"megaman-01.bmp");
};
void clase::acarga_imagen(char *name,int n){
char t[2];
for(int i=1;i<n+1;i++){
for(int j=0;;j++){
if(name[j]=='.')break;
if(name[j]=='-'){
sprintf(t,"%d",i);
if(i<10)name[j+1]='0';
else name[j+1]=t[0];
if(i<10)name[j+2]=t[0];
else name[j+2]=t[1];
break;
}
}
cout << name << endl;
}
};
int main(int argc,char *argv[]){
clase c;
c.acarga_imagen(c.nombre,5);
cin.get();
return 0;
}
CitarSDL_Mixer se encarga de reservar un canal exclusivo para la reproducción de música para nuestra aplicación. Como en la gestión de sonidos da soporte a multitud de formatos. Como ocurría con los chunks, la música tiene que ser cargada de un fichero y una vez que terminemos de trabajar con ella deberemos de liberar el recurso. Para cargar la música del videojuego utilizamos la función:
Mix_Music *Mix_LoadMUS(const char *file);
Esta función recibe como parámetro el fichero donde se encuentra la música que queremos cargar. La función devuelve un puntero a la estructura de datos que guarda la música del videojuego de tipo Mix_Music. La única diferencia con la función de cargar sonidos "convencionales es que no tenemos que espeficiar el canal en el que queremos colocar el sonido. Como puedes observar existe un tipo exclusivo de datos dedicado a este tipo de sonidos. Como pasa con otros tipos de datos la definición de Mix_Music está oculta al usuario, lo que no nos supone ningún problema ya que trabajaremos siempre con un puntero a esa estructura y alterando los campos de la misma directamente.
Si ocurre algún error al cargar el fichero de música la función devuelve el valor NULL. El tipo de formato que podemos reproducir es muy amplio como comentabamos al principo del capítulo. Entre ellos se encuentran el MP3, MOD, WAV... y otros.
Como comentamos hace unas líneas cuando no necesitemos tener la música disponible en memoria principal deberemos liberar ésta para realizar una buena gestión de nuestros recursos. La función que permite realizar esta tarea es:
void Mix_FreeMusic(Mix_Music);
Esta función recibe como parámetro el puntero devuelto al cargar el fichero de música y como ya hemos dicho libera los recursos ocupados por ella.
Cita de: Spider-Net en 27 Marzo 2011, 23:27 PMmuchas gracias ma quedado claro.
En un presupuesto no tiene por qué pasar nada por no poner tu DNI ni por supuesto tienes por qué poner el IVA.
Eso sí, si vas a cobrarle a una empresa o un particular que va a declarar luego una factura conforme a tu presupuesto obviamente tienes que cobrar el IVA, y estar dado de alta como autónomo, sino legalmente no puedes realizar ese trabajo.
Si ambos acordáis hacer el trabajo sin declarar nada, vale. Pero ten en cuenta que si haces una factura a una empresa, esa empresa puede declarar tu factura como un gasto y cuando hacienda compruebe que tú no estás dado de alta como autónomo te pueden acusar de fraude fiscal, así que cuidado con esto.