Introdução à lógica de programação com JavaScript

Olá, meu nome é Emerson Dias e estou estudando algoritmos e lógica de programação através do Curso em Vídeo, um projeto muito fera do Gustavo Guanabara.

Essa série de vídeos é uma introdução a esse conteúdo, que é apresentado em portugol (um pseudocódigo de programação criado apenas para fins de aprendizado) e vou convertê-lo em JavaScript além de tentar explicar com minhas palavras os termos e conceitos que são usados na área.

Minha intenção é poder fazer isso não só para este mas para toda a trilha de vídeos em que o Gustavo introduz o assunto de algoritmos, assim aproveitamos para tanto exercitar a lógica quanto para aprender uma linguagem de programação.

Para quem quiser assistir os vídeos antes de continuar a leitura:

O que é um algoritmo?

Quando a gente lê de primeira, já bate aquele desespero. Vem à cabeça aquela imagem de uma lousa gigante, repleta de números e letras que só aquele professor de jaleco branco de QI 3 milhões consegue entender, criar e explicar. Mas quando percebemos que fazemos algoritmos a todo momento, inconscientemente, percebemos que ele não tem que ser esse monstro que desenhamos em nossa cabeça.

Vamos para um exemplo (adoro exemplos!): você chega em casa morrendo de fome e logo pensa em algo para comer que rápido e fácil de fazer, além de ser gostoso. Qual a primeira coisa que vem à mente? Um miojão salvador! Daí, você que já está acostumado a almoçar e jantar essa maravilha, já sabe o que fazer:

  1. Pegar uma panela;
  2. Colocar um pouco de água;
  3. Colocar a panela em cima da boca do fogão;
  4. Ligar o fogo;
  5. Abrir o armário da cozinha;
  6. Pegar o pacote de miojo;
  7. Abrir o pacote de miojo;
  8. Retirar o macarrão do pacote;
  9. Colocar o macarrão na panela;
  10. Passados mais ou menos 2 ou 3 minutos, abrir o saquinho de tempero e colocar na panela com macarrão;
  11. Pegar uma colher (ou algo do tipo) para mexer o macarrão;
  12. Esperar mais 1 ou 2 minutos e desligar o fogo;
  13. Pegar um prato;
  14. Colocar o miojo no prato;
  15. Pegar um garfo;
  16. Comer e sentir bem com você mesmo! :D

Todo esse processo que você fez, faz ou fará um dia é um algorítimo, ou seja, algoritmo é uma sequência lógica de passos que são executados para um determinado fim.

Com programação é a mesma coisa.

Tendo como base o vídeo do Guanabara, vamos ver como podemos criar um algoritmo que calcule uma equação do 2º grau. Aí você fala: “Equação do 2º grau? Mas nem lembro dessa jossa e odeio matemática”. — Calma pessoa — A fórmula já existe, vamos apenas jogá-la no nosso código. Mas se você quiser dar uma olhada para relembrar ou para aprender como funciona antes de continuar, é só clicar aqui.

Para poder treinar, escreveremos nossos códigos no repl.it.

Entendendo o problema

Já temos uma fórmula pronta: a estrutura da equação de 2º grau é ax² + bx + c = 0 em que A recebe um número, B recebe outro número e C também recebe um. Recebidos esses valores, faremos uma conta, uma validação e, caso a validação passe, mais uma conta.

  • A primeira conta é para descobrir o valor de delta;
  • Se o valor de delta for negativo, temos que imprimir a mensagem Para delta negativo, não existem raízes reais. e parar por aí;
  • Se for positivo, faremos a segunda conta para descobrir os coeficientes;

Precisamos então achar alguma maneira de guardar esses dados que o usuário irá passar pra gente, trabalhar em cima delas e mostrar o resultado que ele está buscando.

Vamos então guardar os dados passados. Para isso iremos criar variáveis.

Capturando valores do usuário

Precisamos primeiramente guardar o valor que usuário passar para podermos fazer algo com ele. Para isso criaremos uma variável.

Criando uma variável?

Imagine que variáveis são como caixas. Ou seja, no nosso caso guardaremos os valores de a, b e c nessas caixas. Vamos criar primeiramente a variável A. Em JavaScript fazemos isso da seguinte forma:

var valorA;

  • O var indica que queremos criar uma variável;
  • valorA é o nome da variável que escolhemos;
  • ; indica que o comando termina ali;

Note como criamos o nome da variável. Há algumas convenções (padrões combinados entre um grupo de pessoas) que devemos seguir para criá-las:

  • O primeiro caractere deve ser maiúsculo ou minúsculo ou underline ( _ ). Dito isso, tenha em mente que um número não pode ser usado como primeiro caractere;
  • Os demais caracteres devem ser letras, números ou underline ( _ );
  • E tem mais uma última regrinha. O nome da variável não deve ser uma palavra reservada.

Agora, faremos o mesmo para os valores de B e C e também para as possíveis raízes que possam ter, caso o valor de delta passe na validação;

Criadas as variáveis, vamos agora fazer com que o usuário consiga passar as informações pra gente, com o método prompt(). prompt() é um método da própria linguagem do JavaScript. Vamos declará-la:

valorA = prompt("Digite o valor de A");

  • O = fará com que a variável valorA receba o valor que o usuário passar.
  • prompt()faz com que a página abra uma caixa de diálogo com a frase que passamos "Digite o valor de A" quando o programa for executado.

Se você estiver no site que indiquei acima (https://repl.it), pressione os comandos Ctrl + Enter. Abrirá um pop up com a mensagem que passamos com uma caixa de texto para o usuário digitar um valor. Agora, na tela de digitação (à esquerda), digite “a”. O valor que você digitou aparecerá na tela à direita.

Façamos o mesmo para os valores b e c;

var valorB = prompt("Digite o valor de B");
var valorC = prompt("Digite o valor de C");

Já temos os valores que precisamos para dar sequência ao nosso código. Vamos agora calcular o valor do delta, cuja fórmula matemática é b² - 4 * a * c. Para guardar valor do delta, - criaremos uma variável:

var delta;

E faremos com que ela receba o resultado da conta da fórmula;

delta = (valorB * valorB) - 4 * valorA * valorC;

Seguindo a regra matemática, (dá uma olhada nesse link) colocamos o valorB * valorB entre parênteses para que essa multiplicação seja executada primeiro, antes do o resto da conta.

Digite delta; depois dessa declaração;

Até agora temos o seguinte código:

Para podermos visualizar o valor calculado de delta, digitaremos o seguinte comando

console.log(delta)

Para deixar mais claro que este valor se refere ao delta, vamos concatenar uma frase a esse resultado, ou seja, vamos juntar uma frase ao valor de delta:

console.log("Valor de Delta => " + delta);

Usamos "” para indicar que queremos passar um valor do tipo String, ou seja, um texto, além do sinal + para fazer a concatenação da string com o delta.

Validando o valor de delta

Com o valor de delta descoberto, agora fazer uma verificação: se o valor de delta for negativo, exibiremos a mensagem Para delta negativo, não existem raízes reais., se for positivo, seguiremos com as contas para descobrir os valores dos coeficientes.

Percebeu o uso da palavra se? Indica condição, caso seja alguma coisa, será feita alguma coisa, caso seja outra coisa, será feita outra coisa.

Beleza, mas como fica isso no código? Desse jeito:

if(delta < 0)

Vamos, literalmente, ler este código em voz alta: “se if o valor de delta (delta for menor < que zero 0) faremos alguma coisa”.

Certo, já temos nossa condição. Agora precisamos passar o que será feito caso o valor de delta seja menor ou igual a 0.

if(delta < 0){
console.log("Para Delta negativo, não existem raízes reais");
}

Vamos ler o código novamente: “se o valor de delta for negativo, exibiremos uma mensagem para o usuário”. Abrimos chaves {} para inserir qual será o comportamento do código.

Verificando os valores dos coeficientes

Mas e se o delta não for negativo? Ainda precisamos mostrar os coeficientes.

else {
coeficiente1 = (-b + Math.sqrt(delta)) / (2 * a);
coeficiente2 = (-b - Math.sqrt(delta)) / (2 * a);
}

Usando a fórmula de Bháskara, (-b ± √Δ) / 2 * a, “se o delta não for negativo else as variáveis coeficientes1 e coeficientes2 receberão os valores dos coeficientes calculados. Fizemos 2 contas, uma para somar o valor negativo de b -b com a raiz de delta Math.sqrt(delta), que é também uma função própria do JavaScript que serve para calcular a raiz quadrada de um número (não se preocupe com o Math.sqrt por enquanto se você não sabe nada de JavaScript), e outra para subtrair o valor de b do valor de delta. Ambos os valores são divididos pelo resultado da multiplicação de 2 * a.

Precisamos agora mostrar os valores dos coeficientes para o usuário.

console.log("Coeficiente I = " + coeficiente1);
console.log("Coeficiente II = " + coeficiente2);

Nosso código ficou assim

Conclusão

No começo parece difícil, mas a gente só aprende de um jeito: estudando e repetindo. Depois fica natural o jeito que vamos criando o fluxo lógico para resolver um problema. Para próximo artigo, seguindo a trilha do Guanabara, vou fazer um post sobre como calcular a média de notas de um e de mais alunos, além de outros exercícios lógicos que o vídeo passa.

Espero que tenham gostado. Comentem se poderia ter melhorado algo, se está bom dessa maneira que estou escrevendo e se a explicação ficou clara. Valeu pessoal, até a próxima! :D