Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- <!DOCTYPE html>
- <html lang="en">
- <head>
- <meta charset="UTF-8">
- <title>Operadores Booleanos</title>
- <!--
- e, ou, negação
- e-lógico, ou-lógico, negação-lógica
- e-booleano, ou-booleano, negação-boolena
- logical-and, logical-or, logical-negation
- Sendo estes operadores booleanos, trabalham sobre
- operandos booleanos = {true, false}
- e-lógico : uma expressão lógica só é verdadeira se
- TODOS os operandos foram true
- Basta haver um operando false para que o resultado
- seja false. Ou seja, o false é o elemento absorvente
- do e-lógico. O true é o seu elemento neutro.
- ou-lógico : uma expressão lógica só é false se
- TODOS os operadores forem false
- Basta haver um operando true, para que o resultado
- da operação seja true
- O true é o elemento absorvente do ou.
- O false é o elemento neutro do ou.
- operando-esquerdo operando-direito resultado da operação
- E-lógico
- t t = true
- t f = false
- f t = false
- f f = false
- Ou-lógico
- operando-esquerdo operando-direito resultado da operação
- t t = true
- t f = true
- f t = true
- f f = false
- !true = false
- !false = true
- interpretação de inteiros para booleanos
- 0 significa false
- !=0 significa true
- "" significa false
- !="" significa true
- -->
- <script>
- function $(pId){return document.getElementById(pId);}
- window.onload = boot;
- const
- ID_SELECT_OPERANDO_ESQUERDO = "idSelectOperandoEsquerdo",
- ID_SELECT_OPERANDO_DIREITO = "idSelectOperandoDireito",
- ID_SELECT_OPERADOR = "idSelectOperador",
- ID_BTN_CALCULAR = "idBtnCalcular",
- ID_SECTION_FEEDBACK = "idSectionFeedback";
- var oSelectOpe,
- oSelectOpd,
- oSelectOp,
- oBtnCalcular,
- oSectionFeedback;
- function boot(){
- //var password = document.nameForm.namePassword.value;
- oSelectOpe = $(ID_SELECT_OPERANDO_ESQUERDO);
- oSelectOpd = $(ID_SELECT_OPERANDO_DIREITO);
- oSelectOp = $(ID_SELECT_OPERADOR);
- oBtnCalcular = $(ID_BTN_CALCULAR);
- oSectionFeedback = $(ID_SECTION_FEEDBACK);
- oBtnCalcular.onclick = calcular;
- }
- function calcular(){
- var strExp = oSelectOpe.value + oSelectOp.value + oSelectOpd.value;
- var resultado = eval(strExp);
- var strFraseDeResposta =
- strExp + " = <mark>" + resultado + "</mark>";
- //window.alert(resultado);
- oSectionFeedback.innerHTML = strFraseDeResposta + "<br>" +
- oSectionFeedback.innerHTML;
- avcVsCc();
- }//calcular
- //código para se perceber o que é, e qual diferença
- //entre "avaliação completa" e "avaliação por curto circuito"
- function avcVsCc (){
- var bDiaCinzento = true;
- var bTRex = false;
- var b3; //undefined
- var e1cc = bDiaCinzento || bTRex; //true
- var e2cc = bDiaCinzento && bTRex; //false
- var e1avc = bDiaCinzento | bTRex; //1
- var e2avc = bDiaCinzento & bTRex; //0
- oSectionFeedback.innerHTML+="<br>e1cc="+e1cc+
- "<br>e2cc="+e2cc;
- oSectionFeedback.innerHTML+="<br>e1avc="+e1avc+
- "<br>e2avc="+e2avc;
- var e3 = e1cc || (b3=e2cc); //b3 undefined
- var e3 = e1cc | (b3=e2cc); //b3 false
- //PORQUÊ?
- //nas avaliações completas ( | ou &)
- //a computação não pode saltar circuitos
- //não pode saltar parciais
- //Todas as sub-expressões terão que ser
- //calculadas
- alert (b3);
- var resultado = (r1=alg1()) & (r2=alg2()) | (r3=alg3());
- }//avcVsCc
- function fimDaConversaSobreOperadoresBooleanos(){
- var r = !true; //false
- r = !r; //true
- r = !!r; //true
- r = ! (r || false); //false
- r = !r || false; //true
- }//fimDaConversaSobreOperadoresBooleanos
- </script>
- </head>
- <!--
- regras CGI
- #1) só são comunicados inputs que tenham name
- #2) consoante o enctype, os dados são codificados de alguma maneira
- no default enctype, são codificados assim:
- nome1=v1&nome2=v2&nome=v3
- <input
- type="password"
- id="idPassword"
- name="namePassword"
- value="1234"
- >
- <br>
- <input type="file" name="nameFile">
- enctype="multipart/form-data"
- -->
- <form
- name="nameForm"
- method="get"
- enctype="application/x-www-form-urlencoded"
- >
- <!-- operando booleano esquerdo -->
- <select
- id="idSelectOperandoEsquerdo"
- name="nameOperandoEsquerdo"
- >
- <option value="true">true</option>
- <option value="false">false</option>
- </select>
- <!-- operador booleano -->
- <!--
- & ampersand "e-comercial"
- | pipe "barra vertical"
- -->
- <select
- id="idSelectOperador"
- name="nameSelectOperador"
- >
- <option value="&&">e-lógico curto-circuito</option>
- <option value="&">e-lógico completo</option>
- <option selected value="||">ou-lógico curto-circuito</option>
- <option value="|">ou-lógico completo</option>
- </select>
- <!-- operando booleano direito -->
- <select
- id="idSelectOperandoDireito"
- name="nameSelectOperandoDireito"
- >
- <option value="true">true</option>
- <option value="false">false</option>
- </select>
- <input type="button" id="idBtnCalcular" value="calcular">
- <!--
- <input type="submit" value="calcular">
- -->
- </form>
- <hr>
- <section id="idSectionFeedback">
- </section>
- <body>
- </body>
- </html>
- ******
- <!DOCTYPE html>
- <html lang="en">
- <head>
- <meta charset="UTF-8">
- <title>Operadores Relacionais</title>
- </head>
- <body>
- <!--
- > maior
- >= maior ou-lógico idêntico
- < menor
- <= menor ou-lógico idêntico
- == idêntico
- != diferente
- === estritamente idêntico
- !== estritamente diferente
- -->
- </body>
- </html>
- **
- <!DOCTYPE html>
- <html lang="en">
- <head>
- <meta charset="UTF-8">
- <title>Operadores Relacionais</title>
- </head>
- <body>
- <!--
- Todos os operadores relacionais computam
- sempre e apenas um booleano (true ou false)
- Todos operam entre operandos não necessariamente
- numéricos
- > maior
- >= maior ou-lógico idêntico
- < menor
- <= menor ou-lógico idêntico
- == idêntico
- != diferente
- === estritamente idêntico
- !== estritamente diferente
- -->
- <script>
- function ex1() {
- var n1 = 10, n2 = 10;
- var bMaior = n1 > n2; //10>10 false
- var bMaiorOuIdentico = n1 >= n2; //10>=10 <=> "(10>10) || (10==10)" <=> true
- var bMenor = n1 < n2; //10<10 false
- var bMenorOuIdentico = n1 <= n2; //10<=10 true
- var bIdentico = n1 == n2; //10==10 true
- var bDiferente = n1 != n2; //10!=10 false
- var bEstritamenteIdentico = n1===n2; //true
- var bEstritamenteDiferente = n1!==n2; //false
- }
- function ex2() {
- var n1 = 10, n2 = "10";
- var bMaior = n1 > n2; //10>"10" false
- var bMaiorOuIdentico = n1 >= n2; //10>="10" true
- var bMenor = n1 < n2; //10<"10" false
- var bMenorOuIdentico = n1 <= n2; //10<="10" true
- var bIdentico = n1 == n2; //10=="10" true
- var bDiferente = n1 != n2; //10!="10" false
- var bEstritamenteIdentico = n1===n2; //false, pq não têm o mesmo typeof
- var bEstritamenteDiferente = n1!==n2; //true
- }
- ex2();
- </script>
- </body>
- </html>
- ****
- ~<!DOCTYPE html>
- <html lang="en">
- <head>
- <meta charset="UTF-8">
- <title>Radio Buttons in Action</title>
- <script>
- window.onload = boot;
- const ID_TEXT_NAME = "idTextName",
- ID_BTN_RESPONDER ="idBtnResponder";
- var oTextName, oBtnResponder;
- function rbValue(
- pNomeDaEquipaDeRbs
- ){
- // [0=> morango, 1=> melancia, 2=>ameixa, 3=>kiwi]
- var equipaRbs =
- document.getElementsByName(pNomeDaEquipaDeRbs);
- var iQuantosElementosHaNaEquipa =
- equipaRbs.length;
- for (var idx=0; idx<iQuantosElementosHaNaEquipa; idx++){
- var elementoDoMomento = equipaRbs[idx];
- var bChecked = elementoDoMomento.checked;
- if (bChecked){
- return elementoDoMomento.value;
- }
- }
- return false;
- }//rbValue
- function boot(){
- oTextName = document.getElementById(ID_TEXT_NAME);
- oBtnResponder = document.getElementById
- (ID_BTN_RESPONDER);
- oBtnResponder.onclick=function(){
- window.alert(
- oTextName.value + " respondeu"
- );
- }
- }
- </script>
- </head>
- <body>
- <!--
- Radio Buttons são mecanismos de interface tipicamente
- utilizados para colher resposta "mutuamente exclusivas"
- quer dizer: escolher uma, implica automaticamente
- deseleccionar as outras
- MAS para que este comportamento efetivamente aconteça
- todos os radio buttons que queiramos que se comportem
- como uma equipa terão que ter o MESMO NAME
- (não o mesmo id)
- O MESMO NAME
- -->
- <form>
- <input type="text" id="idTextName" value="Joaquim">
- <br>
- <fieldset>
- <legend>Qual a tua fruta favorita?</legend>
- <input type="radio" id="idMorango" name="radioFrutas" value="morango">
- <label for="idMorango">Morango</label><br>
- <!-- TODO - melhorar semanticamente -->
- <input type="radio" id="idMelancia" name="radioFrutas" value="melancia">Melancia<br>
- <input type="radio" id="idAmeixa" name="radioFrutas" value="ameixa">Ameixa<br>
- <input checked type="radio" id="idKiwi" name="radioFrutas" value="kiwi">Kiwi<br>
- </fieldset>
- <input type="button" value="responder" id="idBtnResponder">
- </form>
- </body>
- </html>
- **
- <!DOCTYPE html>
- <html lang="en">
- <head>
- <meta charset="UTF-8">
- <title>Radio Buttons in Action</title>
- <script>
- window.onload = boot;
- const ID_TEXT_NAME = "idTextName",
- ID_BTN_RESPONDER ="idBtnResponder";
- var oTextName, oBtnResponder;
- function rbValue(
- pNomeDaEquipaDeRbs
- ){
- // [0=> morango, 1=> melancia, 2=>ameixa, 3=>kiwi]
- var equipaRbs =
- document.getElementsByName(pNomeDaEquipaDeRbs);
- var iQuantosElementosHaNaEquipa =
- equipaRbs.length;
- for (var idx=0; idx<iQuantosElementosHaNaEquipa; idx++){
- var elementoDoMomento = equipaRbs[idx];
- var bChecked = elementoDoMomento.checked;
- if (bChecked){
- return elementoDoMomento.value;
- }
- }
- return false;
- }//rbValue
- function boot(){
- oTextName = document.getElementById(ID_TEXT_NAME);
- oBtnResponder = document.getElementById
- (ID_BTN_RESPONDER);
- oBtnResponder.onclick=function(){
- var resposta = rbValue("radioFrutas");
- window.alert(
- oTextName.value + " respondeu "+resposta
- );
- }
- }
- </script>
- </head>
- <body>
- <!--
- Radio Buttons são mecanismos de interface tipicamente
- utilizados para colher resposta "mutuamente exclusivas"
- quer dizer: escolher uma, implica automaticamente
- deseleccionar as outras
- MAS para que este comportamento efetivamente aconteça
- todos os radio buttons que queiramos que se comportem
- como uma equipa terão que ter o MESMO NAME
- (não o mesmo id)
- O MESMO NAME
- -->
- <form>
- <input type="text" id="idTextName" value="Joaquim">
- <br>
- <fieldset>
- <legend>Qual a tua fruta favorita?</legend>
- <input type="radio" id="idMorango" name="radioFrutas" value="morango">
- <label for="idMorango">Morango</label><br>
- <!-- TODO - melhorar semanticamente -->
- <input type="radio" id="idMelancia" name="radioFrutas" value="melancia">Melancia<br>
- <input type="radio" id="idAmeixa" name="radioFrutas" value="ameixa">Ameixa<br>
- <input checked type="radio" id="idKiwi" name="radioFrutas" value="kiwi">Kiwi<br>
- </fieldset>
- <input type="button" value="responder" id="idBtnResponder">
- </form>
- </body>
- </html>
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement