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 - dragonlady

#1
Programación C/C++ / Listados de usuarios
12 Julio 2015, 17:20 PM
Buenas, tengo una consulta si alguien me puede ayudar de un programa que vengo haciendo hace bastante (y ya he consultado varias cosas, esto de trabajar en grupo de 1 está complicado), estoy tratando de mostrar una lista de los usuarios(jugadores) activos, y tengo que mostrar cierta información de los mismos.
Mi idea fue algo así,
Hago un Switch con estas opciones dentro (que son los distintos listados que tendría que hacer):


void Consultas()
{
   system("cls");
   jugador jugadores[CANTJUG];
                   //inicializo todo el arreglo
   int i;
   for (i=0; i<CANTJUG;i++)
   {
       inicializo(jugadores,i);
   }

   system("cls");
   printf("MENU\n");
   printf("====\n");
   printf("1-Listado de jugadores\n");
   printf("2-Listado de todas las partidas\n");
   printf("3-Listado de partidas por jugador\n");
   printf("4-Listado de partidas por fecha\n");
   printf("5-Fin del Programa\n");
   printf("\n\n");
   char p;
   printf (">>Presiona cualquier tecla y enter para volver al menu ");
   scanf (" %c",&p);

   int op;
   op = ingopcion();

   while (op!=5)
   {
       switch (op)
       {
           case 1:
                   int i, j;
                   j=0;
                   for (i=0; i<j; i++)
                   puts(jugador jugadores[CANTJUG].cedula.numero[i]);
                   puts(jugador jugadores[CANTJUG].nombre.palabra[i]);
                   puts(jugador jugadores[CANTJUG].apellido.palabra[i]);
                   puts(jugador jugadores[CANTJUG].alias.palabra[i]);
                   break;
           case 2:
                   listado_partidas;
                   break;
           case 3:
                   listado_partidas_xjugador;
                   break;
           case 4:
                   listado_partidas_xfecha;
                   break;
           case 5: fin_juego();
                   break;
       }

   }
}


Y me tira estos errores:

||In function 'Consultas':|
|974|error: a label can only be part of a statement and a declaration is not a statement|
|977|error: expected expression before 'jugador'|
|978|error: expected expression before 'jugador'|
|979|error: expected expression before 'jugador'|
|980|error: expected expression before 'jugador'|


No me está saliendo poner el puts, no se si es porque no conseguí esos datos con un gets, entonces que podría poner en vez de puts? :(

#2
Hola a todos, he encontrado bastante información al respecto, así que disculpas por no ser más despierta, pero no le encuentro solución por más que intente.
Tengo que calcular la edad de un usuario en una función y lo que tengo es una función que me devuelve la fecha de nacimiento del mismo.
Así:

fecha ingresoFechanacimiento()
{
    fecha fechanac;
    printf("\nIngrese Fecha de Nacimiento dd/mm/aaaa: ");
    scanf("%d/%d/%d",&fechanac.dia,&fechanac.mes, &fechanac.año);
    return fechanac;
}


Básicamente lo que quiero es hacer eso, otra función para mostrar la edad a partir de la función fecha de nacimiento. Pienso que quizás tendria que sacar solo el año de la función fecha de nacimiento, pero no me sale...

Desde ya, gracias!
#3
Buenas tardes a todos, estoy realizando un trabajito que debería ser sencillo en Ensamblador, que es con 2 displays de 7 segmentos, realizar un contador que cuente las pulsaciones de 0 a 99 y se reinicie. Bueno también tiene que poder contar para atrás, pero ni siquiera puedo hacer que cuente solo hasta 99.
Asumo que hay algún tema con basura o un error de algo que no me doy cuenta como identificar, ya que cuenta hasta 10 y después muestra unos símbolos raros que no llegan a ser números. Después sigue contando hasta 20 y se repite lo mismo cada vez que termina la decena. Muestro un vídeo para que sea más claro de visualizar:

[youtube=640,360]https://www.youtube.com/watch?v=mSRi2kY24Jc&feature=youtu.be[/youtube]

Código (asm) [Seleccionar]

processor 16f84
include   <p16f84.inc>
__config  _XT_OSC & _WDT_OFF & _PWRTE_ON


J equ H'20'  
K equ H'21'


org 0  

inicio: movlw B'00000000'
tris PORTB ; bits del puerto B son salidas
movlw B'00000000' ; w := 00000000
movwf PORTB ; inicializa port B =0
increment: incf PORTB,F
call retro
goto increment

; RETRASO

retro: movlw D'400' ; w := 200 decimal
movwf J ; J := w
jloop: movwf K ; K := w
kloop: decfsz K,f ; K = K-1, salta siguiente si es cero
goto kloop
decfsz J,f ; J = J-1, salta al siguiente si es cero
goto jloop
return

end


Está hecho y probado en Proteus 8. Cualquier idea y/o ayuda de que puede estar pasando (que probamos cambiarle varias cosas ya, pero ese error persiste) la agradezco desde ya.
#4
Buenos días gente, tengo un juego para hacer en C que me está dando dolor de cabeza y una de las cosas que más me complica es que tengo que dibujar un tablero, pero que puede ser solamente de tamaño (cuadrado) 6, 8, 10, 14 o 18 (tamaño que el jugador elige). Y la verdad que no se como hacer eso.

Había intentando hacer 5 tableros distintos, pero me enlió más, entonces me gustaría saber si alguien tiene una manera de que se pueda hacer esto.

Solo puedo usar C, nada de C++ ni funciones muy avanzadas.

Si alguien sabe como, les agradezco la ayuda desde ya,

Gracias!!
#5
Buenas, desde ya gracias por la ayuda. Tengo un ejercicio para hacer, que no debería ser tan complicado pero me estoy enliando mucho con el mismo, ya busqué en google pero esto del for, while y do while no me queda muy claro. La letra dice:



Les muestro lo que yo he hecho hasta ahora:

#include <stdio.h>
#include <stdlib.h>

int main()
{
   int num;
   int numpar;
   int numimp;
   int cant;
   int maxcant;
   maxcant=10;

   printf ("ingrese cuantos numeros forman la secuencia (maximo 10): \n");
   scanf (" %d", &cant);

   for(num=1; cant<=maxcant; cant=2)
   {
       printf ("ingrese los numeros: \n");
       scanf (" %d ", &num);
           if ((num%2==0) && (maxcant<=10))
           {
                   printf("numero par");
                   scanf (" %d", &numpar);
           }
           else
           {
               if ((num%2!=0) || (maxcant>10))
               {
                   printf("no aparecieron numeros pares");
                   scanf(" %d", &numimp);

               }
               if ((maxcant<1) || (num<0))
               {
                   break;
               }
           }

           if ((num%2==0) && (maxcant<=10))
           {
               printf("suma de numeros pares de la secuencia: ");
               scanf (" %d", numimp++);
           }

   }
   return 0;
}


Mi duda es si voy muy mal en el razonamiento y si, ¿sería mejor usar for o si usando while me quedaría mas facil?