Instituto Federal de Mato Grosso do SulMarço/2024

IFMS marca

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!

Ações 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


1 + 2 + 3

(2 * 8) / 10


Regra #3: Um valor é um grânulo de dado que não pode ser simplificado.

6

1.6


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.

13

13.00

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
6.5

Cuidado ao dividir números por zero!

13/0
Infinity

Quer calcular a divisão inteira? Use Math.floor
Quer o resto? Use o módulo %

Math.floor, assim como o console.log executa uma tarefa especial em JavaScript
Math.floor(13/2)
6
13 % 2
1

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á!
Reference error: Olá! is not defined
"Olá!"
Olá

Strings podem ser concatenadas usando o operador +

"Olá!" + "Algoritmos 1"
Olá Algoritmos 1

Podemos "quebrar" string usando o operador \n

"Eu sou a primeira \n Eu sou a segunda"
Eu sou a primeira
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}`
Metade de 100 é 50
Tudo que está dentro do ${} é substituído pela avaliação da expressão.

Podemos misturar Strings e Numbers? Depende

"Hello"+20
Hello20
"Hello"*2
NaN
NaN significa Not a Number. É uma resposta do iterpretador para dizer que você fez algo muito errado...

QUIZ!

Qual o resultado das seguintes expressões:



Math.floor(17/2) * 2
14 % 2
O dobro de 10 é ${10 * 2}`