Instituto Federal de Mato Grosso do SulMarço/2024
04. Tipos de dados e Expressões
Algoritmos 1
Prof. Rodrigo Duran
Nesta aula vamos:
-
Aprender tipos de dados e expressões
Vamos aprender sobre tipos de dados e expressões e como o JavaScript representa diferences tipos de dados.
A dualidade dos programas
Programas são estáticos e dinâmicos
Para executar um programa, primeiro devemos traduzir uma solução algorítmica em um código-fonte escrito em uma linguagem de programação.
O código-fonte é estático: são sequências de ações que humanos podem ler e entender seu objetivo mesmo sem executá-lo.
Programas em execução são dinâmicos: O comportamento do computador, ditado pelo código-fonte, é um processo ativo onde o comportamento é ditado pela interação entre usuário e computador.
Na prática, isso significa que um mesmo código-fonte pode ter diferentes comportamentos (e resultados) dependendo da interação do usuário!
QUIZ!
Todo programa, sempre que executado fornece o mesmo resultado, independentemente das ações do usuário? Por quê?
QUIZ!
Todo programa, independentemente das ações do usuário, usa o mesmo código-fonte? Por quê?
Regras do Comportamento de Programas
Regra #1: O código-fonte que você escreve dita o comportamento do computador quando você executa o código, mas esse comportamento envolve estágios e conceitos que não necessariamente estão explícitos no código.
A maioria dos programas vai ter algum elemento matemático: eles envolvem números, aritmética, etc. Para isso é fundamental o conceito de expressão:
Regra #2: Uma expressão é um pedaço de código que o computador pode avaliar em um valor
Regra #3: Um valor é um grânulo de dado que não pode ser simplificado.
Regra #4: Expressões são parte do código-fonte. O computador avalia uma expressão quando roda um código.
Regra #5: A avaliação acontece dentro da memória do computador onde o computador armazena os resultados intermediários durante uma avaliação.
Regra #6: É possível observar o resultado da avaliação de uma expressão utilizando o console.
O comando console.log() instrui ao computador para "imprimir" (mostrar) no dispositivo de saída (console) o resultado de uma expressão
Regra #7: Parâmetros são formas de customizar um determinado comando. Os parâmetros são expressões inseridos dentro do parêntesis do comando.
console.log() espera um parâmetro (entre parêntesis)
A mais simples das expressões: 1+1
Regra #8: Expressões Aritméticas são tipos de expressões compostas de expressões menores. A avaliação é feita calculando a expressão usando as funções de soma (+), subtração (-) , multiplicação (*) e divisão (/)
A divisão (/) é sempre a divisão real. Ou seja, o resultado terá casas decimais.
Regra #9: Um literal são expressões escritas no código diretamente como um valor
Regra #10: Valores possuem tipos de dados
Tipos de dados em JavaScript
A última versão do ECMAScript define 2 tipos dados: primitivos e não primitivos
Dados primitivos são literais. Podemos escrever expressões de literais. Uma expressão pode ter um tipo diferente de suas sub-expressões.
Number
Em JavaScript todos os números (inteiros ou reais) são representados pelo mesmo tipo.
Expressões aritméticas utilizando soma (+), multiplicação (*) e subtração (-) são diretas.
Use sempre parêntesis nas expressões!
Number: Divisão
A divisão em JavaScript tem como resultado um número real
13/2
Cuidado ao dividir números por zero!
13/0
Quer calcular a divisão inteira? Use Math.floor
Quer o resto? Use o módulo %
Math.floor(13/2)
13 % 2
Casos especiais da divisão de números
Strings
Damos o nome de String (barbante) o conjunto de caracteres que representa um texto.
Para diferenciar palavras da linguagem (sintaxe) de Strings, usamos as " " envolvendo uma String
Olá!
"Olá!"
Strings podem ser concatenadas usando o operador +
"Olá!" + "Algoritmos 1"
Podemos "quebrar" string usando o operador \n
"Eu sou a primeira \n Eu sou a segunda"
Eu sou a segunda
Strings podem ser evolvidas por " " ou ' '. Mas existem Strings chamadas template literals (envelopadas por ` `) que podem automaticamente converter expressões (de qualquer tipo) em uma string.
`Metade de 100 é ${100 / 2}`
Podemos misturar Strings e Numbers? Depende
"Hello"+20
"Hello"*2
QUIZ!
Qual o resultado das seguintes expressões:
Math.floor(17/2) * 2
14 % 2
O dobro de 10 é ${10 * 2}`
