2. EMENTA DO AULA
Introdução a Algoritmos
Variáveis
Tipos de Dados
1. Dados Numéricos;
a. Inteiros;
b. Reais;
2. Dados Literais
a. Caracteres ou String
3. Dados Lógicos
a. Booleanos (Verdadeiro ou Falso);
2
4. Como os algoritmos são usados na internet?
Ao explorar o mundo dos algoritmos, podemos seguir por uma infinidade de
campos e também de exemplos.
A seguir, destacamos o uso desses modelos nas redes sociais e ferramentas
online mais usadas, como o Google e Spotify, direcionando uma visão mais
específica para as estratégias digitais.
4
5. Como os algoritmos são usados na internet?
Google
É provável que o algoritmo do Google seja o mais conhecido e não é por
acaso que seu segredo é muito bem guardado pela empresa.
O PageRank, como é chamado, foi criado em 1998, com o objetivo de
rastrear e apresentar os resultados de pesquisa ao usuário por relevância.
5
6. Como os algoritmos são usados na internet?
Google
A importância de um site era determinada pela quantidade de sites
vinculados a ele, o que tornava relativamente fácil burlar os resultados,
surgindo o black hat, que usa más práticas para tentar “enganar” o
PageRank.
Desde então, o Google já promoveu uma série de mudanças no algoritmo,
passando a considerar centenas de variáveis para que uma página seja
rankeada. Atualmente, o modelo verifica questões como as preferências do
usuário, aparelho usado, qualidade do conteúdo, localização etc.
6
7. Como os algoritmos são usados na internet?
Facebook
O Facebook foi a primeira rede social a usar algoritmos para categorizar os
posts e utilizar critérios para definir o que seria ou não exibido para cada
usuário. O objetivo era mostrar os conteúdos mais relevantes de acordo com
o comportamento, preferências e engajamento do usuário.
7
8. Como os algoritmos são usados na internet?
Twitter
Diferentemente de outras redes sociais, o Twitter não usa exclusivamente o
algoritmo para determinar o feed. Isso se deve ao caráter cronológico que
precisa ser mantido pela rede para que atenda ao objetivo de disponibilizar
os acontecimentos mais recentes.
Para alcançar esse objetivo, a rede social considera:
•comportamento prévio do usuário;
•preferência por temáticas e formatos de conteúdo;
•relacionamento do usuário com a conta que postou o tweet;
•engajamento do tweet em si.
8
9. Como os algoritmos são usados na internet?
Quando foi fundado, o Instagram seguia a mesma lógica cronológica do
Twitter, exibindo todas as postagens por ordem, das mais novas às mais
antigas.
Essa estrutura foi alterada em 2016 e, atualmente, a rede social considera os
seguintes fatores para escalar como serão os feeds dos usuários:
Temporalidade;
Engajamento;
Relacionamento;
9
10. Como os algoritmos são usados na internet?
YouTube
Lá em 2005, quando o YouTube surgiu, o algoritmo usado analisava apenas
quantas vezes um vídeo tinha sido iniciado para determinar o rankeamento.
No entanto, isso fez com que os produtores de conteúdo priorizassem
chamadas apelativas e até mesmo sensacionalistas.
O YouTube percebeu que essa prática não garantia a qualidade dos
conteúdos e, desde 2012, o algoritmo considera o tempo médio de
visualização, incentivando boas práticas ao gerenciar um canal por lá.
Com isso, as recomendações do site garantem maior qualidade do conteúdo
e relevância ao usuário, assegurando uma melhor experiência de navegação.
10
11. Como os algoritmos são usados na internet?
Spotify
Com mais de 40 milhões de usuários, o Spotify lança semanalmente a
playlist “descobertas da semana”, que é personalizada para cada ouvinte e
contém 30 músicas. Algumas delas, provavelmente, o usuário nunca ouviu,
mas pode gostar, de acordo com o algoritmo.
O objetivo é criar experiências novas, mas, para concretizar esse objetivo, a
ferramenta utiliza diferentes dados para processar as informações.
O sistema aprende as preferências e até mesmo identifica se uma música é
feliz ou triste, buscando uma recomendação mais acertada para melhorar a
experiência do usuário.
11
12. Refinamentos Sucessivos
Um algoritmo é considerado completo se os seus comandos forem do
entendimento do seu destinatário.
Num algoritmo, um comando que não for do entendimento do destinatário
terá que ser desdobrado em novos comandos, que constituirão um
refinamento do comando inicial, e assim sucessivamente, até que os
comandos sejam entendidos pelo destinatário.
12
13. Refinamentos Sucessivos
Por exemplo, o algoritmo para calcular a média aritmética de dois
números pode ser escrito da seguinte forma:
Algoritmo CALCULA_MÉDIA
Início
Receba os dois números;
Calcule a média dos dois números;
Exiba o resultado;
Fim
13
14. Refinamentos Sucessivos
Podemos desdobrar o comando
“Calcule a média dos dois números” em:
Soma os dois números;
Divida o resultado por 2;
Após esse refinamento, o algoritmo pode ser considerado completo, a
menos que o destinatário não saiba fazer as operações de adição e
divisão, ou não seja capaz de entender diretamente algum comando.
14
15. Refinamentos Sucessivos
O algoritmo estando completo, podemos reescrevêlo, inserindo o
refinamento na posição do comando que foi refinado. Assim sendo, obtém-
se:
Algoritmo CALCULA_MÉDIA
Início
Receba os dois números;
Soma os dois números;
Divida o resultado por 2;
Exiba o resultado;
Fim.
15
16. Refinamentos Sucessivos
Reescrever um algoritmo completo, com os refinamentos sucessivos
inseridos nos seus devidos lugares, permite ter uma visão global de como o
algoritmo deve ser executado.
À medida que o algoritmo passa a ser maior e mais complexo, esta
visão global torna-se menos clara e, neste caso, um algoritmo apresentado
com os refinamentos sucessivos separados oferece uma melhor abordagem
para quem precisar entendê-lo.
16
17. Algoritmo – Vamos otimizar!
Trocar uma lâmpada
• Pegue uma escada;
• Posicione-a embaixo da lâmpada;
• Busque uma lâmpada nova;
• Suba na escada;
• Retire a lâmpada;
• Coloque uma lâmpada nova.
17
18. Algoritmo - Exemplo
O objetivo de trocar a lâmpada queimada pode ser atingido com tal algoritmo que descreve
a sequência de passos a ser seguida. Porém, e se a lâmpada não estiver queimada?
Podemos efetuar um teste antes de trocá-la.
• pegue uma escada;
• posicione-a embaixo da lâmpada;
• busque uma lâmpada nova;
• ligue o interruptor;
• SE a lâmpada não acender, então:
• suba na escada;
• retire a lâmpada;
• coloque uma lâmpada nova.
O que aconteceu neste algoritmo foi a inclusão de um teste seletivo que determina quais
ações serão executadas, dependendo de uma condição.
18
19. Algoritmo - Exemplo
E se a lâmpada nova não funcionar? O objetivo portanto não foi atingido. Devemos
então trocar a lâmpada diversas vezes, até que funcione.
• ligue interruptor;
• SE a lâmpada não acender, então:
• pegue uma escada;
• posicione-a embaixo da lâmpada;
• busque uma lâmpada nova;
• suba na escada;
• retire a lâmpada;
• coloque uma lâmpada nova.
• ENQUANTO a lâmpada não acender:
• retire a lâmpada;
• coloque outra lâmpada.
19
20. Vamos relembrar o que é LÓGICA!
Pois bem, primeiramente vamos definir o que é lógica: “A lógica
é a arte de pensar corretamente ou a lógica é um estudo dos modos
corretos do pensamento” (SOARES, 2014, p. 1).
20
21. … Relembrando!
Sempre que você pensa de forma ordenada e dentro da razão,
está pensando de forma lógica!
Nem sempre você terá o mesmo pensamento que os outros, porém, o
objetivo deste pensamento na sua maioria é alcançar um objetivo.
21
22. • Chamamos de memória o local onde
guardamos os dados de entrada e
que foram gerados durante o uso de
um algoritmo.
• A memória pode ser uma folha de
papel, por exemplo, se estivermos
executando um algoritmo
manualmente, como no cálculo das
raízes de uma equação do segundo
grau da figura , a seguir:
Você sabia?
22
24. • Já no computador, existem diversos componentes que fazem a
função de memória: discos rígidos, pen drives, DVDs etc.
• Porém, o componente que é considerado como memória principal é
a memória RAM (Random-Access Memory, ou memória de acesso
aleatório).
• Esse componente é bastante rápido e trabalha diretamente ligado
ao processador para prover os valores que os programas precisam
no menor tempo possível.
Memória
24
25. Cada dado na memória deve ter um
identificador (um nome) e um tipo.
A memória funciona como uma
grande tabela de consulta, na qual
colocamos valores para uma consulta
posterior.
Valores armazenados na memória
também podem ser modificados
durante o tempo.
Memória
25
27. Tipos de dados básicos
• Sabendo que podemos armazenar diversos tipos de dados durante
o uso de um algoritmo, tornou-se evidente a necessidade de
padronizar os tipos de dados que poderiam ser usados na memória.
• Daí surgiram os tipos básicos de dados, também chamados de tipos
primitivos.
27
28. Os tipos básicos ou primitivos são:
O tipo de dado é importante para a completa identificação de valores em memória nos
casos em que existem duas anotações de mesmo nome. Assim, valores em memória com
mesmo nome podem ser diferenciados pelo seu tipo. Porém, o uso de nomes repetidos
para representar dados na memória é desaconselhado.
28
29. Variáveis x Constantes
Valores guardados na memória são chamados de variáveis. Variáveis,
como o próprio nome diz, podem variar, ou seja, ter seu valor
modificado. A função das variáveis é manter o valor atual de algum dado
relevante dentro do algoritmo e, por isso, podem ser modificadas com o
tempo.
Considere uma variável do tipo inteiro chamada “contador”, que no
início do algoritmo tem valor igual a 0. Digamos que, após a execução de
algum passo do algoritmo, o valor dessa variável precise ser 1. Devemos
modificar o valor que está anotado, mudando-o de 0 para 1.
29
30. Variáveis x Constantes
• Porém, nem todos os valores que são necessários durante
um algoritmo precisam mudar com o tempo. Alguns valores
servem apenas como referência, durante todo o algoritmo, e
permanecem inalterados.
30
31. Para esses casos, chamamos os valores guardados de constantes, pois
eles não precisam ser modificados durante toda execução do algoritmo.
Em resumo:
31
Variáveis x Constantes
32. Alguns valores servem apenas como referência, durante todo o
algoritmo, e permanecem inalterados.
Exemplos:
1. Para um algoritmo que efetua cálculos físicos, é preciso usar o valor da
aceleração da gravidade . Esse valor não muda;
2. Para um algoritmo que efetua cálculos trigonométricos, é preciso usar o
valor de pi . Esse valor não muda;
3. Para um algoritmo que faça o sorteio de dias de trabalho de um
funcionário, é preciso ter acesso aos nomes dos dias da semana. Esses
valores (nomes dos dias da semana) não mudam.
32
33. Vamos então a nossa primeira analogia sobre
variáveis?
• Acredito que você tenha um armário e nele há várias gavetas.
• Para que serve uma gaveta?
• Uma gaveta no seu contexto geral pode guardar diversos
tipos de objetos (roupas, livros, contas, toalhas, etc.), assim
como as variáveis podem armazenar vários tipos de dados.
33
34. Existe diferença entre tipos de variáveis para o físico do computador?
caractere ocupa 1 sizeof
Inteiro ocupa de 2 a 4 sizeof
Vaga A Vaga B Vaga C Vaga D
34
35. Variáveis
• Pensar em variáveis é pensar em algo que pode sofrer variações,
certo?
• E realmente é isso mesmo! Segundo Lopes e Garcia (2002), uma
variável é considerada um local que armazena um conteúdo
específico na memória principal do computador.
35
36. Conceituação de Elementos Básicos para Construção de um Algoritmo
• Palavras-reservadas (palavras-chave).
• São identificadores predefinidos que possuem significados especiais para o
interpretador do algoritmo.
inicio senão para enquanto
var logico se ate
faca inteiro real
36
37. Dados do tipo numérico
São variáveis que armazenam dados numéricos, como: a idade
de uma pessoa, o preço de um produto, o salário de um
funcionário, entre outros dados caracterizados pelos números.
37
38. Ainda falando do tipo numérico
Podemos dividi-lo em duas classes:
• Inteiro: são caracterizados pelos números inteiros, positivos ou negativos.
Exemplo: (110), (90), (–80), (–2).
• O tipo de dados int serve para guardar números inteiros, positivos e
negativos.
• Real: são caracterizados por números inteiros e decimais (fracionais),
sendo positivos ou negativos. Exemplo: (10,50), (–30,22), (20).
38
39. Dados tipo : inteiro(int)
Os elementos pertencentes aos conjuntos N e Z.
• Apesar de serem representáveis na classe dos números reais,
são classificados como dados do tipo inteiro, por não possuírem
parte fracionária. Esta possibilidade é interessante por permitir
uma economia do espaço de memória, como veremos adiante.
Como exemplo de números inteiros temos:
• 24 - número inteiro positivo
• 0 - número inteiro
• -12 - número inteiro negativo
39
42. Dados tipo : real
Os dados de tipo real são aqueles que podem possuir componentes
decimais ou fracionários, e podem também ser positivos ou
negativos.
• Como dito anteriormente, os elementos dos conjuntos de
números fracionários e reais são necessariamente representados
nos computadores por dados do tipo real.
• Exemplos de dados do tipo real:
• 24.01 - número real positivo com duas casas decimais;
• 13.3 - número real negativo com uma casa decimal
42
43. Exemplo de Algoritmo - Dado do tipo real
Real: são caracterizados
por números inteiros e
decimais (fracionais),
sendo positivos ou
negativos. Exemplo:
(10,50), (–30,22), (20).
43
45. Dados do tipo literal
• O tipo de dados literal é constituído por uma sequência de
caracteres contendo letras, dígitos e/ou símbolos especiais.
Este tipo de dados é também muitas vezes chamado de
alfanumérico, cadeia (ou cordão) de caracteres, ou ainda, do
inglês STRING.
• Usualmente, os dados literais são representados nos
algoritmos pela coleção de caracteres, delimitada em seu início
e término com o caractere aspas (").
45