Duda C++

Mañana tengo un parcial de C en la uni y tengo que entregar el test este para que me dejen hacerlo, es de verdadero y falso se tarda un momento en hecharle un vistazo y me harias un gran favor^^

Un saludo y gracias!!



Mañana tengo un parcial de C en la uni y tengo que entregar el test este para que me dejen hacerlo, es de verdadero y falso se tarda un momento en hecharle un vistazo y me harias un gran favor^^

Un saludo y gracias!!



Question 1


A partir de la siguiente definicion de tipos de datos:
#define MAX_ROBOTS 25
#define MAX_IDENT 4

typedef char TCadena[MAX_IDENT];

typedef struct {
     int estadoBateria;
     int atascado;
     int averiado;
} TIncidencia;
typedef struct {

     TCadena identificador;
     int hayIncidencias;
     TIncidencia incidencias;
     double metros2;
     int activo;
} TRobot;

     typedef struct{
     TRobot robot;
     int ocupado;
} TCasilla;


typedef TCasilla TRobots[MAX_ROBOTS];

Se ha codificado una función cuyo prototipo es int buscarRobot(const TRobots t, const TCadena id, int *lugar);. Esta función busca en la lista de robots aquel cuyo id coincide con el valor que se pasa como parámetro, y devuelve, como resultado de la función, un 0 si no lo ha localizado, y un 1 si sí lo ha localizado, y en este caso, en lugar, la posición del vector t en la que se ha localizado el robot. Suponiendo que en la función llamante se han declarado las variables (no significa que todas se deban utilizar):


TRobots robots;
TCadena ident;
int resultado;
int sitio;

[b]Indica si las siguientes invocaciones a la función buscarRobot desde la función llamante son correctas (V) o incorrectas (F):[/b]

resultado = buscarRobot (robots, ident, sitio);  Falso

resultado = buscarRobot (robots, ident, *sitio);  Falso

if ( buscarRobot (robots, ident, *sitio))  Falso

if( buscarRobot (robots, ident, &sitio) )  Verdadero



Question 2



A partir de la siguiente definicion de tipos de datos:

#define MAX_ROBOTS 25
#define MAX_IDENT 4


typedef char TCadena[MAX_IDENT];

typedef struct {  int estadoBateria;   int atascado;    int averiado;
} TIncidencia;

typedef struct {   TCadena identificador;    int hayIncidencias;   TIncidencia incidencias;   double metros2;    int activo; } TRobot;

typedef struct{   TRobot robot;    int ocupado;} TCasilla;

typedef TCasilla TRobots[MAX_ROBOTS];


[b]Indicar cómo se preguntaría si está averiado el robot cuya descripción está en la posición i (de tipo entero) del array robots (de tipo TRobots):[/b]

if ( robots.robot.incidencias.averiado == 1 ) { }  Falso
if ( robots.robot.incidencias[i].averiado == 1 ) { }Falso
if ( robots[i].robot.incidencias.averiado == 1 ) { }Verdadero
if ( robots.robot[i].incidencias.averiado == 1 ) { } Falso



Question 3



A partir de la siguiente definicion de tipos de datos:


#define MAX_ROBOTS 25
#define MAX_IDENT 4

typedef char TCadena[MAX_IDENT];
typedef struct {  int estadoBateria;    int atascado;   int averiado;}TIncidencia;


typedef struct {     TCadena identificador;     int hayIncidencias;  TIncidencia incidencias;   double metros2;      int activo;
} TRobot;


typedef struct{    TRobot robot;    int ocupado;} TCasilla;

typedef TCasilla TRobots[MAX_ROBOTS];

[b]Si una función está manejando un objeto de tipo TCadena, llamado cadena,  y un objeto robots de tipo TRobots, indicar si las siguientes expresiones o asignaciones son sintacticamente correctas (V) o incorrectas (F):[/b]



robots[10].robot.identificador[0] = cadena[2]; Verdadero

robots[1].robot = cadena;  Falso

(robots[MAX_ROBOTS].robot.identificador[0] == cadena[0]);  Falso

strcpy(robots[0].robot.identificador, cadena); Verdadero



Question 4



A partir de la siguiente definicion de tipos de datos:

#define MAX_ROBOTS 25
#define MAX_IDENT 4

typedef char TCadena[MAX_IDENT];

typedef struct {
    int estadoBateria;
    int atascado;
    int averiado;
} TIncidencia;

typedef struct {
     TCadena identificador;
     int hayIncidencias;
     TIncidencia incidencias;
     double metros2;
      int activo;
} TRobot;


typedef struct{
     TRobot robot;
      int ocupado;
} TCasilla;

typedef TCasilla TRobots[MAX_ROBOTS];

Y del prototipo de la función:

double recogerMetros(const TCadena id_robot );


[b]Indicar cómo se debe invocar a esta función para recoger la superficie limpiada por el robot cuya descripción está en la posición i del array robots.
[/b]

robots.robot[i].metros2 = recogerMetros( robots[i].robot.identificador ); Falso

robots[i].robot.metros2 = recogerMetros( robots[i].robot.identificador ); Verdadero

robots.robot[i].metros2 = recogerMetros( robots[i].robot[i].identificador );
Falso

robots.robot.metros2 = recogerMetros( robots.robot.identificador );
Falso


Question 5


A partir de la siguiente definicion de tipos de datos:

#define MAX_ROBOTS 25
#define MAX_IDENT 4


typedef char TCadena[MAX_IDENT];

typedef struct {
     int estadoBateria;
     int atascado;
     int averiado;
} TIncidencia;

typedef struct {
     TCadena identificador;
     int hayIncidencias;
     TIncidencia incidencias;
     double metros2;
     int activo;

} TRobot;
     typedef struct{
     TRobot robot;
     int ocupado;
} TCasilla;

typedef TCasilla TRobots[MAX_ROBOTS];

Si hubiera que realizar la operación de actualizar los datos de un robot se podría diseñar el siguiente algoritmo parametrizado:

Algoritmo cambiarDatos ( robots, ident )

ENTORNO

robots: Parámetro dato/resultado de tipo TRobots. Guarda la información de todos los robots.

ident: Parámetro dato de tipo TCadena. Contiene el identificador del robot cuyos datos se quieren cambiar.

esta: variable lógica (entera). Toma el valor verdadero (1) si se encuentra el robot con el identificador indicado, y falso (0) en caso contrario.

donde: variable entera. Indica la casilla de la tabla donde está la información del robot con el identificador indicado (si es que está).

ACCIONES

ubicarRobot(robots, ident, esta, donde)

si esta entonces
modificarDatos (robots[donde].robot)
finSi

[b]Indica cuáles de las siguientes afirmaciones son correctas (V) y cuáles son incorrectas (F):[/b]

La función correspondiente al algoritmo parametrizado ubicarRobot podría tener como prototipo: int ubicarRobot ( const TRobots r, const TCadena identificador, int *sitio); Verdadero

El parámetro del algoritmo modificarDatos se puede pasar por referencia a la función correspondiente a dicho algoritmo.Verdadero

El cuarto parámetro del algoritmo ubicarRobot es de entrada/salida. Falso

Una posible invocación a la función que codifica el algoritmo ubicarRobot podría ser ubicarRobot (robots, ident, &esta, &donde ); Verdadero
Lo que no estaría mal es que posteases las dudas en vez de pegar un churro con el cuestionario sin indexar. Es completamente ilegible.
ya sorry porque esta un pco chapuza jaja es que estoy un poco liado, viene primero la definicion de los tipos de datos una pequeña descripcion y luego lineas de codigo donde hay que decir si son verdadero o falso segun el ejercicio. No necesito explicacion solo si alguien les hecha un vistazo por encima y ve algun error.

Gracias de nuevo
Es que da miedo tan sólo verlo, tabúlalo por lo menos macho [+risas]
no me deja no se porque cojones..

lo subo al megaupload,no ocupa nada,es instant,sorry por el embrollo

http://www.megaupload.com/?d=T7V0T26P
inquisidorf escribió:no me deja no se porque cojones..

lo subo al megaupload,no ocupa nada,es instant,sorry por el embrollo

http://www.megaupload.com/?d=T7V0T26P


Tienes que meterlo dentro de las etiquetas "Code".
(mensaje borrado)
Yo hace tiempo que estudie las listas, y me lleva rato recordar.

He mirado la primera y la que esta bien es la respuesta 4. Pero son un montón, si tienes duda en alguna le puedo hechar un vistazo.

Pero bueno, si te puede ayudar alguien que lo tenga más fresco seguro que mejor.
http://pastebin.com/

Aqui puedes copiar el codigo para formatearlo. Y luego poner aqui el link.
8 respuestas