Instituto Federal de Mato Grosso do SulMarço/2024

IFMS marca

05. Variáveis

Algoritmos 1

Prof. Rodrigo Duran

Nesta aula vamos:


  • Aprender a trabalhar com variáveis de dados em JavaScript

    Hoje nós vamos aprender o que são variáveis e como armazenar valores em variáveis usando uma atribuição. Vamos aprender sobre os tipos de variáveis, como nomear variáveis e alterar valores de variáveis.

Variáveis

Relembrando...


`Metade de 100 é ${100 / 2}`
Metade de 100 é 50

Até agora, os nossos programas eram essencialmente concretos. As expressões não eram dinâmicas pois seu resultado era sempre determinado estaticamente.

Mais do que isso, essas expressões não eram capazes de generalizar um modelo, e lidavam apenas com o caso específico. E se quiséssemos calcular não apenas a metade de 100, mas sim a metade de qualquer número?Geralmente, em fórmulas matemáticas é comum armazenarmos os resultados parciais de um cálculo em um local. Isso possui duas vantagens:

  • Isola elementos e nos permite calculá-los em separado. Pense no Delta na equação de Bhaskara
  • \begin{gather} {\textstyle \ \frac{-b\ \pm \ {\textstyle \sqrt{\Delta }}}{2a}} \notag\\ \Delta \ =\ b^{2} \ -\ 4ac \end{gather}
  • Ao nomear algo, damos sentido (implícito) a isso. Ao ler a equação sabemos o que Delta significa devido ao contexto. Mas o nome Delta, por si só, não tem esse poder. O contexto deve ser confirmado pelo comportamento do programa.

Regra #11: Uma variável é um local na memória do computador que tem um nome. Você pode criar e nomear variáveis no código.

variáveis como etiquetas para dados

Imagine o programa para calcular as seguintes funções aritméticas:

  • O cubo do número 7, ou seja 7 3.
  • O fatorial do número 7, ou seja 7!
  • O fatorial do número 7, ao cubo, ou seja: 7! 3


7*7*7
343
7*6*5*4*3*2*1
5040
(7*6*5*4*3*2*1)*(7*6*5*4*3*2*1)*(7*6*5*4*3*2*1)
128024064000

Regra #12: Uma variável deve ser inicializada ao ser criada! Uma variável nunca fica vazia!

Regra #13: Você pode atribuir algo a uma variável para armazenar um valor na memória.

Regra #14: Uma variável só pode armazenar um valor em um determinado momento.

No JavaScript podemos nomear uma variável usando a palavra reservada let e atribuir um valor a essa variável utilizando a atribuição usando o identificador =

Regra #15: O computador faz a atribuição resolvendo a expressão ("do lado direito") e armazenando um valor na variável destino.

let cubo = 7*7*7
let fatorial = 7*6*5*4*3*2*1
let cuboFatorial = fatorial*fatorial*fatorial

Regra #16: O nome de uma variável é uma expressão.


let pi = 3.141516
console.log(pi)
3.141516

Regra #17: O computador executa os comandos em sequência.


Regra #18: Quando o nome de uma variável aparece como uma expressão, ela é avaliada com o conteúdo daquela variável naquele momento.


let nome = "Fulano de Tal"
nome = "Ciclano de Tal"
console.log(nome)
Ciclano de Tal

Em JavaScript, as atribuições não são resolvidas como equações matemáticas "de uma vez". Siga a Regra #15!

let valor = 20
let outroValor = valor + 10
outroValor = outroValor*2
"O valor final é " + outroValor

Nomeando Variáveis

Programas são feitos para serem lidos por humanos!


Portanto, use nomes de variáveis representativos. Apesar do nome da variável não atribuir diretamente uma função à variável (o programa é responsável por isso) é uma boa ideia usar nomes que nos ajudem a entender o que a variável deveria representar.

Apesar de não ser obrigatório, existe uma convenção de nomenclatura chamada camelCase que nos ajuda a nomear as variáveis: variáveis sempre iniciam com letras minúsculas e quando possuem um nome composto, a primeira letra do nome é capitalizada.

let nome = "Rodrigo"
let segundoNome = "Duran"
  • Não use espaços nos nomes das variáveis. Underline (_) é possível, mas evitamos no camelCase.
  • let minha idade = 23
    Syntax Error: Unexpected identifier (idade)
    let minha_idade = 23

  • Números são permitidos, mas o nome da variável não pode iniciar com um número.
  • let 1variavel = 13
    Error: Invalid or Unexpected token (1variavel)
    let variavel1 = 13

  • Não use caracteres especiais (# $ ?)
  • Variáveis não podem ter o mesmo nome que palavras reservadas do JavaScript
  • let let = 23
    Error: let is disallowed as a lexically bound name

  • Caracteres maiúsculos são diferentes de caracteres minúsculos em JavaScript! Tenha cuidado.
  • let meunome = "José"
    let meuNome = "João"
    console.log(meunome, meuNome)
    José João

Tipos de Variáveis


JavaScript é uma linguagem dinamicamente tipada. Ou seja, o tipo da variável é o mesmo do valor que ela armazena.

let meunome = "José"
String
let minhaIdade = 23
Number

O valor das variáveis pode ser atualizado a qualquer momento ...

Inclusive a variável pode ser atualizada com o seu próprio valor...

Mas nunca, jamais, sob hipótese alguma, "reaproveite" uma variável para servir a outro propósito dentro do código!

let a = "José"
console.log(a)
José
a = 13
console.log(a)

13

Posfácio

Relembrando ...


Um caso concreto...

`Metade de 100 é ${100 / 2}`
Metade de 100 é 50

Um caso "abstrato"?

let valor = 100
let frase = "Metade de " + valor + " é " + valor / 2
Metade de 100 é 50

Nós definimos programas como dinâmicos pois seu resultado era definido pela interação de seu procedimento (algoritmo) com suas entradas.

As variáveis concedem um elemento de dinamicidade pois saem do caso concreto (um literal) para uma abstração do tipo (qualquer valor)

Entretanto, ao rodar o programa anterior, infinitas vezes, ele sempre apresentará o mesmo resultado : ele tem sempre a mesma entrada e executa o mesmo processo → logo terá sempre a mesma saída!

Nós (programadores) precisamos de algo que permita os usuários alterarem as entradas (valores) para que o programa possa efetivamente generalizar seus resultados (o modelo já está generalizado no algoritmo).