Bug no Harbour

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

Moderador: Moderadores

Kapiaba
Colaborador
Colaborador
Mensagens: 1914
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: 2822
Registrado em: 16 Ago 2010 13:46
Localização: Campinas-SP
Curtiu: 2 vezes

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: 1914
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: 2822
Registrado em: 16 Ago 2010 13:46
Localização: Campinas-SP
Curtiu: 2 vezes

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: 1914
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: 20420
Registrado em: 26 Fev 2007 11:59
Localização: São Paulo-SP
Curtiram: 1 vez

Bug no Harbour

Mensagem por JoséQuintas »

Tá falando desta parte?
Anexos
cubo.png
José M. C. Quintas
Harbour 3.2, mingw, multithread, gtwvg, fivewin 25.12, dbfcdx, MySQL, ADOClass, PDFClass, SefazClass, (hwgui), (hmg3), (hmg extended), (oohg), PNotepad, ASP, (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: 2822
Registrado em: 16 Ago 2010 13:46
Localização: Campinas-SP
Curtiu: 2 vezes

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: 1914
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: 20420
Registrado em: 26 Fev 2007 11:59
Localização: São Paulo-SP
Curtiram: 1 vez

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, multithread, gtwvg, fivewin 25.12, dbfcdx, MySQL, ADOClass, PDFClass, SefazClass, (hwgui), (hmg3), (hmg extended), (oohg), PNotepad, ASP, (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: 1914
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: 20420
Registrado em: 26 Fev 2007 11:59
Localização: São Paulo-SP
Curtiram: 1 vez

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, multithread, gtwvg, fivewin 25.12, dbfcdx, MySQL, ADOClass, PDFClass, SefazClass, (hwgui), (hmg3), (hmg extended), (oohg), PNotepad, ASP, (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: 20420
Registrado em: 26 Fev 2007 11:59
Localização: São Paulo-SP
Curtiram: 1 vez

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, multithread, gtwvg, fivewin 25.12, dbfcdx, MySQL, ADOClass, PDFClass, SefazClass, (hwgui), (hmg3), (hmg extended), (oohg), PNotepad, ASP, (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