Ir para o conteúdo
  • Revista PROGRAMAR: Já está disponível a edição #57 da revista programar. Faz já o download aqui!

melgrim

Funcionamento do 'and'

Mensagens Recomendadas

melgrim    0
melgrim

Não há como ter de fazer projecto de compiladores sobre uma linguagem que me é totalmente desconhecida!

enfim, esquecendo detalhes tristes...

alguém me pode explicar resumidamente o funcionamento do operadores lógicos (and, or e not)?

a minha dúvida é mais propriamente o que acontece quando um dos operadores é aplicado a algo cujo resultado não é booleano. tipo " 10 and 11" é suposto dar erro de sintaxe!? ou é suposto fazer algo?

desde já agradeço eventuais respostas.

e um bom ano para todos :D

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites
David Pintassilgo    5
David Pintassilgo

tás a usar como?

if x=1 or 2

ou

if x=1 or x=2

eu digo isso, pq tb me fez um bocado de confusão e era mesmo por isso, fazia if x=1 or 2

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites
melgrim    0
melgrim

Eu não estou a usar!

É suposto estar a fazer um compilador para pascal não a programar em pascal...

mas ainda assim, no primeiro caso. "if x=1 or 2" qual é a interpretação correcta?

será "if ((x=1) or (x=2))" ou é suposto dar erro?

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites
GpL    0
GpL

é assim.. if (x=1) or (x=2) then..

usei o if,só para exemplificar.. tipo dizes, se x igual a um ou x igual a dois entao....

nao podes dizer se x igual a 1 ou igual a dois .. ele n sabe a que é que estas a igualar o dois..

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites
Warrior    68
Warrior

Encontras na net listas de precedência de operadores.. (pelo menos deves encontrar, quando estudei PHP fartei-me de passar por elas)

Agora o que perguntas.. podias ter sacado um compilador da net e testar por ti mesmo.

"if 10 and 11" retorna Erro (Boolean expression expected, but got "ShortInt")

x:=11;
if x=10 or 11 then writeln('lol')

Escreve "lol" no ecran, logo ele lê "if (x=10) or (x=11)"

Podes sacar um compilador em www.freepascal.org

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites
GpL    0
GpL

x:=11;
if x=10 or 11 then writeln('lol')

Escreve "lol" no ecran, logo ele lê "if (x=10) or (x=11)"

Isso dá erro,não escreve lol nenhum..

já disse que tem que dizer sempre a que é que o valor é igual,neste caso a x.. porque podia ser if x=10 or y=11 then ..

não podes ter só lá o 11,sem tar igualado a alguma variavel ou constante..

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites
GpL    0
GpL

Pronto,funciona mas isso não se deve fazer, vai perguntar ao teu professor de Pascal que ele diz te qual é a maneira mais correcta.. eu faço como o meu professor me disse que era mais correcta,e eu gosto de usar boa programação e não programar à trolha.. :D

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites
PreTenDer666    0
PreTenDer666

Para não estar a abrir um novo topico....

Eu estou a tentar usar a função AND mas dá-me sempre um erro

if a< 10 then Writeln('mensagem')

else if a>=10 and <20 then writeln('kk koisa')

else writeln('outra koisa kk');

O exemplo acima esta mal?

Da-me sempre erro "syntax error, "then" expected but "ordinal const" found

Conseguem-me ajudar?

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites
David Pintassilgo    5
David Pintassilgo

if a< 10 then Writeln('mensagem')

else if a>=10 and [glow=red,2,300]a[/glow]<20 then writeln('kk koisa')

else writeln('outra koisa kk');

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites
PreTenDer666    0
PreTenDer666

Em primeiro lugar, obrigado pela resposta, mas agora acrescentei o A e mudou o erro, agora dá-me o erro: operation "and" not supported for types "double" and "double"

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites
joninho    0
joninho

lol, mas tah certo assim :X lol :\ e dah o operador "or" ? opah aí dis k o "and" nao da pa ser usado em variaveis tipo DOUBLE axo eu :X mete "OR" em vex de "AND" e ve o k dah :X so pa saber kual eh a confusao, nao tou a diser pa deixares tar o "OR" pk mudava o programa por completo...

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Crie uma conta ou ligue-se para comentar

Só membros podem comentar

Criar nova conta

Registe para ter uma conta na nossa comunidade. É fácil!

Registar nova conta

Entra

Já tem conta? Inicie sessão aqui.

Entrar Agora


×

Aviso Sobre Cookies

Ao usar este site você aceita a nossa Política de Privacidade