quinta-feira, 28 de setembro de 2023

004 - Pausa Para Um Vocabulário I

 


Vamos definir aqui algumas palavras e algumas regrinhas de sintaxe. Você não precisa necessariamente memorizar tudo, só leia e você pode voltar aqui depois se precisar.

A coisa mais básica são as instruções. O que separa as instruções é o ponto-e-vírgula.

 

var x = 5 + 7;

var oTexto = "Ajude quem precisa de você ;)";

 

Isso aí em cima são duas instruções. São expressões que mandam o computador realizar uma operação. No caso, atribuir o valor de 5 + 7 à variável x (ele vai fazer a operação matemática primeiro e simplesmente atribuir 12) e atribuir esse texto à variável oTexto.

Note que eu coloquei ponto-e-vírgula e parênteses na String, mas como eles estão dentro das aspas, não vão ter sua função normal, vão ser apenas texto.

Outra coisa importante: Eu podia ter escrito assim:

 

var x=5+7;var oTexto="Ajude quem precisa de você ;)";

 

O computador iria entender da mesma forma. Os espaços e a separação por linhas servem pra nós, humanos, conseguirmos ler o programa mais facilmente.

 

O conteúdo que atribuímos à segunda variável é diferente do da primeira. A primeira contém uma “integer” (às vezes é mais fácil usar o nome em inglês do que ficar tentando traduzir), um número inteiro, e a segunda uma “String”, uma simples sequência de caracteres. Um texto.

Agora uma função:

 

maiorQueCinco = function (numero) {

            if (numero > 5) {

                        return true;

            }

            return false;

}

 

Uma função, como eu disse antes, é uma maquininha dentro da máquina que é o programa todo. Você chama essa função sempre que precisar realizar aquela sequência de instruções. Isso é bom, porque assim você não precisa ficar repetindo aquele código um monte de vezes dentro do programa. Cada vez que precisa daquela operação, chama a função, e pode passar uma entrada, que chamamos de parâmetro, diferente, cada vez.

Essa função específica que eu escrevi aí em cima pega o parâmetro que chamamos de “numero” e, através de uma instrução condicional “if”, responde com sim ou não à pergunta: a entrada é maior que 5?

Em linguagem de computador, na verdade, ela responde como “true” ou “false”. Verdadeiro ou falso.

Então se eu escrever:

 

var x = 7;

If ( maiorQueCinco(x) ) {

            window.console.log("Puxa, é maior que cinco.");

} else {

            window.console.log("Não, não, é menor.");

}

Ele vai responder de acordo com o valor de x.

 

Por agora é só. Quanto aos loops, eu volto a eles logo, quando vou falar de um outro tipo de loop que existe além do “while”: o loop “for”.

 

 


sábado, 29 de julho de 2023

003 – 3 Coisas que o Computador faz (Parte 2, com uma quarta coisa)

 

  

             Eu te peço um pouco de paciência, porque isso aqui é legal.

                A terceira coisa é o Loop, mas antes eu vou falar da quarta, que se chama função, ou, em algumas linguagens, método. Eu vou chamar de função.

                Você deve ter percebido que um programa de computador é como uma máquina que você constrói com palavras e símbolos para obter um certo resultado.

                Pois bem, uma função é uma maquininha dentro da máquina.

 

Quarta Coisa

 

                Vamos fazer um novo html igual o de ontem, chamar de qualquer coisa, e criar um novo arquivo javascript. Só não esqueça que tem que ser alguma coisa ponto js ( .js ) , tem que estar na mesma pasta e tem que ter o nome desse novo arquivo JS no html, aqui:

 

<!doctype html>

<html>

                <head>

                               <meta charset="utf-8">

                               <script src="aqui vai o nome do arquivo .js, entre aspas"></script>

                               <title>O título da aba</title>

                <head>

 

                <body>

                               <h1> O texto maior </h1>

                               <p>

                               O páragrafo, ou texto menor.

                               </p>

                <body>

</html>

 

                Certo, e o que vamos colocar no arquivo JS?

                Isso:

window.onload = function() {

                window.console.log("eu sou uma função");

}

 

                Abra o html pelo explorer e aperte F12. Viu?

                Window.onload é uma função que o browser chama quando a página é aberta. Uma maquininha dentro da máquina. Agora, dentro dessa maquininha vamos chamar outras.

 

window.onload = function() {

                lavar("cabelo");

                escovar("cabelo");

                escovar("dente");

}

 

                Salve e abra o html de novo e aperte F12.

                Deu erro, porque a gente não definiu essas funções, essas maquininhas, como a gente definiu window.onload. Vamos definir.

                Mantenha a função window.onload como está e escreva abaixo:

 

lavar = function(entrada) {

                window.console.log("Estou lavando meu " + entrada);

}

 

                Entrada é o que você colocar na máquina, o parâmetro da função. Tanto que vamos definir a função escovar assim:

 

escovar = function(entrada) {

                window.console.log("Estou escovando meu " + entrada);

}

                E, como estamos passando parâmetros diferentes, o resultado vai ser diferente. Abra o arquivo de novo e aperte F12.

                Viu?

 

Seguindo as regras do Shampoo

 

                Agora vamos trabalhar dentro da função lavar(“cabelo”), seguindo as instruções do shampoo. Vamos apagar o que está dentro dela e deixar ela assim:

 

lavar = function(entrada) {

                molhar(entrada);

                aplicar("Shampoo");

                enxaguar(entrada);

                repetir();

}

                Perceba que o que a gente passar como entrada pra função lavar, ela vai passar como entrada para as funções que estão dentro dela.

                Agora, vamos criar essas novas maquininhas. Embaixo de tudo que você escreveu, complete assim:

 

molhar = function(entrada) {

                window.console.log("Estou molhando meu " + entrada);

}

 

aplicar = function(entrada) {

                window.console.log("Estou aplicando o " + entrada);

}

 

enxaguar = function(entrada) {

                window.console.log("Estou enxaguando meu " + entrada);

}

                Certo, e a função repetir? Vamos declarar ela assim:

 

repetir = function() {

                lavar("cabelo");

}

 

                Quando a gente deixa os parênteses em function() vazios, significa que essa função não precisa de entrada.

                Agora rode a página de novo e aperte F12.

                Viu? O computador deu meio que um bug, porque a gente mandou ele lavar o cabelo pra sempre. Ele entrou em um Loop.

 

Terceira Coisa

 

                Mas as pessoas do shampoo perceberam que não é justo deixar a gente lavando o cabelo eternamente, então depois do “repetir”, eles adicionaram: “se necessário”.

                Também podemos fazer algo assim para tirar nosso programa de seu loop infinito.

                E para isso vamos usar a linguagem que aprendemos em nossa aula passada, o condicional (“if”):

 

lavar = function(entrada) {

                molhar(entrada);

                aplicar("Shampoo");

                enxaguar(entrada);

                if ( necessario() ) {

                               repetir();

                }

}

                A função necessario() vai ser uma maquininha que responde sim ou não.

                Antes de criar ela, vamos declarar uma variável global. É uma variável que é iniciada fora da função. Se a gente declara uma variável dentro da função, ela vai funcionar só dentro da função e nas funções que estão dentro dessa função, e não nas funções que estão “acima” ou no programa como um todo.

                Então vai lá em cima de tudo, antes mesmo da função window.onload() e escreva:

 

var limpeza = 0;

 

                É a variável que nos diz quanto porcento do cabelo está limpo.

                Vamos adicionar a seguinte linha à função lavar(entrada):

 

lavar = function(entrada) {

                molhar(entrada);

                aplicar("Shampoo");

                enxaguar(entrada);

                limpeza = limpeza + 20;

                if ( necessario() ) {

                               repetir();

                }

}

                Frase estranha? A gente não está afirmando que limpeza, no momento, é igual limpeza mais 20, o que seria mesmo esquisito, a gente está dando um novo valor pra ela: a partir de agora, “limpeza” vai ser igual o valor atual de “limpeza” mais 20. Se era 0, agora é 20, se era 20, agora é 40, e assim por diante.

                Agora vamos criar a função necessario(), lá embaixo:

 

necessario = function() {

                return ( limpeza < 100 );

}

 

                Ela vai retornar um sim ou não. Ela vai retornar a resposta da pergunta: limpeza é menor que 100? “<” significa menor.

                Assim, a cada volta do loop, ele aumenta a limpeza em 20 e checa se o valor ainda está menor que 100.

                Agora rode a página. Viu? Ele sabe que a cada lavada, a limpeza aumentou em 20 porcento. Então só lavou 5 vezes. Já é alguma coisa.

 

Um jeito melhor de fazer um Loop

 

                Mas essa não é a maneira mais prática de fazer um loop. A gente pode apagar a função necessário() e deixar a função lavar() assim:

 

lavar = function(entrada) {

                while (limpeza < 100) {

                               molhar(entrada);

                               aplicar("Shampoo");

                               enxaguar(entrada);

                               limpeza = limpeza + 50;

                }

}

                “While”. “Enquanto”. É uma expressão que nos diz simplesmente que, enquanto limpeza for menor que 100, devemos ficar repetindo tudo o que está entre os { }.

                Na verdade, a gente pode até tirar a variável limpeza do seu nível global (apagar a parte em que declaramos ela lá em cima), e usar ela dentro da função lavar mesmo:

 

lavar = function(entrada) {

                var limpeza = 0;

                while (limpeza < 100) {

                               molhar(entrada);

                               aplicar("Shampoo");

                               enxaguar(entrada);

                               limpeza = limpeza + 50;

                }

}

                Pronto. Rode a página. Eu mudei o número de 20 para 50. Agora ele lava o cabelo duas vezes. Está bom. Se é que precisa mesmo.

                Até a próxima, vamos falar um pouco mais de loops.