Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > Varios
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Grupo de Teaming del ClubDelphi

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 17-01-2007
byivan byivan is offline
Miembro
 
Registrado: ene 2007
Posts: 10
Poder: 0
byivan Va por buen camino
Modularizar el programa principal

Buenas compañeros,

Necesito terminar una practica y para ello tengo que modularizar el programa principal.

Para ello creo diferentes procedimientos, pero a la hora de ejecutar el programa no funciona bien.

Para vosotros debe ser algo sencillo, es un juego de POKER simple.

Alguna alma caritativa puede ayudarme?

Espero vuestro mensajes,
o agregadme a byivan2002@hotmail.com

os lo agradezco muxo.

Última edición por marcoszorrilla fecha: 17-01-2007 a las 15:51:08.
Responder Con Cita
  #2  
Antiguo 17-01-2007
Avatar de Onti
Onti Onti is offline
Miembro
 
Registrado: jul 2003
Ubicación: La Paz - Bolivia
Posts: 500
Poder: 21
Onti Va por buen camino
Hola Bienvenido!!

Te recomiendo leas la guía de estilo, ahora bien sobre tu consulta, con la información que nos das, es muy difícil ayudar. debes ser mas especifico en la consulta
Responder Con Cita
  #3  
Antiguo 17-01-2007
Avatar de marcoszorrilla
marcoszorrilla marcoszorrilla is offline
Capo
 
Registrado: may 2003
Ubicación: Cantabria - España
Posts: 11.221
Poder: 10
marcoszorrilla Va por buen camino
Lo normal es que vayas diciendo que es lo que no te funciona y alguien te irá diciendo como arreglarlo de manera que tendrías que ir haciendo preguntas concretas, una por hilo.

Por ejemplo, trabajo con D7 y estoy usando Base de datos Firebird, he creado el procedimiento p314 con este código lo llamo desde el formulario xxxx y me da este error.....

Un Saludo.
__________________
Guía de Estilo de los Foros
Cita:
- Ça c'est la caisse. Le mouton que tu veux est dedans.
Responder Con Cita
  #4  
Antiguo 17-01-2007
byivan byivan is offline
Miembro
 
Registrado: ene 2007
Posts: 10
Poder: 0
byivan Va por buen camino
Os pongo un enlace para descargar el archivo?

Joer si esk es uan tonteria de nada, es cortar 5 cachitos y pegarlos en 5 procedures, pero nose k coño de efectos laterales o lo que sea, y logo no hace lo correcto.

Te pongo un enlace para descargarlo, y lo echas un vistazo?

Gracias.

Edit: Acabo leer las normas de estilo, siento el titulo en mayusculas, no puedo modificarlo

Última edición por byivan fecha: 17-01-2007 a las 15:39:11.
Responder Con Cita
  #5  
Antiguo 17-01-2007
Avatar de kuan-yiu
[kuan-yiu] kuan-yiu is offline
Miembro Premium
 
Registrado: jun 2006
Ubicación: Galicia. España.
Posts: 1.017
Poder: 19
kuan-yiu Va camino a la fama
Estaría bien que dijeras, por ejemplo, qué error te sale, en qué línea de código salta...
Responder Con Cita
  #6  
Antiguo 17-01-2007
Avatar de ContraVeneno
ContraVeneno ContraVeneno is offline
Miembro
 
Registrado: may 2005
Ubicación: Torreón, México
Posts: 4.738
Poder: 23
ContraVeneno Va por buen camino
Estaría mucho mejor que leyeras la guía de estilo, como ya te dijeron. Esto para evitar futuros errores y malos entendidos.


Edito: Perdón, no había leído que ya habías leido la lectura recomendada.
:P
__________________

Responder Con Cita
  #7  
Antiguo 17-01-2007
byivan byivan is offline
Miembro
 
Registrado: ene 2007
Posts: 10
Poder: 0
byivan Va por buen camino
Primiero agradecer vuestros mensajes, gracias.

El problema está en que el compilador compila todo perfectamente, y en tiempo de ejecucion del programa, no se desarrolla bien.

- Antes de modularizar todo funcionaba perfectamente, pero tras modularizar da resultados que no son los esperados, por lo que no debo modularizarlo correctamente.

Os adjunto el link para que veais el problema:

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

Teneis que modularizar el programa principal que se encuentra en el archivo JuegoPoquer.dpr

Espero que podais ayudarme,
muchas gracias por vuestra atencion.

Un saludo.
Responder Con Cita
  #8  
Antiguo 17-01-2007
Avatar de ContraVeneno
ContraVeneno ContraVeneno is offline
Miembro
 
Registrado: may 2005
Ubicación: Torreón, México
Posts: 4.738
Poder: 23
ContraVeneno Va por buen camino
¿y como para cuando hay que entregar el sistema ya modulizado?
__________________

Responder Con Cita
  #9  
Antiguo 17-01-2007
byivan byivan is offline
Miembro
 
Registrado: ene 2007
Posts: 10
Poder: 0
byivan Va por buen camino
Me urge tremenda prisa pues tengo que entregarla ya.
No es nada complicado(si para mi) solo se trata de modularizar 5 parrafos de codigo en 5 procedure
por favor echale un vistazo

muchas gracias , un saludo
Responder Con Cita
  #10  
Antiguo 17-01-2007
Avatar de ContraVeneno
ContraVeneno ContraVeneno is offline
Miembro
 
Registrado: may 2005
Ubicación: Torreón, México
Posts: 4.738
Poder: 23
ContraVeneno Va por buen camino
Hombre byivan, creo que te hace falta un nuevo detector de sarcasmo...
__________________

Responder Con Cita
  #11  
Antiguo 17-01-2007
byivan byivan is offline
Miembro
 
Registrado: ene 2007
Posts: 10
Poder: 0
byivan Va por buen camino
Cita:
Empezado por ContraVeneno
Hombre byivan, creo que te hace falta un nuevo detector de sarcasmo...

Sarcasmo: Burla o ironía mordaz, hiriente y humillante.

Humildad: Actitud de la persona que no presume de sus logros, reconoce sus fracasos y debilidades y actúa sin orgullo.
Responder Con Cita
  #12  
Antiguo 17-01-2007
Avatar de Onti
Onti Onti is offline
Miembro
 
Registrado: jul 2003
Ubicación: La Paz - Bolivia
Posts: 500
Poder: 21
Onti Va por buen camino
Trate de descargar tu prog del link indicado pero tengo el siguiente mensaje:

Cita:
"Todos los puertos de descarga asignados a su país (Bolivia) están en uso. Por favor, inténtelo nuevamente dentro de unas horas o instale la barra de herramientas de Megaupload Toolbar para obtener acceso inmediato - con la barra de herramientas usted no sufrirá más limitaciones."
Me gustaría darte una mano, pero no pienso instalar ese ToolBar
Responder Con Cita
  #13  
Antiguo 17-01-2007
byivan byivan is offline
Miembro
 
Registrado: ene 2007
Posts: 10
Poder: 0
byivan Va por buen camino
Raul muchas gracias por tu atencion, de veras.

Puedes agregarme al msn : byivan2002@hotmail.com
y te paso el programita por alli, o si lo prefieres mandame un correo a mi direccion y te contesto a tu correo con el programita.
Que te parece?

Un saludo
Responder Con Cita
  #14  
Antiguo 17-01-2007
Avatar de lag_0
lag_0 lag_0 is offline
Miembro
 
Registrado: jul 2006
Posts: 131
Poder: 18
lag_0 Va por buen camino
y la nota será para ti o para quien haga tu practica?

si los hay con morro
Responder Con Cita
  #15  
Antiguo 17-01-2007
byivan byivan is offline
Miembro
 
Registrado: ene 2007
Posts: 10
Poder: 0
byivan Va por buen camino
Cita:
Empezado por lag_0
y la nota será para ti o para quien haga tu practica?

si los hay con morro
No me confundas, la práctica esta hecha en su totalidad ( me ha llevado bastante tiempo) sólo que busco ayuda porque nosé modularizar (me crea conflicto) un parrafo de apenas 7 lineas ...

No creo que sea apropiado tu comentario, puesto que la práctica me la he currado durante un mes, y solo es ultimar un detalle que ya le he dado mil vueltas.

Un saludo desde Madrid
Responder Con Cita
  #16  
Antiguo 17-01-2007
Avatar de lag_0
lag_0 lag_0 is offline
Miembro
 
Registrado: jul 2006
Posts: 131
Poder: 18
lag_0 Va por buen camino
y por que no pasteas los codigos que te fallen aquí y explicas el fallo y no pones tu email con intencion de que te ayude alguien sin tan solo mover un dedo? Que esperabas asistencia gratis por e-mail? Es club delphi no club hermanitas de la caridad y aún así con respeto y educación se hacen ayudas desinteresadamente claro que se harán siempre y cuando el que pide ayuda esté interesado en trabajar.

A que esperas, pastea tu codigo y el error y la versión de delphi que estás utilizando y verás que rapido encuentras una solución.
Responder Con Cita
  #17  
Antiguo 17-01-2007
byivan byivan is offline
Miembro
 
Registrado: ene 2007
Posts: 10
Poder: 0
byivan Va por buen camino
Aqui está el codigo, se trata de modularizar el programa principal, meter los 5 primeros bloques (o parrafos de instrucciones) cada uno en un procedure para así hacer el programa principal lo menos extenso posible.

El problema me surgió al modularizar el 3º bloque que contiene otro subprograma,y creo que se crea un conflicto de variables (un efecto lateral) y aunque el compilador lo da por bueno, en el tiempo de ejecución no se obtienen resultados esperados (en el descarte del poker cambia todas las cartas en vez de las deseadas,....)


GRacias :


Código Delphi [-]
 
PROGRAM JuegoPoquer;
{$APPTYPE CONSOLE}

USES
  SysUtils,
  PoquerDados in 'PoquerDados.pas',
  PoquerDadosES in 'PoquerDadosES.pas',
  TiposPoquerDados in 'TiposPoquerDados.pas';
  {El prograa principal del Juega del Poquer usa las unidades de importación
  ´PoquerDados´ y ´PoquerDadosES´ de la biblioteca ´LibPoquerDados´ y la
    unidad ´TiposPoquerDados´}

PROCEDURE        LeeDados(VAR vec:TValorDados);
{Este procedimiento genera la tirada de 4 dados}
VAR
        i:integer;
BEGIN
        FOR i:=1  TO 4  DO BEGIN
        Vec[i]:=TiraDado;
        END;
END;
 
PROCEDURE     LeeMano  (v:TValorDados;  VAR   Mano:TMano);
{Este procedimiento se encarga de leer los campos de una mano, a partir del
 valor de los dados}
VAR
        dat:TDatosCombinacion;
BEGIN
        dat:=Combinacion(v);
        Mano.Dados:=v;
        Mano.Combinacion:=dat;
END;
 
PROCEDURE     CambiaDados(v:TValorDados;cad:string; VAR vec:TValorDados);
{Este procedimiento lo he creado para la opción que se da a ambos jugadores de
 volver a tirar algún dado. Le entra el valor de los dados antiguos y un string
 con información a cerca de los dados q se desean volver a tira, y salen los
  dados actualizados con las nuevas tiradas}
VAR
        i:integer;
BEGIN
     vec:=v;
     FOR i:= 1 TO length(cad) DO BEGIN
        IF cad[i]='1' THEN
          vec[1]:=Tiradado
       ELSE IF cad[i]='2' THEN
            vec[2]:=tiradado
            ELSE IF  cad[i]='3' THEN
                 vec[3]:=tiradado
                 ELSE IF  cad[i]='4' THEN
                      vec[4]:=tiradado;
     END;
     {Se comprueva si algún elemento del string es un 1, 2, 3 o 4, y si lo es
      se tira el dado que corresponde a ese número}
END;
 
VAR
   {Variables que uiliza el programa principal}
        dados1,dados2:TValorDados;
        jugador1,jugador2:TMano;
        cambio:string;
        Gana1,iguales:boolean;
        fin:char;
 
 
BEGIN     {PROGRAMA PRINCIPAL}
   
REPEAT
     
     writeln('Jugador 1:');      {BLOKE 1}
     readln;
     LeeDados(dados1);  {Genera aleatoriamente los dados del jugador 1}
     LeeMano(dados1,jugador1);
     EscribeMano(jugador1);
     writeln;
     writeln;
     writeln;
     {Jugada del Jugador 1, por pantalla se escriben los dados que ha sacado
      y la cominación que tiene (mano del jugador 1)}
     
 
     writeln('Jugador 2:');           {BLOKE2}
     readln;
     LeeDados(dados2); {Genera aleatoriamente los dados del jugador 2}
     LeeMano(dados2,jugador2);
     EscribeMano(jugador2);
     writeln;
     writeln;
     writeln;
     {Jugada del jugador 2, por pantalla se escriben los dados que ha sacado
      y la cominación que tiene (mano del jugador 1)}

     
                          {BLOKE3}
      writeln('Jugador 1, indique los dados que desea volver a     tirar separados     por -:');
     readln(cambio);
     CambiaDados(dados1,cambio,dados1);
     writeln;
     writeln('Jugador 1:');
     LeeMano(dados1,jugador1);
     EscribeMano(jugador1);
     writeln;
     writeln;
     writeln;
     {Se da opción al jugador 1, para que vuelva a tirar algún dado, yse escribe
      la nueva mano}
     
                         {BLOKE4}
      writeln('Jugador 2, indique los dados que desea volver a tirar separados por -:');
     readln(cambio);
     CambiaDados(dados2,cambio,dados2);
     writeln;
     writeln('Jugador 2:');
     LeeMano(dados2,jugador2);
     EscribeMano(jugador2);
     writeln;
     writeln;
     writeln;
     {Se da opción al jugador 1, para que vuelva a tirar algún dado, yse escribe
      la nueva mano}
     
                 {BLOKE5}
     writeln('RESULTADOS FINALES:');
     writeln;
     writeln('Jugador 1:');
     writeln;
     EscribeMano(jugador1);
     writeln;
     writeln;
     writeln('Jugador 2:');
     writeln;
     EscribeMano(jugador2);
     writeln;
     writeln;
     
{FIN MODULARIZACION}
 
 
 
MayorOIgual(jugador1,jugador2,Gana1,iguales);
     
 
{Llamada al procedimiento ´MayorOIgual´ para saber que jugador gana la
      partida}
     
 
 
IF Gana1 THEN
        writeln('¡!! GANA JUGADOR 1 ¡!!')
     ELSE
        IF iguales THEN
          writeln('¡!! HAY EMPATE ¡!!')
        ELSE
          writeln('¡!! GANA JUGADOR 2 ¡!!');
     writeln;
     write('Otra ronda?  (S/N)');
     REPEAT
     readln(fin);
     writeln;
     UNTIL  (fin='s') or (fin='S') or (fin='n') or (fin='N');
     writeln;
  UNTIL  (fin='N')  or (fin='n')
END.

Última edición por marcoszorrilla fecha: 17-01-2007 a las 23:39:10.
Responder Con Cita
  #18  
Antiguo 17-01-2007
Avatar de ContraVeneno
ContraVeneno ContraVeneno is offline
Miembro
 
Registrado: may 2005
Ubicación: Torreón, México
Posts: 4.738
Poder: 23
ContraVeneno Va por buen camino
ByIvan, estoy seguro que en este lugar siempre se ayuda a quien lo necesita; sin hacer distinción de ningún tipo. Y te lo digo porque ya tengo un buen tiempecito por este club y siempre he encontrado solución a mis problemas.

Lo único que se pide a cambio es que se cumplan un pequeño número de normas de convivencia (que nisiquiera son reglas estrictas), vamos pues, que lo único que se pide es que se sigua una guía de estilo. Y desafortunamente, a pesar de que has dicho que ya la leíste, a mi me parece que no lo has hecho porque sigues haciendo cosas que van en contra de esta guía. Entonces pues, te invito a que la leas nuevamente.

Y te invito a que conozcas tambien la posibilidad de utilizar etiquetas vb para encerrar tu código y sea mas legible para todos nosotros. Edito: Este párrafo ya no es necesario ya que Marcos ha modificado tu mensaje

Ahora bien, dicho lo que se tenía que decir, mencionas que no tienes ningún error de sintaxis. Entonces, si nos dices que es lo que sale mal y en que parte de tu código esto no se realiza como debe de ser, tal vez este club te pueda dar una idea de como resolver ese problema específico.

A mi me parece que lo que requieres son dos procedimientos más (uno que realize lo que tienes en bloque 1 y 2, y otro que realize lo que tienes en el bloque 3 y 4), este procedimiento recibiendo un parámetro que indique que jugador es para hacer la distinción correspondiente.

Pero como te mencioné, si nos dices que es lo que sale mal, y en que parte de tu código las cosas no se hacen como se supone, tal vez pueda tener una mejor idea.

Saludos.
__________________


Última edición por ContraVeneno fecha: 18-01-2007 a las 00:03:14.
Responder Con Cita
  #19  
Antiguo 18-01-2007
byivan byivan is offline
Miembro
 
Registrado: ene 2007
Posts: 10
Poder: 0
byivan Va por buen camino
Joer pues parala proxima vez, me anoto lo del código para que sea mas legible, lo siento.

El porblema es que al meter en un procedure el bloque 3 4 y 5 me produce un problema en tiempo de ejecucion (el compilador lo pasa)
por tanto me gustaria que me escribieseis como serian los procedures del bloque 3 4 y 5.

Muchas gracias!
Responder Con Cita
  #20  
Antiguo 18-01-2007
Avatar de ContraVeneno
ContraVeneno ContraVeneno is offline
Miembro
 
Registrado: may 2005
Ubicación: Torreón, México
Posts: 4.738
Poder: 23
ContraVeneno Va por buen camino
Cita:
Empezado por byivan
El porblema es que al meter en un procedure el bloque 3 4 y 5 me produce un problema en tiempo de ejecucion...
No creo que sea conveniente meter el bloque 3, 4 y 5 en un solo procedure porque no realizan lo mismo. El bloque 1 y 2 si hacen lo mismo, eso si se puede hacer en otro procedimiento, el bloque 3 y 4 tambien hacen lo mismo, por lo que se pueden meter en un solo procedimiento, el 5 ya no porque no hace lo mismo.

No, yo no te voy a escribir ningún código porque no es mi trabajo hacer tu trabajo.

Saludos.
__________________

Responder Con Cita
Respuesta



Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro

Temas Similares
Tema Autor Foro Respuestas Último mensaje
Programador desesperado falbano Conexión con bases de datos 8 08-04-2005 17:25:55
Problema con el programa para saber si estoy conectado. Kamikaze Internet 3 25-11-2004 01:02:40
Programa para saber si estoy conectado. Kamikaze Internet 2 13-11-2004 16:47:46
Realmente Desesperado Descendents Impresión 1 09-06-2003 23:20:14


La franja horaria es GMT +2. Ahora son las 14:31:57.


Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi
Copyright 1996-2007 Club Delphi