Sem dúvida, o maior problema na aplicação dos símbolos de programação paramétrica não está em não saber o seu significado mas como aplicá-lo ao contexto desejado. Por experiência, posso dizer que o problema identifica-se na falta de clareza sobre o que se deseja implementar. Não é para ser mais ou menos inteligente do que os outros, mas para ser menos experiente, quer dizer incapaz de expressar uma ideia , um pensamento na forma correta. Ninguém pode dar regras certas, únicas, que podem resolver todos os problemas relacionados com as diferentes condições (não é este o maior problema), mas com certeza podemos refletir sobre regras gerais, que devem ser aplicadas , na forma adequada, com a situação que temos na frente. Eu não quero falar sobre programação lógica, mas enfrentar de uma forma elementar a transformação pensamento/símbolo.
Primeiro passo: esclarecer o problema.
Segundo passo: a transformação natural na forma especificada (programação paramétrica ) .
Os operadores lógicos são símbolos que traduzem um conceito, um pensamento, através alguns símbolos mnemônicos .
Se Carlos é mais alto do que eu, então ...
Aqui temos uma comparação de altura entre duas pessoas; segue uma ação (então) . No lugar das palavras vamos usar a forma paramétrica
Se -> IF
Carlos -> # 100
alto (maior ) -> GT
eu- > # 101
então -> THEN
IF [ #100 GT #101] THEN...
Um conceito verbal foi transformado em linguagem simbólica !
Como surge, portanto, a escolha de um símbolo em vez de outro ?
Tudo nasce por um pensamento que deve ser a expressão do que queremos fazer !
Vamos realizar o caminho inverso, ou seja simbolo/palavra
IF [#100 NE #101] THEN...
IF -->> se
#100 -->> Carlos
NE -->> diferente
#101 -->> eu
THEN -->> então
em seguida, se Carlos é diferente de mim ( eu), então ...
Diferente não significa maior (não apenas isto) por isso temos que considerar o conceito escrito errado ( não é o mesmo pensamento escrito acima).
Esta é a base para a escolha de cada símbolo; complexa ou menos que seja a expressão condicional.
Um pensamento vai ser transformado por símbolos... mas frequentemente é o pensamento lógico que falta!
Os operadores lógicos aplicados a IF ou GOTO são simples de entender (seguem a expressão verbal). Quando você entra no mundo dos ciclos as coisas ficam complicadas (mas só aparentemente).
Também para os ciclos o discurso é o mesmo: expressão verbal - >> conceito lógico .
Suponha-se analisar as relações de altura entre Carlos e eu ao longo dos anos .
Se Carlos é mais alto do que eu, então ... (2000)
Se Carlos é mais alto do que eu, então ... (2001)
Se Carlos é mais alto do que eu, então ... (2002)
Se Carlos é mais alto do que eu, então ... (2003)
Se Carlos é mais alto do que eu, então ... (2004)
Se Carlos é mais alto do que eu, então ... (2005)
................... .....
Como você pode ver , nada muda , exceto o fato de que temos que repetir varias vezes a mesma operação ( se Carlos é mais alto do que eu) .
Um ciclo não é uma expressão simples, mas uma sequência lógica de operações que normalmente são repetidas (ou deveriam ser repetidas) .
Um ciclo tem um começo, uma avaliação para uma iteração , e um fim.
No exemplo acima escrito: o que é o início do ciclo ?
Poderia ser uma data , por exemplo 1970, quando Carlos e eu tínhamos 5 anos.
O que é a condição de avaliação que serve para determinar a continuação , ou o fim do ciclo ?
A comparação entre as alturas. Por exemplo, se Carlos é mais alto que eu o ciclo vai ser repetido. Pelo contrário, quando eu ficar mais alto que o Carlos o ciclo vai terminar. Quando é preciso realizar uma comparação , utilizamos operadores lógicos que nos permitem estabelecer as relações corretas entre as variáveis em uso (no caso entre eu e Carlos ) . O fim de um ciclo é identificado com o símbolo END, fim. O que é importante notar é o uso dos operadores lógicos : qual usar ? NE, GT , LT ... claro depende das relações que queremos aplicar !
Se Carlos é maior - >> GT (maior que)
Se Carlos é menor - >> LT (menor )
Se Carlos é diferente - >> NE ( não igual)
Cada símbolo tem um significado, sabendo-o podemos escrever uma relação lógica !
O significado do símbolo deve expressar nossa ideia, caso contrário vamos ter resultados inesperados !
Este exemplo mostra como o verdadeiro problema é aplicar o conceito e não tanto em saber o seu significado.
Tem mais um problema!!
Um aspecto importante é que somos livres para construir uma expressão complexa de jeito pessoal: não existe uma solução única , muitas vezes o mesmo conceito é expresso pelo uso de símbolos diferentes.
Se Carlos é menor do que eu .... ou ... Se eu sou maior do que Carlos
As duas expressões usam símbolos diferentes , mas certamente expressam o mesmo conceito
IF [ #100 LT #101] THEN ...
IF [ #101 GT #100] THEN ...
Considere o caso de uma interpolação helicoidal, e vamos tomar a estratégia.
Este movimento é composto de uma interpolação circular com movimento perpendicular à superfície de trabalho (G17, plano formado pelo eixos X e Y, movimento normal ao longo do eixo Z ). Vamos escrever o movimento a ser realizado
G03 X Y I J Z (G03 I/J Z)
Bem, este movimento terá que ser repetido algumas vezes e a condição de repetição deve ser avaliada por um operador lógico. Qual operador deve-se usar? A resposta só pode ser dada depois de ter escolhido a condição de início do loop.
Para executar e monitorar um ciclo normalmente é usada uma variável como contator, que dizer uma variável que muda o seu valor sistematicamente após a repetição do ciclo.
A variável pode ser acrescentada, diminuída ou pode ser una expressão complexa com resultado qualquer.
#100=1(valor inicial contator)
#100=#100+1 (aumento variável)
#100=10(valor inicial contator)
#100=#100-1 (diminuição variável)
#100=[ expressão matemática ou logica ] (valor inicial contator)
#100=#100+[ expressão matemática ou logica ] (mudança valor seguindo una regra)
A variável pode também não existir!
Este discurso sobre a aparência inicial de uma variável pode parecer abstrato, mas não é assim! E ' este valor ( e o método de variação) que determina o operador lógico que você vai escolher no ciclo WHILE.
Exemplos!
#100 = 0 (contator )
WHILE [#100NE10 ] DO1 ( condição de loop )
G91GO2I - 20Z -1 ( interpolação helicoidal)
#100 = #100 +1 ( aumento contator )
END1 (fim )
A cada loop se controla o valor de #100 para ver se fica diferente ou igual a 10.
#100 é diferente de 10?
Não, termina o ciclo !
Sim, continua a repetir!
O operador escolhido (NE) reflete a ideia que até que #100 for diferente de 10, o ciclo deverá continuar.
O mesmo exemplo pondo #100=10
#100 = 10
WHILE[#100NE0]DO1
G91GO2I - 20Z -1
#100 = #100-1
END1
ou em outras formas
#100 = 0 (contator )
WHILE[# 100EQ10 ] DO1
G91GO2I - 20Z -1
#100 = #100 +1
END1 (fim )
#100 = 10
WHILE[#100EQ0 ] DO1
G91GO2I - 20Z -1
#100 = #100-1
END1
o programa não muda , sempre verifica-se a igualdade!
Estes exemplos são todos válidos e corretos ....
Não há uma única maneira de escrever ou um jeito melhor que outro .. tudo depende de nós!
Este raciocínio também se aplica à situação complexa , o método não muda !
Os operadores lógicos deve ser utilizado refletindo o que queremos fazer e sua escolha depende da nossa escritura.
No fórum há vários exemplos de programas paramétricos que usam expressões lógicas. Um bom exercício para aprender o uso dos operadores lógicos é ler e entender os programas escritos por outros. Querendo saber porque foi feita uma escolha em detrimento de outra , pergunte-se se você pode encontrar uma ortografia diferente , tente variar a escrita ...
Aprende-se muito lendo programas escritos por outras pessoas , mas lembre-se que não existem formas únicas ou melhores modos de escrever programas paramétricos!
Com a experiência você vai adquirir o conceito de lógica de programação e você será capaz de escolher facilmente os operadores lógicos