Hace unos 5 años que no programo nada, y ahora que me quería meter en ciertos asuntos este hilo me viene de perlas para realizar un repaso. Mis respetos y agradecimientos para el que lo hizo
Hay algún entendido de C++ en la sala? No he visto ningún hilo de C++ y tengo un problemilla con una línea de código, a ver si alguien me puede echar un cable :no: es un programa muy sencillo OO
Oye una pregunta del compilador este, donde esta la opcion de que te autocomplete las estructuras y demas?
scanf("%i",&atletas[i].prueba[b].clasificacion);
Para que al poner el punto te salgan todas las opciones que tienes definidas en la estructura?
#363 creo recordar que cuando instalas el programa una de las cosas que te pregunta es si deseas instalar el complemento que hace posible el autocompletado
Una vez instalado, no se decirte
Tengo la siguiente estructura:
Después declaro que es un array
circuito array[CANTI];
Y quiero mandarlo a una función para rellenar los datos de los circuitos:
rellenar(array);
La función rellenar es la siguiente:
Me da error y la verdad esque no entiendo como arreglar esto, porque los array me funcion, las estructuras también me funcionan pero al crear una estructura array me dan errores con los punteros. ¿ Que hago mal?
Yo pasaría en vez del array de golpe mediante un puntero (circuito * ej1) y luego los arrays empiezan por 0 por tanto ese for está mal:
EDIT: Y se me olvidaba la referencia sería así...
for (i = 0; i < CANTI; i++)
{
ej1[i]->atributo = value
...
}
#367 Hmm lo voy a probar pero tambien por ejemplo necesito validar esa información antes de introducirla, como ves en el texto pone entre 40 y 80, al introducirlo e intentar validarlo con un do while, se me crasheaba.
Otra duda que me ha surgido: Pone en varios sitios que no se puede usar arrays como parametros de entra y salida de funciones pero yo lo veo a menudo en clase y en la internet, porque es mejor pasar la referencia al primer lugar en vez de el array completo?
Trabajando con arrays de estructuras siempre tendre q funcionar con punteros no?
¿Sera problema con los punteros?
Codigo completo de este enunciado:
Codigo:
#365 cuando pases un array a una funcion en vez de usar esto:
void rellenar(circuito ej1[])
Usa esto otro
void rellenar(circuito * ej)
puesto que ahora es un puntero, dentro de la funcion se accede a sus atributos con -> en vez de ., y tienes que usar el indice entre corchetes para acceder a cada miembro, empezando por 0
Hoy le estoy dando durillo a esto, hay otro ejercicio que me causa muchas dudas, el enunciado es el siguiente:
Hmm hay que definir una matriz de 5 filas y 7 columnas.
Al solicitar un año y un mes cualesquiera, como hacer para que el programa sepa que por ejemplo el 1 de enero de 2015 comienza el jueves? O que el 1 de febrero de 2015 es domingo?
Tengo unos ejercicios de C de punteros para la universidad que de momento no se por donde cogerlos, si queréis (si no es mucho abusar, no pretendo molestar) puedo subir los enunciados y que alguien diga como hacerlos.
#372 jaja dale enseñalos yo estoy haciendo C y bueno no va mal del todo pero igual tampoco soy el mas indicado para ayudarte.
#371 tendras que tomar un año de referencia e ir sumando y restando. Encuentra un mes de enero que empiece en dia 1-lunes e intenta empezar representando ese mes de enero para tener la parte gráfica, y hacerlo de manera que cambiando dos parámetros, año Y mes te compute la posición del dia 1 en días de la semana.... el resto de dias se sacan solos si tienes solo ese dato
Nuevas dudas con un ejercicio muy tipico:
La palabra secreta es Malaga.
Dudas:
1º Iré introduciendo letras y pasando a una funcion llamada comprobar, al introducir la "a" en la palabra Malaga se encuentra 3 veces en las posiciones 2-4-6, como hago para que recorra todo el array de la palabara secreta y cuando se encuentre con una "a" la almacene y la pueda mostrar en esa misma funcion u otra?
2º El array de la palabra que estoy formando, como hago para mostrar las letras que he acertado con digamos barras bajas?
3º Tiene que salir el muñeco famoso del ahorcado, tengo 5 intentos, mi idea es hacer un swith en el cual por cada fallo que des te muestre el estado del muñequito, en el caso 1 saldria solo la cabeza, caso 2 cabeza y manos, etc... Hay alguna manera de mejorar este sistema?
#375
Te respondo a la 1 ya que la dos no entiendo muy bien a que te refieres.
Yo lo resolvería utilizando un bucle for y con un if en cada iteración, del estilo:
void comprobar(char[] palabra,char letra) {
for (----) {
if (palabra[i] == letra)
hazloquesea;
}
}
Para la 3 la veo bien con un switch
Una duda, con el sublime text ya tengo suficiente para programar en c++ o necesito de algún compilador? (mingw)
A ver si alguno me puede resolver un par de dudas que tengo por aqui:
Me podéis explicar las variables condicionales? es que no las entiendo nada xD y otra cosa: que puta diferencia hay entre cerrojos y semoforos? según tengo entendido los semaforos tienen un contador y hacen que por ejemplo 3 hilos puedan estar en la sección crítica (dependiendo de como inicialices el contador) y los cerrojos tienen exclusión mutua (solo 1 en la sección crítica) no se si es esa la diferencia o si hay algunas mas o que porque no lo tengo muy claro.
Gracias
#380 Tiene toda la pinta de que no has añadido el compilador al PATH del sistema operativo para que te reconozca los comandos g++ pero no tengo mucha idea ya que yo lo hago todo en linux con el compilador de GNU que te viene de serie.
#381 a ver si no meto la pata que no lo tengo tan fresco como debería /me gustaría:
Las variables condicionales te permiten hacer "espera pasiva" con los mutex, es decir, el thread se va a dormir (pthread_cond_wait) y se queda así hasta que alguien lo despierte (pthread_cond_signal despierta a un solo thread, pthread_cond_broadcast despierta a todos). Esto puede ser interesante cuando por ejemplo:
- Necesitas un mutex pero está ocupado. Esto se podría arreglar con un while y un trylock o alguna cosa de estas, el tema aquí es que estarías haciendo "espera activa", estarías consumiendo recursos para nada.
- Tus threads no tienen más trabajo que hacer hasta que alguien se lo proporcione (por ejemplo el problema típico de productores / consumidores).
La diferencia entre mutex y semáforo tampoco la tuve nunca muy clara pero si, se supone que un mutex es el caso particular de un semáforo con el contador a 1.
P.D perdón por el spanglish xD
#383 Si, ademas he instalado MinGW y Dev-cpp. Mira:
Pero me sigue saliendo lo mismo:
#384 mil gracias, a ver si ahora me puedo poner a hacer los ejercicios de variables condicionales xD