Olá pessoal hoje aprenderemos o nosso ultimo comando de tomada
de decisão o COND, apesar de ser um pouco mais complicado que o IF ele é de
entendimento mais fácil, mais complicado por causa da sua sintaxe, muito
programadores iniciantes (isso também aconteceu comigo) preferem utilizar o COND
ao IF por acharem que ele é melhor e mais fácil, porem com o passar do tempo se
percebe que o COND torna o programa difícil de ser interpretado e ele pode não
atender a todas as condições possíveis, as vezes (quase sempre) é melhor usar IF
alinhados (aprenderemos na aula de exercícios), então tomem cuidado COND demais
pode atrapalhar os seus programas, prefira sempre o IF.
A função COND executa blocos de programação se o mesmo atender
as condições especificadas, podemos ter quantas condições quisermos, é possível
ainda criar um bloco de informação para que o mesmo seja executado se nenhuma
das condições for atendida.
(cond
((<condição 1>)
(bloco de programação da condição 1)
)
((<condição 2>)
(bloco de programação da condição 2)
)
((<condição N>)
(bloco de programação da condição N)
)
(T
(bloco de informação caso nenhuma das condições acima tenha sido atendidas)
)
)
Realmente olhando a sintaxe do COND ela realmente assusta,
talvez no final dessa leitura você ainda fique assustado, porem garanto que na
vídeo-aula tudo parecera mais simples.
Nada melhor que um exemplo para que consigamos entender melhor
o COND.
Exemplo 1:
Vamos criar um programa que o usuário escolha entre circulo,
linha ou texto e dependendo da escolha o programa rodara o fluxo de informação
escolhida, nesse exemplo não vamos criar uma condição caso nenhuma das condições
seja satisfatória, faremos isso no próximo exemplo.
(setq opcao (getstring "\nEscolha <Circle/Linha/Texto>: "))
(cond
((or (= opcao "c") (= opcao "C"))
(setq pt1 (getpoint "\nClique no local desejado: "))
(command "circle" pt1 10)
)
((or (= opcao "l") (= opcao "L"))
(setq pt1 (getpoint "\nClique no primeiro ponto: "))
(setq pt2 (getpoint pt1 "\nClique no segundo ponto: "))
(command "line" pt1 pt2 "")
)
((or (= opcao "t") (= opcao "T"))
(setq pt1 (getpoint "\nClique no local desejado: "))
(command "text" pt1 "2" "0" "Exemplo")
)
)
(princ)
)
No exemplo acima, caso o usuário digite C (em amarelo), L (em
verde) ou T (em laranja) ele executara um bloco de programação especifico, porém
nada acontecera caso nenhuma das condições seja atendida, no exemplo abaixo
mostrarei como criar um bloco programação caso isso aconteça.
(defun c:exc2()
(setq opcao (getstring "\nEscolha <Circle/Linha/Texto>: "))
(cond
((or (= opcao "c") (= opcao "C"))
(setq pt1 (getpoint "\nClique no local desejado: "))
(command "circle" pt1 10)
)
((or (= opcao "l") (= opcao "L"))
(setq pt1 (getpoint "\nClique no primeiro ponto: "))
(setq pt2 (getpoint pt1 "\nClique no segundo ponto: "))
(command "line" pt1 pt2 "")
)
((or (= opcao "t") (= opcao "T"))
(setq pt1 (getpoint "\nClique no local desejado: "))
(command "text" pt1 "2" "0" "Exemplo")
)
(t
(prompt "\nNenhuma das opções válidas foi selecionada.")
)
)
(princ)
)
No exemplo acima, caso o usuário digite C (em amarelo), L (em
verde) ou T (em laranja) ele executara um bloco de programação especifico, porem
se nenhuma dessas opções for escolhida ele fara o bloco de programação na cor
vermelha, nesse caso ele emitira uma mensagem na linha de comando informando que
nenhuma das opções válidas foi selecionada.
Nesse exemplo o usuário vai digitar uma idade e vamos informar
para ele se ele é uma criança, adolescente, adulto ou idoso.
(setq idade (getint "\nDigite a sua idade: "))
(cond
((and (>= idade 0)(<= idade 12))
(alert "Voce é uma criança!!!")
)
((and (> idade 12)(<= idade 17))
(alert "Voce é um adolecente!!!")
)
((and (> idade 17)(<= idade 50))
(alert "Voce é um adulto!!!")
)
((> idade 50)
(alert "Voce é um idoso!!!")
)
)
(princ)
)
Esse é o ultimo comando de tomada de decisões, na próxima aula
faremos alguns exercícios comentados para fixação do assunto.
Abaixo segue o link dessa vídeo Aula no meu canal Manual de Cad
no youtube.
https://www.youtube.com/watch?v=d2KB8Em3_wM&feature=youtu.be
Espero que tenham gostado.
Sergio Fernandes
Manual de Cad
Nenhum comentário:
Postar um comentário