Bug no Harbour

Projeto [x]Harbour - Compilador de código aberto compatível com o Clipper.

Moderador: Moderadores

Kapiaba
Colaborador
Colaborador
Mensagens: 1908
Registrado em: 07 Dez 2012 16:14
Localização: São Paulo
Contato:

Bug no Harbour

Mensagem por Kapiaba »

Como resolver isto no HARBOUR? Em xHarbour funciona normal. No HARBOUR da erro de Sintaxe.

Código: Selecionar todos

MEMVAR x

FUNCTION MAIN()

   // ? 1 ^^ 2

   x := Cube( 1 )

   ? x

RETURN NIL

Function Cube( n )

Return n ^^ 2
Obg. abs.
Avatar do usuário
Jairo Maia
Moderador
Moderador
Mensagens: 2785
Registrado em: 16 Ago 2010 13:46
Localização: Campinas-SP

Bug no Harbour

Mensagem por Jairo Maia »

Olá Kapiaba,

Uma curiosidade: Tem certeza que a função Cube() é nativa do [x]Harbour? Não é uma função que você inseriu em seu sistema?

Também será que ela não tem alguma crítica, já que 1 não é passível de exponenciação (no caso, elevado ao cubo)?
Abraços, Jairo
Harbour / Clipper 5.2e - Blinker 7
(Não respondo dúvidas por MP ou E-mail. Por favor, não encaminhe via mensagem privada ou e-mail, dúvidas que podem ser compartilhadas com todos no fórum)
Kapiaba
Colaborador
Colaborador
Mensagens: 1908
Registrado em: 07 Dez 2012 16:14
Localização: São Paulo
Contato:

Bug no Harbour

Mensagem por Kapiaba »

Boa tarde Jairo, você pode fazer assim: ? 1 ^^ 2 que dará erro de sintaxe, já no xHarbour, retronará: 3.

Você pode trocar o nome da função para o seu gosto. o que importa é o 1 ^^ 2 ok?

Obg. abs.
Avatar do usuário
Jairo Maia
Moderador
Moderador
Mensagens: 2785
Registrado em: 16 Ago 2010 13:46
Localização: Campinas-SP

Bug no Harbour

Mensagem por Jairo Maia »

Olá Kapiaba,

Muito curioso isso. Mas como gosto de aprender coisas novas (e não tenho dúvida, penso que todos gostamos), o bug então não é do xHarbour? porque se: ? 1 ^^ 2 retorna 3 no xHarbour, está retornando 1 + 2 = 3.

Pelo que sei o circunflexo é sinal de exponenciação, então:

Código: Selecionar todos

? 1 ^ 1000000  // retorna 1
? 2 ^ 2             // retorna 4
? 2 ^ 3             // retorna 8, e assim sucessivamente...
Só não entendo porque duplo circunflexo.
Abraços, Jairo
Harbour / Clipper 5.2e - Blinker 7
(Não respondo dúvidas por MP ou E-mail. Por favor, não encaminhe via mensagem privada ou e-mail, dúvidas que podem ser compartilhadas com todos no fórum)
Kapiaba
Colaborador
Colaborador
Mensagens: 1908
Registrado em: 07 Dez 2012 16:14
Localização: São Paulo
Contato:

Bug no Harbour

Mensagem por Kapiaba »

Jairo:

https://books.google.com.br/books?id=vr ... er&f=false

A minha dúvida, é porque não compila com HARBOUR?
Avatar do usuário
JoséQuintas
Administrador
Administrador
Mensagens: 20267
Registrado em: 26 Fev 2007 11:59
Localização: São Paulo-SP

Bug no Harbour

Mensagem por JoséQuintas »

Tá falando desta parte?
Anexos
cubo.png
José M. C. Quintas
Harbour 3.2, mingw, gtwvg mt, fivewin 25.04, multithread, dbfcdx, MySQL, ADOClass, PDFClass, SefazClass, (hwgui mt), (hmg3), (hmg extended), (oohg), PNotepad, ASP, stored procedure, stored function, Linux (Flagship/harbour 3.2)
"The world is full of kings and queens, who blind our eyes and steal our dreams Its Heaven and Hell"

https://github.com/JoseQuintas/
Avatar do usuário
Jairo Maia
Moderador
Moderador
Mensagens: 2785
Registrado em: 16 Ago 2010 13:46
Localização: Campinas-SP

Bug no Harbour

Mensagem por Jairo Maia »

Kapiaba, veja: o correto é apenas 1 circunflexo, ou duplo asterisco.

Não há operador com duplo circunflexo. Você disse que o xHarbour aceita, mas veja que apesar do xHarbour aceitar o resultado não é exponeciação. Parece que xHarbour permuta duplo circunflexo por adição pelo que você disse.

Código: Selecionar todos

//  Usando circuflexo:
? 2 ^ 3    // ( 2 x 2 x 2 ) = 8
? 2 ^ 4    // ( 2 x 2 x 2 x 2 ) = 16
?
//  Usando duplo asterisco:
? 2 ** 3   // ( 2 x 2 x 2 ) = 8
? 2 ** 4   // ( 2 x 2 x 2 x 2 ) = 16
OperadoresClipper.jpg
Abraços, Jairo
Harbour / Clipper 5.2e - Blinker 7
(Não respondo dúvidas por MP ou E-mail. Por favor, não encaminhe via mensagem privada ou e-mail, dúvidas que podem ser compartilhadas com todos no fórum)
Kapiaba
Colaborador
Colaborador
Mensagens: 1908
Registrado em: 07 Dez 2012 16:14
Localização: São Paulo
Contato:

Bug no Harbour

Mensagem por Kapiaba »

valeu Jairo, entendi. Muito obrigado.
Avatar do usuário
JoséQuintas
Administrador
Administrador
Mensagens: 20267
Registrado em: 26 Fev 2007 11:59
Localização: São Paulo-SP

Bug no Harbour

Mensagem por JoséQuintas »

Até esqueci de mencionar:

Que perigo, aceitar coisa errada.
Ponto para o Harbour.
E um ponto bem grande.... rs
José M. C. Quintas
Harbour 3.2, mingw, gtwvg mt, fivewin 25.04, multithread, dbfcdx, MySQL, ADOClass, PDFClass, SefazClass, (hwgui mt), (hmg3), (hmg extended), (oohg), PNotepad, ASP, stored procedure, stored function, Linux (Flagship/harbour 3.2)
"The world is full of kings and queens, who blind our eyes and steal our dreams Its Heaven and Hell"

https://github.com/JoseQuintas/
Kapiaba
Colaborador
Colaborador
Mensagens: 1908
Registrado em: 07 Dez 2012 16:14
Localização: São Paulo
Contato:

Bug no Harbour

Mensagem por Kapiaba »

kkk, assim compila nos dois, como só uso xHarbour, fiquei na dúvida, estou iniciando testes no Harbour, para comparar.

Assim, funciona nos dois:

Código: Selecionar todos

MEMVAR x
 
FUNCTION MAIN()
 
   // ? 1 ^^ 2
 
   x := Cube( 1 )
 
   ? x
 
RETURN NIL
 
Function Cube( n )
 
Return n ^ 2
Obg. abs.
Avatar do usuário
JoséQuintas
Administrador
Administrador
Mensagens: 20267
Registrado em: 26 Fev 2007 11:59
Localização: São Paulo-SP

Bug no Harbour

Mensagem por JoséQuintas »

Assim já é bug do programador.... rs
Um número ao cubo é ele elevado a três, e colocou dois.

Provavelmente é só teste, mas não resisti em comentar.
José M. C. Quintas
Harbour 3.2, mingw, gtwvg mt, fivewin 25.04, multithread, dbfcdx, MySQL, ADOClass, PDFClass, SefazClass, (hwgui mt), (hmg3), (hmg extended), (oohg), PNotepad, ASP, stored procedure, stored function, Linux (Flagship/harbour 3.2)
"The world is full of kings and queens, who blind our eyes and steal our dreams Its Heaven and Hell"

https://github.com/JoseQuintas/
Avatar do usuário
asimoes
Colaborador
Colaborador
Mensagens: 4919
Registrado em: 26 Abr 2007 16:48
Localização: RIO DE JANEIRO-RJ

Bug no Harbour

Mensagem por asimoes »

Do manual do xHarbour:

// The example shows some results of the "**" operator.

PROCEDURE Main
? 5 ** 0 // result: 1.00
? 5 ** 1 // result: 5.00
? 5 ** 2 // result: 25.00
? 5 ** -2 // result: 0.04
? -5 ** 2 // result: 25.00

? 5 ˆ 0 // result: 1.00
? 5 ˆ 1 // result: 5.00
? 5 ˆ 2 // result: 25.00
? 5 ˆ -2 // result: 0.04
? -5 ˆ 2 // result: 25.00
RETURN
►Harbour 3.x | Minigui xx-x | HwGui◄
Pense nas possibilidades abstraia as dificuldades.
Não corrigir nossas falhas é o mesmo que cometer novos erros.
A imaginação é mais importante que o conhecimento. (Albert Einstein)
Avatar do usuário
asimoes
Colaborador
Colaborador
Mensagens: 4919
Registrado em: 26 Abr 2007 16:48
Localização: RIO DE JANEIRO-RJ

Bug no Harbour

Mensagem por asimoes »

Kapiaba,

xHarbour ficou sem pai e mãe, cuidado com os bug´s !
►Harbour 3.x | Minigui xx-x | HwGui◄
Pense nas possibilidades abstraia as dificuldades.
Não corrigir nossas falhas é o mesmo que cometer novos erros.
A imaginação é mais importante que o conhecimento. (Albert Einstein)
Avatar do usuário
JoséQuintas
Administrador
Administrador
Mensagens: 20267
Registrado em: 26 Fev 2007 11:59
Localização: São Paulo-SP

Bug no Harbour

Mensagem por JoséQuintas »

É até estranho, já que existe o produto comercial xHarbour.
Deveria até ser o contrário.
José M. C. Quintas
Harbour 3.2, mingw, gtwvg mt, fivewin 25.04, multithread, dbfcdx, MySQL, ADOClass, PDFClass, SefazClass, (hwgui mt), (hmg3), (hmg extended), (oohg), PNotepad, ASP, stored procedure, stored function, Linux (Flagship/harbour 3.2)
"The world is full of kings and queens, who blind our eyes and steal our dreams Its Heaven and Hell"

https://github.com/JoseQuintas/
Avatar do usuário
asimoes
Colaborador
Colaborador
Mensagens: 4919
Registrado em: 26 Abr 2007 16:48
Localização: RIO DE JANEIRO-RJ

Bug no Harbour

Mensagem por asimoes »

Quintas,

Eu conheço quem mantém o xHarbour comercial, inclusive já levou uma chamada não lembro se foi do Viktot ou Przemyslaw, mas está postado aqui no fórum.
De está usando o código Harbour na versão comercial sem critério nenhum.

Numa tentativa de evoluir para o nível do Harbour.
►Harbour 3.x | Minigui xx-x | HwGui◄
Pense nas possibilidades abstraia as dificuldades.
Não corrigir nossas falhas é o mesmo que cometer novos erros.
A imaginação é mais importante que o conhecimento. (Albert Einstein)
Responder