Menú

Mostrar Mensajes

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ú

Temas - manri98

#1
Hola a todos, tengo el siguiente problema. He creado la siguiente estructura, mi intención es que tenga un booleano, un array de caracteres(name)  y uno bidimensional(episodes)
Ejemplo:
    name = {"Name of the serie"}

    episodes = {"season1Title","Season2Title", "Season3Title"}
                       {"episode1","episode1","eisode1"}
                       {"episode2","episode2","eisode2"}
                     
    isAll = true



typedef struct{
    char *name;
    char *episodes;
    bool isAll;
}show;


Los datos que almacenará se sabrán en tiempo de ejecución y quería saber si era posible reservar dinámicamente espacio de memoria. En el código los escribí como punteros para mas tarde hacer esto:

show myShow;
myShow.name = (char *)malloc(longitudNombre*sizeof(char));


¿Esto sería corecto?¿Como lo haría para el array bidimensional? Además me surge la duda de como podría recorrer el array después. Si fuese sumando uno al puntero, creo que tendría que mirar cuando el valor es el byte nulo.
#2
Buenas tardes, tengo esta duda y os la presento para pediros ayuda.
Desde la facultad me han mandado hacer el juego de Cows and Bulls en Python.
Un requisito a implementar es que el usuario debe introducir un número de 4 dígitos entre el 1000 y el 9999, además no puede repetirse ninguno de ellos, mientras no se cumplan esas condiciones el programa pedirá que ingreses un numero nuevo. El número debo guardarse como un string.
Esto es lo que hice:
Código (python) [Seleccionar]

def askNumber():
   userNumber = "0"
   isCorrect = False
   while len(userNumber)!=4 and not isCorrect:
       userNumber = raw_input("Please type a 4 digit number between 1000 and 9999, do not repeat any digit: ")
       for i in range(1, len(userNumber)):
           if userNumber[i] == userNumber[i-1]:
               isCorrect = False
           else:
               isCorrect = True
       if userNumber[0] == "0":
           isCorrect = False
   return userNumber

El problema viene cuando por ejemplo introduzco "1223". isCorrect se vuelve False cuando compara los 2 doses pero se vuelve True al final del for. ¿Cómo podría hacer para que esto no sucediese? ¿Si introdujese un "break" entre las líneas 8 y 9 actuaría en el for o en while?
Gracias de antemano.
#3
Programación C/C++ / Ayuda con el operador !=
8 Noviembre 2014, 00:19 AM
Buenas noches.
Haciendo un proyecto de clase me he encontrado con este error:
invalid operands of types 'float' and 'float [12]' to binary 'operator!='
El error se encuentra en el bucle while que señalo en el código. Por lo que entiendo surge de intentar utilizar el operador con dos tipos distintos de variables, pero ambos son arrays :huh:
¿Alguien podría ayudarme a saber que pasa? Muchas gracias por adelantado.

void MovimientoEsferico(){
    PosicionInicialCartesianasAEsfericas();
   
    float MovimientoEsferico[3];
    MovimientoEsferico[0]=posicionInicialEsferica[0]*sinf(posicionInicialEsferica[1])*cosf(posicionInicialEsferica[2]);
    MovimientoEsferico[1]=posicionInicialEsferica[0]*sinf(posicionInicialEsferica[1])*sinf(posicionInicialEsferica[2]);
    MovimientoEsferico[2]=posicionInicialEsferica[0]*cosf(posicionInicialEsferica[1]);
   
    float diferenciaX = 0;
    float diferenciaY = 0;
    float diferenciaZ = 0;
    float resultadoDivisionX = 0;
    float resultadoDivisionY = 0;
    float resultadoDivisionZ = 0;
   
    float posicionSatelite[12];
    api.getMyZRState(posicionSatelite);

    //X
    if(MovimientoEsferico[0]>posicionFinal[0]){
        diferenciaX = MovimientoEsferico[0]-posicionFinal[0];
        resultadoDivisionX = diferenciaX/6;
        resultadoDivisionX = resultadoDivisionX*-1;
    }
    else if(MovimientoEsferico[0]<posicionFinal[0]){
        diferenciaX = posicionFinal[0]-MovimientoEsferico[0];
        resultadoDivisionX = diferenciaX/6;   
}
//Y
    if(MovimientoEsferico[1]>posicionFinal[1]){
        diferenciaY = MovimientoEsferico[1]-posicionFinal[1];
        resultadoDivisionY = diferenciaY/6;
        resultadoDivisionY = resultadoDivisionY*-1;
    }
    else if(MovimientoEsferico[1]<posicionFinal[1]){
        diferenciaY = posicionFinal[1]-MovimientoEsferico[1];
        resultadoDivisionY = diferenciaY/6;
    }
//Z
    if(MovimientoEsferico[2]>posicionFinal[2]){
        diferenciaZ = MovimientoEsferico[2]-posicionFinal[2];
        resultadoDivisionZ = diferenciaZ/6;
        resultadoDivisionZ = resultadoDivisionZ*-1;
    }
    else if(MovimientoEsferico[2]<posicionFinal[2]){
        diferenciaZ = posicionFinal[2]-MovimientoEsferico[2];
        resultadoDivisionZ = diferenciaZ/6;
    }
   
MovimientoEsferico[0] = MovimientoEsferico[0]+resultadoDivisionX;
MovimientoEsferico[1] = MovimientoEsferico[1]+resultadoDivisionY;
MovimientoEsferico[2] = MovimientoEsferico[2]+resultadoDivisionZ;
api.setPositionTarget(MovimientoEsferico);
    while ((posicionSatelite[0]!=MovimientoEsferico[0])&&(posicionSatelite[1]!=MovimientoEsferico[1])&&(posicionSatelite[2]!=MovimientoEsferico))//en este bucle while esta el error//{
api.getMyZRState(posicionSatelite);
api.setPositionTarget(MovimientoEsferico);
}
#4
Buenas noches. Advierto que soy muy novato y no tengo mucha idea :-(
Estoy haciendo un módulo de un programa para un trabajo voluntario de clase, y a la hora de compilar me devuelve:
ERROR on page main at line 11, col 22: invalid types 'float[int]' for array subscript
ERROR on page main at line 12, col 22: invalid types 'float[int]' for array subscript
¿Se refiere a que el índice el 0 y el 1 no los considera int?

float position[3];
float attitude[3];
int counter;
int contador;

float ControlLlamarada(int counter,float position){
    int FlareCounter = 0;
    if(counter == 30){
        game.getNextFlare(FlareCounter);
        if(FlareCounter <= 10){
           position[0] = 0;
           position[1] = 0.5;
        }
    }
    return position;
}

void VaciadoMemoria(){
    int MemorySize = 0;
    game.getMemorySize(MemorySize);
    if (MemorySize == 2){
        game.uploadPic();
    }
}

void init(){
    position[0]=-0.380;
    position[1]=0;
    position[2]=0;
    attitude[0]=0;
    attitude[1]=0;
    attitude[2]=0;
    counter=0;
    contador=0;
}

void loop(){
    /////
    float ControlSphereLimit[12];
    api.getMyZRState(ControlSphereLimit);
   
    if (ControlSphereLimit[0]== -0.64 || 0.64){
        position[0] = 0;
    }
    if (ControlSphereLimit[1]== -0.8 || 0.8){
        position[1] = 0;
    }
    /////
    int llamaloop = 0;
    ControlLlamarada(counter, position);
    position = ControlLlamarada(counter, position);
    if(position[0]==0 && position[1]==0.5 && counter > 30){
        position[0]=0.5;
        position[1]=0;
        game.getNextFlare(llamaloop);
        if(llamaloop == 1){
            contador = counter;
            if((contador+4)==counter){
            position[0]=0;
            position[1]=0.5;
            }
        }
    }
    VaciadoMemoria();
game.getPOILoc(attitude, 1);
    api.setPositionTarget(position);
    api.setAttitudeTarget(attitude);
    counter++;

}
#5
Hola y buenas noches a todos
Instalé el paquete de flash para poder ver videos en you tube pero no se escuchan
No son los drivers de la tarjeta de audio porque puedo escuchar archivos mp3 etc
Necesito algún paquete extra para solucionarlo
Gracias por adelantado, mientras, continúo buscando. ;D