Página 1 de 1

Compila mais nao vai!

Enviado: 30 Abr 2010 09:30
por elituhh
bem, eu sou mto leigo no assunto e preciso de ajuda, eu fiz esse "programa" e compila certinho mais qdo eu executo no DOS deveria aparecer a mensagem (=> @ 10,20 Prompt "Adicao" message "soma os numeros digitados" ), e pq qdo eu entro numa opcao o menu ainda aparece atras (n apaga) aonde estou errando?
ai esta o programa todo pra vcs verificarem:

Código: Selecionar todos

procedure main()
local opc := 0 
do while .t.

   @ 10,20 Prompt "Adicao"		message "soma os numeros digitados"
   @ 12,20 prompt "Subtracao"		message "Subtrai os numeros digitados"
   @ 14,20 prompt "Multiplicacao"  	message "Multiplica os numeros digitados"
   @ 16,20 prompt "Divisao"		message "divide os numeros digitados"
   @ 20,20 prompt "SAIR"		message "sair do menu"

menu to opc
do case
	   case opc = 1
		adicao()
	   case opc = 2
		subtracao()
	   case opc = 3
		multiplica()
	   case opc = 4
		divide()
	   case opc = 5
		cls
                cancel
endcase
inkey (3)
enddo
return
cls
procedure adicao()
local var1 :=0,var2 :=0
@ 10,10 say "digite o primeiro numero" get var1
read
cls
@ 15,15 say "digite o segundo numero" get var2
read
cls
inkey(0)
return

procedure subtracao()
local var1 :=0,var2 :=0
@ 10,10 say "digite o primeiro numero" get var1
read
cls
@ 15,15 say "digite o segundo numero" get var2
read
cls
inkey(0)
return

procedure multiplica()
local var1 :=0,var2 :=0
@ 10,10 say "digite o primeiro numero" get var1
read
cls
@ 15,15 say "digite o segundo numero" get var2
read
cls
inkey(0)
return

procedure divide()
local var1 :=0,var2 :=0
@ 10,10 say "digite o primeiro numero" get var1
read
cls
@ 15,15 say "digite o segundo numero" get var2
read
cls
inkey(0)
return
Nota de Moderação:
por Pablo César: Primeiro que desejar que seja bem vindo ao fórum. No entanto você ja começou desrespeitando algumas regras. Favor leia-as e tente respeitá-las como indiquei em MP a você. Sua mensagem posterior foi deletada pela moderação. Espero que possa disfrutar da nossa hospitalidade, mas esperamos também a sua cordialidade, certo ?

Re: Compila mais nao vai!

Enviado: 30 Abr 2010 10:35
por alxsts
Olá!

Seja bem-vindo ao fórum!

Fiz algumas alterações no teu código:

Código: Selecionar todos

procedure main()
local opc := 0

   do while .t.

      cls
      @ 10,20 Prompt "Adicao" message "soma os numeros digitados"
      @ 12,20 prompt "Subtracao" message "Subtrai os numeros digitados"
      @ 14,20 prompt "Multiplicacao" message "Multiplica os numeros digitados"
      @ 16,20 prompt "Divisao" message "divide os numeros digitados"
      @ 20,20 prompt "SAIR" message "sair do menu"

      menu to opc

      cls
      
      do case
         case opc = 1
            adicao()
         case opc = 2
            subtracao()
         case opc = 3
            multiplica()
         case opc = 4
            divide()
         case opc = 5
            QUIT
         //cancel
      endcase
      inkey (3)
   enddo
   return


procedure adicao()
   local var1 :=0,var2 :=0, GetList := {}
   @ 10,10 say "digite o primeiro numero" get var1
   //read
   //cls
   @ 15,10 say "digite o segundo numero" get var2
   read
   //cls
   //inkey(0)
   @ 24, 10 say "Resultado: " + LTrim( Str( var1 + var2 ) )
   return

procedure subtracao()
   local var1 :=0,var2 :=0, GetList := 0
   @ 10,10 say "digite o primeiro numero" get var1
   //read
   //cls
   @ 15,10 say "digite o segundo numero" get var2
   read
   //cls
   //inkey(0)
   @ 24, 10 say "Resultado: " + LTrim( Str( var1 - var2 ) )
   return

procedure multiplica()
   local var1 :=0,var2 :=0, GetList := {}
   @ 10,10 say "digite o primeiro numero" get var1
   //read
   //cls
   @ 15,10 say "digite o segundo numero" get var2
   read
   //cls
   //inkey(0)
   @ 24, 10 say "Resultado: " + LTrim( Str( var1 * var2 ) )

   return

procedure divide()

   // para compilar use Clipper Main /N/W

   local var1 :=0,var2 :=0, GetList := {}
   @ 10,10 say "digite o primeiro numero" get var1
   //read
   //cls
   @ 15,10 say "digite o segundo numero" get var2
   read
   //cls
   //inkey(0)
   If var2 > 0
      @ 24, 10 say "Resultado: " + LTrim( Str( var1 / var2 ) )
   Else
      @ 24, 10 say "Divisao por zero nao permitida"
   Endif
   return
Não se esqueça de utilizar a tag Code que consta na barra de ferramentas acima da caixa de texto onde se digita a mensagem. Acostume-se a indentar o código. Isso facilita o entendimento pelos outros membros do fórum e agiliza a solução do problema.

Compila mais nao vai!

Enviado: 30 Abr 2010 11:07
por Pablo César
E não esqueça: Para fazer funcionar com a função chamada Main(), você precisa compilar com o switch /n.

(palavras do Maligno)

Obs.: Também percebí essa instrução no código do Alexandre.

Re: Compila mais nao vai!

Enviado: 03 Mai 2010 11:11
por elituhh
obrigado :D :)) :))