FoxPro/Visual FoxPro - Problema en el ciclo

   
Vista:

Problema en el ciclo

Publicado por Simon (1 intervención) el 15/04/2011 16:01:15
Tengo un problema con este programa se me queda pegado en el ciclo
Alguna solucion porfavor me urge


store 0 to nota1,nota2,nota3,notadef_estu,prom_estu, prom_sec,porc_mujer,cedula,acumpro_estu

contador=0
respta='si'
cont_mujer=0
cont_hombre=0
cont_apro=0
cont_repro=0
menor=9999
mayor=0

@ 1,1 say "Desea seguir? " get respta
read

DO WHILE respta='si'
contador=contador+1

@ 2,1 say "Ingrese Nombre" get nombre
@ 3,1 say "Ingrese cedula" get cedula
@ 4,1 say "Ingrese Sexo? F/M " get sexo
@ 5,1 say "Ingrese calificacion 1" get nota1
@ 6,1 say "Ingrese calificacion 2" get nota2
@ 7,1 say "Ingrese calificacion 3" get nota3

If sexo='F'
cont_mujer=cont_mujer+1

Else
cont_hombre=cont_hombre+1

ENDIF

nota_defestu=nota1+nota2+nota3
prom_estu=nota_defestu/3
acumpro_estu=prom_estu

If notadef_estu >=48

cont_apro=cont_apro+1

MESSAGEBOX ("APROBADO")

ELSE

cont_repro=cont_repro+1
MESSAGEBOX ("REPROBADO")

?"Desea continuar? Y "
?respta

ENDIF

If notadef_estu >=mayor
mayor=notadef_estu

ENDIF

If notadef_estu <=menor
menor=notadef_estu

ENDIF

?"Desea Continuar? Y"
?respta

prom_sec=acumpro_estu/contador
?"Promedio de la seccion"
?prom_sec

?"Cantidad de reprobados"
?cont_repro

?"Cantidad de aprobados"
?cont_apro

?"Mayor Nota"
?mayor

?"Menor Nota"
?menor

porc_mujer=cont_mujer*100/contador
?"El porcentaje de mujeres es"
?porc_mujer

?"Cantidad de hombres"
?cont_hombre

Enddo

Aqui esta el programa
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

Problema en el ciclo

Publicado por JAG (53 intervenciones) el 15/04/2011 18:12:58
Modificacion al comentario anterior


Buenos dias...

Esto ponlo dentro del DO WHILE

@ 1,1 say "Desea seguir? " get respta
read
if respta not = "si"
exit
endif


esta antes y nunca modificas dentro del DO WHILE el valor de la variable respta

Saludos
JAG
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Problema en el ciclo

Publicado por Juan286 (179 intervenciones) el 16/04/2011 06:33:42
Para mi se ria mas facil aver usado el DO ---- While asi por lo menos por lo menos se que lo va ser una vez.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de Mauricio

Problema en el ciclo

Publicado por Mauricio (1368 intervenciones) el 24/04/2011 18:43:39
Prueba con este codigo modificado:
STORE 0 to nota1,nota2,nota3,notadef_estu,prom_estu, prom_sec,porc_mujer, ;
cedula,acumpro_estu, contador, cont_mujer, cont_hombre, cont_apro, cont_repro,mayor
PUBLIC nombre, sexo
nombre = SPACE(30)
sexo = 'F'
*
respta='si'
menor=9999
*
DO WHILE respta='si'
contador=contador+1
@ 2,1 say "Ingrese Nombre" get nombre
read
@ 3,1 say "Ingrese cedula" get cedula
read
@ 4,1 say "Ingrese Sexo? F/M " get sexo
read
@ 5,1 say "Ingrese calificacion 1" get nota1
read
@ 6,1 say "Ingrese calificacion 2" get nota2
read
@ 7,1 say "Ingrese calificacion 3" get nota3
read
*
If sexo='F'
cont_mujer=cont_mujer+1
Else
cont_hombre=cont_hombre+1
ENDIF
*
nota_defestu=nota1+nota2+nota3
prom_estu=nota_defestu/3
acumpro_estu=prom_estu
*
If nota_defestu >=48
cont_apro=cont_apro+1
MESSAGEBOX ("APROBADO")
ELSE
cont_repro=cont_repro+1
MESSAGEBOX ("REPROBADO")
ENDIF
*
If nota_defestu >=mayor
mayor=nota_defestu
ENDIF
*
If nota_defestu <=menor
menor=nota_defestu
ENDIF
*
*
@ 1,1 say "Desea seguir? " get respta
read
STORE 0 TO cedula, nota1,nota2, nota3
nombre = space(30)
Enddo
prom_sec=acumpro_estu/contador
?"Promedio de la seccion"
?prom_sec
*
?"Cantidad de reprobados"
?cont_repro
*
?"Cantidad de aprobados"
?cont_apro
*
?"Mayor Nota"
?mayor
*
?"Menor Nota"
?menor
*
porc_mujer=cont_mujer*100/contador
?"El porcentaje de mujeres es"
?porc_mujer
*
?"Cantidad de hombres"
?cont_hombre
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Problema en el ciclo

Publicado por JAG (53 intervenciones) el 15/04/2011 17:12:57
Buenos dias...

Esto ponlo dentro del DO WHILE

@ 1,1 say "Desea seguir? " get respta
read



esta antes y nunca modificas dentro del DO WHILE el valor de la variable respta

Saludos
JAG
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Problema en el ciclo

Publicado por santiago (376 intervenciones) el 19/04/2011 16:26:50
No he revisado del todo tu codigo, pero encontre 2 puntos importantes, realizas gets dentro del do while, pero no hay un read para esos gets antes de la validaciones.

Despues de las validaciones, no hay un exit para salir del do while.

Santiago.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar