Você está na página 1de 343

OP-003FV-21

CÓD: 7908403501168

BANCO DO BRASILBANCO DO BRASIL S.A

Escriturário
A APOSTILA PREPARATÓRIA É ELABORADA
ANTES DA PUBLICAÇÃO DO EDITAL OFICIAL COM BASE NO EDITAL
ANTERIOR, PARA QUE O ALUNO ANTECIPE SEUS ESTUDOS.
• A Opção não está vinculada às organizadoras de Concurso Público. A aquisição do material não garante sua inscrição ou ingresso na
carreira pública,

• Sua apostila aborda os tópicos do Edital de forma prática e esquematizada,

• Alterações e Retificações após a divulgação do Edital estarão disponíveis em Nosso Site na Versão Digital,

• Dúvidas sobre matérias podem ser enviadas através do site: www.apostilasopção.com.br/contatos.php, com retorno do professor
no prazo de até 05 dias úteis.,

• É proibida a reprodução total ou parcial desta apostila, de acordo com o Artigo 184 do Código Penal.

Apostilas Opção, a Opção certa para a sua realização.


ÍNDICE

Língua Portuguesa
1. Emprego do acento indicativo de crase . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 01
2. Concordância verbal e nominal . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 01
3. Regência verbal e nominal . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 03
4. Colocação pronominal dos pronomes oblíquos átonos (próclise, mesóclise e ênclise) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 04
5. Emprego dos sinais indicativos de pontuação: vírgula, ponto, ponto e vírgula, dois-pontos, reticências, aspas, travessão e parênte-
ses . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 04

Língua Inglesa
1. Conhecimento de um vocabulário fundamental e dos aspectos gramaticais básicos para a interpretação de textos técnicos . . . . . 01

Matemática
1. Lógica proposicional . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 01
2. Noções de conjuntos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23
3. Relações e funções; Funções polinomiais; Funções exponenciais e logarítmicas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32
4. Matrizes; Determinantes; Sistemas lineares . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41
5. Sequências; Progressões aritméticas e progressões geométricas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 51
6. Matemática financeira . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 55

Atualidades do Mercado Financeiro


1. Sistema Financeiro Nacional. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 01
2. Dinâmica do mercado. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 02
3. Mercado bancário. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 03

Probabilidade e Estatística
1. Análise combinatória; Noções de probabilidade; Teorema de Bayes; Probabilidade condicional . . . . . . . . . . . . . . . . . . . . . . . . . . . . 01
2. Noções de estatística; População e amostra; Análise e interpretação de tabelas e gráficos; Regressão, tendências, extrapolações e
interpolações; Tabelas de distribuição empírica de variáveis e histogramas; Estatística descritiva (média, mediana, variância, desvio
padrão, percentis, quartis, outliers, covariância) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 06

Conhecimentos Bancários
1. Estrutura do Sistema Financeiro Nacional: Conselho Monetário Nacional; Banco Central do Brasil; Comissão de Valores Mobiliári-
os. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 01
2. COPOM – Comitê de Política Monetária. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 04
3. Produtos Bancários: Noções de cartões de crédito e débito, crédito direto ao consumidor, crédito rural, caderneta de poupança, cap-
italização, previdência, investimentos e seguros. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 06
4. Noções de Mercado de capitais. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11
5. Noções de Mercado Câmbio: Instituições autorizadas a operar e operações básicas. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13
6. Garantias do Sistema Financeiro Nacional: aval; fiança; penhor mercantil; alienação fiduciária; hipoteca; fianças bancárias. . . . . 13
7. Crime de lavagem de dinheiro: conceito e etapas. Prevenção e combate ao crime de lavagem de dinheiro: Lei nº 9.613/98 e suas al-
terações . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14
8. Circular Bacen 3.461/2009 e suas alterações e Carta-Circular Bacen 3.542/12. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15
9. Autorregulação Bancária. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15
ÍNDICE
Conhecimentos de Informática
1. Linguagens de programação: Java (SE 8 e EE 7), Phyton 3.6, JavaScript/EcmaScript 6, Scala 2.12 e Pig 0.16; . . . . . . . . . . . . . . . . . . 01
2. Estruturas de dados e algoritmos: busca sequencial e busca binária sobre arrays, ordenação (métodos da bolha, ordenação por
seleção, . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 39
3. ordenação por inserção, lista encadeada, pilha, fila, noções sobre árvore binária), noções de algoritmos de aprendizado supervisiona-
dos e não supervisionados; . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 39
4. Banco de dados: conceitos de banco de dados e sistemas gerenciadores de bancos de dados (SGBD), modelagem conceitual de dados
5. (a abordagem entidaderelacionamento), modelo relacional de dados (conceitos básicos, normalização), banco de dados SQL (lingua-
gem SQL (SQL2008), linguagem HiveQL (Hive 2.2.0)), banco de dados NoSQL (conceitos básicos, bancos orientados a grafos, colunas,
6. chave/valor e documentos), data Warehouse (modelagem conceitual para data warehouses, dados multidimensionais) . . . . . . . 73
7. Tecnologias web: HTML 5, CSS 3, XML 1.1, Json (ECMA-404), Angular.js 1.6.x, Node.js 6.11.3, REST; . . . . . . . . . . . . . . . . . . . . . . . . . 97
8. Manipulação e visualização de dados: linguagem R 3.4.2 e R Studio 5.1, OLAP, MS Excel 2013; . . . . . . . . . . . . . . . . . . . . . . . . . . . . 128
9. Sistema de arquivos e ingestão de dados: conceitos de MapReduce, HDFS/Hadoop/YARN 2.7.4, Ferramentas de ingestão de dados
10. (Sqoop 1.4.6, Flume 1.7.0, NiFi 1.3.0 e Kafka 0.11.0) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 150
LÍNGUA PORTUGUESA
1. Emprego do acento indicativo de crase . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 01
2. Concordância verbal e nominal . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 01
3. Regência verbal e nominal . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 03
4. Colocação pronominal dos pronomes oblíquos átonos (próclise, mesóclise e ênclise) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 04
5. Emprego dos sinais indicativos de pontuação: vírgula, ponto, ponto e vírgula, dois-pontos, reticências, aspas, travessão e parênte-
ses . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 04
LÍNGUA PORTUGUESA

EMPREGO DO ACENTO INDICATIVO DE CRASE

Crase é o nome dado à contração de duas letras “A” em uma só: preposição “a” + artigo “a” em palavras femininas. Ela é demarcada
com o uso do acento grave (à), de modo que crase não é considerada um acento em si, mas sim o fenômeno dessa fusão.
Veja, abaixo, as principais situações em que será correto o emprego da crase:
• Palavras femininas: Peça o material emprestado àquela aluna.
• Indicação de horas, em casos de horas definidas e especificadas: Chegaremos em Belo Horizonte às 7 horas.
• Locuções prepositivas: A aluna foi aprovada à custa de muito estresse.
• Locuções conjuntivas: À medida que crescemos vamos deixando de lado a capacidade de imaginar.
• Locuções adverbiais de tempo, modo e lugar: Vire na próxima à esquerda.

Veja, agora, as principais situações em que não se aplica a crase:


• Palavras masculinas: Ela prefere passear a pé.
• Palavras repetidas (mesmo quando no feminino): Melhor termos uma reunião frente a frente.
• Antes de verbo: Gostaria de aprender a pintar.
• Expressões que sugerem distância ou futuro: A médica vai te atender daqui a pouco.
• Dia de semana (a menos que seja um dia definido): De terça a sexta. / Fecharemos às segundas-feiras.
• Antes de numeral (exceto horas definidas): A casa da vizinha fica a 50 metros da esquina.

Há, ainda, situações em que o uso da crase é facultativo


• Pronomes possessivos femininos: Dei um picolé a minha filha. / Dei um picolé à minha filha.
• Depois da palavra “até”: Levei minha avó até a feira. / Levei minha avó até à feira.
• Nomes próprios femininos (desde que não seja especificado): Enviei o convite a Ana. / Enviei o convite à Ana. / Enviei o convite à
Ana da faculdade.

DICA: Como a crase só ocorre em palavras no feminino, em caso de dúvida, basta substituir por uma palavra equivalente no masculino.
Se aparecer “ao”, deve-se usar a crase: Amanhã iremos à escola / Amanhã iremos ao colégio.

CONCORDÂNCIA VERBAL E NOMINAL

Concordância é o efeito gramatical causado por uma relação harmônica entre dois ou mais termos. Desse modo, ela pode ser verbal
— refere-se ao verbo em relação ao sujeito — ou nominal — refere-se ao substantivo e suas formas relacionadas.
• Concordância em gênero: flexão em masculino e feminino
• Concordância em número: flexão em singular e plural
• Concordância em pessoa: 1ª, 2ª e 3ª pessoa

Concordância nominal
Para que a concordância nominal esteja adequada, adjetivos, artigos, pronomes e numerais devem flexionar em número e gênero,
de acordo com o substantivo. Há algumas regras principais que ajudam na hora de empregar a concordância, mas é preciso estar atento,
também, aos casos específicos.
Quando há dois ou mais adjetivos para apenas um substantivo, o substantivo permanece no singular se houver um artigo entre os
adjetivos. Caso contrário, o substantivo deve estar no plural:
• A comida mexicana e a japonesa. / As comidas mexicana e japonesa.

Quando há dois ou mais substantivos para apenas um adjetivo, a concordância depende da posição de cada um deles. Se o adjetivo
vem antes dos substantivos, o adjetivo deve concordar com o substantivo mais próximo:
• Linda casa e bairro.

Se o adjetivo vem depois dos substantivos, ele pode concordar tanto com o substantivo mais próximo, ou com todos os substantivos
(sendo usado no plural):
• Casa e apartamento arrumado. / Apartamento e casa arrumada.
• Casa e apartamento arrumados. / Apartamento e casa arrumados.

Quando há a modificação de dois ou mais nomes próprios ou de parentesco, os adjetivos devem ser flexionados no plural:
• As talentosas Clarice Lispector e Lygia Fagundes Telles estão entre os melhores escritores brasileiros.

Quando o adjetivo assume função de predicativo de um sujeito ou objeto, ele deve ser flexionado no plural caso o sujeito ou objeto
seja ocupado por dois substantivos ou mais:
• O operário e sua família estavam preocupados com as consequências do acidente.

1
LÍNGUA PORTUGUESA

CASOS ESPECÍFICOS REGRA EXEMPLO


É PROIBIDO Deve concordar com o substantivo quando há presença
É proibida a entrada.
É PERMITIDO de um artigo. Se não houver essa determinação, deve
É proibido entrada.
É NECESSÁRIO permanecer no singular e no masculino.
Mulheres dizem “obrigada” Homens dizem
OBRIGADO / OBRIGADA Deve concordar com a pessoa que fala.
“obrigado”.
As bastantes crianças ficaram doentes com a
volta às aulas.
Quando tem função de adjetivo para um substantivo,
Bastante criança ficou doente com a volta às
BASTANTE concorda em número com o substantivo.
aulas.
Quando tem função de advérbio, permanece invariável.
O prefeito considerou bastante a respeito da
suspensão das aulas.
É sempre invariável, ou seja, a palavra “menas” não Havia menos mulheres que homens na fila
MENOS
existe na língua portuguesa. para a festa.
As crianças mesmas limparam a sala depois
MESMO Devem concordar em gênero e número com a pessoa a
da aula.
PRÓPRIO que fazem referência.
Eles próprios sugeriram o tema da formatura.
Quando tem função de numeral adjetivo, deve
Adicione meia xícara de leite.
concordar com o substantivo.
MEIO / MEIA Manuela é meio artista, além de ser
Quando tem função de advérbio, modificando um
engenheira.
adjetivo, o termo é invariável.
Segue anexo o orçamento.
Seguem anexas as informações adicionais
ANEXO INCLUSO Devem concordar com o substantivo a que se referem. As professoras estão inclusas na greve.
O material está incluso no valor da
mensalidade.

Concordância verbal
Para que a concordância verbal esteja adequada, é preciso haver flexão do verbo em número e pessoa, a depender do sujeito com o
qual ele se relaciona.

Quando o sujeito composto é colocado anterior ao verbo, o verbo ficará no plural:


• A menina e seu irmão viajaram para a praia nas férias escolares.

Mas, se o sujeito composto aparece depois do verbo, o verbo pode tanto ficar no plural quanto concordar com o sujeito mais próximo:
• Discutiram marido e mulher. / Discutiu marido e mulher.

Se o sujeito composto for formado por pessoas gramaticais diferentes, o verbo deve ficar no plural e concordando com a pessoa que tem
prioridade, a nível gramatical — 1ª pessoa (eu, nós) tem prioridade em relação à 2ª (tu, vós); a 2ª tem prioridade em relação à 3ª (ele, eles):
• Eu e vós vamos à festa.

Quando o sujeito apresenta uma expressão partitiva (sugere “parte de algo”), seguida de substantivo ou pronome no plural, o verbo
pode ficar tanto no singular quanto no plural:
• A maioria dos alunos não se preparou para o simulado. / A maioria dos alunos não se prepararam para o simulado.

Quando o sujeito apresenta uma porcentagem, deve concordar com o valor da expressão. No entanto, quanto seguida de um subs-
tantivo (expressão partitiva), o verbo poderá concordar tanto com o numeral quanto com o substantivo:
• 27% deixaram de ir às urnas ano passado. / 1% dos eleitores votou nulo / 1% dos eleitores votaram nulo.

Quando o sujeito apresenta alguma expressão que indique quantidade aproximada, o verbo concorda com o substantivo que segue
a expressão:
• Cerca de duzentas mil pessoas compareceram à manifestação. / Mais de um aluno ficou abaixo da média na prova.

Quando o sujeito é indeterminado, o verbo deve estar sempre na terceira pessoa do singular:
• Precisa-se de balconistas. / Precisa-se de balconista.

Quando o sujeito é coletivo, o verbo permanece no singular, concordando com o coletivo partitivo:
• A multidão delirou com a entrada triunfal dos artistas. / A matilha cansou depois de tanto puxar o trenó.

Quando não existe sujeito na oração, o verbo fica na terceira pessoa do singular (impessoal):
• Faz chuva hoje

2
LÍNGUA PORTUGUESA
Quando o pronome relativo “que” atua como sujeito, o verbo deverá concordar em número e pessoa com o termo da oração principal
ao qual o pronome faz referência:
• Foi Maria que arrumou a casa.

Quando o sujeito da oração é o pronome relativo “quem”, o verbo pode concordar tanto com o antecedente do pronome quanto com
o próprio nome, na 3ª pessoa do singular:
• Fui eu quem arrumei a casa. / Fui eu quem arrumou a casa.

Quando o pronome indefinido ou interrogativo, atuando como sujeito, estiver no singular, o verbo deve ficar na 3ª pessoa do singular:
• Nenhum de nós merece adoecer.

Quando houver um substantivo que apresenta forma plural, porém com sentido singular, o verbo deve permanecer no singular. Ex-
ceto caso o substantivo vier precedido por determinante:
• Férias é indispensável para qualquer pessoa. / Meus óculos sumiram.

REGÊNCIA VERBAL E NOMINAL

A regência estuda as relações de concordâncias entre os termos que completam o sentido tanto dos verbos quanto dos nomes. Dessa
maneira, há uma relação entre o termo regente (principal) e o termo regido (complemento).
A regência está relacionada à transitividade do verbo ou do nome, isto é, sua complementação necessária, de modo que essa relação
é sempre intermediada com o uso adequado de alguma preposição.

Regência nominal
Na regência nominal, o termo regente é o nome, podendo ser um substantivo, um adjetivo ou um advérbio, e o termo regido é o
complemento nominal, que pode ser um substantivo, um pronome ou um numeral.
Vale lembrar que alguns nomes permitem mais de uma preposição. Veja no quadro abaixo as principais preposições e as palavras que
pedem seu complemento:

PREPOSIÇÃO NOMES
acessível; acostumado; adaptado; adequado; agradável; alusão; análogo; anterior; atento; benefício; comum;
A contrário; desfavorável; devoto; equivalente; fiel; grato; horror; idêntico; imune; indiferente; inferior; leal; necessário;
nocivo; obediente; paralelo; posterior; preferência; propenso; próximo; semelhante; sensível; útil; visível...
amante; amigo; capaz; certo; contemporâneo; convicto; cúmplice; descendente; destituído; devoto; diferente;
DE dotado; escasso; fácil; feliz; imbuído; impossível; incapaz; indigno; inimigo; inseparável; isento; junto; longe; medo;
natural; orgulhoso; passível; possível; seguro; suspeito; temeroso...
SOBRE opinião; discurso; discussão; dúvida; insistência; influência; informação; preponderante; proeminência; triunfo...
acostumado; amoroso; analogia; compatível; cuidadoso; descontente; generoso; impaciente; ingrato; intolerante;
COM
mal; misericordioso; ocupado; parecido; relacionado; satisfeito; severo; solícito; triste...
abundante; bacharel; constante; doutor; erudito; firme; hábil; incansável; inconstante; indeciso; morador; negligente;
EM
perito; prático; residente; versado...
atentado; blasfêmia; combate; conspiração; declaração; fúria; impotência; litígio; luta; protesto; reclamação;
CONTRA
representação...
PARA bom; mau; odioso; próprio; útil...

Regência verbal
Na regência verbal, o termo regente é o verbo, e o termo regido poderá ser tanto um objeto direto (não preposicionado) quanto um
objeto indireto (preposicionado), podendo ser caracterizado também por adjuntos adverbiais.
Com isso, temos que os verbos podem se classificar entre transitivos e intransitivos. É importante ressaltar que a transitividade do
verbo vai depender do seu contexto.

Verbos intransitivos: não exigem complemento, de modo que fazem sentido por si só. Em alguns casos, pode estar acompanhado
de um adjunto adverbial (modifica o verbo, indicando tempo, lugar, modo, intensidade etc.), que, por ser um termo acessório, pode ser
retirado da frase sem alterar sua estrutura sintática:
• Viajou para São Paulo. / Choveu forte ontem.

Verbos transitivos diretos: exigem complemento (objeto direto), sem preposição, para que o sentido do verbo esteja completo:
• A aluna entregou o trabalho. / A criança quer bolo.

3
LÍNGUA PORTUGUESA
Verbos transitivos indiretos: exigem complemento (objeto indireto), de modo que uma preposição é necessária para estabelecer o
sentido completo:
• Gostamos da viagem de férias. / O cidadão duvidou da campanha eleitoral.

Verbos transitivos diretos e indiretos: em algumas situações, o verbo precisa ser acompanhado de um objeto direto (sem preposição)
e de um objeto indireto (com preposição):
• Apresentou a dissertação à banca. / O menino ofereceu ajuda à senhora.

COLOCAÇÃO PRONOMINAL DOS PRONOMES OBLÍQUOS ÁTONOS (PRÓCLISE, MESÓCLISE E ÊNCLISE)

Os pronomes são palavras que fazem referência aos nomes, isto é, aos substantivos. Assim, dependendo de sua função no enunciado,
ele pode ser classificado da seguinte maneira:
• Pronomes pessoais: indicam as 3 pessoas do discurso, e podem ser retos (eu, tu, ele...) ou oblíquos (mim, me, te, nos, si...).
• Pronomes possessivos: indicam posse (meu, minha, sua, teu, nossos...)
• Pronomes demonstrativos: indicam localização de seres no tempo ou no espaço. (este, isso, essa, aquela, aquilo...)
• Pronomes interrogativos: auxiliam na formação de questionamentos (qual, quem, onde, quando, que, quantas...)
• Pronomes relativos: retomam o substantivo, substituindo-o na oração seguinte (que, quem, onde, cujo, o qual...)
• Pronomes indefinidos: substituem o substantivo de maneira imprecisa (alguma, nenhum, certa, vários, qualquer...)
• Pronomes de tratamento: empregados, geralmente, em situações formais (senhor, Vossa Majestade, Vossa Excelência, você...)

Colocação pronominal
Diz respeito ao conjunto de regras que indicam a posição do pronome oblíquo átono (me, te, se, nos, vos, lhe, lhes, o, a, os, as, lo, la,
no, na...) em relação ao verbo, podendo haver próclise (antes do verbo), ênclise (depois do verbo) ou mesóclise (no meio do verbo).
Veja, então, quais as principais situações para cada um deles:
• Próclise: expressões negativas; conjunções subordinativas; advérbios sem vírgula; pronomes indefinidos, relativos ou demonstrati-
vos; frases exclamativas ou que exprimem desejo; verbos no gerúndio antecedidos por “em”.
Nada me faria mais feliz.

• Ênclise: verbo no imperativo afirmativo; verbo no início da frase (não estando no futuro e nem no pretérito); verbo no gerúndio não
acompanhado por “em”; verbo no infinitivo pessoal.
Inscreveu-se no concurso para tentar realizar um sonho.

• Mesóclise: verbo no futuro iniciando uma oração.


Orgulhar-me-ei de meus alunos.

DICA: o pronome não deve aparecer no início de frases ou orações, nem após ponto-e-vírgula.

EMPREGO DOS SINAIS INDICATIVOS DE PONTUAÇÃO: VÍRGULA, PONTO, PONTO E VÍRGULA, DOIS-PONTOS, RETICÊN-
CIAS, ASPAS, TRAVESSÃO E PARÊNTESES

Os sinais de pontuação são recursos gráficos que se encontram na linguagem escrita, e suas funções são demarcar unidades e sinalizar
limites de estruturas sintáticas. É também usado como um recurso estilístico, contribuindo para a coerência e a coesão dos textos.
São eles: o ponto (.), a vírgula (,), o ponto e vírgula (;), os dois pontos (:), o ponto de exclamação (!), o ponto de interrogação (?), as
reticências (...), as aspas (“”), os parênteses ( ( ) ), o travessão (—), a meia-risca (–), o apóstrofo (‘), o asterisco (*), o hífen (-), o colchetes
([]) e a barra (/).
Confira, no quadro a seguir, os principais sinais de pontuação e suas regras de uso.

SINAL NOME USO EXEMPLOS


Indicar final da frase declarativa Meu nome é Pedro.
. Ponto Separar períodos Fica mais. Ainda está cedo
Abreviar palavras Sra.
A princesa disse:
Iniciar fala de personagem
- Eu consigo sozinha.
Antes de aposto ou orações apositivas, enumerações
Esse é o problema da pandemia: as
: Dois-pontos ou sequência de palavras para resumir / explicar ideias
pessoas não respeitam a quarentena.
apresentadas anteriormente
Como diz o ditado: “olho por olho,
Antes de citação direta
dente por dente”.

4
LÍNGUA PORTUGUESA

Indicar hesitação
Sabe... não está sendo fácil...
... Reticências Interromper uma frase
Quem sabe depois...
Concluir com a intenção de estender a reflexão
Isolar palavras e datas A Semana de Arte Moderna (1922)
() Parênteses Frases intercaladas na função explicativa (podem substituir Eu estava cansada (trabalhar e estudar
vírgula e travessão) é puxado).
Indicar expressão de emoção Que absurdo!
Ponto de
! Final de frase imperativa Estude para a prova!
Exclamação
Após interjeição Ufa!
Ponto de
? Em perguntas diretas Que horas ela volta?
Interrogação
A professora disse:
Iniciar fala do personagem do discurso direto e indicar — Boas férias!
— Travessão mudança de interloculor no diálogo — Obrigado, professora.
Substituir vírgula em expressões ou frases explicativas O corona vírus — Covid-19 — ainda
está sendo estudado.

Vírgula
A vírgula é um sinal de pontuação com muitas funções, usada para marcar uma pausa no enunciado. Veja, a seguir, as principais regras
de uso obrigatório da vírgula.
• Separar termos coordenados: Fui à feira e comprei abacate, mamão, manga, morango e abacaxi.
• Separar aposto (termo explicativo): Belo Horizonte, capital mineira, só tem uma linha de metrô.
• Isolar vocativo: Boa tarde, Maria.
• Isolar expressões que indicam circunstâncias adverbiais (modo, lugar, tempo etc): Todos os moradores, calmamente, deixaram o
prédio.
• Isolar termos explicativos: A educação, a meu ver, é a solução de vários problemas sociais.
• Separar conjunções intercaladas, e antes dos conectivos “mas”, “porém”, “pois”, “contudo”, “logo”: A menina acordou cedo, mas não
conseguiu chegar a tempo na escola. Não explicou, porém, o motivo para a professora.
• Separar o conteúdo pleonástico: A ela, nada mais abala.

No caso da vírgula, é importante saber que, em alguns casos, ela não deve ser usada. Assim, não há vírgula para separar:
• Sujeito de predicado.
• Objeto de verbo.
• Adjunto adnominal de nome.
• Complemento nominal de nome.
• Predicativo do objeto do objeto.
• Oração principal da subordinada substantiva.
• Termos coordenados ligados por “e”, “ou”, “nem”.

EXERCÍCIOS

1. (FMPA – MG)
Assinale o item em que a palavra destacada está incorretamente aplicada:
(A) Trouxeram-me um ramalhete de flores fragrantes.
(B) A justiça infligiu pena merecida aos desordeiros.
(C) Promoveram uma festa beneficiente para a creche.
(D) Devemos ser fieis aos cumprimentos do dever.
(E) A cessão de terras compete ao Estado.

2. (UEPB – 2010)
Um debate sobre a diversidade na escola reuniu alguns, dos maiores nomes da educação mundial na atualidade.

Carlos Alberto Torres


1
O tema da diversidade tem a ver com o tema identidade. Portanto, 2quando você discute diversidade, um tema que cabe muito no
3
pensamento pós-modernista, está discutindo o tema da 4diversidade não só em ideias contrapostas, mas também em 5identidades que
se mexem, que se juntam em uma só pessoa. E 6este é um processo de aprendizagem. Uma segunda afirmação é 7que a diversidade está
relacionada com a questão da educação 8e do poder. Se a diversidade fosse a simples descrição 9demográfica da realidade e a realidade
fosse uma boa articulação 10dessa descrição demográfica em termos de constante articulação 11democrática, você não sentiria muito a
presença do tema 12diversidade neste instante. Há o termo diversidade porque há 13uma diversidade que implica o uso e o abuso de poder,
de uma 14perspectiva ética, religiosa, de raça, de classe.
[…]

5
LÍNGUA PORTUGUESA
Rosa Maria Torres 4. (CASAN – 2015) Observe as sentenças.
15
O tema da diversidade, como tantos outros, hoje em dia, abre I. Com medo do escuro, a criança ascendeu a luz.
16
muitas versões possíveis de projeto educativo e de projeto 17po- II. É melhor deixares a vida fluir num ritmo tranquilo.
lítico e social. É uma bandeira pela qual temos que reivindicar, 18e III. O tráfico nas grandes cidades torna-se cada dia mais difícil
pela qual temos reivindicado há muitos anos, a necessidade 19de para os carros e os pedestres.
reconhecer que há distinções, grupos, valores distintos, e 20que a
escola deve adequar-se às necessidades de cada grupo. 21Porém, o Assinale a alternativa correta quanto ao uso adequado de ho-
tema da diversidade também pode dar lugar a uma 22série de coisas mônimos e parônimos.
indesejadas. (A) I e III.
[…] (B) II e III.
Adaptado da Revista Pátio, Diversidade na educação: limites e possibi- (C) II apenas.
lidades. Ano V, nº 20, fev./abr. 2002, p. 29. (D) Todas incorretas.

Do enunciado “O tema da diversidade tem a ver com o tema 5. (UFMS – 2009)


identidade.” (ref. 1), pode-se inferir que Leia o artigo abaixo, intitulado “Uma questão de tempo”, de
I – “Diversidade e identidade” fazem parte do mesmo campo Miguel Sanches Neto, extraído da Revista Nova Escola Online, em
semântico, sendo a palavra “identidade” considerada um hiperôni- 30/09/08. Em seguida, responda.
mo, em relação à “diversidade”. “Demorei para aprender ortografia. E essa aprendizagem con-
II – há uma relação de intercomplementariedade entre “diversi- tou com a ajuda dos editores de texto, no computador. Quando eu
dade e identidade”, em função do efeito de sentido que se instaura cometia uma infração, pequena ou grande, o programa grifava em
no paradigma argumentativo do enunciado. vermelho meu deslize. Fui assim me obrigando a escrever minima-
III – a expressão “tem a ver” pode ser considerada de uso co- mente do jeito correto.
loquial e indica nesse contexto um vínculo temático entre “diversi- Mas de meu tempo de escola trago uma grande descoberta,
dade e identidade”. a do monstro ortográfico. O nome dele era Qüeqüi Güegüi. Sim,
esse animal existiu de fato. A professora de Português nos disse que
Marque a alternativa abaixo que apresenta a(s) proposi- devíamos usar trema nas sílabas qüe, qüi, güe e güi quando o u é
ção(ões) verdadeira(s). pronunciado. Fiquei com essa expressão tão sonora quanto enig-
(A) I, apenas mática na cabeça.
(B) II e III Quando meditava sobre algum problema terrível – pois na pré-
(C) III, apenas -adolescência sempre temos problemas terríveis –, eu tentava me
(D) II, apenas libertar da coisa repetindo em voz alta: “Qüeqüi Güegüi”. Se numa
(E) I e II prova de Matemática eu não conseguia me lembrar de uma fórmu-
la, lá vinham as palavras mágicas.
3. (UNIFOR CE – 2006) Um desses problemas terríveis, uma namorada, ouvindo minha
Dia desses, por alguns momentos, a cidade parou. As televi- evocação, quis saber o que era esse tal de Qüeqüi Güegüi.
sões hipnotizaram os espectadores que assistiram, sem piscar, ao – Você nunca ouviu falar nele? – perguntei.
resgate de uma mãe e de uma filha. Seu automóvel caíra em um – Ainda não fomos apresentados – ela disse.
rio. Assisti ao evento em um local público. Ao acabar o noticiário, o – É o abominável monstro ortográfico – fiz uma falsa voz de
silêncio em volta do aparelho se desfez e as pessoas retomaram as terror.
suas ocupações habituais. Os celulares recomeçaram a tocar. Pergun- – E ele faz o quê?
tei-me: indiferença? Se tomarmos a definição ao pé da letra, indife- – Atrapalha a gente na hora de escrever.
rença é sinônimo de desdém, de insensibilidade, de apatia e de negli- Ela riu e se desinteressou do assunto. Provavelmente não sabia
gência. Mas podemos considerá-la também uma forma de ceticismo e usar trema nem se lembrava da regrinha.
desinteresse, um “estado físico que não apresenta nada de particular”; Aos poucos, eu me habituei a colocar as letras e os sinais no
enfim, explica o Aurélio, uma atitude de neutralidade. lugar certo. Como essa aprendizagem foi demorada, não sei se con-
Conclusão? Impassíveis diante da emoção, imperturbáveis seguirei escrever de outra forma – agora que teremos novas regras.
diante da paixão, imunes à angústia, vamos hoje burilando nossa Por isso, peço desde já que perdoem meus futuros erros, que servi-
indiferença. Não nos indignamos mais! À distância de tudo, segui- rão ao menos para determinar minha idade.
mos surdos ao barulho do mundo lá fora. Dos movimentos de mas- – Esse aí é do tempo do trema.”
sa “quentes” (lembram-se do “Diretas Já”?) onde nos fundíamos na
igualdade, passamos aos gestos frios, nos quais indiferença e dis- Assinale a alternativa correta.
tância são fenômenos inseparáveis. Neles, apesar de iguais, somos (A) As expressões “monstro ortográfico” e “abominável mons-
estrangeiros ao destino de nossos semelhantes. […] tro ortográfico” mantêm uma relação hiperonímica entre si.
(Mary Del Priore. Histórias do cotidiano. São Paulo: Contexto, 2001. (B) Em “– Atrapalha a gente na hora de escrever”, conforme
p.68) a norma culta do português, a palavra “gente” pode ser substi-
tuída por “nós”.
Dentre todos os sinônimos apresentados no texto para o vo- (C) A frase “Fui-me obrigando a escrever minimamente do
cábulo indiferença, o que melhor se aplica a ele, considerando-se jeito correto”, o emprego do pronome oblíquo átono está
o contexto, é correto de acordo com a norma culta da língua portuguesa.
(A) ceticismo. (D) De acordo com as explicações do autor, as palavras pregüi-
(B) desdém. ça e tranqüilo não serão mais grafadas com o trema.
(C) apatia. (E) A palavra “evocação” (3° parágrafo) pode ser substituída
(D) desinteresse. no texto por “recordação”, mas haverá alteração de sentido.
(E) negligência.

6
LÍNGUA PORTUGUESA
6. (FMU) Leia as expressões destacadas na seguinte passagem: (E) introduzir uma conclusão após os argumentos apresenta-
“E comecei a sentir falta das pequenas brigas por causa do tempero dos.
na salada – o meu jeito de querer bem.”
Tais expressões exercem, respectivamente, a função sintática 12. (IBFC – 2013) Leia as sentenças:
de: É preciso que ela se encante por mim!
(A) objeto indireto e aposto Chegou à conclusão de que saiu no prejuízo.
(B) objeto indireto e predicativo do sujeito
(C) complemento nominal e adjunto adverbial de modo Assinale abaixo a alternativa que classifica, correta e respecti-
(D) complemento nominal e aposto vamente, as orações subordinadas substantivas (O.S.S.) destacadas:
(E) adjunto adnominal e adjunto adverbial de modo (A) O.S.S. objetiva direta e O.S.S. objetiva indireta.
(B) O.S.S. subjetiva e O.S.S. completiva nominal
7. (PUC-SP) Dê a função sintática do termo destacado em: “De- (C) O.S.S. subjetiva e O.S.S. objetiva indireta.
pressa esqueci o Quincas Borba”. (D) O.S.S. objetiva direta e O.S.S. completiva nominal.
(A) objeto direto
(B) sujeito 13. (ADVISE-2013) Todos os enunciados abaixo correspondem
(C) agente da passiva a orações subordinadas substantivas, exceto:
(D) adjunto adverbial (A) Espero sinceramente isto: que vocês não faltem mais.
(E) aposto (B) Desejo que ela volte.
(C) Gostaria de que todos me apoiassem.
8. (MACK-SP) Aponte a alternativa que expressa a função sintá- (D) Tenho medo de que esses assessores me traiam.
tica do termo destacado: “Parece enfermo, seu irmão”. (E) Os jogadores que foram convocados apresentaram-se on-
(A) Sujeito tem.
(B) Objeto direto
(C) Predicativo do sujeito 14. (PUC-SP) “Pode-se dizer que a tarefa é puramente formal.”
(D) Adjunto adverbial No texto acima temos uma oração destacada que é ________e
(E) Adjunto adnominal um “se” que é . ________.
(A) substantiva objetiva direta, partícula apassivadora
9. (OSEC-SP) “Ninguém parecia disposto ao trabalho naquela (B) substantiva predicativa, índice de indeterminação do sujeito
manhã de segunda-feira”. (C) relativa, pronome reflexivo
(A) Predicativo (D) substantiva subjetiva, partícula apassivadora
(B) Complemento nominal (E) adverbial consecutiva, índice de indeterminação do sujeito
(C) Objeto indireto
(D) Adjunto adverbial 15. (UEMG) “De repente chegou o dia dos meus setenta anos.
(E) Adjunto adnominal Fiquei entre surpresa e divertida, setenta, eu? Mas tudo parece
ter sido ontem! No século em que a maioria quer ter vinte anos
10. (MACK-SP) “Não se fazem motocicletas como antigamen- (trinta a gente ainda aguenta), eu estava fazendo setenta. Pior: du-
te”. O termo destacado funciona como: vidando disso, pois ainda escutava em mim as risadas da menina
(A) Objeto indireto que queria correr nas lajes do pátio quando chovia, que pescava
(B) Objeto direto lambaris com o pai no laguinho, que chorava em filme do Gordo e
(C) Adjunto adnominal Magro, quando a mãe a levava à matinê. (Eu chorava alto com pena
(D) Vocativo dos dois, a mãe ficava furiosa.)
(E) Sujeito A menina que levava castigo na escola porque ria fora de hora,
porque se distraía olhando o céu e nuvens pela janela em lugar de
11. (UFRJ) Esparadrapo prestar atenção, porque devagarinho empurrava o estojo de lápis
Há palavras que parecem exatamente o que querem dizer. “Es- até a beira da mesa, e deixava cair com estrondo sabendo que os
paradrapo”, por exemplo. Quem quebrou a cara fica mesmo com meninos, mais que as meninas, se botariam de quatro catando lá-
cara de esparadrapo. No entanto, há outras, aliás de nobre sentido, pis, canetas, borracha – as tediosas regras de ordem e quietude se-
que parecem estar insinuando outra coisa. Por exemplo, “incuná- riam rompidas mais uma vez.
bulo*”. Fazendo a toda hora perguntas loucas, ela aborrecia os profes-
QUINTANA, Mário. Da preguiça como método de trabalho. Rio de sores e divertia a turma: apenas porque não queria ser diferente,
Janeiro, Globo. 1987. p. 83. queria ser amada, queria ser natural, não queria que soubessem
que ela, doze anos, além de histórias em quadrinhos e novelinhas
*Incunábulo: [do lat. Incunabulu; berço]. Adj. 1- Diz-se do livro açucaradas, lia teatro grego – sem entender – e achava emocionan-
impresso até o ano de 1500./ S.m. 2 – Começo, origem. te.
(E até do futuro namorado, aos quinze anos, esconderia isso.)
A locução “No entanto” tem importante papel na estrutura do O meu aniversário: primeiro pensei numa grande celebração,
texto. Sua função resume-se em: eu que sou avessa a badalações e gosto de grupos bem pequenos.
(A) ligar duas orações que querem dizer exatamente a mesma Mas pensei, setenta vale a pena! Afinal já é bastante tempo! Logo
coisa. me dei conta de que hoje setenta é quase banal, muita gente com
(B) separar acontecimentos que se sucedem cronologicamen- oitenta ainda está ativo e presente.
te. Decidi apenas reunir filhos e amigos mais chegados (tarefa difí-
(C) ligar duas observações contrárias acerca do mesmo assun- cil, escolher), e deixar aquela festona para outra década.”
to. LUFT, 2014, p.104-105
(D) apresentar uma alternativa para a primeira ideia expressa.

7
LÍNGUA PORTUGUESA
Leia atentamente a oração destacada no período a seguir: 20. (IBGE) Indique a opção correta, no que se refere à concor-
“(...) pois ainda escutava em mim as risadas da menina que dância verbal, de acordo com a norma culta:
queria correr nas lajes do pátio (...)” (A) Haviam muitos candidatos esperando a hora da prova.
(B) Choveu pedaços de granizo na serra gaúcha.
Assinale a alternativa em que a oração em negrito e sublinhada (C) Faz muitos anos que a equipe do IBGE não vem aqui.
apresenta a mesma classificação sintática da destacada acima. (D) Bateu três horas quando o entrevistador chegou.
(A) “A menina que levava castigo na escola porque ria fora de (E) Fui eu que abriu a porta para o agente do censo.
hora (...)”
(B) “(...) e deixava cair com estrondo sabendo que os meninos, 21. (FUVEST – 2001) A única frase que NÃO apresenta desvio
mais que as meninas, se botariam de quatro catando lápis, em relação à regência (nominal e verbal) recomendada pela norma
canetas, borracha (...)” culta é:
(C) “(...) não queria que soubessem que ela (...)” (A) O governador insistia em afirmar que o assunto principal
(D) “Logo me dei conta de que hoje setenta é quase banal seria “as grandes questões nacionais”, com o que discordavam
(...)” líderes pefelistas.
(B) Enquanto Cuba monopolizava as atenções de um clube,
16. (FUNRIO – 2012) “Todos querem que nós do qual nem sequer pediu para integrar, a situação dos outros
____________________.” países passou despercebida.
(C) Em busca da realização pessoal, profissionais escolhem a
Apenas uma das alternativas completa coerente e adequada- dedo aonde trabalhar, priorizando à empresas com atuação
mente a frase acima. Assinale-a. social.
(A) desfilando pelas passarelas internacionais. (D) Uma família de sem-teto descobriu um sofá deixado por
(B) desista da ação contra aquele salafrário. um morador não muito consciente com a limpeza da cidade.
(C) estejamos prontos em breve para o trabalho. (E) O roteiro do filme oferece uma versão de como consegui-
(D) recuperássemos a vaga de motorista da firma. mos um dia preferir a estrada à casa, a paixão e o sonho à
(E) tentamos aquele emprego novamente. regra, a aventura à repetição.

17. (ITA - 1997) Assinale a opção que completa corretamente 22. (FUVEST) Assinale a alternativa que preenche corretamen-
as lacunas do texto a seguir: te as lacunas correspondentes.
“Todas as amigas estavam _______________ ansiosas A arma ___ se feriu desapareceu.
_______________ ler os jornais, pois foram informadas de que as Estas são as pessoas ___ lhe falei.
críticas foram ______________ indulgentes ______________ ra- Aqui está a foto ___ me referi.
paz, o qual, embora tivesse mais aptidão _______________ ciên- Encontrei um amigo de infância ___ nome não me lembrava.
cias exatas, demonstrava uma certa propensão _______________ Passamos por uma fazenda ___ se criam búfalos.
arte.”
(A) meio - para - bastante - para com o - para - para a (A) que, de que, à que, cujo, que.
(B) muito - em - bastante - com o - nas - em (B) com que, que, a que, cujo qual, onde.
(C) bastante - por - meias - ao - a - à (C) com que, das quais, a que, de cujo, onde.
(D) meias - para - muito - pelo - em - por (D) com a qual, de que, que, do qual, onde.
(E) bem - por - meio - para o - pelas – na (E) que, cujas, as quais, do cujo, na cuja.

18. (Mackenzie) Há uma concordância inaceitável de acordo 23. (FESP) Observe a regência verbal e assinale a opção falsa:
com a gramática: (A) Avisaram-no que chegaríamos logo.
I - Os brasileiros somos todos eternos sonhadores. (B) Informei-lhe a nota obtida.
II - Muito obrigadas! – disseram as moças. (C) Os motoristas irresponsáveis, em geral, não obedecem aos
III - Sr. Deputado, V. Exa. Está enganada. sinais de trânsito.
IV - A pobre senhora ficou meio confusa. (D) Há bastante tempo que assistimos em São Paulo.
V - São muito estudiosos os alunos e as alunas deste curso. (E) Muita gordura não implica saúde.

(A) em I e II 24. (IBGE) Assinale a opção em que todos os adjetivos devem


(B) apenas em IV ser seguidos pela mesma preposição:
(C) apenas em III (A) ávido / bom / inconsequente
(D) em II, III e IV (B) indigno / odioso / perito
(E) apenas em II (C) leal / limpo / oneroso
(D) orgulhoso / rico / sedento
19. (CESCEM–SP) Já ___ anos, ___ neste local árvores e flores. (E) oposto / pálido / sábio
Hoje, só ___ ervas daninhas.
(A) fazem, havia, existe 25. (TRE-MG) Observe a regência dos verbos das frases reescri-
(B) fazem, havia, existe tas nos itens a seguir:
(C) fazem, haviam, existem I - Chamaremos os inimigos de hipócritas. Chamaremos aos ini-
(D) faz, havia, existem migos de hipócritas;
(E) faz, havia, existe II - Informei-lhe o meu desprezo por tudo. Informei-lhe do meu
desprezo por tudo;
III - O funcionário esqueceu o importante acontecimento. O
funcionário esqueceu-se do importante acontecimento.

8
LÍNGUA PORTUGUESA
A frase reescrita está com a regência correta em: 31. (VUNESP/2017 – TJ-SP) Assinale a alternativa em que todas
(A) I apenas as palavras estão corretamente grafadas, considerando-se as regras
(B) II apenas de acentuação da língua padrão.
(C) III apenas (A) Remígio era homem de carater, o que surpreendeu D.
(D) I e III apenas Firmina, que aceitou o matrimônio de sua filha.
(E) I, II e III (B) O consôlo de Fadinha foi ver que Remígio queria desposa-
-la apesar de sua beleza ter ido embora depois da doença.
26. (INSTITUTO AOCP/2017 – EBSERH) Assinale a alternativa (C) Com a saúde de Fadinha comprometida, Remígio não con-
em que todas as palavras estão adequadamente grafadas. seguia se recompôr e viver tranquilo.
(A) Silhueta, entretenimento, autoestima. (D) Com o triúnfo do bem sobre o mal, Fadinha se recuperou,
(B) Rítimo, silueta, cérebro, entretenimento. Remígio resolveu pedí-la em casamento.
(C) Altoestima, entreterimento, memorização, silhueta. (E) Fadinha não tinha mágoa por não ser mais tão bela; agora,
(D) Célebro, ansiedade, auto-estima, ritmo. interessava-lhe viver no paraíso com Remígio.
(E) Memorização, anciedade, cérebro, ritmo.
32. (PUC-RJ) Aponte a opção em que as duas palavras são acen-
27. (ALTERNATIVE CONCURSOS/2016 – CÂMARA DE BANDEI- tuadas devido à mesma regra:
RANTES-SC) Algumas palavras são usadas no nosso cotidiano de (A) saí – dói
forma incorreta, ou seja, estão em desacordo com a norma culta (B) relógio – própria
padrão. Todas as alternativas abaixo apresentam palavras escritas (C) só – sóis
erroneamente, exceto em: (D) dá – custará
(A) Na bandeija estavam as xícaras antigas da vovó. (E) até – pé
(B) É um privilégio estar aqui hoje.
(C) Fiz a sombrancelha no salão novo da cidade. 33. (UEPG ADAPTADA) Sobre a acentuação gráfica das palavras
(D) A criança estava com desinteria. agradável, automóvel e possível, assinale o que for correto.
(E) O bebedoro da escola estava estragado. (A) Em razão de a letra L no final das palavras transferir a
tonicidade para a última sílaba, é necessário que se marque
28. (SEDUC/SP – 2018) Preencha as lacunas das frases abaixo graficamente a sílaba tônica das paroxítonas terminadas em
com “por que”, “porque”, “por quê” ou “porquê”. Depois, assinale a L, se isso não fosse feito, poderiam ser lidas como palavras
alternativa que apresenta a ordem correta, de cima para baixo, de oxítonas.
classificação. (B) São acentuadas porque são proparoxítonas terminadas em
“____________ o céu é azul?” L.
“Meus pais chegaram atrasados, ____________ pegaram trân- (C) São acentuadas porque são oxítonas terminadas em L.
sito pelo caminho.” (D) São acentuadas porque terminam em ditongo fonético –
“Gostaria muito de saber o ____________ de você ter faltado eu.
ao nosso encontro.” (E) São acentuadas porque são paroxítonas terminadas em L.
“A Alemanha é considerada uma das grandes potências mun-
diais. ____________?” 34. (IFAL – 2016 ADAPTADA) Quanto à acentuação das palavras,
(A) Porque – porquê – por que – Por quê assinale a afirmação verdadeira.
(B) Porque – porquê – por que – Por quê (A) A palavra “tendem” deveria ser acentuada graficamente,
(C) Por que – porque – porquê – Por quê como “também” e “porém”.
(D) Porquê – porque – por quê – Por que (B) As palavras “saíra”, “destruída” e “aí” acentuam-se pela
(E) Por que – porque – por quê – Porquê mesma razão.
(C) O nome “Luiz” deveria ser acentuado graficamente, pela
29. (CEITEC – 2012) Os vocábulos Emergir e Imergir são parô- mesma razão que a palavra “país”.
nimos: empregar um pelo outro acarreta grave confusão no que (D) Os vocábulos “é”, “já” e “só” recebem acento por constitu-
se quer expressar. Nas alternativas abaixo, só uma apresenta uma írem monossílabos tônicos fechados.
frase em que se respeita o devido sentido dos vocábulos, selecio- (E) Acentuam-se “simpática”, “centímetros”, “simbólica” por-
nando convenientemente o parônimo adequado à frase elaborada. que todas as paroxítonas são acentuadas.
Assinale-a.
(A) A descoberta do plano de conquista era eminente. 35. (MACKENZIE) Indique a alternativa em que nenhuma pala-
(B) O infrator foi preso em flagrante. vra é acentuada graficamente:
(C) O candidato recebeu despensa das duas últimas provas. (A) lapis, canoa, abacaxi, jovens
(D) O metal delatou ao ser submetido à alta temperatura. (B) ruim, sozinho, aquele, traiu
(E) Os culpados espiam suas culpas na prisão. (C) saudade, onix, grau, orquídea
(D) voo, legua, assim, tênis
30. (FMU) Assinale a alternativa em que todas as palavras estão (E) flores, açucar, album, virus
grafadas corretamente.
(A) paralisar, pesquisar, ironizar, deslizar
(B) alteza, empreza, francesa, miudeza
(C) cuscus, chimpazé, encharcar, encher
(D) incenso, abcesso, obsessão, luxação
(E) chineza, marquês, garrucha, meretriz

9
LÍNGUA PORTUGUESA
36. (IFAL - 2011)

Parágrafo do Editorial “Nossas crianças, hoje”.

“Oportunamente serão divulgados os resultados de tão importante encontro, mas enquanto nordestinos e alagoanos sentimos na pele
e na alma a dor dos mais altos índices de sofrimento da infância mais pobre. Nosso Estado e nossa região padece de índices vergonhosos
no tocante à mortalidade infantil, à educação básica e tantos outros indicadores terríveis.” (Gazeta de Alagoas, seção Opinião, 12.10.2010)
O primeiro período desse parágrafo está corretamente pontuado na alternativa:
(A) “Oportunamente, serão divulgados os resultados de tão importante encontro, mas enquanto nordestinos e alagoanos, sentimos
na pele e na alma a dor dos mais altos índices de sofrimento da infância mais pobre.”
(B) “Oportunamente serão divulgados os resultados de tão importante encontro, mas enquanto nordestinos e alagoanos sentimos,
na pele e na alma, a dor dos mais altos índices de sofrimento da infância mais pobre.”
(C) “Oportunamente, serão divulgados os resultados de tão importante encontro, mas enquanto nordestinos e alagoanos, sentimos
na pele e na alma, a dor dos mais altos índices de sofrimento da infância mais pobre.”
(D) “Oportunamente serão divulgados os resultados de tão importante encontro, mas, enquanto nordestinos e alagoanos sentimos,
na pele e na alma a dor dos mais altos índices de sofrimento, da infância mais pobre.”
(E) “Oportunamente, serão divulgados os resultados de tão importante encontro, mas, enquanto nordestinos e alagoanos, sentimos,
na pele e na alma, a dor dos mais altos índices de sofrimento da infância mais pobre.”

37. (F.E. BAURU) Assinale a alternativa em que há erro de pontuação:


(A) Era do conhecimento de todos a hora da prova, mas, alguns se atrasaram.
(B) A hora da prova era do conhecimento de todos; alguns se atrasaram, porém.
(C) Todos conhecem a hora da prova; não se atrasem, pois.
(D) Todos conhecem a hora da prova, portanto não se atrasem.
(E) N.D.A

38. (VUNESP – 2020) Assinale a alternativa correta quanto à pontuação.


(A) Colaboradores da Universidade Federal do Paraná afirmaram: “Os cristais de urato podem provocar graves danos nas articula-
ções.”.
(B) A prescrição de remédios e a adesão, ao tratamento, por parte dos pacientes são baixas.
(C) É uma inflamação, que desencadeia a crise de gota; diagnosticada a partir do reconhecimento de intensa dor, no local.
(D) A ausência de dor não pode ser motivo para a interrupção do tratamento conforme o editorial diz: – (é preciso que o doente
confie em seu médico).
(E) A qualidade de vida, do paciente, diminui pois a dor no local da inflamação é bastante intensa!

39. (ENEM – 2018)

Física com a boca


Por que nossa voz fica tremida ao falar na frente do ventilador?
Além de ventinho, o ventilador gera ondas sonoras. Quando você não tem mais o que fazer e fica falando na frente dele, as ondas da
voz se propagam na direção contrária às do ventilador. Davi Akkerman – presidente da Associação Brasileira para a Qualidade Acústica – diz
que isso causa o mismatch, nome bacana para o desencontro entre as ondas. “O vento também contribui para a distorção da voz, pelo fato
de ser uma vibração que influencia no som”, diz. Assim, o ruído do ventilador e a influência do vento na propagação das ondas contribuem
para distorcer sua bela voz.
Disponível em: http://super.abril.com.br. Acesso em: 30 jul. 2012 (adaptado).

Sinais de pontuação são símbolos gráficos usados para organizar a escrita e ajudar na compreensão da mensagem. No texto, o sentido
não é alterado em caso de substituição dos travessões por
(A) aspas, para colocar em destaque a informação seguinte
(B) vírgulas, para acrescentar uma caracterização de Davi Akkerman.
(C) reticências, para deixar subetendida a formação do especialista.
(D) dois-pontos, para acrescentar uma informação introduzida anteriormente.
(E) ponto e vírgula, para enumerar informações fundamentais para o desenvolvimento temático.

10
LÍNGUA PORTUGUESA
40. (FCC – 2020)

A supressão da vírgula altera o sentido da seguinte frase:


(A) O segundo é o “capitalismo de Estado”, que confia ao governo a tarefa de estabelecer a direção da economia.
(B) milhões prosperaram, à medida que empresas abriam mercados.
(C) Por fim, executivos e investidores começaram a reconhecer que seu sucesso em longo prazo está intimamente ligado ao de seus
clientes.
(D) De início, um novo indicador de “criação de valor compartilhado” deveria incluir metas ecológicas.
(E) Na verdade, esse deveria ser seu propósito definitivo.

41. (CESGRANRIO - RJ) As palavras esquartejar, desculpa e irreconhecível foram formadas, respectivamente, pelos processos de:
(A) sufixação - prefixação – parassíntese
(B) sufixação - derivação regressiva – prefixação
(C) composição por aglutinação - prefixação – sufixação
(D) parassíntese - derivação regressiva – prefixação
(E) parassíntese - derivação imprópria - parassíntese

42. (UFSC) Aponte a alternativa cujas palavras são respectivamente formadas por justaposição, aglutinação e parassíntese:
(A) varapau - girassol - enfaixar
(B) pontapé - anoitecer - ajoelhar
(C) maldizer - petróleo - embora
(D) vaivém - pontiagudo - enfurece
(E) penugem - plenilúnio - despedaça

11
LÍNGUA PORTUGUESA
43. (CESGRANRIO) Assinale a opção em que nem todas as pala- 47. (UFMG-ADAPTADA) As expressões em negrito correspon-
vras são de um mesmo radical: dem a um adjetivo, exceto em:
(A) noite, anoitecer, noitada (A) João Fanhoso anda amanhecendo sem entusiasmo.
(B) luz, luzeiro, alumiar (B) Demorava-se de propósito naquele complicado banho.
(C) incrível, crente, crer (C) Os bichos da terra fugiam em desabalada carreira.
(D) festa, festeiro, festejar (D) Noite fechada sobre aqueles ermos perdidos da caatinga
(E) riqueza, ricaço, enriquecer sem fim.
(E) E ainda me vem com essa conversa de homem da roça.
44. (FUVEST-SP) Foram formadas pelo mesmo processo as se-
guintes palavras: 48. (UMESP) Na frase “As negociações estariam meio abertas
(A) vendavais, naufrágios, polêmicas só depois de meio período de trabalho”, as palavras destacadas são,
(B) descompõem, desempregados, desejava respectivamente:
(C) estendendo, escritório, espírito (A) adjetivo, adjetivo
(D) quietação, sabonete, nadador (B) advérbio, advérbio
(E) religião, irmão, solidão (C) advérbio, adjetivo
(D) numeral, adjetivo
45. (FUVEST) Assinale a alternativa em que uma das palavras (E) numeral, advérbio
não é formada por prefixação:
(A) readquirir, predestinado, propor 49. (ITA-SP)
(B) irregular, amoral, demover Beber é mal, mas é muito bom.
(C) remeter, conter, antegozar (FERNANDES, Millôr. Mais! Folha de S. Paulo, 5 ago. 2001, p. 28.)
(D) irrestrito, antípoda, prever
(E) dever, deter, antever A palavra “mal”, no caso específico da frase de Millôr, é:
(A) adjetivo
46. (UNIFESP - 2015) Leia o seguinte texto: (B) substantivo
Você conseguiria ficar 99 dias sem o Facebook? (C) pronome
Uma organização não governamental holandesa está propondo (D) advérbio
um desafio que muitos poderão considerar impossível: ficar 99 dias (E) preposição
sem dar nem uma “olhadinha” no Facebook. O objetivo é medir o
grau de felicidade dos usuários longe da rede social. 50. (PUC-SP) “É uma espécie... nova... completamente nova!
O projeto também é uma resposta aos experimentos psicológi- (Mas já) tem nome... Batizei-(a) logo... Vou-(lhe) mostrar...”. Sob o
cos realizados pelo próprio Facebook. A diferença neste caso é que ponto de vista morfológico, as palavras destacadas correspondem
o teste é completamente voluntário. Ironicamente, para poder par- pela ordem, a:
ticipar, o usuário deve trocar a foto do perfil no Facebook e postar (A) conjunção, preposição, artigo, pronome
um contador na rede social. (B) advérbio, advérbio, pronome, pronome
Os pesquisadores irão avaliar o grau de satisfação e felicidade (C) conjunção, interjeição, artigo, advérbio
dos participantes no 33º dia, no 66º e no último dia da abstinência. (D) advérbio, advérbio, substantivo, pronome
Os responsáveis apontam que os usuários do Facebook gastam (E) conjunção, advérbio, pronome, pronome
em média 17 minutos por dia na rede social. Em 99 dias sem acesso,
a soma média seria equivalente a mais de 28 horas, 2que poderiam
ser utilizadas em “atividades emocionalmente mais realizadoras”. GABARITO
(http://codigofonte.uol.com.br. Adaptado.)

Após ler o texto acima, examine as passagens do primeiro pa-


1 C
rágrafo: “Uma organização não governamental holandesa está pro-
pondo um desafio” “O objetivo é medir o grau de felicidade dos 2 B
usuários longe da rede social.” 3 D
A utilização dos artigos destacados justifica-se em razão:
(A) da retomada de informações que podem ser facilmen- 4 C
te depreendidas pelo contexto, sendo ambas equivalentes 5 C
semanticamente.
6 A
(B) de informações conhecidas, nas duas ocorrências, sendo
possível a troca dos artigos nos enunciados, pois isso não 7 D
alteraria o sentido do texto. 8 C
(C) da generalização, no primeiro caso, com a introdução de
informação conhecida, e da especificação, no segundo, com 9 B
informação nova. 10 E
(D) da introdução de uma informação nova, no primeiro caso,
e da retomada de uma informação já conhecida, no segundo. 11 C
(E) de informações novas, nas duas ocorrências, motivo pelo 12 B
qual são introduzidas de forma mais generalizada
13 E
14 B

12
LÍNGUA PORTUGUESA

15 A ANOTAÇÕES
16 C
17 A ______________________________________________________
18 C ______________________________________________________
19 D
______________________________________________________
20 C
21 E ______________________________________________________

22 C ______________________________________________________
23 A
______________________________________________________
24 D
______________________________________________________
25 E
26 A ______________________________________________________
27 B ______________________________________________________
28 C
______________________________________________________
29 B
30 A ______________________________________________________

31 E _____________________________________________________
32 B _____________________________________________________
33 E
______________________________________________________
34 B
35 B ______________________________________________________
36 E ______________________________________________________
37 A
______________________________________________________
38 A
39 B ______________________________________________________

40 A ______________________________________________________
41 D ______________________________________________________
42 D
______________________________________________________
43 B
44 D ______________________________________________________
45 E ______________________________________________________
46 D
______________________________________________________
47 B
______________________________________________________
48 B
49 B ______________________________________________________
50 E ______________________________________________________

______________________________________________________

______________________________________________________

______________________________________________________

______________________________________________________

______________________________________________________

______________________________________________________

______________________________________________________

13
LÍNGUA PORTUGUESA

ANOTAÇÕES ANOTAÇÕES

______________________________________________________ ______________________________________________________

______________________________________________________ ______________________________________________________

______________________________________________________ ______________________________________________________

______________________________________________________ ______________________________________________________

______________________________________________________ ______________________________________________________

______________________________________________________ ______________________________________________________

______________________________________________________ ______________________________________________________

______________________________________________________ ______________________________________________________

______________________________________________________ ______________________________________________________

______________________________________________________ ______________________________________________________

______________________________________________________ ______________________________________________________

_____________________________________________________ _____________________________________________________

_____________________________________________________ _____________________________________________________

______________________________________________________ ______________________________________________________

______________________________________________________ ______________________________________________________

______________________________________________________ ______________________________________________________

______________________________________________________ ______________________________________________________

______________________________________________________ ______________________________________________________

______________________________________________________ ______________________________________________________

______________________________________________________ ______________________________________________________

______________________________________________________ ______________________________________________________

______________________________________________________ ______________________________________________________

______________________________________________________ ______________________________________________________

______________________________________________________ ______________________________________________________

______________________________________________________ ______________________________________________________

______________________________________________________ ______________________________________________________

______________________________________________________ ______________________________________________________

______________________________________________________ ______________________________________________________

______________________________________________________ ______________________________________________________

______________________________________________________ ______________________________________________________

______________________________________________________ ______________________________________________________

______________________________________________________ ______________________________________________________

______________________________________________________ ______________________________________________________

______________________________________________________ ______________________________________________________

14
LÍNGUA INGLESA
1. Conhecimento de um vocabulário fundamental e dos aspectos gramaticais básicos para a interpretação de textos técnicos . . . . . 01
LÍNGUA INGLESA
- Conhecimento prévio: para compreender um texto, o leitor
CONHECIMENTO DE UM VOCABULÁRIO FUNDAMEN- depende do conhecimento que ele já tem e está armazenado em
TAL E DOS ASPECTOS GRAMATICAIS BÁSICOS PARA A sua memória. É a partir desse conhecimento que o leitor terá o
INTERPRETAÇÃO DE TEXTOS TÉCNICOS entendimento do assunto tratado no texto e assimilará novas in-
formações. Trata-se de um recurso essencial para o leitor formular
INGLÊS hipóteses e inferências a respeito do significado do texto.

Reading Comprehension; O leitor tem, portanto, um papel ativo no processo de leitura


Interpretar textos pode ser algo trabalhoso, dependendo do e compreensão de textos, pois é ele que estabelecerá as relações
assunto, ou da forma como é abordado. Tem as questões sobre o entre aquele conteúdo do texto e os conhecimentos de mundo que
texto. Mas, quando o texto é em outra língua? Tudo pode ser mais ele carrega consigo. Ou mesmo, será ele que poderá agregar mais
assustador. profundidade ao conteúdo do texto a partir de sua capacidade de
Se o leitor manter a calma, e se embasar nas estratégias do buscar mais conhecimentos acerca dos assuntos que o texto traz e
Inglês Instrumental e ter certeza que ninguém é cem por cento leigo sugere.
em nada, tudo pode ficar mais claro. Não se esqueça que saber interpretar textos em inglês é muito
Vejamos o que é e quais são suas estratégias de leitura: importante para ter melhor acesso aos conteúdos escritos fora do
país, ou para fazer provas de vestibular ou concursos.
Inglês Instrumental
Também conhecido como Inglês para Fins Específicos - ESP, o
Inglês Instrumental fundamenta-se no treinamento instrumental Nouns (Countable and uncountable)
dessa língua. Tem como objetivo essencial proporcionar ao aluno, Regular and irregular plural of nouns: To form the plural of the
em curto prazo, a capacidade de ler e compreender aquilo que for nouns is very easy, but you must practice and observe some rules.
de extrema importância e fundamental para que este possa desem-
penhar a atividade de leitura em uma área específica. Regular plural of nouns
- Regra Geral: forma-se o plural dos substantivos geralmente
Estratégias de leitura acrescentando-se “s” ao singular.
- Skimming: trata-se de uma estratégia onde o leitor vai buscar Ex.: Motherboard – motherboards
a ideia geral do texto através de uma leitura rápida, sem apegar-se Printer – printers
a ideias mínimas ou específicas, para dizer sobre o que o texto trata. Keyboard – keyboards
- Scanning: através do scanning, o leitor busca ideias específicas
no texto. Isso ocorre pela leitura do texto à procura de um detalhe - Os substantivos terminados em y precedido de vogal seguem
específico. Praticamos o scanning diariamente para encontrarmos a regra geral: acrescentam s ao singular.
um número na lista telefônica, selecionar um e-mail para ler, etc. Ex.:Boy – boys Toy – toys
- Cognatos: são palavras idênticas ou parecidas entre duas línguas Key – keys
e que possuem o mesmo significado, como a palavra “vírus” é escrita
igualmente em português e inglês, a única diferença é que em português - Substantivos terminados em s, x, z, o, ch e sh, acrescenta-se
a palavra recebe acentuação. Porém, é preciso atentar para os chamados es.
falsos cognatos, ou seja, palavras que são escritas igual ou parecidas, mas Ex.: boss – bosses tax – taxes bush – bushes
com o significado diferente, como “evaluation”, que pode ser confundida
com “evolução” onde na verdade, significa “avaliação”. - Substantivos terminados em y, precedidos de consoante, tro-
- Inferência contextual: o leitor lança mão da inferência, ou cam o y pelo i e acrescenta-se es. Consoante + y = ies
seja, ele tenta adivinhar ou sugerir o assunto tratado pelo texto, e Ex.: fly – flies try – tries curry – curries
durante a leitura ele pode confirmar ou descartar suas hipóteses.
- Reconhecimento de gêneros textuais: são tipo de textos que Irregular plurals of nouns
se caracterizam por organização, estrutura gramatical, vocabulário There are many types of irregular plural, but these are the most
específico e contexto social em que ocorrem. Dependendo das mar- common:
cas textuais, podemos distinguir uma poesia de uma receita culiná-
ria, por exemplo. - Substantivos terminados em fe trocam o f pelo v e acrescen-
- Informação não-verbal: é toda informação dada através de ta-se es.
figuras, gráficos, tabelas, mapas, etc. A informação não-verbal deve Ex.: knife – knives
ser considerada como parte da informação ou ideia que o texto de- life – lives
seja transmitir. wife – wives
- Palavras-chave: são fundamentais para a compreensão do
texto, pois se trata de palavras relacionadas à área e ao assunto - Substantivos terminados em f trocam o f pelo v; então, acres-
abordado pelo texto. São de fácil compreensão, pois, geralmente,
centa-se es.
aparecem repetidamente no texto e é possível obter sua ideia atra-
Ex.: half – halves wolf – wolves loaf – loaves
vés do contexto.
- Grupos nominais: formados por um núcleo (substantivo) e
- Substantivos terminados emo, acrescenta-se es.
um ou mais modificadores (adjetivos ou substantivos). Na língua
Ex.: potato – potatoes tomato – tomatoes volcano – volcanoes
inglesa o modificador aparece antes do núcleo, diferente da língua
portuguesa.
- Substantivos que mudam a vogal e a palavra.
- Afixos: são prefixos e/ou sufixos adicionados a uma raiz, que
modifica o significado da palavra. Assim, conhecendo o significado Ex.: foot – feet child – children person – people tooth – teeth
de cada afixo pode-se compreender mais facilmente uma palavra mouse – mice
composta por um prefixo ou sufixo.

1
LÍNGUA INGLESA
Countable and Uncountable nouns
Contáveis são os substantivos que podemos enumerar e contar, ou seja, que podem possuir tanta forma singular quanto plural. Eles
são chamados de countable nouns em inglês.
Por exemplo, podemos contar orange. Podemos dizer one orange, two oranges, three oranges, etc.

Incontáveis são os substantivos que não possuem forma no plural. Eles são chamados de uncountable nouns, de non-countable nou-
ns em inglês. Podem ser precedidos por alguma unidade de medida ou quantificador. Em geral, eles indicam substâncias, líquidos, pós,
conceitos, etc., que não podemos dividir em elementos separados. Por exemplo, não podemos contar “water”. Podemos contar “bottles
of water” ou “liters of water”, mas não podemos contar “water” em sua forma líquida.
Alguns exemplos de substantivos incontáveis são: music, art, love, happiness, advice, information, news, furniture, luggage, rice, sugar,
butter, water, milk, coffee, electricity, gas, power, money, etc.

Veja outros de countable e uncountable nouns:

Pronouns (subject, object, demonstrative, possessive adjective and possessive pronouns )


O estudo dos pronomes é algo simples e comum. Em inglês existe apenas uma especificidade, que pode causar um pouco de estra-
nheza, que é o pronome “it”, o qual não utilizamos na língua portuguesa; mas, com a prática, você vai conseguir entender e aprender bem
rápido.

Subject Pronouns

I (eu) I am a singer.
YOU (você, tu, vocês) You are a student.
HE (ele) He is a teacher.
SHE (ela) She is a nurse.
IT (ele, ela) It is a dog/ It is a table.
WE (nós) We are friends.
THEY (eles) They are good dancers.

O pronome pessoal (subject pronoun) é usado apenas no lugar do sujeito (subject), como mostra o exemplo abaixo:
Mary is intelligent = She is intelligent.

Uso do pronome “it”


- To refer an object, thing, animal, natural phenomenon.
Example: The dress is ugly.It is ugly.

2
LÍNGUA INGLESA
The pen is red.It is red.
The dog is strong.It is strong.

Attention
a) If you talk about a pet use HE or SHE
Dick is the name of my little dog. He’s very intelligent!

b) If you talk about a baby/children that you don’t know if is a girl or a boy.
The baby is in tears. It is in tears. The child is happy. It is happy.

Object Pronous
São usados como objeto da frase. Aparecem sempre depois do verbo.

ME
YOU
HIM
HER
IT
US
YOU
THEM

Exemplos:
They told me the news.
She loves him so much.

Demonstrative Pronouns
Os pronomes demonstrativos são utilizados para demonstrar alguém ou alguma coisa que está perto ou longe da pessoa que fala ou
de quem se fala, ou seja, indica posição em relação às pessoas do discurso.
Veja quais são em inglês:

Singular Plural Singular Plural


THIS THESE THAT THOSE
Este/esta/isto Estes/estas Aquele/aquela/aquilo Aqueles/aquelas

Usa-se o demonstrativo THIS/THESE para indicar seres que estão perto de quem fala. Observe o emprego dos pronomes demonstra-
tivos nas frases abaixo:
This method will work.
These methods will work.

O pronome demonstrativo THAT/THOSE é usado para indicar seres que estão distantes da pessoa que fala. Observe:
That computer technology is one of the most fundamental disciplines of engineering.
Those computers technology are the most fundamental disciplines of engineering.

Possessive Adjectives and Possessive Pronouns


Em inglês há, também, dois tipos de pronomes possessivos, os Possessive Adjectives e os Possessive Pronouns.

Possessive adjectives Possessive pronouns


My Mine
Your Yours
His His
Her Hers
Its Its
Our Ours
Your Yours
Their Theirs

3
LÍNGUA INGLESA
Possessive Adjectives são usados antes de substantivos, prece- - Antes de nomes próprios no singular.
didos ou não de adjetivos. She lives in South America.
Exemplos:
Our house is close. - Antes de possessivos.
I want to know your name. My house is more comfortable than theirs.

Possessive Pronouns são usados para substituir a construção - Antes de nomes de idiomas, não seguidos da palavra langua-
possessive adjective + substantivo, evitando assim a repetição. ge.
Exemplo: She speaks French and English. (Mas: She speaks THE French
My house is yellow and hers is white. language.)
Theirs is the most beautiful car in the town.
- Antes de nomes de estações do ano.
Articles (definite and indefinite) Summer is hot, but winter is cold.

Definite Article Casos especiais


- Não se usa o artigo THE antes das palavras church, school,
THE = o, a, os, as prison, market, bed, hospital, home, university, college, market,
quando esses elementos forem usados para seu primeiro propósito.
Usos She went to church. (para rezar)
- Antes de substantivos tomados em sentido restrito. She went to THE church. (talvez para falar com alguém)
THE coffee produced in Brazil is of very high quality.
I hate THE music they’re playing. - Sempre se usa o artigo THE antes de office, cathedral, cine-
ma, movies e theater.
- Antes de nomes de países no plural ou que contenham as pa- Let’s go to THE theater.
lavras Kingdom, Republic, Union, Emirates. They went to THE movies last night.
THE United States
THE Netherlands Indefinite Article
THE United Kingdom
THE Dominican Republic A / AN = um, uma

- Antes de adjetivos ou advérbios no grau superlativo. 1. A


John is THE tallest boy in the family. - Antes de palavras iniciadas por consoantes.
A boy, A girl, A woman
- Antes de acidentes geográficos (rios, mares, oceanos, cadeias
de montanhas, desertos e ilhas no plural), mesmo que o elemento - Antes de palavras iniciadas por vogais, com som consonantal.
geográfico tenha sido omitido. A uniform, A university, A European
THE Nile (River)
THE Sahara (Desert) 2. AN
- Antes de palavras iniciadas por vogais.
- Antes de nomes de famílias no plural. AN egg, AN orange, AN umbrella
THE Smiths have just moved here.
- Antes de palavras iniciadas por H mudo (não pronunciado).
- Antes de adjetivos substantivados. AN hour, AN honor, AN heir
You should respect THE old.
B. Usos
- Antes de numerais ordinais. - Para se dar ideia de representação de um grupo, antes de
He is THE eleventh on the list. substantivos.
A chicken lays eggs. (Todas as galinhas põem ovos.)
- Antes de nomes de hotéis, restaurantes, teatros, cinemas,
museus. - Antes de nomes próprios no singular, significando “um tal de”.
THE Hilton (Hotel) A Mr. Smith phoned yesterday.

- Antes de nacionalidades. - No modelo:


THE Dutch
WHAT + A / AN = adj. + subst.
- Antes de nomes de instrumentos musicais. What A nice woman!
She plays THE piano very well.
- Em algumas expressões de medida e frequência.
- Antes de substantivos seguidos de preposição. A dozen
THE Battle of Trafalgar A hundred
Twice A year
Omissões
- Antes de substantivos tomados em sentido genérico. - Em certas expressões.
Roses are my favorite flowers. It’s A pity, It’s A shame, It’s AN honor...

4
LÍNGUA INGLESA
- Antes de profissão ou atividades.
James is A lawyer.
Her sister is A physician.

C. Omissão

- Antes de substantivos contáveis no plural.


Lions are wild animals.

- Antes de substantivos incontáveis.


Water is good for our health.
* Em alguns casos, podemos usar SOME antes dos substantivos.

Prepositions
As preposições são muito utilizadas na estrutura das frases. Em inglês não poderia ser diferente. As preposições expressam lugar ou
posição, direção, tempo, maneira (modo), e agente (ou instrumento).

The keyboard is on the desk - (lugar ou posição).


Raphaelran toward the hotel - (direção).
The plane arrived at eleveno’clock - (tempo).
David travels by train - (maneira ou modo).
The computer was broken by him - (agente).

PREPOSIÇÕES
Horas The airplane will arrive at five o’clock.
Datas We have a big party at Christmas.
Lugares He is at the drugstore.
AT Cidades pequenas She lives at Barcelos.
Períodos do dia She works at night.
(noon,night, midnight, dawn)
Endereços completos Fabrizio lives at 107 Boulevard Street.
Períodos do diaMarcus works in the morning.
(exceto noon, night, midnight e dawn)
Meses The case will arrive in March.
Estações do ano It’s very hot in summer.
IN Anos David graduaded in 2008.
Séculos Manaus was created in 18th century.
Expressões do tempo The computer will be working in few days.
Expressões de lugar (dentro) The memory is in the CPU.
Estados, Cidades grandes, Países, August lives in São Paulo.
Continentes There are many developed countries in Europe.
“sobre” Our bags are on the reception desk.
Dias da semana He has class on Friday.
Datas He has class on Friday.
ON
Transportes coletivos There are a lot of people on that plane.
Nomes de ruas ou avenidas The CETAM is on Djalma Street.
“floor” Gabriel lives on the 8th floor.

5
LÍNGUA INGLESA
Prepositions of Place

Verb tenses

Infinitive

A forma infinitiva do inglês é to + verbo

Usos:
- após numerais ordinais
He was the first to answer the prohne.

- com too e enough


This house is too expensive for me to buy.
He had bought food enough to feed a city!

- após o verbo want


I want you to translate the message.

- após os verbos make, let e have (sem to)


This makes me feel happy.
Let me know if you need any information.

- após o verbo help (com ou sem to)


She helped him (to) choose a new car.

Observações:
Certos verbos admitem
o gerund ou infinitive sem alteração de sentido.
It started raining. / It started to rain.

He began to clean the house. / He began cleaning the house.

2. O verbo STOP admite tanto o gerund quanto o infinitive com alteração de sentido.
He stopped smoking.
(= Ele parou de fumar.)

He stopped to smoke.
(= Ele parou para fumar.)

Imperative
O imperativo, é usado para dar ordens, instruções, fazer pedidos e até mesmo aconselhar alguém. É uma forma verbal utilizada dia-
riamente e que muita gente acaba não conhecendo.

A forma afirmativa sempre inicia com o verbo.


Exemplos:
Eat the salad. – Coma a salada.
Sit down! – Sente-se
Help me! – Me ajude!
Tell me what you want. – Me diga o que você quer.

6
LÍNGUA INGLESA
Be careful! – Tome cuidado!
Turn the TV down. – Desligue a televisão.
Complete all the sentences. – Complete todas as sentenças.
Be quiet, please! – Fique quieto, por favor!

Frases na forma negativa sempre acrescentamos o Don’t antes do verbo.


Exemplos:
Don’t be late! – Não se atrase!
Don’t yell in the church! – Não grite na igreja!
Don’t be scared. – Não se assuste.
Don’t worry! – Não se preocupe!
Don’t drink and drive. – Não beba e dirija.

Simple Present
O Simple Present é a forma verbal simples do presente. O você precisa fazer para usar o Simple Present é saber os verbos na sua forma
mais simples. Por exemplo “to go” que significa ir, é usado em “I go” para dizer eu corro.
Exemplos de Simple Present:
I run– Eu corro
You run – Você corre/Vocês correm
We run – Nós corremos
They run – Eles correm

Regras do Simple Present


As únicas alterações que acontecem nos verbos se limitam aos pronomes he, she e it. De modo geral, quando vamos usar o Simple
Present para nos referirmos a ele, ela e indefinido, a maioria dos verbos recebe um “s” no final:
He runs – Ele corre
She runs – Ela corre
It runs – Ele/ela corre

Para verbos que têm algumas terminações específicas com “o”, “s”, “ss”, “sh”, “ch” “x” ou “z”, deve-se acrescentar “es” no final:
He goes – Ele vai
She does – Ela faz
It watches – Ele/ela assiste

Quando o verbo termina com consoantes e “y” no final. Por exemplo, os verbos study, try e cry e têm consoantes antes do “y”. Nesses
casos, você deve tirar o “y” e acrescentar “ies” no lugar. Veja o exemplo:
He studies – Ele estuda
She tries – Ela tenta
It cries – Ele/ela chora
Com verbos que também terminam com “y” e têm uma vogal antes, permanece a regra geral da maioria dos verbos: acrescentar
apenas o “s” ao final da palavra.
He enjoys – Ele gosta
She stays – Ela fica
It plays – Ele/ela brinca

Formas afirmativa, negativa e interrogativa

7
LÍNGUA INGLESA
Present Continuous
- Usamos o Present Continuous para ações ou acontecimentos ocorrendo no momento da fala com as expressões now, at present, at
this moment, right now e outras.
Exemplo:
She is running at the park now.

- Usamos também para ações temporárias.


Exemplos:
He is sleeping on a sofá these days because his bed is broken.
- Futuro próximo.
Exemplo:
The train leaves at 9 pm.

Observações:
- Alguns verbos não são normalmente usados nos tempos contínuos. Devemos usá-los, preferencialmente, nas formas simples: see,
hear, smell, notice, realize, want, wish, recognize, refuse, understand, know, like, love, hate, forget, belong, seem, suppose, appear,
have (= ter, possuir), think (= acreditar).

- Verbos monossilábicos terminados em uma só consoante, precedida de uma só vogal, dobram a consoante final antes do acréscimo
de –ing.

Exemplos:
Run → running
swim → swimming

- Verbos dissilábicos terminados em uma só consoante, precedida de uma só vogal, dobram a consoante final somente se o acento
tônico incidir na segunda sílaba.
Exemplos:
prefer → preferring
admit → admitting
listen → listening
enter → entering

- Verbos terminados em –e perdem o –e antes do acréscimo de –ing, mas os terminados em –ee apenas acrescentam –ing.
Exemplos:
make → making
dance → dancing
agree → agreeing
flee → fleeing

- Verbos terminados em –y recebem –ing, sem perder o –y.


Exemplos:
study → studying
say → saying

- Verbos terminados em –ie, quando do acréscimo de –ing, perdem o –ie e recebem –ying.
Exemplos:
lie → lying
die → dying
Porém, os terminados em –ye não sofrem alterações.
dye → dyeing

8
LÍNGUA INGLESA
Formas afirmativa, negativa e interrogativa

Immediate Future
O simple future é um das formas usadas para expressar ações futuras. Em geral vem acompanhado de palavras que indicam futuro,
como: tomorrow, next. Geralmente, usamos a palavra “will”. Posteriormente, você verá que também podemos utilizar “be going to” para
formar o futuro e a diferença de utilização entre eles.
Example:
Affirmative: What will you study?
Negative: I will study English.
Interrogative: I won’t study English.

Note: we use the auxiliary verb WILL +verbs in infinitive (without “to” ).

Forma contraída
I will study - I’ll study
You will travel - You’ll travel
He will / She will eat - He’ll / She’ll eat
It will happen - It’ll happen
We will work - We’ll work
You will dance - You’ll dance
They will do - They’ll do

Simple Past
With most verbs, the simple past is created simply by adding “ED”. That form belongs for all to the people, not varying in the 3rd person.
Simple past is used to indicate an accomplished action and totally finished in the past, corresponding in Portuguese, the perfect pre-
terite as imperfect preterite.
Ex.: Santos Dumont lived in France. He created the 14 Bis.

Regra geral Acrescenta-se “ed” Play – played


Verbos terminados em “e” Acrescenta-se “d” Like – liked
Verbos terminados em y precedido de consoante Mudam o y para i e acrescentam “ed” Study – studied

9
LÍNGUA INGLESA
Example:
To work
I worked
You worked
He worked
She worked
It worked
We worked
They worked

Simple past – negative and interrogative form

Usos:
- ações definidas no passa do com yesterday, ...ago, last night (week,month etc) e expressõesque indiquem ações completamente
terminadas no passado.

Exemplos:
Peter flew to London last night.
Cabral discovered Brazil in 1500.

- ações habituais no passado com as mesmas expressões e advérbios que indicam ações habituais no presente.
Exemplos:
They visited rarely visited their grandparents.
She often got up at 6.

- após as if e as though (= como se) e após o verbo wish.


Exemplos:
She behaves as if she knew him.
I wish I had more time to study.

- No caso do verbo BE, todas as pessoas terão a mesma forma (were).


Exemplos:
She acts as though she were a queen.
I wish I were younger.

- após if only (= se ao menos)


Exemplos:
If only I knew the truth.
If only he understood me.

OBSERVAÇÕES
1. As regras de “dobra” de consoantes existentes para o acréscimo de -ing aplicam-se quando acrescentarmos -ed.
stop → stopped
prefer → preferred

2. Verbos terminados em -y perdem o -y e recebem o acréscimo de -ed quando o -y aparecer depois de umaconsoante. Caso contrário,
o -y permanece.
rely → relied
play → played

10
LÍNGUA INGLESA
Past Continuous

Usos:
- ação que estava ocorrendo no passado quando outra ação passada começou.
Exemplos:
They were having a bath when the phone rang.
She was watching TV when Stanley arrived.

- ação ou acontecimento que continuou por algum tempo no passado.


Exemplos:
This time last year I was living in London.
I saw you last night. You were waiting for a bus.

Present Perfect

Usos:
- ação indefinida no passado, sem marca de tempo. Isso o diferencia do Simple Past.
We have finished our homework.
Jane has traveled to London.
They have accepted the job offer.

- com os advérbios EVER, NEVER, ALREADY, YET, JUST, SO FAR, LATELY, RECENTLY e expressões como ONCE, TWICE, MANY TIMES, FEW
TIMES etc.

Have you EVER seen a camel?


She has NEVER been to Greece.
The students have ALREADY written their compositions.
The bell hasn’t rung YET.
Our cousins have JUST arrived.
We have read five chapters SO FAR.
She has traveled a lot LATELY.
Have you seen any good films RECENTLY?
I have flown on an airplane MANY TIMES.

- com SINCE (= desde) e FOR (= há, faz)


She has lived in New York SINCE 2013.
She has lived in New York FOR 7 years.

11
LÍNGUA INGLESA

Adjectives (comparative and superlative)


Em Inglês utilizamos adjetivos para comparar duas coisas ou mais. Eles podem ser classificados em dois graus: comparativo e superlativo.
O grau comparativo é usado para comparar duas coisas. Já o superlativo, usamos para dizer que uma coisa se destaca num grupo de
três ou mais.

Exemplos:
As cold as = tão frio quanto
Not so (as) cold as = não tão frio quanto
Less cold than = menos frio que
The least cold = o menos frio
As expensive as = tão caro quanto
Not so (as) expensive as = não tão caro quanto
Less expensive than = menos caro que
The least expensive = o menos caro

12
LÍNGUA INGLESA
Observações: Formas irregulares
1. Usamos os sufixos –er ou –est com adjetivos / advérbios de Alguns adjetivos e advérbios têm formas irregulares no compa-
uma só sílaba. rativo e superlativo de superioridade.
Exemplos:
taller than = mais alto que / the tallest = o mais alto
good (bom / boa)
bigger than = maior que / the biggest = o maior better than - the best
well (bem)
2. Usamos os sufixos –er ou –est com adjetivos de duas sílabas. bad (ruim / mau)
- the worst
Exemplos: badly (mal)
happier than = mais feliz que little (pouco) less than - the least
cleverer than = mais esperto que
the happiest = o mais feliz Alguns adjetivos e advérbios têm mais de uma forma no com-
the cleverest = o mais esperto parativo e superlativo de superioridade.
3. Usamos os prefixos more e most com adjetivos de mais de
duas sílabas. far (longe)
Exemplos: farther than – the farthest (distância)
further (than) – the furthest (distância / adicional)
More comfortable than = mais confortável que old (velho)
More careful than = mais cuidadoso que older than – the oldest
The most comfortable = o mais confortável elder – the eldest (só para elementos da mesma família)
The most careful = o mais cuidadoso late (tarde)
the latest (o mais recente)
4. Usamos os prefixos more e most com advérbios de duas sí- the last (o último da série)
labas.
Exemplos: Adverbs (manner, modifier and frequency)
More afraid than = mais amedrontado que - Advérbios de frequência (OFTEN, GENERALLY, SOMETIMES,
More asleep than = mais adormecido que NEVER, SELDOM, ALWAYS...) são colocados, de preferência, ANTES
The most afraid = o mais amedrontado do verbo principal ou APÓS o verbo auxiliar ou o verbo to be.
The most asleep = o mais adormecido
They USUALLY watch TV in the evenings.
5. Usamos os prefixos more e most com qualquer adjetivo ter- She is ALWAYS late.
minado em –ed, –ing, –ful, –re, –ous. These curtains haveNEVER been cleaned.
Exemplos:
tired – more tired than – the most tired (cansado) Expressões adverbiais de freqüência são colocadas no final ou
charming – more charming than – the most charming (char- no início de uma oração.
moso) They watch TV EVERY EVENING.
hopeful – more hopeful than – the most hopeful (esperançoso) ONCE A WEEK they go swimming.
sincere – more sincere than – the most sincere (sincero)
famous – more famous than – the most famous (famoso) -Advérbios de probabilidade (POSSIBLY, PROBABLY, CER-
TAINLY...) são colocados antes do verbo principal mas após be ou
Variações ortográficas um verbo auxiliar.
- Adjetivos monossilábicos terminados em uma só consoante, He PROBABLYknows her phone number.
precedida de uma só vogal dobram a consoante final antes de rece- He isCERTAINLY at home now.
berem –er ou –est.
Exemplos: PERHAPS e MAYBE aparecem normalmente no começo de
fat – fatter than – the fattest (gordo) uma oração.
thin – thinner than – the thinnest (magro) PERHAPS I’ll see her later.
MAYBE you’re right.
- Adjetivos terminados em Y, precedido de vogal, trocam o Y
por I antes do acréscimo de –er ou –est: - Advérbios de tempo (TODAY, TOMORROW, NOW, SOON, LA-
Exemplos: TELY...) são colocados no final ou no início de uma oração.
angry – angrier than – the angriest (zangado) He bought a new camera YESTERDAY.
happy – happier than – the happiest (feliz) ON MONDAY I’m going to London.
Exceção
shy - shyer than - the shyest (tímido) - Advérbios de modo (SLOWLY, QUICKLY, GENTLY, SOFTLY,
WELL...) aparecem normalmente no final da oração. Alguns advér-
- Adjetivos terminados em E recebem apenas –r ou –st. bios podem também aparecer no início de uma oração se quiser-
Exemplos: mos enfatizá-los.
nice– nicer than – the nicest (bonito, simpático) She entered the room SLOWLY.
brave – braver than – the bravest (corajoso) SLOWLY she entered the room.

- Grande parte dos advérbios de modo é formada pelo acrésci-


mo de LY ao adjetivo.

13
LÍNGUA INGLESA
serious – seriousLY
careful – carefulLY
quiet – quietLY
heavy – heaviLY
bad – badLY

Porém, nem todas as palavras terminadas em LY são advérbios.

lonely = solitário (adjetivo)


lovely = encantador (adjetivo)
silly = tolo (adjetivo)
elderly = idoso (adjetivo)

- Advérbios de lugar (HERE, THERE, EVERYWHERE...) são usados no início ou no final de orações.
You’ll find what you want HERE.
THERE comes the bus.

- MODO, LUGAR, TEMPO


A posição normal dos advérbios em uma oração é:
He did his job CAREFULLY AT HOME YESTERDAY.

MODO LUGAR TEMPO

- LUGAR, MODO, TEMPO


Com verbos de movimento, a posição normal é:
She traveled TO LONDON BY PLANE LAST WEEK.

LUGAR MODO TEMPO

There to be
Para a formação do verbo haver, em inglês, faz-se necessário a junção de there e o verbo to be. Veja alguns exemplos práticos, a seguir.

SINGULAR PLURAL
Present There is Present There are
Past There was Past There were
Tradução Há Tradução Havia

Examples:
There is a bad operation in the computer.
There are two basic types of monitors.
Before there was the public internet.

14
LÍNGUA INGLESA

Can
O verbo can geralmente significa poder e/ou conseguir e é usado para indicar várias situações:
- Possibilidade
- Capacidade/habilidade
- Permissão
- Pedido

Capacidade, habilidade
She can speak five languages. (present)
She could play tennis when she was younger. (past)
She will be able to translate the text. (future)

Permissão
You can use my car.
She can sit anywhere.

O verbo can é sempre acompanhado do verbo principal no infinitivo sem o to. Ele pode ser usado para construir frases afirmativas,
negativas e interrogativas.

Word order
A estrutura básica das frases em inglês é semelhante à nossa, no português. Ela segue um esquema que chamamos SVO, ou seja Su-
jeito-Verbo-Objeto. O mesmo vale para frases negativas, em que simplesmente se adiciona ao verbo auxiliar a forma negativa not a essa
estrutura afirmativa. Do mesmo jeito que, no português, usamos um advérbio de negação, como “não”.
Formar uma frase interrogativa em inglês também não é complicado, embora os componentes da frase mudem um pouco de posição
em relação ao português. O mesmo vale para frases exclamativas.

Para formar frases afirmativas, o inglês usa o mesmo esquema Sujeito-Verbo-Objeto que usamos no português. Já para frases nega-
tivas devemos apenas adicionar o not a essa estrutura afirmativa — exatamente como fazemos em nosso idioma — mas também inserir
um verbo auxiliar em inglês.
Já para interrogações e exclamações, os componentes das frases em inglês mudam um pouco, em relação aos do português.
Tradução literal não tem como funcionar porque cada língua é parte de uma cultura e as culturas são completamente diferentes.
Fica fácil não cometer mais este erro se você lembrar que as frases em Inglês sempre precisam ter um sujeito (considerando somente
a frase central). As únicas que começam direto do verbo são as imperativas como tell me, stand up e ask her.
Entender a estrutura de um idioma é muito mais importante do que tentar traduzir tudo ao pé-da-letra.

Sujeito
O sujeito, que sempre ocupa a primeira posição na frase, contrário ao que ocorre na língua portuguesa, nunca é omitido. O sujeito
pode ser representado por um ou vários substantivos ou por pronomes pessoais.

15
LÍNGUA INGLESA
Verbo
Como se pode observar nos exemplos anteriores, o verbo ou a locução verbal (sublinhados) ocupa a segunda posição na estrutura
frasal inglesa.
Na poesia, na música ou no inglês falado coloquial, pode-se encontrar exemplos em que esta regra não é observada.
Entretanto, em linguagem técnico-científica, como no inglês computacional, o formato S+V+C é usado rigorosamente.

Complementos
Os complementos são palavras ou frases inteiras que detalham ou completam as informações estabelecidas pelo sujeito e o verbo,
que são os únicos termos essenciais da oração.
Analisemos estas frases: “A secretária chegou”, “O ônibus saiu”, “O avião caiu”. Sintaticamente, já temos os dois elementos indispen-
sáveis: O sujeito que determina quem está envolvido na execução de uma determinada ação e o verbo que responde pelo ato executado.

WH-questions
Os Interrogativos (Question Words) são usados para se obter informações específicas. As perguntas elaboradas com eles são chama-
das wh-questions, pois todos os interrogativos, com exceção apenas de how (como), começam com as letras wh.
Há perguntas em inglês iniciadas por pronomes interrogativos para se obter informações do tipo: “quem, o que, como, quando, onde”.

WHAT = (o) que, qual

Funciona como sujeito ou objeto da oração.


What makes you happy? (sujeito)
verbo objeto
principal

What did you say? (objeto)


auxiliar sujeitoverbo
principal
WHO = quem

Funciona como sujeito ou objeto da oração.

Who arrived late yesterday? (sujeito)


verbo principal

Whodoesshelove? (objeto)
auxiliarsujeitoverbo
principal

WHOM = quem

Funciona só como objeto de oração ou é usado após preposições.


Whomdidyoutalktoyesterday? (objeto)
verbo sujeito verbo
auxiliar principal

To whom did you talk?

WHICH = que, qual, quais - Indica escolha ou opção.


Which shirt do you prefer: the blue one or the red one?
Which of those ladies is your mother?

WHERE = onde
Where are you going tonight?
WHY = por que
Why don’t you come to the movies with us?

WHEN = quando
“When were you born?” “In 1970.”

HOW = como
“How is his sister?” “Fine.”

WHOSE = de quem
“Whose dictionary is this?” “John’s.”

16
LÍNGUA INGLESA
Formas compostas de WHAT e HOW
- WHAT

WHAT + to be + like? = como é...?


“What is your boyfriend like?”
“He’s tall and slim.”

WHAT about...? = Que tal, o que você acha de...?


What abouthaving lunch now?

WHAT do you call...? = como se chama...? qual é o nome...?


What do you call this device?
- WHAT ... FOR? = por que, para que?
What are you doing this for?
- HOW
HOW FAR = Qual é a distância?
HOW DEEP = Qual é a profundidade?
HOW LONG = Qual é o comprimento? Quanto tempo?
HOW WIDE = Qual é a largura?
HOW TALL = Qual é a altura? (pessoas)
HOW HIGH = Qual é a altura? (coisas)
HOW OLD = Qual é a idade?
HOW MUCH = Quanto(a)?
HOW MANY = Quantos(as)?
HOW OFTEN = Com que frequência?
HOW FAST = A que velocidade?

Vestimentas

17
LÍNGUA INGLESA
T-shirt = camiseta Subjects
Sweatshirt = Blusa de moletom Inglês: English
Shirt = camisa Matemática: Mathematics (Math)
Suit = terno História: History
Pants:calça Geografia: Geography
Tie = gravata Química: Chemistry
Wedding dress = vestido de noiva Física: Physics
Jacket = jaqueta Ciência: Science
Skirt = saia Biologia: Biology
Coat = casaco Educação Física: Physical Education (P.E.)
Shorts = Bermuda Artes: Arts
Dress = vestido Música: Music
Underpants = cueca Literatura: Literature
Panties = calcinha Redação: Writing
Bra = sutiã Português: Portuguese
Nightgown = camisola Espanhol: Spanish
Pajamas = pijama
Robe = roupão Diversão e mídia
Scarf = cachecol Movies/cinema = cnema
Uniform = uniforme Theater = teatro
Singlet = regata Bar/Pub = bar
Swimming Trunks = sunga Restaurant = restaurante
Swimsuit = maiô Café = lanchonete
Bikini = biquíni Park = parque
Concert = show
Cotidiano Play = peça de teatro

U.S. Money Tecnologia


US$ 1 Dollar = 100 cents Cellphone/mobile phone = celular
bills - $1, $5, $10, $20, $50, $100 Laptop = notebook
Coins – 1c, 5c, 10c, 25c, $1 Personal computer(PC) = Computador
Penny = 1 cent Printer = impressora
Nickel = 5 cents Keyboard = teclado
Dime = 10 cents Mouse = mouse
Quarter = 25 cents Television = televisão

Ways to pay Meio ambiente


Check = cheque Environment = meio ambiente
Cash = em dinheiro Ozone layer = camada de ozônio
Note/bill = nota Water = água
Coin = moeda Tree = árvore
Credit card = cartão de crédito Weather = clima
Animals = animais
Materials Air = ar
Acrylic = acrílico Wind = vento
Cotton = algodão Rain = chuva
Denim = brim Snow = neve
Fleece/wool = lã Fog = neblina
Gold = ouro Hurricane = furacão
Leather = couro Storm = tempestade
Linen = linho Lightning = relâmpago
Plastic= plástico Thunder = trovão
Rubber = borracha
Silk = seda Comida e bebida
Silver = prata Bread — Pão
Butter — Manteiga
Educação Cake — Bolo
Nursery School = pré-escola Cheese — Queijo
Elementary school ou Primary School = Ensino fundamental I Chicken — Frango
Secondary school = Ensino fundamental II Chips — Salgadinhos
High school = Ensino médio Chocolate — Chocolate
College/University = Faculdade/universidade Corn flakes — Cereal
Egg — Ovo
Fish — Peixe

18
LÍNGUA INGLESA
French fries — Batata-frita Veal — Vitela
Ham — Presunto
Ice cream — Sorvete Vegetables (vegetais)
Jam — Geleia Anise — Anis
Jello — Gelatina Asparagus — Espargos
Margarine — Margarina Beans — Feijão
Mashed potatoes — Purê de batatas Beet — Beterraba
Meat — Carne Broccoli — Brócolis
Pancacke — Panqueca Cabbage — Repolho
Pasta — Macarrão Carrot — Cenoura
Peanut — Amendoim Cauliflower — Couve-flor
Peanut butter — pasta de amendoim Celery — Aipo/Salsão
Pepper — Pimenta Corn — Milho
Pie — Torta Cucumbers — Pepinos
Pizza — Pizza Eggplant — Berinjela
Popsicle — Picolé Garlic — Alho
Potato chips — Batata-frita Ginger — Gengibre
Rice — Arroz Green onion — Cebolinha verde
Salt — Sal Heart of Palms — Palmito
Sandwich — Sanduíche Leeks — Alho-poró
Sliced bread — Pão fatiado Lettuce — Alface
Soup — Sopa Manioc — Mandioca
Sugar — Açúcar Mushroom — Cogumelo
Toast — Torrada Okra — Quiabo
Water cracker — Bolacha de água e sal Olives — Azeitonas
Onion — Cebola
Meat (carne) Pepper — Pimenta
Bacon — Bacon Pickles — Picles
Barbecue — Churrasco Potato — Batata
Beef — Carne de vaca Pumpkin — Abóbora
Beef Jerky — Carne seca Radish — Rabanete
Blood sausage —Chouriço Rucola — Rúcula
Carp — Carpa Snow pea — Ervilha
Chicken — Frango Spinach — Espinafre
Chicken legs — Pernas de Frango Sweet potato — Batata doce
Chicken wings — Asas de Frango Tomato — Tomate
Cod — Bacalhau Turnip — Nabo
Crab — Caranguejo Watercress — Agrião
Duck — Pato Yams — Inhame
Fish — Peixe
Grilled fish — Peixe grelhado Fruits (frutas)
Ground beef — Carne moída Apple — Maçã
Hamburger — Hambúrguer Apricots — Damascos
Lobster — Lagosta Avocado — Abacate
Meatball — Almôndega Banana — Banana
Mortadella — Mortadela Blackberry — Amora
Pork chops — Costeletas de porco Blueberry — Mirtilo
Pork legs — Pernas de porco Cashew nut — Castanha de Cajú
Pork loin — Lombo de porco Cherry — Cereja
Rib cuts — Costela Coconut — Coco
Roast chicken — Frango assado Figs — Figos
Salami — Salame Grapes — Uvas
Salmon — Salmão Guava — Goiaba
Sausage — Linguiça Honeydew melon — Melão
Shrimp — Camarão Jackfruit — Jaca
Sirloin — Lombo Kiwi — Kiwi
Smoked sausage — salsicha defumada Lemon — Limão
Squid — Lula Mango — Manga
Steak — Bife Orange — Laranja
Stew meat — Guisado de carne Papaya — Mamão
T-bone steak — Bife t-bone Passion fruit — Maracujá
Tenderloin — Filé mignon Peach — Pêssego
Tuna — Atum Pear — Pera
Turkey — Peru Pineapple — Abacaxi

19
LÍNGUA INGLESA
Plum — Ameixa
Prune — Ameixa-seca
Start fruit — Carambola
Strawberry — Morango
Tamarind — Tamarindo
Tangerine — Tangerina
Watermelon — Melancia

Drinks (bebidas)
Beer — Cerveja
Brandy — Aguardente
Champagne — Champanhe
Chocolate — Chocolate
Cocktail — Coquetel
Coffee — Café
Coffee-and-milk — Café-com-leite
Draft beer — Chope
Gin — Gim
Hot chocolate — Chocolate quente
Juice — Suco
Lime juice — Limonada
Liqueur — Licor
Milk — Leite
Mineral water — Água mineral
Red wine — Vinho tinto
Rum — Rum
Soda — Refrigerante
Sparkling mineral water — Água mineral com gás
Still mineral water — Água mineral sem gás
Tonic water — Água tônica
Vodka — Vodca
Water — Água
Whiskey —Uísque
White wine —Vinho branco
Yogurt — Iogurte

Tempo livre, “hobbies” e lazer


Bowling = boliche
Camping = acampar
Canoeing = canoagem
Card games = jogos de baralho
Chess = xadrez
Cooking = cozinhar
Crossword puzzl = palavras cruzadas
Dancing = dançar
Drawing = desenhar
Embroidery = bordado
Fishing = pesca
Gardening = jardinagem
Hiking = caminhar
Hunting = caçar
Jogging = corrida
Knitting = tricotar
Mountaineering = escalar montanhas
Painting = pintar
Photography = fotografia
Playing video games = jogar vídeo games
Reading = leitura
Riding a bike = andar de bicicleta
Sculpting = esculpir
Sewing = costurar
Singing = cantar
Skating = andar de patins ou skate
Skiing = esquiar

20
LÍNGUA INGLESA
Stamp collecting = colecionar selos
Surfing = surfar
Working out = malhar

Saúde e exercícios

Health Problems and Diseases (problemas de saúde e doenças)

Skin occurrences (Ocorrências na pele)


Blemish – mancha
Bruise - contusão
Dandruff - caspa
Freckle – sarda
Itching – coceira
Pimple – espinha
Rasch – erupção da pele
Scar - cicatriz
Spot – sinal, marca
Wart – verruga
Wound - ferida
Wrinkle – ruga

Aches (Dores)
Backache – dor nas costas
Earache – dor de ouvido
Headache – dor de cabeça
Heartache – dor no peito
stomachache – dor de estômago
Toothache – dor de dente

Cold and Flu (Resfriado e Gripe)


Cough – tosse
Fever – febre
Running nose – nariz entupido
Sneeze – espirro
Sore throat – garganta inflamada
Tonsilitis – amigdalitis

21
LÍNGUA INGLESA
Other Diseases (Outras doenças)
Aneurism - aneurisma
Appendicitis - apendicite
Asthma – asma
Bronchitis – bronquite
Cancer – câncer
Cirrhosis - cirrose
Diabetes – diabetes
Hepatitis – hepatite
High Blood Pressure – hipertensão (pressão alta)
Pneumonia – pneumonia
Rheumatism – reumatismo
Tuberculosis – tuberculose
Moradia;

Povos e línguas

Sentimentos, opiniões e experiências


Happy = feliz
Afraid = com medo
Sad = triste
Hot = com calor
Amused = divertido
Bored = entediado
Anxious = ansioso
Confident = confiante
Cold = com frio

22
LÍNGUA INGLESA
Suspicious = suspeito Aquarium – Aquário
Surprised = surpreso Art gallery – Galeria de arte
Loving= amoroso ATM (Automatic Teller Machine) – Caixa eletrônico
Curious = curioso Auto repair shop ou Garage – Oficina mecânica
Envious = invejoso Avenue – Avenida
Jealous = ciumento Baby store – Loja infantil ou bebê
Miserable = miserável Barber shop – Barbearia
Confused = confuso Bakery – Padaria
Stupid = burro Bank – Banco
Angry = com raiva Beach – Praia
Sick = enjoado/doente Beauty salon/parlor/shop – Salão de beleza
Ashamed = envergonhado Block – Quarteirão
Indifferent = indiferente Bookstore ou Bookshop – Livraria
Determined = determinado Bridge – Ponte
Crazy = louco Building – Edifício ou Prédio
Depressed = depressivo Bus station – Rodoviária
Frightened = assustado Bus stop – Ponto de ônibus
Interested = interessado Butcher shop – Açougue
Shy = tímido Cabstand ou Taxi stand – Ponto de taxi
Hopeful = esperançoso Capital – Capital
Regretful = arrependido Cathedral – Catedral
Scared = assustado Cemetery – Cemitério
Stubborn = teimoso Chapel – Capela
Thirsty = com sede Church – Igreja
Guilty = culpado Circus – Circo
Nervous = nervoso City – Cidade
Embarrassed = envergonhado Clothing store – Loja de roupas
Disgusted = enojado Club – Clube
Proud = orgulhoso Coffee shop – Cafeteria
Lonely = solitário College – Faculdade
Frustrated = frustrado Computer store – Loja de informática
Hurt= magoado Concert hall – Casa de espetáculos ou Sala de concertos
Hungry = com fome Convenience store – Loja de conveniência
Tired= cansado Corner – Esquina
Thoughtful = pensativo Costume store – Loja de Fantasia
Optimistic = otimista Court – Quadra de esportes ou pode ser Tribunal ou comumen-
Relieved = aliviado te chamado de Fórum, depende do contexto.
Shocked = chocado Crosswalk/Pedestrian crossing/Zebra crossing – Faixa de pe-
Sleepy = com sono destres
Excited = animado Cul-de-sac ou Dead end street – Beco ou Rua sem saída
Bad = mal City hall – Prefeitura
Worried = preocupado Dental clinic – Clinica dentária ou Consultório Odontológico
Downtown – Centro da cidade
Identificação pessoal Driving school – Auto escola
First name = Primeiro nome Drugstore – Farmácia ou Drogaria
Middle name = Nome do meio Factory – Fábrica
Last name = Último nome Field – Campo
Full name = Nome completo Fire station – Posto ou Quartel de bombeiros
Date of Birth = Data de nascimento Fishmonger’s – Peixaria
Age = Idade Flower show – Floricultura
Sex = Sexo Food Truck – Food Truck ou Caminhão que vende comida
Place of Birth = Local de nascimento Gas station – Posto de gasolina
Nationality = Nacionalidade Glasses store ou Optical store – Loja de Ótica
Occupation = Ocupação/profissão Greengrocer – Quitanda
Address = Endereço Grocery store – Mercearia
City = Cidade Gym – Academia de ginástica
Country = País Hair salon – Cabeleireiro
Zip code/Post code = Código postal (CEP) Hardware store – Loja de ferramentas
Phone number = Número de telefone Health Clinic/Center – Clinica ou Posto de saúde
E-mail address = Endereço de e-mail Hospital – Hospital
Hotel – Hotel
Lugares e edificações House – Casa
Airport – Aeroporto Ice Cream Shop/Parlor – Sorveteria
Amusement park – Parque de diversões Intersection ou Crossroad – Cruzamento

23
LÍNGUA INGLESA
Jail ou Prison – Cadeia ou Prisão Siblings – irmãos
Jewelry store – Joalheria Brother – irmão
Kiosk – Quiosque Sister – irmã
Lake – Lago Halfbrother – meio-irmão
Laundromat ou Laundry – Lavanderia Halfsister – meia-irmã
Library – Biblioteca Only child – filho único
Lottery retailer ou Lottery kiosk – Casa lotérica Wife – esposa
Mall – Shopping center Husband – esposo
Metropolis – metrópole Fiancé – noivo
Monument – Monumento Bride – noiva
Mosque – Mesquita Uncle – tio
Movie theater – Cinema Aunt – tia
Museum – Museu Cousin – primo e prima
Neighborhood – Bairro Nephew – sobrinho
Newsstand – Banca de jornal Niece – sobrinha
Office – Escritório Grandparents – avós
One-way street – Rua de mão única ou sentido único Grandfather – avô
Outskirts ou Suburb – Periferia ou Subúrbio Grandmother – avó
Park – Parque Grandson – neto
Parking lot – Estacionamento Granddaughter – neta
Penitentiary – Presídio ou Penitenciária Great grandfather – bisavô
Perfume shop – Perfumaria Great grandmother – bisavó
Pet Shop – Pet Shop Great grandson – bisneto
Pizzeria – Pizzaria Great granddaughter – bisneta
Place – Lugar Father-in-law – sogro
Playground – Parque infantil Mother-in-law – sogra
Police station – Delegacia de polícia Brother-in-law – cunhado
Port – Porto Sister-in-law – cunhada
Post office – Agência de correios Stepfather – padrasto
Pub – Bar Stepmother – madrasta
Real estate agency – Imobiliária Stepson – enteado
Reference point ou Landmark – Ponto de referência Stepdaughter – enteada
Restaurant – Restaurante Foster parents – pais adotivos
River – Rio Foster father – pai adotivo
Road – Estrada Foster mother – mãe adotiva
Rotary ou Roundabout – Rotatória
School – Escola Transporte e serviços
Shoe store – Sapataria Airliner: Avião comercial (Aviões maiores geralmente chama-
Sidewalk – Calçada dos de boeing)
Snack bar – Lanchonete Airplane ou apenas plane: Avião
Square – Praça Bike: Bicicleta
Stadium – Estádio Boat: Barco ou bote
Station – Estação Bus: Ônibus
Stationery store – Papelaria Canoe: Canoa
Steak House – Churrascaria Car: Carro
Store – Loja Carriage: Carruagem
Street – Rua Cruiser: Cruzeiro
Subway station – Estação de metrô Ferry: Balsa
Supermarket – Supermercado Glider: Planador
Synagogue – Sinagoga Helicopter ou chopper (informal): Helicóptero
Temple – Templo Jet: Jato ou como falamos às vezes, jatinho
Town – Cidade pequena ou Município Moped ou scooter: Motocicleta ou mobilete (Patinete também
Toy store ou Toy shop – Loja de brinquedos pode ser chamado de scooter)
Train station – Estação de trem Motorbike: Motocicleta ou simplesmente moto
Travel agency – Agência de viagens Motorboat: Lancha
University – Universidade Ocean liner: Transatlântico
Zoo – Zoológico On foot: A pé
Pickup truck: Caminhonete
Relacionamento com outras pessoas Raft: Jangada
Parents – pais Roller skates: Patins
Father – pai Sailboat: Veleiro ou barco à vela
Mother – mãe School bus: Ônibus escolar
Son – filho Ship: Navio
Daughter – filha Skateboard: Skate

24
LÍNGUA INGLESA
Streetcar ou trolley: Bonde Beach Volleyball - Vôlei de Praia
Subway ou metro (inglês americano) ou The underground ou Football – Futebol Americano
informalmente the tube (inglês britânico): Metrô Footvolley - Futevôlei
Taxi ou cab: Táxi Futsal - Futsal
Train: Trem Handball - Handebol
Truck: Caminhão Hockey - Hóquei
Van: Furgão ou van Polo - Polo
Rhythmic Gymnastics - Ginástica Rítmica
Compras Rugby - Rúgbi
Algumas placas com informações importantes: Soccer - Futebol
Out to lunch – Horário de almoço Synchronized Swimming - Nado Sincronizado
Buy one get one free – Pague um, leve dois. Outras formas de Volleyball - Vôlei
passar essa mesma ideia são: BOGOF (sigla para a mesma expres- Water Polo - Polo Aquático
são) e two for one (dois por um).
Clearance sale/Reduced to clear/Closing down sale – Liquida- Mundo natural
ção
Animais em inglês: principais animais domésticos (pets)
Conversando com atendentes Bird: Pássaro;
Excuse me, I’m looking for… – Licença, eu estou procurando Bunny: Coelhinho;
por… Cat: Gato;
I’m just looking/browsing, thanks. – Estou só olhando, obri- Dog: Cachorro;
gado(a). GuineaPig: Porquinho da Índia;
Do you have this in… – Você tem isso em…Complete com o que Mouse: Rato/Camundongo;
você precisa que mude na peça: A bigger size (um tamanho maior)? Parrot: Papagaio;
/ Yellow (amarelo)? / Pink (rosa)? Rabbit: Coelho;
Could I return this? – Eu poderia devolver isso? Turtle: Tartaruga.
Could I try this on? – Posso provar?
What are the store’s opening hours? – Qual o horário em que Animais em inglês: principais nomes de aves
a loja abre? Chicken: Galinha;
Rooster: Galo;
Esporte Pigeon: Pomba;
Peacock: Pavão;
Individual Sports - Esportes Individuais Hawk: Falcão;
Athletics - Atletismo Swan: Cisne;
Automobilism - Automobilismo Sparrow: Pardal;
Artistic Gymnastics - Ginástica Artística Duck: Pato.
Boxing - Boxe
Bowling - Boliche Animais em inglês: principais animais selvagens
Canoeing - Canoagem Alligator: Jacaré;
Cycling - Ciclismo Bat: Morcego;
Equestrianism - Hipismo Bear: Urso;
Fencing - Esgrima Crocodile: Crocodilo;
Golf - Golfe Deer: Viado;
Jiujitsu - Jiu-Jítsu Elephant: Elefante;
Judo - Judô Eagle: Águia;
Karate - Caratê Giraffe: Girafa;
Motorcycling - Motociclismo Hippo: Hipopótamo;
Mountaineering - Alpinismo Kangaroo: Canguru;
Olympic Diving - Salto Ornamental Lion: Leão;
Skiing - Esqui Monkey: Macaco;
Sumo - Sumô Owl: curuja;
Surfing - Surfe Pig: Porco;
Swimming - Natação Snake: Cobra;
Table tennis - Tênis de mesa/Pingue-pongue Squirrel: Esquilo;
Taekwon-Do - Taekwon-Do Stag: Cervo;
Tennis - Tênis Tiger: Tigre;
Triathlon - Triatlo Zebra: Zebra;
Weightlifting - Halterofilismo Wolf: Lobo.

Team Sports - Esportes Coletivos Animais em inglês: principais insetos


Badminton – Badminton Ant: Formiga;
Baseball - Beisebol Mite: Ácaro;
Basketball - Basquete Bee: Abelha;
Beach Soccer - Futebol de Areia Beetle: Besouro;

25
LÍNGUA INGLESA
Butterfly: Borboleta; bromélia bromeliads
Caterpillar: Lagarta;
Cockroach: Barata; bétula birch
Cricket: Grilo; canela cinnamon
Fly: Mosca;
Flea: Pulga; carvalho oak
Firefly: Vagalume; castanheiro horse chestnut tree
Grasshoper: Grilo;
caule stem
Ladybug: Joaninha;
Louseorlice: Piolho; cebola onion
Mosquito: Pernilongo/Mosquito; cebolinha green onion
Snail: Caracol;
Spider: Aranha; cedro cedar
Tick: Carrapato; cerejeira cherry tree
Termite: Cupim.
coentro cilantro
Animais em inglês: principais animais marítimos colorau red spice mix
Crab: Caranguejo;
cominho cumin
Dolphin: Golfinho;
Fish: Peixe; coqueiro coconut tree
Octopus: Polvo; cravo clove
Penguin: Pinguim;
Seal: Foca; erva herb
Shark: Tubarão; ervas finas fine herbs
Whale: Baleia.
figueira fig tree
Animais em inglês: principais tipos de peixes folha de louro bay leaves
Carp: Carpa; gengibre ginger
Dogfish: Cação;
Dried Salted Cod: Bacalhau; girassol sunflower
Flounder: Linguado; grama grass
Hake: Pescada;
Scabbardfish: PeixeEspada; lírio lily
Tuna: Atum; macieira apple tree
Tilapia: Tilápia;
manjericão basil
Trout: Truta.
margarida daisy
Animais brasileiros em inglês melissa melissa
Capivara: Capybara;
Boto Cor-de-rosa: Pink Dolphin; musgo moss
Lobo guará: Maned Wolf; noz moscada nutmeg
Mico Leão Dourado: Golden Lion Tamarin;
Onça Pintada: Jaguar; oliveira olive tree
Tamanduá Bandira: Giantanteater; orquídea orchid
Tatu: Armadilo;
orégano oregano
Tucano: Toucan;
Quati: Coati. papoula poppy
pereira pear tree
Plantas em inglês
pinheiro pine tree
PORTUGUÊS INGLÊS planta plant
árvore tree páprica paprika
alecrim rosemary rosa rose
ameixieira plum tree salgueiro willow
arbusto bush / shrub salsa parsley
azaleia azalea samambaia fern
azevinho holly tulipa tulip
açafrão turmeric violeta violet
bordo maple vitória-régia waterlily

26
LÍNGUA INGLESA
Viagens e férias Have a picnic. — Ter um piquenique.
Had a picnic. — Teve um piquenique.
Vocabulário Play frisbee. — Jogar frisbee.
Time off. — Tempo fora do trabalho. Played frisbee. — Jogou frisbee.
Day off. — Dia de folga. Look for seashells. — Procurar por conchas do mar.
Vacation. — Férias. Looked for seashells. — Procurou por conchas do mar.
Go away. — Ir viajar. Watch the sunset. — Assistir o pôr-do-sol.
Travel. — Viajar. Watched the sunset. — Assistiu o pôr-do-sol.
Take a trip. — Fazer uma viagem. Search for historic sites. — Procurar por lugares históricos.
Take time off. — Tirar um tempo fora do trabalho. Searched for historic sites. — Procurou por lugares históricos.
Go to the beach. — Ir para a praia. Get a tan. — Pegar um bronzeado.
Go to the country. — Ir para o interior. Got a tan. — Pegou um bronzeado.
Go sunbathing ou go tanning. — Ir tomar banho de sol, se bron-
Como foram suas férias zear.
How was your vacation? — Como foram as suas férias? Went sunbathing. — Foi se bronzear.
It was good. — Foram boas. Get a sunburn. — Pegar uma queimadura do sol.
It was amazing. — Foram demais. Got a sunburn. — Pegou uma queimadura do sol.
It was very relaxing. — Foi muito relaxante. Get sunburn. — Se queimar, ser queimado pelo sol.
Got sunburn. — Se queimou do sol.
Para onde você foi Wear sunscreen ou wear sunblock. — Usar protetor solar.
Where did you go? — Onde você foi? Wore sunscreen. — Usou protetor solar.
We went to the beach. — Nós fomos para a praia. Use tanning lotion. — Usar bronzeador.
I went to the country with my family. — Eu fui para o interior Used tanning lotion. — Usou bronzeador.
com minha família.
We took a trip to Hawaii. — Nós fizemos uma viagem para o Tempo
Hawaii. As horas em inglês podem vir acompanhadas de algumas ex-
We went to visit our family in France. — Nós fomos visitar a pressões de tempo como:
nossa família na França. Day: dia
Who did you go with? — Com quem você foi? Today: hoje
I went with my sister and brother. — Eu fui com a minha irmã Yesterday: ontem
e meu irmão. The day before yesterday: anteontem
I went with my husband and kids. — Eu fui com meu marido, Tomorrow: amanhã
esposo e crianças. The day after tomorrow: depois de amanhã
I went with my wife and kids. — Eu fui com a minha esposa e Morning: manhã
crianças. Afternoon: tarde
I went with my classmates. — Eu fui com os meus colegas de Evening: noite
aula. Night: noite
Tonight: esta noite
Como você viajou Midday: meio-dia
How did you go? — Como que você foi? At noon: ao meio-dia
We went by plane. — Nós fomos de avião. Midnight: meia noite
We went by car. — Nós fomos de carro. At midnight: à meia-noite

Coisas para fazer nas férias


Read. — Ler.
Read. — Leu. (Só muda a pronúncia)
Go swimming. — Ir nadar ou nadar.
Went swimming. — Fui ou foi nadar.
Play beach soccer. — Jogar futebol de areia ou de praia.
Played beach soccer. — Jogou futebol de areia.
Make a bonfire. — Fazer uma fogueira.
Made a bonfire. — Fez uma fogueira
Play the guitar. — Tocar violão.
Played the guitar. — Tocou violão.
Throw a bonfire party. — Dar uma festa com fogueira.
Threw a bonfire party. — Deu uma festa com fogueira.
Write messages in the sand. — Escrever mensagens na areia.
Wrote messages in the sand. — Escreveu mensagens na areia.
Walk on the boardwalk. — Caminhar no calçadão de madeira.
Walked on the boardwalk. — Caminhou no calçadão de ma-
deira. Para informar as horas em inglês usa-se o “it is” ou “it’s” e os
atch free summer concerts. — Assistir shows de verão gratuito. números correspondentes (da hora e dos minutos):
Watched free summer concerts. — Assistiu shows de verão gra- Exemplo: 4:35 – It is four thirty-five.
tuito.

27
LÍNGUA INGLESA
A expressão “o’clock” é utilizada para indicar as horas exatas: Civil Servant = servidor público, funcionário público
Exemplo: 3:00 – It is three o’clock. Clerk = auxiliar de escritório
Coach = treinador, técnico esportivo
A expressão “past” é usada para indicar os minutos antes do Cobbler = sapateiro
30: Comedian = comediante
Exemplo: 6:20 – It is six twenty ou It is twenty past six. Commentator = comentarista (rádio e TV)
Composer = compositor
A expressão “a quarter” é usada para indicar um quarto de Computer programmer = programador
hora (15 minutos): Conference interpreter = intérprete de conferência
Exemplo: 3:15 – It is three fifteen ou It is a quarter past three. Contractor = empreiteiro
Consultant = consultor
A expressão “half past” é usada para indicar meia hora (30 mi- Cook = cozinheiro
nutos): Dancer = dançarino
Exemplo: 8:30 – It is eight thirty ou It is half past eight. Dentist = dentista
Designer = designer, projetista, desenhista
Note que depois dos 30 minutos, em vez da expressão “past”, Diplomat = diplomata
utilizamos o “to”: Doctor, medical doctor, physician = médico
Exemplo: 8.45 – It is eight forty-five ou It is a quarter to nine. Doorman = porteiro
Driver = motorista, piloto de automóvel
Utilizamos as expressões a.m. e p.m. para indicar quando o ho- Economist = economista
rário em inglês ocorre antes ou depois de meio-dia. Editor = editor; revisor
a.m. – antes do meio-dia Electrician = eletricista
p.m. – depois do meio-dia Engineer = engenheiro, maquinista
Farmer = fazendeiro; produtor rural; agricultor
Trabalho e empregos Filmmaker = cineasta, produtor de cinema, diretor de cinema
Accountant = contador Firefighter, fireman = bombeiro
Actor = ator Fisherman = pescador
Actress = atriz Flight attendant = comissário de bordo
Administrator = administrador Foreman = capataz; encarregado
Agronomist = agrônomo Garbageman (ame); dustman (bre) = lixeiro
Anthropologist = antropólogo Gardener = jardineiro
Archaeologist / archeologist = arqueólogo Geographer = geógrafo
Architect = arquiteto Geologist = geólogo Geographer Geógrafo(a)
Astronaut = astronauta Glazer = vidraceiro
Astronomer = astrônomo Graphic designer = designer gráfico
Athlete = atleta Gravedigger = coveiro
Babysitter, baby-sitter, sitter, nanny (ame) = babá Guide = guia
Baker = padeiro Hairdresser, hairstylist = cabeleireiro
Bank clerk = bancário Headmaster, principal (ame) = diretor (de escola)
Banker = banqueiro; bancário Historian = historiador
Bank teller = caixa de banco Housewife = dona de casa
Barber = barbeiro Illustrator = ilustrador
Barista = barista (quem tira café em casas especializadas) Interior designer = designer de interiores, decorador
Bartender = barman Interpreter = intérprete
Bellhop, bellboy = mensageiro (em hotel) Jailer = carcereiro
Biologist = biólogo Janitor, superintendent, custodian = zelador
Biomedical scientist = biomédico Journalist = jornalista
Blacksmith = ferreiro Jeweller (bre), Jeweler (ame) = joalheiro
Bricklayer, mason = pedreiro Judge = juiz (de direito)
Broker = corretor (de seguros, de investimentos etc., menos de Lawyer = advogado
imóveis) Librarian = bibliotecário
Butcher = açougueiro Lifeguard = salva-vidas, guarda-vidas
Butler, major-domo = mordomo Locksmith = serralheiro; chaveiro
Buyer = comprador Maid = empregada doméstica
Cabdriver, cab driver, taxi driver, cabby, cabbie = taxista Male nurse = enfermeiro
Cabinet-maker = marceneiro Manager = gerente
Carpenter = carpinteiro Mathematician = matemático
Cartoonist = cartunista Mechanic = mecânico
Cattle breeder, cattle raiser, cattle farmer, cattle rancher = pe- Medic = militar do Serviço de Saúde; médico
cuarista Meteorologist = meteorologista
Cashier = caixa Midwife = parteira
Chef = chef Miner = mineiro
Chemist (bre) = farmacêutico Milkman = leiteiro
Chemist (ame) = químico model = modelo

28
LÍNGUA INGLESA
Musician = músico Writer = escritor
Nanny (ame) = babá Zoologist = zoólogo
Nurse = enfermeiro, enfermeira
Occupational therapist = terapeuta ocupacional A Marinha
Optician, optometrist = oculista Proa = Bow
Painter = pintor Popa = Stern \ astern
Paleontologist = paleontólogo Bombordo = port
Paramedic = paramédico Boreste = starboard
Personal TRAINER = personal Convés = deck
Pharmacist = farmacêutico (ame) Cf. CHEMIST Linha d aqua = water line
Philosopher = filósofo Castelo de Proa = forecastle
Photographer = fotógrafo Boca = beans
Physicist = físico Comprimento (LOA) = length overall
Physiotherapist = fisioterapeuta Obras Vivas = botton
Pilot = piloto (menos de automóvel), prático Obras Mortas = topsides
Playwright = dramaturgo Pontal = depth
Plumber = encanador, bombeiro (RJ) Calado de Vante = Draught forward
Poet = poeta Tombadilho = Fanny
Police officer, officer, constable = policial Calado a ré = draught forward
Politician = político Costado = ribcage
Porter = porteiro Plano diametral = diametral plane
Postman, mailman = carteiro Bochecha = tack
Producer = produtor (em geral artístico) Alheta = wing \ quarter
Professor = professor (universitário) Passadisso = gangway \ bridge
Proofreader = revisor Casco = hull
Psychiatrist = psiquiatra Borda livre = free board
Psychologist = psicólogo Displacement = tonelagem
Publisher = editor Notice to marine = aviso aos navegantes
Real estate agent, realtor = corretor de imóveis List of Lights = lista de faróis
Receptionist = recepcionista Full Load = plena carga
Referee = árbitro, juiz (esportes), perito (responsável por análi- Fuel = combustível
se de artigos científicos) Cruising speed = velocidade de cruzeiro
Reporter = repórter Draft = projeto
Researcher = pesquisador Length = comprimento
Sailor, seaman = marinheiro Inland Waters = águas interiores
Salesman* = vendedor Bússula = compass
Sales representative, sales rep = vendedor Ship = navio
Saleswoman* = vendedora Ocean liner = navio transatlântico
Scientist = cientista Tug = rebocador
Screenwriter = roteirista Gross Tonnage = arqueação bruta
Sculptor = escultor Tanker Ship = Navio Petroleiro
Seamstress = costureira Plataform Ship = navio plataforma
Secretary = secretária Vessel = navio embarcação
Shopkeeper (ame), storekeeper (bre), shop owner, merchant = Broken = quebrado
lojista, comerciante Rope = cabo
Singer, vocalist = cantor Boom = pau de carga
Social worker = assistente social Starboard = boreste
Speech therapist = fonoaudiólogo Port = bombordo
Statistician = estatístico Speed = velocidade
Systems analyst = analista de sistemas Ahead = a frente
Tailor = alfaiate Crew = tripulação
Teacher = professor Stern = popa
Operator = operador Fire = fogo
Operator, telephone operator = telefonista Fireman = bombeiro
Teller = caixa (geralmente de banco) Hose = mangueira
Trader = trader, operador (em bolsa de valores) Fire Hose = mangueira de incêndio
Translator = tradutor Tonnage Length = comprimento tonelagem
Travel agent = agente de viagens Scend = Caturro
Treasurer = tesoureiro Heel = adernar (mesmo que banda)
Valet = manobrista Bulkhead = Antepara
Vet, veterinarian = veterinário Flush Deck = convés corrido
Waiter* = garçom Hold = porão
Waitress* = garçonete Bollard = cabeço no cais
Welder = soldador Bitt = cabeço no navio

29
LÍNGUA INGLESA
Profissões a bordo no navio Bags Balles = bolsas de fardos
Captain of Long Haul = capitão de longo curso Steel plates = chapas de aço
Auxiliary Health = auxiliar de saúde Homem ao mar = man over board
Steward = taifeiro Merchant Ship = Navio mercante
Cook = cozinheiro
Pumpman = bombeiro (trabalha com bombas) Chamadas e comunicações
Nurse = enfermeiro Não especificado = unspecified
Officer = oficial Explosion = explosão
Skipper = patrão Alagado = flooding
Helmsman = timoneiro Collision = colisão
Bo’sun = mestre ou contra mestre Grounding = encalhando
Seaman = homem do mar Adernado = listing
Sailor = marinheiro Capsizing = emborcando
Engineer = chefe de máquinas Sin King = naufragando
Mid Ship = meio navio Disabled = sem governo
Ship’s Articles = rol de equipagem Adrift = a deriva
Ship’s Log = diário de bordo Abandonar o navio = abandoning ship
Insurance Certificate = certificado de seguro Piracy = pirataria
Customs Clearance = aduaneiro Ataque armado = armed attack
Charter Party = Fretamento Grande = big
Bill of Health = certificado de saúde
Charts = cartas hidrográficas
International Convention for the Safety of Live at Sea = conven-
ção internacional de salvaguarda da vida humana no mar. (Solas) EXERCÍCIOS
STCW = Standards of training certification and watchkeeping =
convenção internacional sobre normas de formação certificação e 01. (Colégio Pedro II - Professor – Inglês - Colégio Pedro II –
service de quarto para marinheiro. 2019)
EPP = personal projective equipament = EPI equipamento de
proteção individual. TEXT 6
Fire Extinguisher = extintor de incêndio
Rudder = leme “Probably the best-known and most often cited dimension of
Helm = timão the WE (World Englishes) paradigm is the model of concentric cir-
Bosun’s Locker = paiol do mestre cles: the ‘norm-providing’ inner circle, where English is spoken as
Oars = remos a native language (ENL), the ‘norm-developing’ outer circle, where
Buoy = boia it is a second language (ESL), and the ‘norm-dependent’ expanding
Fire Alarm = alarme de incêndio circle, where it is a foreign language (EFL). Although only ‘tentati-
Rope Ladder = escada de quebra peito vely labelled’ (Kachru, 1985, p.12) in earlier versions, it has been
Gangway = passadiço claimed more recently that ‘the circles model is valid in the senses
Ports = portos of earlier historical and political contexts, the dynamic diachronic
Port Captaincy = capitania dos portos advance of English around the world, and the functions and stan-
Yacht Harbours = docas de recreio dards to which its users relate English in its many current global
Coast Guard = guarda costeira incarnations’ (Kachru and Nelson, 1996, p. 78).”
Watch Tower = posto de vigia PENNYCOOK, A. Global Englishes and Transcultural Flows. New York:
Life Boat Station = Estação de Salva Vidas Routledge, 2007, p. 21.

Dependências a bordo According to the text, it is possible to say that the “circles mo-
Galley = cozinha del” established by Kachru
Crew Mess = refeitório da tripulação a) represents a standardization of the English language.
Stateroom = cabine de dormir b) helps to explain the historicity of the English language.
c) establishes the current standards of the English language.
Amarração de cabos d) contributes to the expansion of English as a foreign langua-
Rope = cabo \ corda ge.
Dock line = cabo de amarração
Warp = lais de guia 02. (Colégio Pedro II - Professor – Inglês - Colégio Pedro II –
Reef Knot = nó direito 2019)
Volta do Fiel = clove hitch
Fisherman’s Bend = volta do Anete TEXT 5
Kink = coca (nó na mangueira)
Yarn = fibra “In other words, there are those among us who argue that the
Order = ordem future of English is dependent on the likelihood or otherwise of the
Anchor = ancora U.S. continuing to play its hegemonic role in world affairs. Since that
possibility seems uncertain to many, especially in view of the much-
Estivagem de carga -talked-of ascendancy of emergent economies, many are of the opi-
Rope Sling = linga de cabo nion that English will soon lose much of its current glitter and cease

30
LÍNGUA INGLESA
to be what it is today, namely a world language. And there are those amongst us who further speculate that, in fifty or a hundred years’
time, we will all have acquired fluency in, say, Mandarin, or, if we haven’t, will be longing to learn it. […] Consider the following argument:
a language such as English can only be claimed to have attained an international status to the very extent it has ceased to be national, i.e.,
the exclusive property of this or that nation in particular (Widdowson). In other words, the U.K. or the U.S.A. or whosoever cannot have it
both ways. If they do concede that English is today a world language, then it only behooves them to also recognize that it is not their exclu-
sive property, as painful as this might indeed turn out to be. In other words, it is part of the price they have to pay for seeing their language
elevated to the status of a world language. Now, the key word here is “elevated”. It is precisely in the process of getting elevated to a world
status that English or what I insist on referring to as the “World English” goes through a process of metamorphosis.”
RAJAGOPALAN, K. The identity of “World English”. New Challenges in Language and Literature. Belo Horizonte: FALE/UFMG, 2009, p. 99-100.

The author’s main purpose in this paragraph is to


a) talk about the growing role of some countries in the spread of English in world affairs.
b) explain the process of changing which occurs when a language becomes international.
c) raise questions about the consequences posed to a language when it becomes international.
d) alert to the imminent rise of emergent countries and the replacement of English as a world language.

03. (Prefeitura de Cuiabá - MT - Professor de Ensino Fundamental - Letras/ Inglês - SELECON – 2019)

Texto III

Warnock (2009) stated that the first reason to teach writing online is that the environment can be purely textual. Students are in a
rich, guided learning environment in which they express themselves to a varied audience with their written words. The electronic commu-
nication tools allow students to write to the teacher and to each other in ways that will open up teaching and learning opportunities for
everyone involved. Besides, writing teachers have a unique opportunity because writing-centered online courses allow instructors and
students to interact in ways beyond content delivery. They allow students to build a community through electronic means. For students
whose options are limited, these electronic communities can build the social and professional connections that constitute some of educa-
tion’s real value (Warnock, 2009).
Moreover, Melor (2007) pointed out that social interaction technologies have great benefits for lifelong education environments. The
social interaction can help enhancing the skills such as the ability to search, to evaluate, to interact meaningfully with tools, and so on.
Education activities can usually take place in the classroom which teacher and students will face to face, but now, it can be carried out
through the social network technologies including discussion and assessment. According to Kamarul Kabilan, Norlida Ahmad and Zainol
Abidin (2010), using Facebook affects learner motivation and strengthens students’ social networking practices. What is more, according
to Munoz and Towner (2009), Facebook also increases the level of web-based interaction among both teacher-student and student-stu-
dent. Facebook assists the teachers to connect with their students outside of the classroom and discuss about the assignments, classroom
events and useful links.
Hence, social networking services like Facebook can be chosen as the platform to teach ESL writing. Social networking services can
contribute to strengthen relationships among teachers as well as between teachers and students. Besides, they can be used for teachers
and students to share the ideas, to find the solutions and to hold an online forum when necessary. Using social networking services have
more options than when using communication tools which only have single function, such as instant messaging or e-mail. The people can
share interests, post, upload variety kinds of media to social networking services so that their friends could find useful information (Wiki-
pedia, 2010).
(Adapted from: YUNUS, M. D.; SALEHI, H.; CHENZI, C. English Language Teaching; Vol. 5, No. 8; 2012.)

Das opções a seguir, aquela que se configura como o melhor título para o Texto III é:
a) Advantages of Integrating SNSs into ESL Writing Classroom
b) Using Communication Tools Which Only Have Single Function
c) Facebook Assists the Teachers to Connect with Their Students
d) Using Social Networking Services to Communicate with Colleagues

04. (Prefeitura de Cabo de Santo Agostinho - PE - Professor II – Inglês - IBFC – 2019)

Leia a tira em quadrinhos e analise as afirmativas abaixo.

31
LÍNGUA INGLESA
I. No primeiro quadrinho Hagar consultou o velho sábio para 07. (SEDF - Professor Substituto – Inglês - Quadrix – 2018)
saber sobre o segredo da felicidade.
II. No segundo quadrinho as palavras that e me se referem, res-
pectivamente, ao “velho sábio” e a “Hagar”.
III. As palavras do velho sábio no último quadrinho são de que
é melhor dar que receber.

Assinale a alternativa correta.


a) Apenas as afirmativas I e III estão corretas
b) Apenas as afirmativas II e III estão corretas
c) As afirmativas I, II e III estão corretas
d) Apenas a afirmativa I está correta

05. (Prefeitura de Cabo de Santo Agostinho - PE - Professor


II – Inglês - IBFC – 2019)

THE ARAL: A DYING SEA

The Aral Sea was once the fourth biggest landlocked sea in the
world – 66,100 square kilometers of surface. With abundant fishing
resources, the Sea provided a healthy life for thousands of people.
The Aral receives its waters from two rivers – the Amu Dar’ya
and the Syr Dar’ya. In 1918, the Soviet government decided to di-
vert the two rivers and use their water to irrigate cotton planta-
tions. These diversions dramatically reduced the volume of the Aral.
As a result, the concentration of salt has doubled and impor-
tant changes have taken place: fishing industry and other enterpri-
ses have ceased: salt concentration in the soil has reduced the area Based on the text, judge the following items.
available for agriculture and pastures; unemployment has risen dra- The final “s” in “ideas” (line 2) and “brains” (line 8) is pronoun-
matically; quality of drinking water has been declining because of ced in the same way.
increasing salinity, and bacteriological contamination; the health of ( ) Certo
the people, animal and plant life have suffered as well. ( ) Errado
In the past few decades, the Aral Sea volume has decreased by
75 percent. This is a drastic change and it is human induced. During 08. I normally have two long ________ a year.
natural cycles, changes occur slowly, over hundreds of years. A)holiday
The United Nations Environment Program has recently created B)holidays
the International Fund for Saving the Aral Sea. Even if all steps are C)holidaies
taken, a substantial recovery might be achieved only with 20 years. D)holidayes
(From: https://www.unenvironment.org/)
09. They have four ________, all girls.
De acordo com o texto: The diversion of the rivers has reduced A)childs
the volume of the Aral..., assinale a alternativa correta. B)childes
a) by 60 percent C)childen
b) by 70 percent D)children
c) by 75 percent
d) by 66,100 kilometers 10. You must remember to brush your _____ after eating.
A)tooths
06. (Pref. de Teresina - PI - Professor de Educação Básica - Lín- B)toothes
gua Inglesa - NUCEPE – 2019) C)teeth
D)teeths
The plural form of brother-in-law, foot and candy is
a) brothers-in-laws, feet ,candys. 11. (Prefeitura de Fraiburgo - SC - Professor - Língua Inglesa -
b) brothers-in-law, feet, candies. FEPESE – 2019)
c) brother-in-laws, feet, candies. The Disappearing Honeybee
d) brothers-in-law, foots, candies.
e) brother-ins-law, foots, candys. Honeybees do more than just make honey. They fly around and
pollinate flowers, plants, and trees. Our fruits, nuts, and vegetables
rely.....................these pollinators. One third.....................America’s
food supply is pollinated.....................the honeybee.
Have you seen or heard a honeybee lately? Bees are myste-
riously disappearing in many parts of the world. Most people don’t
know about this problem. It is called “colony collapse disorder”
(CCD). Some North American beekeepers lost 80% of their hives
from 2006-2008. Bees in Italy and Australia are disappearing too.

32
LÍNGUA INGLESA
The disappearance of the honeybee is a serious problem. Can is frequently sidelined or ignored when it could be used as a resour-
you imagine never eating another blueberry? What about almonds ce and a way to discover more about evolving personal and social
and cherries? Without honeybees food prices will skyrocket. The motivations for learning.
poorest people always suffer the worst when there is a lack of food. One example of how mobile devices can bridge formal and
This problem affects other foods besides fresh produce. Ima- informal learning is through instantmessaging applications. Both
gine losing your favourite ice cream! Haagen Daaz is a famous ice synchronous and asynchronous activities can be developed for lan-
cream company. Many of their flavours rely on the hard working guage practice outside the classroom. For example, in a discussion
honeybee. In 2008, Haagen Daaz began raising money for CCD. They group on Whatsapp, students can discuss short videos, practice vo-
also funded a garden at the University of California called The Ha- cabulary with picture collages, share recent news, create captions
ven. This garden helps raise awareness about the disappearing ho- and punch lines for memes, and take turns to create a multimodal
neybee and teaches visitors how to plant for pollinators. story. Teachers can also create applications specifically to practice
Donating money to research is the most important thing hu- new vocabulary and grammar to support classroom learning.
mans can do to save the honeybee. Some scientists blame CCD on Digital and mobile media are changing and extending langua-
climate change. Others think pesticides are killing the bees. Com- ge use to new environments as well as creating opportunities to
mercial bee migration may also cause CCD. Beekeepers transport learn in different ways. Mobile technology enables us to get physi-
their hives from place to place in order to pollinate plants year rou- cally closer to social contexts of language use which will ultimately
nd. influence the ways that language is used and learned. Therefore,
https://www.englishclub.com/reading/environment/honeybee.htm let us incorporate mobile learning into our EFL lessons and literally
“have the world in our hands”.
Analyze the sentences according to structure and grammar use. (Disponível em http://www.richmondshare.com.br/going-mobile-goin-
1. The underlined words in the following sentence: “ The poo- g-further/)
rest people always suffer the worst when there is a lack of food.”,
are examples of adjectives in the comparative of superiority degree. In “Consequently, there are missed opportunities in terms of
2. In the sentence:” Imagine losing your favourite ice cream!”, mutual benefit: formal education remains somewhat detached
the underlined word is a noun. from rapid socio-technological change, and informal learning is fre-
3. The words in bold in the text: ‘they’ and ‘our’ are pronouns. quently sidelined or ignored when it could be used as a resource and
4. The word ‘hives’ has the following definition: a container for a way to discover more about evolving personal and social motiva-
housing honeybees. tions for learning.”, the pronoun it (paragraph 2, line 10) refers to:
A) formal education
Choose the alternative which contains all the correct affirma- B) informal learning
tives: C) mutual benefit
A) Only 3 is correct. D) change
B) Only 4 is correct. E) resource
C) Only 1 and 2 are correct.
D) Only 2 and 3 are correct. 13. (CRA-PR - Analista Sistema - Quadrix – 2019)
E) Only 2 and 4 are correct.

12. (IF-PA - Professor - Letras – Habilitação em Português e


Inglês - FADESP – 2018)

Going Mobile, Going Further!


By Anderson Francisco Guimarães Maia – October 28, 2016

So what happens to “learning” if we add the word “mobile” to


it? The increasing and rapidly developing use of mobile technology
by English language learners is an unquestionable aspect of today’s
classroom. However, the attitude EFL teachers develop towards the
use of mobile devices as an aid for language teaching varies greatly.
The unique benefits of mobile learning for EFL teachers in-
clude the ability to bridge formal and informal learning, which for
language learners may be realized through supplementary out-of-
-classroom practice, translation support when communicating with
target language speakers and the capture of difficulties and discove-
ries which can be instantly shared as well as being brought back into
the classroom. Mobile learning can deliver, supplement and extend
formal language learning; or it can be the primary way for learners
to explore a target language informally and direct their own deve-
lopment through immediacy of encounter and challenge within a
social setting. We still miss sufficient explicit connection between
these two modes of learning, one of which is mainly formal and
the other informal. Consequently, there are missed opportunities in
terms of mutual benefit: formal education remains somewhat deta-
ched from rapid socio-technological change, and informal learning

33
LÍNGUA INGLESA
15. (SEDF - Professor Substituto – Inglês - Quadrix – 2018)

Based on the text, judge the item below.


“them” (line 22) refers to “applications” (line 21).

( ) Certo
( ) Errado

14. (CRM-PR - Técnico em Tecnologia da Informação - Quadrix


– 2018)

Based on the text, judge the following item.


The singular form of “These” (line 3) is either This or That.
( ) Certo
( ) Errado

16. (Prefeitura de Fraiburgo - SC - Professor - Língua Inglesa -


FEPESE – 2019)

The Disappearing Honeybee

• Honeybees do more than just make honey. They fly arou-


nd and pollinate flowers, plants, and trees. Our fruits, nuts, and ve-
getables rely.....................these pollinators. One third.....................
America’s food supply is pollinated.....................the honeybee.
Have you seen or heard a honeybee lately? Bees are myste-
riously disappearing in many parts of the world. Most people don’t
know about this problem. It is called “colony collapse disorder”
(CCD). Some North American beekeepers lost 80% of their hives
from 2006-2008. Bees in Italy and Australia are disappearing too.
The disappearance of the honeybee is a serious problem. Can
you imagine never eating another blueberry? What about almonds
and cherries? Without honeybees food prices will skyrocket. The
poorest people always suffer the worst when there is a lack of food.
This problem affects other foods besides fresh produce. Ima-
gine losing your favourite ice cream! Haagen Daaz is a famous ice
cream company. Many of their flavours rely on the hard working
Based on the text, judge the following item. honeybee. In 2008, Haagen Daaz began raising money for CCD. They
“They” in “They’re all” (line 4) refers to “two superheroes” (line also funded a garden at the University of California called The Ha-
1). ven. This garden helps raise awareness about the disappearing ho-
( ) Certo neybee and teaches visitors how to plant for pollinators.
( ) Errado Donating money to research is the most important thing hu-
mans can do to save the honeybee. Some scientists blame CCD on cli-
mate change. Others think pesticides are killing the bees. Commercial
bee migration may also cause CCD. Beekeepers transport their hives
from place to place in order to pollinate plants year round.
https://www.englishclub.com/reading/environment/honeybee.htm

34
LÍNGUA INGLESA
Choose the alternative that presents the correct prepositions that are missing in the first paragraph.
A) on • of • by
B) in • off • by
C) at • from • about
D) on • from • by
E) at • of • due to

17. (Prefeitura de Sapucaia do Sul - RS - Professor – Área II – Língua Inglesa - FUNDATEC – 2019)

In lines 02, 03, 20 and 27 the correct sequence of particles to fill in the blanks is:
A) on – on – to – to
B) on – at – for – to
C) on – at – for – for
D) in – at – for – for
E) in – on – for – to

18. (SCGás – Advogado - IESES – 2019)

Complete the sentences with in, at or on and choose the correct alternative.
She lives _____ the countryside.
Mark is _____ university.
Don´t drop litter ____ the ground.
I arrived ____ the USA last week.

A) in - at - on - on
B) in - at - on - in
C) on - on - in - in
D) at - in - in - in

35
LÍNGUA INGLESA
19.(Pref. de Teresina - PI - Professor de Educação Básica - Lín- 21. (Prefeitura de Cabo de Santo Agostinho - PE - Professor II –
gua Inglesa - NUCEPE – 2019) Inglês - IBFC – 2019) O tempo verbal utilizado para descrever fatos
que aconteceram em tempo não determinado chama-se _____.
Smiling Can Actually Make People Happier, Study Finds Assinale a alternativa que preencha corretamente a lacuna.
a) Past continuous
Researchers of a new study find that the simple act (1)______ b) Past simple
smiling can actually make a person happier. Evidently, nearly 50 c) Present simple
years of data shows facial expressions can affect an individual’s d) Present perfect
emotions or feelings.
22. (Prefeitura de São José do Cedro - SC - Professor –Inglês -
Emotional Debate AMEOSC – 2019)
Did you _____________ that Pilates was born in prison and ins-
For over 100 years, psychologists have been debating whether pired by cats?
facial expressions can affect emotions. The argument became even Identify the best alternative that completes the context.
more pronounced (2)______ 2016 after 17 teams of scientists failed a) Knew.
to replicate a popular experiment that would supposedly show that b) Know.
smiling can actually make people happier. c) Told them.
While there are some studies that do not show a relationship d) Brought.
(3)______facial expressions and emotional feelings, the researchers
of the new study believe that they can’t focus on the data from just 23. (AMEOSC - 2019 - Prefeitura de São Miguel do Oeste - SC -
one. As such, they scoured data from 138 studies, which tested over Professor - Língua Inglês) Observe the paragraph below.
11,000 participants (4)_____ all over the world. Over the past few years, a bunch of similar books ______ to fill
“But we can’t focus on the results of any one study. Psycholo- the yawning gaps left in recorded history regarding women’s con-
gists have been testing this idea since the early 1970s, so we wan- tributions recently. Identify the best alternative that completes the
ted to look at all the evidence,” said lead researcher Nicholas Coles, context.
PhD. a) Has attempted.
Facial Expressions Affect People’s Emotions b) Had attempted.
Based on the team’s meta-analysis, facial expressions do, in c) Have attempted.
fact, have a small impact on emotions. For instance, a person who d) Are attempted.
smiles will feel happier, a person who scowls will feel angrier, and a
person who frowns will feel sadder. While the effects aren’t very po- 24. (CRA-PR - Analista Sistema I - Quadrix – 2019)
werful or long-lasting, it is significant enough to show a correlation.
According to researchers, their findings bring us closer to un-
derstanding how human emotions work and how the mind and
body work together to shape how we experience emotions. That
said, they do note that they are not saying that people can just
smile their way to happiness, especially when it comes to mental
health conditions such as depression.
The study is published in Psychological Bulletin.
Source: https://www.techtimes.com/articles/241396/20190413/
smiling-can-actually-make-peoplehappier-study-finds.htm(adapted)
Access: April 13th, 2019

The alternative that has suitable prepositions to complete the


brackets, respectively:
A) on, out, behind, in.
B) of, in , between, from.
C) of, beside, on , of.
D) on, at, from, between.
E) in, of, between, at.

20. (Pref. de Teresina - PI - Professor de Educação Básica - Lín-


gua Inglesa - NUCEPE – 2019)

Choose the best alternative to complete the blanks:


Anne was born ___July 2nd, ___the morning ___Germany.

A) on / in / in.
B) in / in / in.
C) on / in / on.
D) on / in / at.
E) at / on / on.

36
LÍNGUA INGLESA
Based on the text, judge the item below. c) He plays an important role in my life.
The infinitive form of “taught” (line 2) is think. d) She plays soccer on weekends.
( ) Certo e) The play starts at 8 p.m.
( ) Errado
26. (Prefeitura de Blumenau - SC - Professor - Inglês – Matuti-
25. (Pref. de Teresina - PI - Professor de Educação Básica - Lín- no - FURB – 2019)
gua Inglesa – NUCEPE – 2019)
What is the sequence that presents the correct example asses-
Planet’s ocean-plastics problem detailed in 60-year data set sment items with their grammatical focus listed below?
Researchers find evidence of rising plastic pollution in an acci- Grammatical focus: A superlative B past simple C gerunds and
dental source: log books for planktonmonitoring instruments. Mat- infinitives D relative pronouns E present simple passive F second
thew Warren conditional
Example assessment items:
Scientists have uncovered the first strong evidence that the 1) Complete the sentences with the correct word(s). I ..........
amount of plastic polluting the oceans has risen vastly in recent de- there for six years before moving to Budapest.
cades — by analysing 60 years of log books for plankton-tracking 2) Complete the descriptions with who or which. This is a kind
vessels. of cheese .......... is made from goat’s milk not cow’s milk.
Data recorded by instruments known as continuous plankton 3) Rewrite the sentences using the correct form of the verbs in
recorders (CPRs) — which ships have collectively towed millions of brackets. Where (you/fly) if (you/be) a bird?
kilometres across the Atlantic Ocean — show that the trackers have 4) Complete the sentences with the correct form of the verbs
become entangled in large plastic objects, such as bags and fishing in brackets. Coffee (grow) in Brazil. It (export) to many countries in
lines, roughly three times more often since 2000 than in preceding the world.
decades. 5) Complete the sentences with ... +ing or to + ... . I decided
This is the first time that researchers have demonstrated the (send) a letter to my friend. 6) Complete the sentences with an
rise in ocean plastics using a single, longterm data set, says Erik van appropriate adjective. Shanghai is the .......... city in the world.
Sebille, an oceanographer at Utrecht University in the Netherlands.
“I’m excited that this has been finally done,” he says. The analysis Mark the alternative that presents the correct sequence:
was published on 16 April in Nature Communications. a) B – D – F – E – C – A.
Although the findings are unsurprising, long-term data on b) F – E – C – A – D – B.
ocean plastics had been scant: previous studies looked mainly at c) A – C – B – E – D – F.
the ingestion of plastic by sea creatures over shorter timescales, d) C – A – F – B – D – E.
the researchers say. e) B – E – D –C – F – A.

Fishing for data 27. (Prefeitura de São Miguel do Oeste - SC - Professor - Língua
CPRs are torpedo-like devices that have been used since 1931 Inglesa - AMEOSC – 2019)
to survey plankton populations, by filtering the organisms from the
water using bands of silk. Today, volunteer ships such as ferries and Analyze the sentences below:
container ships tow a fleet of CPRs around the world’s oceans. I. She can read music much more quickly then I can;
(…)Each time a ship tows a CPR, the crew fills in a log book and II. Until 2005, the film had made the most money that any Bri-
notes any problems with the device. So Ostle and her colleagues tish film had ever made;
looked through all tow logs from the North Atlantic between 1957 III. A lot of people behaved badly at the party, but she behaved
and 2016, to determine whether plastic entanglements have beco- worst of all.
me more common.
Indicate the correct alternative according to the comparative
Evidence analysis form.
(…)Van Sebille says that because the study focused on large a) The items I and II, only.
plastic items, it doesn’t reveal much about the quantity of micro- b) The items II and III, only.
plastics — fragments fewer than 5 millimetres long — in the oceans. c) The item III, only.
These tiny contaminants come from sources such as disposable d) The items I, II, and III.
plastic packaging, rather than from fishing gear.
Nevertheless, he adds, the study demonstrates that fisheries
play a major part in plastic pollution, and will provide useful ba-
seline data for tracking whether policy changes affect the levels of
plastic in the oceans. “As fisheries become more professional, espe-
cially in the North Sea, hopefully we might see a decrease,” he says.
Source: https://www.nature.com/articles/d41586-019-01252-0 (adap-
ted).
Access: April 20th, 2019

The alternative in which “play” has the same meaning as in the


sentence:“Nevertheless, he adds, the study demonstrates that fi-
sheries play a major part in plastic pollution, and…” is:
a) The children play at the playground.
b) They play the violin very well.

37
LÍNGUA INGLESA
28. (Prefeitura de Salvador - BA - Professor Língua Estrangeira 29. (CRM-PR - Analista de Tecnologia da Informação - Quadrix
– Inglês - FGV - 2019) – 2018)

TEXT III

(Source: https://pt.wikipedia.org/wiki/Green_Book)

Here are six reviews on Green Book:


1. The screenplay essentially turns Shirley into a black man who
thematically shapeshifts into whoever will make the story appealing
to white audiences - and that’s inexcusable.
Lawrence Ware New York Times
2. Green Book is effective and affecting while being careful to
avoid overdosing its audience on material that some might deem
too shocking or upsetting.
James Berardinelli ReelViews
3. In a world that seems to get uglier every day, this movie’s
gentle heart and mere humanity feel like a salve.
Leah Greenblatt Entertainment Weekly Based on the text, judge the following item.
4. A bizarre fish-out-of-water comedy masquerading as a se- “bad” in “reception was sometimes bad” (line 9) is not the con-
rious awards-season contender by pretending to address the deep trary of better.
wound of racial inequality while demonstrating its profound inabi- ( ) Certo
lity, intellectually and dramatically, to do that. ( ) Errado
Kevin Maher Times (UK)
5. Sometimes life is stranger than art, sometimes art imitates 30. (SEDUC-CE - Professor - Língua Inglesa - UECE-CEV – 2018)
life, and sometimes life imitates art. If life starts imitating hopeful
art - that’s uplifting. That’s the goal of art, as I see it. “Green Book”
uplifts.
Mark Jackson Epoch Times
6. There’s not much here you haven’t seen before, and very
little that can’t be described as crude, obvious and borderline offen-
sive, even as it tries to be uplifting and affirmative.
A.O. Scott New York Times
(Source: https://www.rottentomatoes.com/m/green_book/reviews/)

In the sentence “to get uglier every day” (#3), “uglier” is to


“more beautiful” as
a) faster is to quicker.
b) lighter is to darker.
c) tougher is to harder.
d) sadder is to more unhappy.
e) freer is to more independent.

38
LÍNGUA INGLESA
32. (SEDF - Professor – Inglês – Quadrix – 2017)

Based on the text, judge the following items.


“rarely” (line 20) means seldom.
( ) Certo
( ) Errado

33. (SEDF - Professor – Inglês – Quadrix – 2017)

Extracted from: https://education.cuportland.edu/blog/classroom-re-


sources/teaching-strategiesfor-english-teachers/

Read the following sentences:


I. “This can be a very valuable teaching strategy for both the
teacher and the student, …” (lines 25-27).
II. “In addition, teachers can observe how different students learn
and what strategies might work better in the future (lines. 31- 34).
III. “…they will find more interesting than a general lecture on a
chapter in a book” (ls. 43-45).

Considering the sentences above, it is correct to say that there


are examples of comparative forms of adjectives in
a) I, II and III.
b) II and III.
c) I and II.
d) I and III.

31. (Pref. de Teresina - PI - Professor de Educação Básica - Lín-


gua Inglesa - NUCEPE – 2019)
The alternative that contains only adverbs of frequency is
a) always – often – usually – rarely.
b) frequently – sometimes – early -.
c) badly – often – never – actually.
d) really – seldom – hardly ever.
e) occasional – fast –there – finally

39
LÍNGUA INGLESA
Based on the text, judge the following items. a) intermittently.
The adverb “often” as in “these food fads are often based” (line b) sometimes.
18) is more commonly placed before the verb to be. c) seldom.
( ) Certo d) hardly ever.
( ) Errado e) frequently.

34. (SEDF - Professor – Inglês - Quadrix – 2017) 36. (Prefeitura de Salvador - BA - Professor Língua Estrangeira
– Inglês - FGV – 2019)

Critical Literacy, EFL and Citizenship

We believe that a sense of active citizenship needs to be de-


veloped and schools have an important role in the process. If we
agree that language is discourse, and that it is in discourse that we
construct our meanings, then we may perceive the foreign langua-
ge classrooms in our schools as an ideal space for discussing the
procedures for ascribing meanings to the world. In a foreign lan-
guage we learn different interpretive procedures, different ways to
understand the world. If our foreign language teaching happens in
a critical literacy perspective, then we also learn that such different
ways to interpret reality are legitimized and valued according to
socially and historically constructed criteria that can be collectively
reproduced and accepted or questioned and changed. Hence our
Based on the text, judge the following items. view of the EFL classroom, at least in Brazil, as an ideal space for the
“all day” (line 8) has the same meaning as every day. development of citizenship: the EFL classrooms can adopt a criti-
( ) Certo cal discursive view of reality that helps students see claims to truth
( ) Errado as arbitrary, and power as a transitory force which, although being
always present, is also in permanent change, in a movement that
35. (TCE-PR - Analista de Controle - Tecnologia da Informação constantly allows for radical transformation. The EFL classroom can
- CESPE – 2016) thus raise students’ perception of their role in the transformation
of society, once it might provide them with a space where they are
able to challenge their own views, to question where different pers-
pectives (including those allegedly present in the texts) come from
and where they lead to. By questioning their assumptions and those
perceived in the texts, and in doing so also broadening their views,
we claim students will be able to see themselves as critical subjects,
capable of acting upon the world.
[…]
We believe that there is nothing wrong with using the mother
tongue in the foreign language classroom, since strictly speaking,
the mother tongue is also foreign - it’s not “mine”, but “my mo-
ther’s”: it was therefore foreign as I first learned it and while I was
learning to use its interpretive procedures. When using critical li-
teracy in the teaching of foreign languages we assume that a great
part of the discussions proposed in the FL class may happen in the
mother tongue. Such discussions will bring meaning to the class-
room, moving away from the notion that only simple ideas can be
dealt with in the FL lesson because of the students’ lack of profi-
ciency to produce deeper meanings and thoughts in the FL. Since
the stress involved in trying to understand a foreign language is ea-
sed, students will be able to bring their “real” world to their English
lessons and, by so doing, discussions in the mother tongue will help
students learn English as a social practice of meaning-making.
(Source: Adapted from JORDÃO, C. M. & FOGAÇA, F. C. Critical Literacy
in The English Language Classroom. DELTA, vol. 28, no 1, São Pau-
lo, p. 69-84, 2012. Retrieved from http://www.scielo.br/pdf/delta/
v28n1a04.pdf).

Another way of wording “there is nothing wrong” is:


a) there is no one wrong.
b) there is something wrong.
c) there isn’t anything wrong.
In text 8A5BBB, the word “often” ( .27) can be correctly repla- d) there isn’t anybody wrong.
ced by e) there are some things wrong.

40
LÍNGUA INGLESA
37. (CEMIG - MG - Analista de Gestão Administrativa JR - FU- 38. (Prefeitura de Maricá - RJ - Docente I - Língua Estrangeira
MARC – 2018) – Inglês - COSEAC - 2018)

READ THE FOLLOWING TEXT AND CHOOSE THE OPTION WHICH TEXT 1 below, retrieved and adapted from https://chroniclinga-
BEST COMPLETES EACH QUESTION ACCORDING TO IT: merica. loc.gov/lccn/sn83035487/1851-06-21/ed-1/seq-4/ on July
9th, 2018.
Technology has created more jobs than it has destroyed
Women’s rights convention – Sojourner Truth
The battle between men and machines goes back centuries.
Are they taking our jobs? Or are they easing our workload? A study One of the most unique and interesting speeches of the con-
by economists at the consultancy Deloitte seeks to shed new light vention was made by Sojourner Truth, an emancipated slave. It is
on the relationship between jobs and the rise of technology by impossible to transfer it to paper or convey any adequate idea of
searching through census data for England and Wales going back the effect it produced upon the audience. Those only can apprecia-
to 1871. te it who saw her powerful form, her whole-souled, earnest gestu-
Their conclusion is that, rather than destroying jobs, techno- re, and listened to her strong and truthful tones. She came forward
logy has been a “great job-creating machine”. Findings by Deloitte to the platform and addressing the President said with great sim-
such as rise in bar staff since the 1950s or a surge in the number plicity:
of hairdressers this century suggest to the authors that technology “May I say a few words?” Receiving an affirmative answer,
has increased spending power, therefore creating new demand and she proceeded: I want to say a few words about this matter. I am
new jobs. Their study argues that the debate has been twisted to- a woman’s rights. I have as much muscle as any man and can do
wards the job-destroying effects of technological change, which are as much work as any man. I have plowed and reaped and husked
more easily observed than its creative aspects. and chopped and mowed, and can any man do more than that? I
Going back over pastfigures paints a more balanced picture, have heard much about the sexes being equal. I can carry as much
say authors Ian Stewart and Alex Cole. “The dominant trend is of as any man, and can eat as much too, if I can get it. I am as strong
contracting employment in agriculture and manufacturing being as any man that is now. As for intellect, all I can say is, if a woman
more than balanced by rapid growth in the caring, creative, techno- has a pint, and a man a quart -- why can’t she have her little pint
logy and business services sectors,” they write. “Machines will take full? You need not be afraid to give us our rights for fear we will
on more repetitive and laborious tasks, but they seem no closer to take too much; -- for we can’t take more than our pint will hold.
eliminating the need for human labor than at any time in the last The poor men seem to be all in confusion, and don’t know what to
150 years.” do. Why children, if you have woman’s rights, give it to her and you
According to the study, hard, dangerous and dull jobs have de- will feel better. You will have your own rights, and they won’t be so
clined. In some sectors, technology has quite clearly cost jobs, but much trouble. I can’t read, but I can hear. I have heard the bible and
they question whether they are really jobs we would want to hold have learned that Eve caused man to sin. Well, if a woman upset the
on to. Technology directly substitutes human muscle power and, in world, do give her a chance to set it right side up again. The Lady
so doing, raises productivity and shrinks employment. “In the UK has spoken about Jesus, how he never spurned woman from him,
the first sector to feel this effect on any scale was agriculture,” says and she was right. When Lazarus died, Mary and Martha came to
the study. him with faith and love and besought him to raise their brother. And
The study also found out that ‘caring’ jobs have increased. The Jesus wept and Lazarus came forth. And how came Jesus into the
report cites a “profound shift”, with labor switching from its historic world? Through God who created him and the woman who bore
role, as a source of raw power, to the care, education and provision him. Man, where was your part? But the women are coming up
of services to others. Technological progress has cut the prices of blessed be God and a few of the men are coming up with them. But
essentials, such as food, and the price of bigger household items man is in a tight place, the poor slave is on him, woman is coming
such as TVs and kitchen appliances, notes Stewart. That leaves more on him, he is surely between a hawk and a buzzard.
money to spend on leisure, and creates new demand and new jobs, Reference: Robinson, M. (1851, June 21). Women’s rights con-
which may explain the big rise in bar staff, he adds. “_______ the vention: Sojourner Truth. Anti-slavery Bugle, vol. 6 no. 41, Page 160.
decline in the traditional pub, census data shows that the number
of people employed in bars rose fourfold between 1951 and 2011,” Question must be answered by looking at the following senten-
the report says. ce from Text 1:
The Deloitte economists believe that rising incomes have allo-
wed consumers to spend more on personal services, such as groo- I have plowed and reaped and husked and chopped and mo-
ming. That in turn has driven employment of hairdressers. So, while wed, and can any man do more than that?
in 1871 there was one hairdresser or barber for every 1,793 citizens
of England and Wales; today there is one for every 287 people. When Sojourner chooses to use “can” in “and can any man do
(Adapted from: https://goo.gl/7V5vuw. Access: 02/02/2018.) more than that?”, she does it because:
a) she wants to question men’s ability to do more than she
What is one of the consequences of technological progress does.
pointed by the study? b) she’s asking for permission to continue doing what she does.
a) It creates new demand and new jobs. c) it’s an informal situation and “could” would be too formal.
b) It has made food more expensive. d) she’s talking about what she did in the past.
c0 There are less jobs and careers. e) she knows men will never do what she does.
d) There is no money to spend on leisure.

41
LÍNGUA INGLESA
39. (Pref. de Teresina - PI - Professor de Educação Básica - Lín- 41. (Prefeitura de Teresina - PI - Professor de Educação Básica
gua Inglesa - NUCEPE – 2019) - Língua Inglesa - NUCEPE – 2019)
Consider the following conversation.
What is Alzheimer’s disease? -____did Jonathan go to New York?
-Because he went on a tour with his family.
There are many types and causes of dementia, but Alzheimer’s -____did they go?
disease is the most common form, accounting for between 60 and -By ship.
70 per cent of all cases.
Common early symptoms of Alzheimer’s include short-term Taking into account the use of interrogative pronouns, the op-
memory loss, apathy and depressed mood, but these symptoms tion below that completes the conversation is
are often just seen as being a part of normal ageing, making early
diagnosis difficult. a) When – How.
Doctors diagnose Alzheimer’s on the basis of medical exami- b) When – What.
nation, patient history and cognitive tests, and can use imaging to c) Why – How.
rule out other forms of dementia. However, a definitive diagnosis of d) Why – When.
Alzheimer’s is only possible after death, when examination of brain e) What – How.
tissue can reveal whether a person had the deposits of amyloid and
tau proteins that are characteristic of the condition. 42. (MPE-BA - Analista de Sistemas - FESMIP-BA - 2011)
Source http://advances.sciencemag.org/content/5/1/eaau3333(a-
dapted) Journal reference: Science Advances, DOI: 10.1126/sciadv. Information Systems
aau3333
This article was updated on 30 January 2019 to add more detail Information Systems (IS) is concerned with the information
and comment. Access: April 20th, 2019 that computer systems can provide to aid a company, non-profit
or governmental organization in defining and achieving its goals. It
Which is the option that shows a verb with the same idea of is also concerned with the processes that an enterprise can imple-
can in the sentence “…brain tissue can reveal whether a person had ment and improve using information technology. IS professionals
the deposits of amyloid and tau proteins…”? must understand both technical and organizational factors , 5 and
a) You ought to drive more carefully. must be able to help an organization determine how information
b) I have to be back at 10 o’clock. and technology-enabled business processes can provide a founda-
c) The girls could play tennis when they were younger. tion for superior organizational performance. They serve as a bridge
d) Sheyla is able to do that in less than an hour. between the technical and management communities within an or-
e)The boy doesn’t have to call a taxi. ganization. What information does the enterprise need? How is that
information generated? Is it delivered to the people who need it? Is
40. (UNICAMP - Profissional da Tecnologia, Informação e Co- it presented to them in ways that permit them to use it readily? 10
municação - VUNESP – 2019) Is the organization structured to be able to use technology effecti-
vely? Are the business processes of the organization well designed?
What is a Content Management System (CMS)? Do they use the opportunities created by information technology
July 19, 2018 fully? Does the organization use the communication and collabora-
tion capabilities of information technologies appropriately? Is the
A content management system, often abbreviated as CMS, is organization capable of adapting quickly enough to changing exter-
software that helps users create, manage, and modify content on nal circumstances? These are the important issues that businesses
a website without the need for specialized technical knowledge. rely on IS people to 15 address. A majority of IS programs are loca-
In simpler language, a content management system is a tool that ted in business schools; however, they may have different names
helps you build a website without needing to write all the code such as management information systems, computer information
from scratch (or even know how to code at all). systems, or business information systems. All IS degrees combine
Instead of building your own system for creating web pages, business and computing topics, but the emphasis between techni-
storing images, and other functions, the content management sys- cal and organizational issues varies among programs. For example,
tem handles all that basic infrastructure stuff for you so that you 20 programs differ substantially in the amount of programming
can focus on more forward-facing parts of your website. Beyond required. Traditionally, many graduates of IS programs have func-
websites, you can also find content management systems for other tioned in roles that are similar to the roles for which IT programs
functions – such as document management.
explicitly prepare their students. Information systems graduates
The content management system is not just a backend mana-
continue to fill these roles, but the new programs in information
gement interface, though. It also makes all of the content that you
technology offer an alternative path to these positions. INFORMA-
create show up for your visitors exactly like you want it to.
TION Systems. Disponível em: . Acesso em: 03 jan. 2011.
(https://kinsta.com/knowledgebase/content-management-system.
“How is that information generated?” (linha 8). The use of
Adaptado)
“How”, in this question, is in order to
a) request permission to do something.
No trecho do segundo parágrafo – you can also find content
management systems –, o termo em destaque pode ser substituído, b) get information in what way or manner.
sem alteração de sentido, por c) expect or demand something.
a) have to. d) express an opinion on something.
b) must. e) ask for something.
c) may.
d) ought to.
e) used to.

42
LÍNGUA INGLESA
43. (CETESB - Analista de TI - Administração de Dados - VU-
21 D
NESP – 2009)
22 B
23 C
24 ERRADO
25 C
26 A
27 B
28 B
29 CERTO
30 B
31 A
32 CERTO
33 ERRADO
34 ERRADO
35 E
36 C
The blank in - how __________ can you live? - is correctly filled 37 A
with
a) long 38 A
b) far 39 D
c) come 40 C
d) high
e) many 41 C
42 B
43 A
GABARITO

1 B
ANOTAÇÕES
2 C
______________________________________________________
3 A
4 A ______________________________________________________
5 C ______________________________________________________
6 B
______________________________________________________
7 CERTO
______________________________________________________
8 B
9 D ______________________________________________________
10 C ______________________________________________________
11 E
______________________________________________________
12 B
13 CERTO ______________________________________________________

14 ERRADO ______________________________________________________
15 ERRADO
______________________________________________________
16 A
_____________________________________________________
17 C
18 B _____________________________________________________
19 B ______________________________________________________
20 A
______________________________________________________

43
LÍNGUA INGLESA
ANOTAÇÕES ANOTAÇÕES

______________________________________________________ ______________________________________________________

______________________________________________________ ______________________________________________________

______________________________________________________ ______________________________________________________

______________________________________________________ ______________________________________________________

______________________________________________________ ______________________________________________________

______________________________________________________ ______________________________________________________

______________________________________________________ ______________________________________________________

______________________________________________________ ______________________________________________________

______________________________________________________ ______________________________________________________

______________________________________________________ ______________________________________________________

______________________________________________________ ______________________________________________________

______________________________________________________ ______________________________________________________

______________________________________________________ ______________________________________________________

______________________________________________________ ______________________________________________________

______________________________________________________ ______________________________________________________

______________________________________________________ ______________________________________________________

______________________________________________________ ______________________________________________________

______________________________________________________ ______________________________________________________

______________________________________________________ ______________________________________________________

______________________________________________________ ______________________________________________________

______________________________________________________ ______________________________________________________

______________________________________________________ ______________________________________________________

______________________________________________________ ______________________________________________________

_____________________________________________________ _____________________________________________________

_____________________________________________________ _____________________________________________________

______________________________________________________ ______________________________________________________

______________________________________________________ ______________________________________________________

______________________________________________________ ______________________________________________________

______________________________________________________ ______________________________________________________

______________________________________________________ ______________________________________________________

______________________________________________________ ______________________________________________________

______________________________________________________ ______________________________________________________

______________________________________________________ ______________________________________________________

______________________________________________________ ______________________________________________________

44
MATEMÁTICA
1. Lógica proposicional . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 01
2. Noções de conjuntos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23
3. Relações e funções; Funções polinomiais; Funções exponenciais e logarítmicas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32
4. Matrizes; Determinantes; Sistemas lineares . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41
5. Sequências; Progressões aritméticas e progressões geométricas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 51
6. Matemática financeira . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 55
MATEMÁTICA

LÓGICA PROPOSICIONAL

ESTRUTURAS LÓGICAS
Precisamos antes de tudo compreender o que são proposições. Chama-se proposição toda sentença declarativa à qual podemos atri-
buir um dos valores lógicos: verdadeiro ou falso, nunca ambos. Trata-se, portanto, de uma sentença fechada.

Elas podem ser:


• Sentença aberta: quando não se pode atribuir um valor lógico verdadeiro ou falso para ela (ou valorar a proposição!), portanto, não
é considerada frase lógica. São consideradas sentenças abertas:
- Frases interrogativas: Quando será prova? - Estudou ontem? – Fez Sol ontem?
- Frases exclamativas: Gol! – Que maravilhoso!
- Frase imperativas: Estude e leia com atenção. – Desligue a televisão.
- Frases sem sentido lógico (expressões vagas, paradoxais, ambíguas, ...): “esta frase é falsa” (expressão paradoxal) – O cachorro do
meu vizinho morreu (expressão ambígua) – 2 + 5+ 1

• Sentença fechada: quando a proposição admitir um ÚNICO valor lógico, seja ele verdadeiro ou falso, nesse caso, será considerada
uma frase, proposição ou sentença lógica.

Proposições simples e compostas


• Proposições simples (ou atômicas): aquela que NÃO contém nenhuma outra proposição como parte integrante de si mesma. As
proposições simples são designadas pelas letras latinas minúsculas p,q,r, s..., chamadas letras proposicionais.

• Proposições compostas (ou moleculares ou estruturas lógicas): aquela formada pela combinação de duas ou mais proposições sim-
ples. As proposições compostas são designadas pelas letras latinas maiúsculas P,Q,R, R..., também chamadas letras proposicionais.

ATENÇÃO: TODAS as proposições compostas são formadas por duas proposições simples.

Proposições Compostas – Conectivos


As proposições compostas são formadas por proposições simples ligadas por conectivos, aos quais formam um valor lógico, que po-
demos vê na tabela a seguir:

OPERAÇÃO CONECTIVO ESTRUTURA LÓGICA TABELA VERDADE

Negação ~ Não p

Conjunção ^ peq

Disjunção Inclusiva v p ou q

1
MATEMÁTICA

Disjunção Exclusiva v Ou p ou q

Condicional → Se p então q

Bicondicional ↔ p se e somente se q

Em síntese temos a tabela verdade das proposições que facilitará na resolução de diversas questões

Exemplo:
(MEC – CONHECIMENTOS BÁSICOS PARA OS POSTOS 9,10,11 E 16 – CESPE)

A figura acima apresenta as colunas iniciais de uma tabela-verdade, em que P, Q e R representam proposições lógicas, e V e F corres-
pondem, respectivamente, aos valores lógicos verdadeiro e falso.
Com base nessas informações e utilizando os conectivos lógicos usuais, julgue o item subsecutivo.

2
MATEMÁTICA
A última coluna da tabela-verdade referente à proposição lógica P v (Q↔R) quando representada na posição horizontal é igual a

( ) Certo
( ) Errado

Resolução:
P v (Q↔R), montando a tabela verdade temos:

R Q P [P v (Q ↔ R) ]
V V V V V V V V
V V F F V V V V
V F V V V F F V
V F F F F F F V
F V V V V V F F
F V F F F V F F
F F V V V F V F
F F F F V F V F

Resposta: Certo

Proposição
Conjunto de palavras ou símbolos que expressam um pensamento ou uma ideia de sentido completo. Elas transmitem pensamentos,
isto é, afirmam fatos ou exprimem juízos que formamos a respeito de determinados conceitos ou entes.

Valores lógicos
São os valores atribuídos as proposições, podendo ser uma verdade, se a proposição é verdadeira (V), e uma falsidade, se a proposi-
ção é falsa (F). Designamos as letras V e F para abreviarmos os valores lógicos verdade e falsidade respectivamente.
Com isso temos alguns aximos da lógica:
– PRINCÍPIO DA NÃO CONTRADIÇÃO: uma proposição não pode ser verdadeira E falsa ao mesmo tempo.
– PRINCÍPIO DO TERCEIRO EXCLUÍDO: toda proposição OU é verdadeira OU é falsa, verificamos sempre um desses casos, NUNCA
existindo um terceiro caso.

“Toda proposição tem um, e somente um, dos valores, que são: V ou F.”

Classificação de uma proposição


Elas podem ser:
• Sentença aberta: quando não se pode atribuir um valor lógico verdadeiro ou falso para ela (ou valorar a proposição!), portanto, não
é considerada frase lógica. São consideradas sentenças abertas:
- Frases interrogativas: Quando será prova? - Estudou ontem? – Fez Sol ontem?
- Frases exclamativas: Gol! – Que maravilhoso!
- Frase imperativas: Estude e leia com atenção. – Desligue a televisão.
- Frases sem sentido lógico (expressões vagas, paradoxais, ambíguas, ...): “esta frase é falsa” (expressão paradoxal) – O cachorro do
meu vizinho morreu (expressão ambígua) – 2 + 5+ 1

• Sentença fechada: quando a proposição admitir um ÚNICO valor lógico, seja ele verdadeiro ou falso, nesse caso, será considerada
uma frase, proposição ou sentença lógica.

Proposições simples e compostas


• Proposições simples (ou atômicas): aquela que NÃO contém nenhuma outra proposição como parte integrante de si mesma. As
proposições simples são designadas pelas letras latinas minúsculas p,q,r, s..., chamadas letras proposicionais.
Exemplos
r: Thiago é careca.
s: Pedro é professor.

3
MATEMÁTICA
• Proposições compostas (ou moleculares ou estruturas lógicas): aquela formada pela combinação de duas ou mais proposições
simples. As proposições compostas são designadas pelas letras latinas maiúsculas P,Q,R, R..., também chamadas letras proposicionais.
Exemplo
P: Thiago é careca e Pedro é professor.

ATENÇÃO: TODAS as proposições compostas são formadas por duas proposições simples.

Exemplos:
1. (CESPE/UNB) Na lista de frases apresentadas a seguir:
– “A frase dentro destas aspas é uma mentira.”
– A expressão x + y é positiva.
– O valor de √4 + 3 = 7.
– Pelé marcou dez gols para a seleção brasileira.
– O que é isto?

Há exatamente:
(A) uma proposição;
(B) duas proposições;
(C) três proposições;
(D) quatro proposições;
(E) todas são proposições.

Resolução:
Analisemos cada alternativa:
(A) “A frase dentro destas aspas é uma mentira”, não podemos atribuir valores lógicos a ela, logo não é uma sentença lógica.
(B) A expressão x + y é positiva, não temos como atribuir valores lógicos, logo não é sentença lógica.
(C) O valor de √4 + 3 = 7; é uma sentença lógica pois podemos atribuir valores lógicos, independente do resultado que tenhamos
(D) Pelé marcou dez gols para a seleção brasileira, também podemos atribuir valores lógicos (não estamos considerando a quantidade
certa de gols, apenas se podemos atribuir um valor de V ou F a sentença).
(E) O que é isto? - como vemos não podemos atribuir valores lógicos por se tratar de uma frase interrogativa.
Resposta: B.

Conectivos (conectores lógicos)


Para compôr novas proposições, definidas como composta, a partir de outras proposições simples, usam-se os conectivos. São eles:

OPERAÇÃO CONECTIVO ESTRUTURA LÓGICA TABELA VERDADE

Negação ~ Não p

Conjunção ^ peq

Disjunção Inclusiva v p ou q

4
MATEMÁTICA

Disjunção Exclusiva v Ou p ou q

Condicional → Se p então q

Bicondicional ↔ p se e somente se q

Exemplo:
2. (PC/SP - Delegado de Polícia - VUNESP) Os conectivos ou operadores lógicos são palavras (da linguagem comum) ou símbolos (da
linguagem formal) utilizados para conectar proposições de acordo com regras formais preestabelecidas. Assinale a alternativa que apre-
senta exemplos de conjunção, negação e implicação, respectivamente.
(A) ¬ p, p v q, p ∧ q
(B) p ∧ q, ¬ p, p -> q
(C) p -> q, p v q, ¬ p
(D) p v p, p -> q, ¬ q
(E) p v q, ¬ q, p v q

Resolução:
A conjunção é um tipo de proposição composta e apresenta o conectivo “e”, e é representada pelo símbolo ∧. A negação é repre-
sentada pelo símbolo ~ou cantoneira (¬) e pode negar uma proposição simples (por exemplo: ¬ p ) ou composta. Já a implicação é uma
proposição composta do tipo condicional (Se, então) é representada pelo símbolo (→).
Resposta: B.

Tabela Verdade
Quando trabalhamos com as proposições compostas, determinamos o seu valor lógico partindo das proposições simples que a com-
põe. O valor lógico de qualquer proposição composta depende UNICAMENTE dos valores lógicos das proposições simples componentes,
ficando por eles UNIVOCAMENTE determinados.

• Número de linhas de uma Tabela Verdade: depende do número de proposições simples que a integram, sendo dado pelo seguinte
teorema:
“A tabela verdade de uma proposição composta com n* proposições simples componentes contém 2n linhas.”

Exemplo:
3. (CESPE/UNB) Se “A”, “B”, “C” e “D” forem proposições simples e distintas, então o número de linhas da tabela-verdade da propo-
sição (A → B) ↔ (C → D) será igual a:
(A) 2;
(B) 4;
(C) 8;
(D) 16;
(E) 32.

5
MATEMÁTICA
Resolução:
Veja que podemos aplicar a mesma linha do raciocínio acima, então teremos:
Número de linhas = 2n = 24 = 16 linhas.
Resposta D.

Conceitos de Tautologia , Contradição e Contigência


• Tautologia: possui todos os valores lógicos, da tabela verdade (última coluna), V (verdades).
Princípio da substituição: Seja P (p, q, r, ...) é uma tautologia, então P (P0; Q0; R0; ...) também é uma tautologia, quaisquer que sejam
as proposições P0, Q0, R0, ...

• Contradição: possui todos os valores lógicos, da tabela verdade (última coluna), F (falsidades). A contradição é a negação da Tauto-
logia e vice versa.
Princípio da substituição: Seja P (p, q, r, ...) é uma contradição, então P (P0; Q0; R0; ...) também é uma contradição, quaisquer que sejam
as proposições P0, Q0, R0, ...

• Contingência: possui valores lógicos V e F ,da tabela verdade (última coluna). Em outros termos a contingência é uma proposição
composta que não é tautologia e nem contradição.

Exemplos:
4. (DPU – ANALISTA – CESPE) Um estudante de direito, com o objetivo de sistematizar o seu estudo, criou sua própria legenda, na qual
identificava, por letras, algumas afirmações relevantes quanto à disciplina estudada e as vinculava por meio de sentenças (proposições).
No seu vocabulário particular constava, por exemplo:
P: Cometeu o crime A.
Q: Cometeu o crime B.
R: Será punido, obrigatoriamente, com a pena de reclusão no regime fechado.
S: Poderá optar pelo pagamento de fiança.

Ao revisar seus escritos, o estudante, apesar de não recordar qual era o crime B, lembrou que ele era inafiançável.
Tendo como referência essa situação hipotética, julgue o item que se segue.
A sentença (P→Q)↔((~Q)→(~P)) será sempre verdadeira, independentemente das valorações de P e Q como verdadeiras ou falsas.
( ) Certo
( ) Errado

Resolução:
Considerando P e Q como V.
(V→V) ↔ ((F)→(F))
(V) ↔ (V) = V
Considerando P e Q como F
(F→F) ↔ ((V)→(V))
(V) ↔ (V) = V
Então concluímos que a afirmação é verdadeira.
Resposta: Certo.

Equivalência
Duas ou mais proposições compostas são equivalentes, quando mesmo possuindo estruturas lógicas diferentes, apresentam a mesma
solução em suas respectivas tabelas verdade.
Se as proposições P(p,q,r,...) e Q(p,q,r,...) são ambas TAUTOLOGIAS, ou então, são CONTRADIÇÕES, então são EQUIVALENTES.

6
MATEMÁTICA
Exemplo:
5. (VUNESP/TJSP) Uma negação lógica para a afirmação “João é rico, ou Maria é pobre” é:
(A) Se João é rico, então Maria é pobre.
(B) João não é rico, e Maria não é pobre.
(C) João é rico, e Maria não é pobre.
(D) Se João não é rico, então Maria não é pobre.
(E) João não é rico, ou Maria não é pobre.

Resolução:
Nesta questão, a proposição a ser negada trata-se da disjunção de duas proposições lógicas simples. Para tal, trocamos o conectivo
por “e” e negamos as proposições “João é rico” e “Maria é pobre”. Vejam como fica:

Resposta: B.

Leis de Morgan
Com elas:
– Negamos que duas dadas proposições são ao mesmo tempo verdadeiras equivalendo a afirmar que pelo menos uma é falsa
– Negamos que uma pelo menos de duas proposições é verdadeira equivalendo a afirmar que ambas são falsas.

ATENÇÃO
As Leis de Morgan exprimem que NEGAÇÃO CONJUNÇÃO em DISJUNÇÃO
transforma: DISJUNÇÃO em CONJUNÇÃO

CONECTIVOS
Para compôr novas proposições, definidas como composta, a partir de outras proposições simples, usam-se os conectivos.

OPERAÇÃO CONECTIVO ESTRUTURA LÓGICA EXEMPLOS


Negação ~ Não p A cadeira não é azul.
Conjunção ^ peq Fernando é médico e Nicolas é Engenheiro.
Disjunção Inclusiva v p ou q Fernando é médico ou Nicolas é Engenheiro.
Disjunção Exclusiva v Ou p ou q Ou Fernando é médico ou João é Engenheiro.
Condicional → Se p então q Se Fernando é médico então Nicolas é Engenheiro.
Bicondicional ↔ p se e somente se q Fernando é médico se e somente se Nicolas é Engenheiro.

Conectivo “não” (~)


Chamamos de negação de uma proposição representada por “não p” cujo valor lógico é verdade (V) quando p é falsa e falsidade (F)
quando p é verdadeira. Assim “não p” tem valor lógico oposto daquele de p. Pela tabela verdade temos:

Conectivo “e” (˄)


Se p e q são duas proposições, a proposição p ˄ q será chamada de conjunção. Para a conjunção, tem-se a seguinte tabela-verdade:

7
MATEMÁTICA

ATENÇÃO: Sentenças interligadas pelo conectivo “e” possuirão o valor verdadeiro somente quando todas as sentenças, ou argumen-
tos lógicos, tiverem valores verdadeiros.

Conectivo “ou” (v)


Este inclusivo: Elisabete é bonita ou Elisabete é inteligente. (Nada impede que Elisabete seja bonita e inteligente).

Conectivo “ou” (v)


Este exclusivo: Elisabete é paulista ou Elisabete é carioca. (Se Elisabete é paulista, não será carioca e vice-versa).

• Mais sobre o Conectivo “ou”


– “inclusivo”(considera os dois casos)
– “exclusivo”(considera apenas um dos casos)

Exemplos:
R: Paulo é professor ou administrador
S: Maria é jovem ou idosa
No primeiro caso, o “ou” é inclusivo,pois pelo menos uma das proposições é verdadeira, podendo ser ambas.
No caso da segunda, o “ou” é exclusivo, pois somente uma das proposições poderá ser verdadeira

Ele pode ser “inclusivo”(considera os dois casos) ou “exclusivo”(considera apenas um dos casos)

Exemplo:
R: Paulo é professor ou administrador
S: Maria é jovem ou idosa

No primeiro caso, o “ou” é inclusivo,pois pelo menos uma das proposições é verdadeira, podendo ser ambas.
No caso da segunda, o “ou” é exclusivo, pois somente uma das proposições poderá ser verdadeiro

Conectivo “Se... então” (→)


Se p e q são duas proposições, a proposição p→q é chamada subjunção ou condicional. Considere a seguinte subjunção: “Se fizer sol,
então irei à praia”.
1. Podem ocorrer as situações:
2. Fez sol e fui à praia. (Eu disse a verdade)
3. Fez sol e não fui à praia. (Eu menti)
4. Não fez sol e não fui à praia. (Eu disse a verdade)

8
MATEMÁTICA
5. Não fez sol e fui à praia. (Eu disse a verdade, pois eu não disse o que faria se não fizesse sol. Assim, poderia ir ou não ir à praia).
Temos então sua tabela verdade:

Observe que uma subjunção p→q somente será falsa quando a primeira proposição, p, for verdadeira e a segunda, q, for falsa.

Conectivo “Se e somente se” (↔)


Se p e q são duas proposições, a proposição p↔q1 é chamada bijunção ou bicondicional, que também pode ser lida como: “p é con-
dição necessária e suficiente para q” ou, ainda, “q é condição necessária e suficiente para p”.
Considere, agora, a seguinte bijunção: “Irei à praia se e somente se fizer sol”. Podem ocorrer as situações:
1. Fez sol e fui à praia. (Eu disse a verdade)
2. Fez sol e não fui à praia. (Eu menti)
3. Não fez sol e fui à praia. (Eu menti)
4. Não fez sol e não fui à praia. (Eu disse a verdade). Sua tabela verdade:

Observe que uma bicondicional só é verdadeira quando as proposições formadoras são ambas falsas ou ambas verdadeiras.

ATENÇÃO: O importante sobre os conectivos é ter em mente a tabela de cada um deles, para que assim você possa resolver qualquer
questão referente ao assunto.

Ordem de precedência dos conectivos:


O critério que especifica a ordem de avaliação dos conectivos ou operadores lógicos de uma expressão qualquer. A lógica matemática
prioriza as operações de acordo com a ordem listadas:

Em resumo:

Exemplo:
(PC/SP - DELEGADO DE POLÍCIA - VUNESP) Os conectivos ou operadores lógicos são palavras (da linguagem comum) ou símbolos (da
linguagem formal) utilizados para conectar proposições de acordo com regras formais preestabelecidas. Assinale a alternativa que apre-
senta exemplos de conjunção, negação e implicação, respectivamente.
(A) ¬ p, p v q, p ∧ q
(B) p ∧ q, ¬ p, p -> q
(C) p -> q, p v q, ¬ p
(D) p v p, p -> q, ¬ q
(E) p v q, ¬ q, p v q

9
MATEMÁTICA
Resolução: Exemplo:
A conjunção é um tipo de proposição composta e apresenta o
conectivo “e”, e é representada pelo símbolo ∧. A negação é repre-
sentada pelo símbolo ~ou cantoneira (¬) e pode negar uma proposi-
ção simples (por exemplo: ¬ p ) ou composta. Já a implicação é uma
proposição composta do tipo condicional (Se, então) é representa-
da pelo símbolo (→).
Resposta: B

CONTRADIÇÕES Observe:
São proposições compostas formadas por duas ou mais propo- - Toda proposição implica uma Tautologia:
sições onde seu valor lógico é sempre FALSO, independentemente
do valor lógico das proposições simples que a compõem. Vejamos:
A proposição: p ^ ~p é uma contradição, conforme mostra a sua
tabela-verdade:

- Somente uma contradição implica uma contradição:

Exemplo:
(PEC-FAZ) Conforme a teoria da lógica proposicional, a propo-
sição ~P ∧ P é:
(A) uma tautologia.
(B) equivalente à proposição ~p ∨ p.
(C) uma contradição.
(D) uma contingência.
(E) uma disjunção.
Propriedades
Resolução: • Reflexiva:
Montando a tabela teremos que: – P(p,q,r,...) ⇒ P(p,q,r,...)
– Uma proposição complexa implica ela mesma.
P ~p ~p ^p
• Transitiva:
V F F – Se P(p,q,r,...) ⇒ Q(p,q,r,...) e
V F F Q(p,q,r,...) ⇒ R(p,q,r,...), então
P(p,q,r,...) ⇒ R(p,q,r,...)
F V F
– Se P ⇒ Q e Q ⇒ R, então P ⇒ R
F V F
Regras de Inferência
Como todos os valores são Falsidades (F) logo estamos diante • Inferência é o ato ou processo de derivar conclusões lógicas
de uma CONTRADIÇÃO. de proposições conhecidas ou decididamente verdadeiras. Em ou-
Resposta: C tras palavras: é a obtenção de novas proposições a partir de propo-
sições verdadeiras já existentes.
A proposição P(p,q,r,...) implica logicamente a proposição Q(p,-
q,r,...) quando Q é verdadeira todas as vezes que P é verdadeira. Regras de Inferência obtidas da implicação lógica
Representamos a implicação com o símbolo “⇒”, simbolicamente
temos:

P(p,q,r,...) ⇒ Q(p,q,r,...).

ATENÇÃO: Os símbolos “→” e “⇒” são completamente distin-


tos. O primeiro (“→”) representa a condicional, que é um conec-
tivo. O segundo (“⇒”) representa a relação de implicação lógica
que pode ou não existir entre duas proposições. • Silogismo Disjuntivo

10
MATEMÁTICA
• Modus Ponens A proposição “(p ↔ q) ^ p” implica a proposição “q”, pois a
condicional “(p ↔ q) ^ p → q” é tautológica.

Lógica de primeira ordem


Existem alguns tipos de argumentos que apresentam proposi-
ções com quantificadores. Numa proposição categórica, é impor-
tante que o sujeito se relacionar com o predicado de forma coeren-
te e que a proposição faça sentido, não importando se é verdadeira
ou falsa.

Vejamos algumas formas:


• Modus Tollens - Todo A é B.
- Nenhum A é B.
- Algum A é B.
- Algum A não é B.
Onde temos que A e B são os termos ou características dessas
proposições categóricas.

• Classificação de uma proposição categórica de acordo com


o tipo e a relação
Elas podem ser classificadas de acordo com dois critérios fun-
damentais: qualidade e extensão ou quantidade.

– Qualidade: O critério de qualidade classifica uma proposição


categórica em afirmativa ou negativa.
– Extensão: O critério de extensão ou quantidade classifica
uma proposição categórica em universal ou particular. A classifica-
ção dependerá do quantificador que é utilizado na proposição.
Tautologias e Implicação Lógica
• Teorema
P(p,q,r,..) ⇒ Q(p,q,r,...) se e somente se P(p,q,r,...) → Q(p,q,r,...)

Entre elas existem tipos e relações de acordo com a qualidade


e a extensão, classificam-se em quatro tipos, representados pelas
letras A, E, I e O.

• Universal afirmativa (Tipo A) – “TODO A é B”


Teremos duas possibilidades.

Observe que:
→ indica uma operação lógica entre as proposições. Ex.: das
proposições p e q, dá-se a nova proposição p → q.
⇒ indica uma relação. Ex.: estabelece que a condicional P →
Q é tautológica.

Inferências
• Regra do Silogismo Hipotético
Tais proposições afirmam que o conjunto “A” está contido no
conjunto “B”, ou seja, que todo e qualquer elemento de “A” é tam-
bém elemento de “B”. Observe que “Toda A é B” é diferente de
“Todo B é A”.

• Universal negativa (Tipo E) – “NENHUM A é B”


Princípio da inconsistência Tais proposições afirmam que não há elementos em comum
– Como “p ^ ~p → q” é tautológica, subsiste a implicação lógica entre os conjuntos “A” e “B”. Observe que “nenhum A é B” é o mes-
p ^ ~p ⇒ q mo que dizer “nenhum B é A”.
– Assim, de uma contradição p ^ ~p se deduz qualquer propo- Podemos representar esta universal negativa pelo seguinte dia-
sição q. grama (A ∩ B = ø):

11
MATEMÁTICA
Em síntese:

• Particular afirmativa (Tipo I) - “ALGUM A é B”


Podemos ter 4 diferentes situações para representar esta pro-
posição:

Exemplos:
(DESENVOLVE/SP - CONTADOR - VUNESP) Alguns gatos não
são pardos, e aqueles que não são pardos miam alto.
Uma afirmação que corresponde a uma negação lógica da afir-
mação anterior é:
(A) Os gatos pardos miam alto ou todos os gatos não são par-
dos.
(B) Nenhum gato mia alto e todos os gatos são pardos.
(C) Todos os gatos são pardos ou os gatos que não são pardos
não miam alto.
Essas proposições Algum A é B estabelecem que o conjunto “A” (D) Todos os gatos que miam alto são pardos.
tem pelo menos um elemento em comum com o conjunto “B”. Con- (E) Qualquer animal que mia alto é gato e quase sempre ele é
tudo, quando dizemos que Algum A é B, presumimos que nem todo pardo.
A é B. Observe “Algum A é B” é o mesmo que “Algum B é A”.
Resolução:
• Particular negativa (Tipo O) - “ALGUM A não é B” Temos um quantificador particular (alguns) e uma proposição
Se a proposição Algum A não é B é verdadeira, temos as três do tipo conjunção (conectivo “e”). Pede-se a sua negação.
representações possíveis: O quantificador existencial “alguns” pode ser negado, seguindo
o esquema, pelos quantificadores universais (todos ou nenhum).
Logo, podemos descartar as alternativas A e E.
A negação de uma conjunção se faz através de uma disjunção,
em que trocaremos o conectivo “e” pelo conectivo “ou”. Descarta-
mos a alternativa B.
Vamos, então, fazer a negação da frase, não esquecendo de
que a relação que existe é: Algum A é B, deve ser trocado por: Todo
A é não B.
Todos os gatos que são pardos ou os gatos (aqueles) que não
são pardos NÃO miam alto.
Resposta: C

(CBM/RJ - CABO TÉCNICO EM ENFERMAGEM - ND) Dizer que a


afirmação “todos os professores é psicólogos” e falsa, do ponto de
Proposições nessa forma: Algum A não é B estabelecem que o vista lógico, equivale a dizer que a seguinte afirmação é verdadeira
conjunto “A” tem pelo menos um elemento que não pertence ao (A) Todos os não psicólogos são professores.
conjunto “B”. Observe que: Algum A não é B não significa o mesmo (B) Nenhum professor é psicólogo.
que Algum B não é A. (C) Nenhum psicólogo é professor.
(D) Pelo menos um psicólogo não é professor.
• Negação das Proposições Categóricas (E) Pelo menos um professor não é psicólogo.
Ao negarmos uma proposição categórica, devemos observar as
seguintes convenções de equivalência: Resolução:
– Ao negarmos uma proposição categórica universal geramos Se a afirmação é falsa a negação será verdadeira. Logo, a nega-
uma proposição categórica particular. ção de um quantificador universal categórico afirmativo se faz atra-
– Pela recíproca de uma negação, ao negarmos uma proposição vés de um quantificador existencial negativo. Logo teremos: Pelo
categórica particular geramos uma proposição categórica universal. menos um professor não é psicólogo.
– Negando uma proposição de natureza afirmativa geramos, Resposta: E
sempre, uma proposição de natureza negativa; e, pela recíproca,
negando uma proposição de natureza negativa geramos, sempre,
uma proposição de natureza afirmativa.

12
MATEMÁTICA
• Equivalência entre as proposições Vejamos a tabela abaixo as proposições categóricas:
Basta usar o triângulo a seguir e economizar um bom tempo na
resolução de questões. TIPO PREPOSIÇÃO DIAGRAMAS

TODO
A
AéB

Se um elemento pertence ao conjunto A,


então pertence também a B.

Exemplo:
(PC/PI - ESCRIVÃO DE POLÍCIA CIVIL - UESPI) Qual a negação NENHUM
lógica da sentença “Todo número natural é maior do que ou igual E
AéB
a cinco”?
(A) Todo número natural é menor do que cinco. Existe pelo menos um elemento que
(B) Nenhum número natural é menor do que cinco. pertence a A, então não pertence a B, e
(C) Todo número natural é diferente de cinco. vice-versa.
(D) Existe um número natural que é menor do que cinco.
(E) Existe um número natural que é diferente de cinco.

Resolução:
Do enunciado temos um quantificador universal (Todo) e pede-
-se a sua negação.
O quantificador universal todos pode ser negado, seguindo o
esquema abaixo, pelo quantificador algum, pelo menos um, existe
ao menos um, etc. Não se nega um quantificador universal com To- Existe pelo menos um elemento co-
dos e Nenhum, que também são universais. mum aos conjuntos A e B.
Podemos ainda representar das seguin-
tes formas:
ALGUM
I
AéB

Portanto, já podemos descartar as alternativas que trazem


quantificadores universais (todo e nenhum). Descartamos as alter-
nativas A, B e C.
Seguindo, devemos negar o termo: “maior do que ou igual a
cinco”. Negaremos usando o termo “MENOR do que cinco”.
Obs.: maior ou igual a cinco (compreende o 5, 6, 7...) ao ser
negado passa a ser menor do que cinco (4, 3, 2,...).
Resposta: D

Diagramas lógicos
Os diagramas lógicos são usados na resolução de vários proble-
mas. É uma ferramenta para resolvermos problemas que envolvam
argumentos dedutivos, as quais as premissas deste argumento po-
dem ser formadas por proposições categóricas.

ATENÇÃO: É bom ter um conhecimento sobre conjuntos para


conseguir resolver questões que envolvam os diagramas lógicos.

13
MATEMÁTICA

- Algum teatro é casa de cultura


ALGUM
O
A NÃO é B

Perceba-se que, nesta sentença, a aten-


ção está sobre o(s) elemento (s) de A que
não são B (enquanto que, no “Algum A é
B”, a atenção estava sobre os que eram B,
ou seja, na intercessão).
Temos também no segundo caso, a dife-
rença entre conjuntos, que forma o con-
junto A - B Visto que na primeira chegamos à conclusão que C = CC
Segundo as afirmativas temos:
Exemplo: (A) existem cinemas que não são teatros- Observando o último
(GDF–ANALISTA DE ATIVIDADES CULTURAIS ADMINISTRAÇÃO diagrama vimos que não é uma verdade, pois temos que existe pelo
– IADES) Considere as proposições: “todo cinema é uma casa de menos um dos cinemas é considerado teatro.
cultura”, “existem teatros que não são cinemas” e “algum teatro é
casa de cultura”. Logo, é correto afirmar que
(A) existem cinemas que não são teatros.
(B) existe teatro que não é casa de cultura.
(C) alguma casa de cultura que não é cinema é teatro.
(D) existe casa de cultura que não é cinema.
(E) todo teatro que não é casa de cultura não é cinema.

Resolução:
Vamos chamar de:
Cinema = C
Casa de Cultura = CC
Teatro = T
Analisando as proposições temos: (B) existe teatro que não é casa de cultura. – Errado, pelo mes-
- Todo cinema é uma casa de cultura mo princípio acima.
(C) alguma casa de cultura que não é cinema é teatro. – Errado,
a primeira proposição já nos afirma o contrário. O diagrama nos
afirma isso

- Existem teatros que não são cinemas

(D) existe casa de cultura que não é cinema. – Errado, a justifi-


cativa é observada no diagrama da alternativa anterior.
(E) todo teatro que não é casa de cultura não é cinema. – Cor-
reta, que podemos observar no diagrama abaixo, uma vez que todo
cinema é casa de cultura. Se o teatro não é casa de cultura também
não é cinema.

14
MATEMÁTICA
• Como saber se um determinado argumento é mesmo váli-
do?
Para se comprovar a validade de um argumento é utilizando
diagramas de conjuntos (diagramas de Venn). Trata-se de um mé-
todo muito útil e que será usado com frequência em questões que
pedem a verificação da validade de um argumento. Vejamos como
funciona, usando o exemplo acima. Quando se afirma, na premissa
P1, que “todos os homens são pássaros”, poderemos representar
essa frase da seguinte maneira:

Resposta: E

LÓGICA DE ARGUMENTAÇÃO
Chama-se argumento a afirmação de que um grupo de propo-
sições iniciais redunda em outra proposição final, que será conse-
quência das primeiras. Ou seja, argumento é a relação que associa
um conjunto de proposições P1, P2,... Pn , chamadas premissas do
argumento, a uma proposição Q, chamada de conclusão do argu-
mento.

Observem que todos os elementos do conjunto menor (ho-


mens) estão incluídos, ou seja, pertencem ao conjunto maior (dos
pássaros). E será sempre essa a representação gráfica da frase
“Todo A é B”. Dois círculos, um dentro do outro, estando o círculo
menor a representar o grupo de quem se segue à palavra TODO.
Na frase: “Nenhum pássaro é animal”. Observemos que a pa-
lavra-chave desta sentença é NENHUM. E a ideia que ela exprime é
de uma total dissociação entre os dois conjuntos.

Exemplo:
P1: Todos os cientistas são loucos.
P2: Martiniano é louco.
Q: Martiniano é um cientista.

O exemplo dado pode ser chamado de Silogismo (argumento


formado por duas premissas e a conclusão).
A respeito dos argumentos lógicos, estamos interessados em
verificar se eles são válidos ou inválidos! Então, passemos a enten-
der o que significa um argumento válido e um argumento inválido.

Argumentos Válidos Será sempre assim a representação gráfica de uma sentença


Dizemos que um argumento é válido (ou ainda legítimo ou bem “Nenhum A é B”: dois conjuntos separados, sem nenhum ponto em
construído), quando a sua conclusão é uma consequência obrigató- comum.
ria do seu conjunto de premissas. Tomemos agora as representações gráficas das duas premissas
vistas acima e as analisemos em conjunto. Teremos:
Exemplo:
O silogismo...
P1: Todos os homens são pássaros.
P2: Nenhum pássaro é animal.
Q: Portanto, nenhum homem é animal.

... está perfeitamente bem construído, sendo, portanto, um


argumento válido, muito embora a veracidade das premissas e da
conclusão sejam totalmente questionáveis.

ATENÇÃO: O que vale é a CONSTRUÇÃO, E NÃO O SEU CON-


TEÚDO! Se a construção está perfeita, então o argumento é válido,
independentemente do conteúdo das premissas ou da conclusão!

15
MATEMÁTICA
Comparando a conclusão do nosso argumento, temos:
NENHUM homem é animal – com o desenho das premissas será que podemos dizer que esta conclusão é uma consequência necessá-
ria das premissas? Claro que sim! Observemos que o conjunto dos homens está totalmente separado (total dissociação!) do conjunto dos
animais. Resultado: este é um argumento válido!

Argumentos Inválidos
Dizemos que um argumento é inválido – também denominado ilegítimo, mal construído, falacioso ou sofisma – quando a verdade das
premissas não é suficiente para garantir a verdade da conclusão.

Exemplo:
P1: Todas as crianças gostam de chocolate.
P2: Patrícia não é criança.
Q: Portanto, Patrícia não gosta de chocolate.

Este é um argumento inválido, falacioso, mal construído, pois as premissas não garantem (não obrigam) a verdade da conclusão.
Patrícia pode gostar de chocolate mesmo que não seja criança, pois a primeira premissa não afirmou que somente as crianças gostam de
chocolate.
Utilizando os diagramas de conjuntos para provar a validade do argumento anterior, provaremos, utilizando-nos do mesmo artifício,
que o argumento em análise é inválido. Comecemos pela primeira premissa: “Todas as crianças gostam de chocolate”.

Analisemos agora o que diz a segunda premissa: “Patrícia não é criança”. O que temos que fazer aqui é pegar o diagrama acima (da
primeira premissa) e nele indicar onde poderá estar localizada a Patrícia, obedecendo ao que consta nesta segunda premissa. Vemos
facilmente que a Patrícia só não poderá estar dentro do círculo das crianças. É a única restrição que faz a segunda premissa! Isto posto,
concluímos que Patrícia poderá estar em dois lugares distintos do diagrama:
1º) Fora do conjunto maior;
2º) Dentro do conjunto maior. Vejamos:

Finalmente, passemos à análise da conclusão: “Patrícia não gosta de chocolate”. Ora, o que nos resta para sabermos se este argumen-
to é válido ou não, é justamente confirmar se esse resultado (se esta conclusão) é necessariamente verdadeiro!
- É necessariamente verdadeiro que Patrícia não gosta de chocolate? Olhando para o desenho acima, respondemos que não! Pode
ser que ela não goste de chocolate (caso esteja fora do círculo), mas também pode ser que goste (caso esteja dentro do círculo)! Enfim, o
argumento é inválido, pois as premissas não garantiram a veracidade da conclusão!

Métodos para validação de um argumento


Aprenderemos a seguir alguns diferentes métodos que nos possibilitarão afirmar se um argumento é válido ou não!
1º) Utilizando diagramas de conjuntos: esta forma é indicada quando nas premissas do argumento aparecem as palavras TODO, AL-
GUM E NENHUM, ou os seus sinônimos: cada, existe um etc.

16
MATEMÁTICA
2º) Utilizando tabela-verdade: esta forma é mais indicada quando não for possível resolver pelo primeiro método, o que ocorre quan-
do nas premissas não aparecem as palavras todo, algum e nenhum, mas sim, os conectivos “ou” , “e”, “” e “↔”. Baseia-se na construção
da tabela-verdade, destacando-se uma coluna para cada premissa e outra para a conclusão. Este método tem a desvantagem de ser mais
trabalhoso, principalmente quando envolve várias proposições simples.
3º) Utilizando as operações lógicas com os conectivos e considerando as premissas verdadeiras.
Por este método, fácil e rapidamente demonstraremos a validade de um argumento. Porém, só devemos utilizá-lo na impossibilidade
do primeiro método.
Iniciaremos aqui considerando as premissas como verdades. Daí, por meio das operações lógicas com os conectivos, descobriremos o
valor lógico da conclusão, que deverá resultar também em verdade, para que o argumento seja considerado válido.

4º) Utilizando as operações lógicas com os conectivos, considerando premissas verdadeiras e conclusão falsa.
É indicado este caminho quando notarmos que a aplicação do terceiro método não possibilitará a descoberta do valor lógico da con-
clusão de maneira direta, mas somente por meio de análises mais complicadas.

Em síntese:

Exemplo:
Diga se o argumento abaixo é válido ou inválido:

(p ∧ q) → r
_____~r_______
~p ∨ ~q

Resolução:
-1ª Pergunta) O argumento apresenta as palavras todo, algum ou nenhum?
A resposta é não! Logo, descartamos o 1º método e passamos à pergunta seguinte.

17
MATEMÁTICA
- 2ª Pergunta) O argumento contém no máximo duas proposi- Resolução:
ções simples? A questão trata-se de lógica de argumentação, dadas as pre-
A resposta também é não! Portanto, descartamos também o missas chegamos a uma conclusão. Enumerando as premissas:
2º método. A = Chove
- 3ª Pergunta) Há alguma das premissas que seja uma proposi- B = Maria vai ao cinema
ção simples ou uma conjunção? C = Cláudio fica em casa
A resposta é sim! A segunda proposição é (~r). Podemos optar D = Faz frio
então pelo 3º método? Sim, perfeitamente! Mas caso queiramos E = Fernando está estudando
seguir adiante com uma próxima pergunta, teríamos: F = É noite
- 4ª Pergunta) A conclusão tem a forma de uma proposição A argumentação parte que a conclusão deve ser (V)
simples ou de uma disjunção ou de uma condicional? A resposta Lembramos a tabela verdade da condicional:
também é sim! Nossa conclusão é uma disjunção! Ou seja, caso
queiramos, poderemos utilizar, opcionalmente, o 4º método!
Vamos seguir os dois caminhos: resolveremos a questão pelo
3º e pelo 4º métodos.

Resolução pelo 3º Método


Considerando as premissas verdadeiras e testando a conclusão
verdadeira. Teremos:
- 2ª Premissa) ~r é verdade. Logo: r é falsa!
- 1ª Premissa) (p ∧ q)r é verdade. Sabendo que r é falsa,
concluímos que (p ∧ q) tem que ser também falsa. E quando uma A condicional só será F quando a 1ª for verdadeira e a 2ª falsa,
conjunção (e) é falsa? Quando uma das premissas for falsa ou am- utilizando isso temos:
bas forem falsas. Logo, não é possível determinamos os valores O que se quer saber é: Se Maria foi ao cinema, então Fernando
lógicos de p e q. Apesar de inicialmente o 3º método se mostrar estava estudando. // B → ~E
adequado, por meio do mesmo, não poderemos determinar se o Iniciando temos:
argumento é ou NÃO VÁLIDO. 4º - Quando chove (F), Maria não vai ao cinema. (F) // A → ~B
= V – para que o argumento seja válido temos que Quando chove
Resolução pelo 4º Método tem que ser F.
Considerando a conclusão falsa e premissas verdadeiras. Tere- 3º - Quando Cláudio fica em casa (V), Maria vai ao cinema (V).
mos: // C → B = V - para que o argumento seja válido temos que Maria
- Conclusão) ~p v ~q é falso. Logo: p é verdadeiro e q é verda- vai ao cinema tem que ser V.
deiro! 2º - Quando Cláudio sai de casa(F), não faz frio (F). // ~C → ~D
Agora, passamos a testar as premissas, que são consideradas = V - para que o argumento seja válido temos que Quando Cláudio
verdadeiras! Teremos: sai de casa tem que ser F.
- 1ª Premissa) (p∧q)r é verdade. Sabendo que p e q são ver- 5º - Quando Fernando está estudando (V ou F), não chove (V).
dadeiros, então a primeira parte da condicional acima também é // E → ~A = V. – neste caso Quando Fernando está estudando pode
verdadeira. Daí resta que a segunda parte não pode ser falsa. Logo: ser V ou F.
r é verdadeiro. 1º- Durante a noite(V), faz frio (V). // F → D = V
- 2ª Premissa) Sabendo que r é verdadeiro, teremos que ~r é
falso! Opa! A premissa deveria ser verdadeira, e não foi! Logo nada podemos afirmar sobre a afirmação: Se Maria foi ao
cinema (V), então Fernando estava estudando (V ou F); pois temos
Neste caso, precisaríamos nos lembrar de que o teste, aqui no dois valores lógicos para chegarmos à conclusão (V ou F).
4º método, é diferente do teste do 3º: não havendo a existência si- Resposta: Errado
multânea da conclusão falsa e premissas verdadeiras, teremos que
o argumento é válido! Conclusão: o argumento é válido! (PETROBRAS – TÉCNICO (A) DE EXPLORAÇÃO DE PETRÓLEO
JÚNIOR – INFORMÁTICA – CESGRANRIO) Se Esmeralda é uma fada,
Exemplos: então Bongrado é um elfo. Se Bongrado é um elfo, então Monarca
(DPU – AGENTE ADMINISTRATIVO – CESPE) Considere que as é um centauro. Se Monarca é um centauro, então Tristeza é uma
seguintes proposições sejam verdadeiras. bruxa.
• Quando chove, Maria não vai ao cinema. Ora, sabe-se que Tristeza não é uma bruxa, logo
• Quando Cláudio fica em casa, Maria vai ao cinema. (A) Esmeralda é uma fada, e Bongrado não é um elfo.
• Quando Cláudio sai de casa, não faz frio. (B) Esmeralda não é uma fada, e Monarca não é um centauro.
• Quando Fernando está estudando, não chove. (C) Bongrado é um elfo, e Monarca é um centauro.
• Durante a noite, faz frio. (D) Bongrado é um elfo, e Esmeralda é uma fada
(E) Monarca é um centauro, e Bongrado não é um elfo.
Tendo como referência as proposições apresentadas, julgue o
item subsecutivo. Resolução:
Se Maria foi ao cinema, então Fernando estava estudando. Vamos analisar cada frase partindo da afirmativa Trizteza não é
( ) Certo bruxa, considerando ela como (V), precisamos ter como conclusão
( ) Errado o valor lógico (V), então:
(4) Se Esmeralda é uma fada(F), então Bongrado é um elfo (F)
→V

18
MATEMÁTICA
(3) Se Bongrado é um elfo (F), então Monarca é um centauro (F) → V
(2) Se Monarca é um centauro(F), então Tristeza é uma bruxa(F) → V
(1) Tristeza não é uma bruxa (V)

Logo:
Temos que:
Esmeralda não é fada(V)
Bongrado não é elfo (V)
Monarca não é um centauro (V)

Como a conclusão parte da conjunção, o mesmo só será verdadeiro quando todas as afirmativas forem verdadeiras, logo, a única que
contém esse valor lógico é:
Esmeralda não é uma fada, e Monarca não é um centauro.
Resposta: B

LÓGICA MATEMÁTICA QUALITATIVA


Aqui veremos questões que envolvem correlação de elementos, pessoas e objetos fictícios, através de dados fornecidos. Vejamos o
passo a passo:

01. Três homens, Luís, Carlos e Paulo, são casados com Lúcia, Patrícia e Maria, mas não sabemos quem ê casado com quem. Eles tra-
balham com Engenharia, Advocacia e Medicina, mas também não sabemos quem faz o quê. Com base nas dicas abaixo, tente descobrir o
nome de cada marido, a profissão de cada um e o nome de suas esposas.
a) O médico é casado com Maria.
b) Paulo é advogado.
c) Patrícia não é casada com Paulo.
d) Carlos não é médico.

Vamos montar o passo a passo para que você possa compreender como chegar a conclusão da questão.
1º passo – vamos montar uma tabela para facilitar a visualização da resolução, a mesma deve conter as informações prestadas no
enunciado, nas quais podem ser divididas em três grupos: homens, esposas e profissões.

Medicina Engenharia Advocacia Lúcia Patrícia Maria


Carlos
Luís
Paulo
Lúcia
Patrícia
Maria

Também criamos abaixo do nome dos homens, o nome das esposas.

2º passo – construir a tabela gabarito.


Essa tabela não servirá apenas como gabarito, mas em alguns casos ela é fundamental para que você enxergue informações que ficam
meio escondidas na tabela principal. Uma tabela complementa a outra, podendo até mesmo que você chegue a conclusões acerca dos
grupos e elementos.

HOMENS PROFISSÕES ESPOSAS


Carlos
Luís
Paulo

3º passo preenchimento de nossa tabela, com as informações mais óbvias do problema, aquelas que não deixam margem a nenhuma
dúvida. Em nosso exemplo:
- O médico é casado com Maria: marque um “S” na tabela principal na célula comum a “Médico” e “Maria”, e um “N” nas demais
células referentes a esse “S”.

19
MATEMÁTICA

Medicina Engenharia Advocacia Lúcia Patrícia Maria


Carlos
Luís
Paulo
Lúcia N
Patrícia N
Maria S N N

ATENÇÃO: se o médico é casado com Maria, ele NÃO PODE ser casado com Lúcia e Patrícia, então colocamos “N” no cruzamento
de Medicina e elas. E se Maria é casada com o médico, logo ela NÃO PODE ser casada com o engenheiro e nem com o advogado (logo
colocamos “N” no cruzamento do nome de Maria com essas profissões).
– Paulo é advogado: Vamos preencher as duas tabelas (tabela gabarito e tabela principal) agora.
– Patrícia não é casada com Paulo: Vamos preencher com “N” na tabela principal
– Carlos não é médico: preenchemos com um “N” na tabela principal a célula comum a Carlos e “médico”.

Medicina Engenharia Advocacia Lúcia Patrícia Maria


Carlos N N
Luís S N N
Paulo N N S N
Lúcia N
Patrícia N
Maria S N N

Notamos aqui que Luís então é o médico, pois foi a célula que ficou em branco. Podemos também completar a tabela gabarito.
Novamente observamos uma célula vazia no cruzamento de Carlos com Engenharia. Marcamos um “S” nesta célula. E preenchemos
sua tabela gabarito.

Medicina Engenharia Advocacia Lúcia Patrícia Maria


Carlos N S N
Luís S N N
Paulo N N S N
Lúcia N
Patrícia N
Maria S N N

HOMENS PROFISSÕES ESPOSAS


Carlos Engenheiro
Luís Médico
Paulo Advogado

4º passo – após as anotações feitas na tabela principal e na tabela gabarito, vamos procurar informações que levem a novas conclu-
sões, que serão marcadas nessas tabelas.
Observe que Maria é esposa do médico, que se descobriu ser Luís, fato que poderia ser registrado na tabela-gabarito. Mas não vamos
fazer agora, pois essa conclusão só foi facilmente encontrada porque o problema que está sendo analisado é muito simples. Vamos con-
tinuar o raciocínio e fazer as marcações mais tarde. Além disso, sabemos que Patrícia não é casada com Paulo. Como Paulo é o advogado,
podemos concluir que Patrícia não é casada com o advogado.

Medicina Engenharia Advocacia Lúcia Patrícia Maria


Carlos N S N
Luís S N N
Paulo N N S N
Lúcia N

20
MATEMÁTICA

Patrícia N N
Maria S N N

Verificamos, na tabela acima, que Patrícia tem de ser casada com o engenheiro, e Lúcia tem de ser casada com o advogado.

Medicina Engenharia Advocacia Lúcia Patrícia Maria


Carlos N S N
Luís S N N
Paulo N N S N
Lúcia N N S
Patrícia N S N
Maria S N N

Concluímos, então, que Lúcia é casada com o advogado (que é Paulo), Patrícia é casada com o engenheiro (que e Carlos) e Maria é
casada com o médico (que é Luís).
Preenchendo a tabela-gabarito, vemos que o problema está resolvido:

HOMENS PROFISSÕES ESPOSAS


Carlos Engenheiro Patrícia
Luís Médico Maria
Paulo Advogado Lúcia

Exemplo:
(TRT-9ª REGIÃO/PR – TÉCNICO JUDICIÁRIO – ÁREA ADMINISTRATIVA – FCC) Luiz, Arnaldo, Mariana e Paulo viajaram em janeiro, todos
para diferentes cidades, que foram Fortaleza, Goiânia, Curitiba e Salvador. Com relação às cidades para onde eles viajaram, sabe-se que:
− Luiz e Arnaldo não viajaram para Salvador;
− Mariana viajou para Curitiba;
− Paulo não viajou para Goiânia;
− Luiz não viajou para Fortaleza.

É correto concluir que, em janeiro,


(A) Paulo viajou para Fortaleza.
(B) Luiz viajou para Goiânia.
(C) Arnaldo viajou para Goiânia.
(D) Mariana viajou para Salvador.
(E) Luiz viajou para Curitiba.

Resolução:
Vamos preencher a tabela:
− Luiz e Arnaldo não viajaram para Salvador;

Fortaleza Goiânia Curitiba Salvador


Luiz N
Arnaldo N
Mariana
Paulo

− Mariana viajou para Curitiba;

Fortaleza Goiânia Curitiba Salvador


Luiz N N
Arnaldo N N
Mariana N N S N
Paulo N

21
MATEMÁTICA
− Paulo não viajou para Goiânia; ATENÇÃO: Todo homem é mortal, mas nem todo mortal é ho-
mem.
Fortaleza Goiânia Curitiba Salvador A frase “todo homem é mortal” possui as seguintes conclusões:
1ª) Algum mortal é homem ou algum homem é mortal.
Luiz N N 2ª) Se José é homem, então José é mortal.
Arnaldo N N
A forma “Todo A é B” pode ser escrita na forma: Se A então B.
Mariana N N S N
A forma simbólica da expressão “Todo A é B” é a expressão (∀
Paulo N N (x) (A (x) → B).
Observe que a palavra todo representa uma relação de inclusão
− Luiz não viajou para Fortaleza. de conjuntos, por isso está associada ao operador da condicional.

Fortaleza Goiânia Curitiba Salvador Aplicando temos:


x + 2 = 5 é uma sentença aberta. Agora, se escrevermos da for-
Luiz N N N ma ∀ (x) ∈ N / x + 2 = 5 ( lê-se: para todo pertencente a N temos x
Arnaldo N N + 2 = 5), atribuindo qualquer valor a x a sentença será verdadeira?
A resposta é NÃO, pois depois de colocarmos o quantificador,
Mariana N N S N
a frase passa a possuir sujeito e predicado definidos e podemos jul-
Paulo N N gar, logo, é uma proposição lógica.

Agora, completando o restante: • Quantificador existencial (∃)


Paulo viajou para Salvador, pois a nenhum dos três viajou. En- O símbolo ∃ pode ser lido das seguintes formas:
tão, Arnaldo viajou para Fortaleza e Luiz para Goiânia

Fortaleza Goiânia Curitiba Salvador


Luiz N S N N
Arnaldo S N N N
Mariana N N S N
Exemplo:
Paulo N N N S “Algum matemático é filósofo.” O diagrama lógico dessa frase
é:
Resposta: B

Quantificador
É um termo utilizado para quantificar uma expressão. Os quan-
tificadores são utilizados para transformar uma sentença aberta ou
proposição aberta em uma proposição lógica.

QUANTIFICADOR + SENTENÇA ABERTA = SENTENÇA FECHADA


O quantificador existencial tem a função de elemento comum.
Tipos de quantificadores A palavra algum, do ponto de vista lógico, representa termos co-
muns, por isso “Algum A é B” possui a seguinte forma simbólica: (∃
• Quantificador universal (∀) (x)) (A (x) ∧ B).
O símbolo ∀ pode ser lido das seguintes formas:
Aplicando temos:
x + 2 = 5 é uma sentença aberta. Escrevendo da forma (∃ x) ∈
N / x + 2 = 5 (lê-se: existe pelo menos um x pertencente a N tal que x
+ 2 = 5), atribuindo um valor que, colocado no lugar de x, a sentença
será verdadeira?
A resposta é SIM, pois depois de colocarmos o quantificador,
Exemplo: a frase passou a possuir sujeito e predicado definidos e podemos
Todo homem é mortal. julgar, logo, é uma proposição lógica.
A conclusão dessa afirmação é: se você é homem, então será
mortal. ATENÇÃO:
Na representação do diagrama lógico, seria: – A palavra todo não permite inversão dos termos: “Todo A é B”
é diferente de “Todo B é A”.
– A palavra algum permite a inversão dos termos: “Algum A é
B” é a mesma coisa que “Algum B é A”.

Forma simbólica dos quantificadores


Todo A é B = (∀ (x) (A (x) → B).
Algum A é B = (∃ (x)) (A (x) ∧ B).
Nenhum A é B = (~ ∃ (x)) (A (x) ∧ B).

22
MATEMÁTICA
Algum A não é B= (∃ (x)) (A (x) ∧ ~ B).

Exemplos:
Todo cavalo é um animal. Logo,
(A) Toda cabeça de animal é cabeça de cavalo.
(B) Toda cabeça de cavalo é cabeça de animal.
(C) Todo animal é cavalo.
(D) Nenhum animal é cavalo.

Resolução:
A frase “Todo cavalo é um animal” possui as seguintes conclusões:
– Algum animal é cavalo ou Algum cavalo é um animal.
– Se é cavalo, então é um animal.
Nesse caso, nossa resposta é toda cabeça de cavalo é cabeça de animal, pois mantém a relação de “está contido” (segunda forma de
conclusão).
Resposta: B

(CESPE) Se R é o conjunto dos números reais, então a proposição (∀ x) (x ∈ R) (∃ y) (y ∈ R) (x + y = x) é valorada como V.

Resolução:
Lemos: para todo x pertencente ao conjunto dos números reais (R) existe um y pertencente ao conjunto dos números dos reais (R) tal
que x + y = x.
– 1º passo: observar os quantificadores.
X está relacionado com o quantificador universal, logo, todos os valores de x devem satisfazer a propriedade.
Y está relacionado com o quantificador existencial, logo, é necessário pelo menos um valor de x para satisfazer a propriedade.
– 2º passo: observar os conjuntos dos números dos elementos x e y.
O elemento x pertence ao conjunto dos números reais.
O elemento y pertence ao conjunto os números reais.
– 3º passo: resolver a propriedade (x+ y = x).
A pergunta: existe algum valor real para y tal que x + y = x?
Existe sim! y = 0.
X + 0 = X.
Como existe pelo menos um valor para y e qualquer valor de x somado a 0 será igual a x, podemos concluir que o item está correto.
Resposta: CERTO

NOÇÕES DE CONJUNTOS

Conjunto dos números inteiros - z


O conjunto dos números inteiros é a reunião do conjunto dos números naturais N = {0, 1, 2, 3, 4,..., n,...},(N C Z); o conjunto dos opos-
tos dos números naturais e o zero. Representamos pela letra Z.

N C Z (N está contido em Z)

Subconjuntos:

SÍMBOLO REPRESENTAÇÃO DESCRIÇÃO


* Z* Conjunto dos números inteiros não nulos
+ Z+ Conjunto dos números inteiros não negativos

23
MATEMÁTICA

*e+ Z*+ Conjunto dos números inteiros positivos


- Z_ Conjunto dos números inteiros não positivos
*e- Z*_ Conjunto dos números inteiros negativos

Observamos nos números inteiros algumas características:


• Módulo: distância ou afastamento desse número até o zero, na reta numérica inteira. Representa-se o módulo por | |. O módulo de
qualquer número inteiro, diferente de zero, é sempre positivo.
• Números Opostos: dois números são opostos quando sua soma é zero. Isto significa que eles estão a mesma distância da origem
(zero).

Somando-se temos: (+4) + (-4) = (-4) + (+4) = 0

Operações
• Soma ou Adição: Associamos aos números inteiros positivos a ideia de ganhar e aos números inteiros negativos a ideia de perder.

ATENÇÃO: O sinal (+) antes do número positivo pode ser dispensado, mas o sinal (–) antes do número negativo nunca pode ser
dispensado.

• Subtração: empregamos quando precisamos tirar uma quantidade de outra quantidade; temos duas quantidades e queremos saber
quanto uma delas tem a mais que a outra; temos duas quantidades e queremos saber quanto falta a uma delas para atingir a outra. A
subtração é a operação inversa da adição. O sinal sempre será do maior número.

ATENÇÃO: todos parênteses, colchetes, chaves, números, ..., entre outros, precedidos de sinal negativo, tem o seu sinal invertido,
ou seja, é dado o seu oposto.

Exemplo:
(FUNDAÇÃO CASA – AGENTE EDUCACIONAL – VUNESP) Para zelar pelos jovens internados e orientá-los a respeito do uso adequado
dos materiais em geral e dos recursos utilizados em atividades educativas, bem como da preservação predial, realizou-se uma dinâmica
elencando “atitudes positivas” e “atitudes negativas”, no entendimento dos elementos do grupo. Solicitou-se que cada um classificasse
suas atitudes como positiva ou negativa, atribuindo (+4) pontos a cada atitude positiva e (-1) a cada atitude negativa. Se um jovem classi-
ficou como positiva apenas 20 das 50 atitudes anotadas, o total de pontos atribuídos foi
(A) 50.
(B) 45.
(C) 42.
(D) 36.
(E) 32.

Resolução:
50-20=30 atitudes negativas
20.4=80
30.(-1)=-30
80-30=50
Resposta: A

• Multiplicação: é uma adição de números/ fatores repetidos. Na multiplicação o produto dos números a e b, pode ser indicado por
a x b, a . b ou ainda ab sem nenhum sinal entre as letras.

• Divisão: a divisão exata de um número inteiro por outro número inteiro, diferente de zero, dividimos o módulo do dividendo pelo
módulo do divisor.

ATENÇÃO:
1) No conjunto Z, a divisão não é comutativa, não é associativa e não tem a propriedade da existência do elemento neutro.
2) Não existe divisão por zero.

24
MATEMÁTICA
3) Zero dividido por qualquer número inteiro, diferente de zero,
é zero, pois o produto de qualquer número inteiro por zero é igual
a zero.

Na multiplicação e divisão de números inteiros é muito impor-


tante a REGRA DE SINAIS:

Sinais iguais (+) (+); (-) (-) = resultado sempre positivo.


Sinais diferentes (+) (-); (-) (+) = resultado sempre
negativo. N C Z C Q (N está contido em Z que está contido em Q)

Exemplo: Subconjuntos:
(PREF.DE NITERÓI) Um estudante empilhou seus livros, obten-
do uma única pilha 52cm de altura. Sabendo que 8 desses livros
possui uma espessura de 2cm, e que os livros restantes possuem SÍMBOLO REPRESENTAÇÃO DESCRIÇÃO
espessura de 3cm, o número de livros na pilha é: Conjunto dos números
* Q*
(A) 10 racionais não nulos
(B) 15 Conjunto dos números
(C) 18 + Q+
racionais não negativos
(D) 20
(E) 22 Conjunto dos números
*e+ Q*+
racionais positivos
Resolução: Conjunto dos números
São 8 livros de 2 cm: 8.2 = 16 cm - Q_
racionais não positivos
Como eu tenho 52 cm ao todo e os demais livros tem 3 cm,
Conjunto dos números
temos: *e- Q*_
racionais negativos
52 - 16 = 36 cm de altura de livros de 3 cm
36 : 3 = 12 livros de 3 cm
Representação decimal
O total de livros da pilha: 8 + 12 = 20 livros ao todo.
Podemos representar um número racional, escrito na forma de
Resposta: D
fração, em número decimal. Para isso temos duas maneiras possí-
veis:
• Potenciação: A potência an do número inteiro a, é definida
1º) O numeral decimal obtido possui, após a vírgula, um núme-
como um produto de n fatores iguais. O número a é denominado a
ro finito de algarismos. Decimais Exatos:
base e o número n é o expoente.an = a x a x a x a x ... x a , a é multi-
plicado por a n vezes. Tenha em mente que:
– Toda potência de base positiva é um número inteiro positivo. 2
= 0,4
– Toda potência de base negativa e expoente par é um número 5
inteiro positivo.
– Toda potência de base negativa e expoente ímpar é um nú-
2º) O numeral decimal obtido possui, após a vírgula, infinitos
mero inteiro negativo.
algarismos (nem todos nulos), repetindo-se periodicamente Deci-
mais Periódicos ou Dízimas Periódicas:
Propriedades da Potenciação
1) Produtos de Potências com bases iguais: Conserva-se a base
e somam-se os expoentes. (–a)3 . (–a)6 = (–a)3+6 = (–a)9 1
= 0,333...
2) Quocientes de Potências com bases iguais: Conserva-se a 3
base e subtraem-se os expoentes. (-a)8 : (-a)6 = (-a)8 – 6 = (-a)2
3) Potência de Potência: Conserva-se a base e multiplicam-se
Representação Fracionária
os expoentes. [(-a)5]2 = (-a)5 . 2 = (-a)10
É a operação inversa da anterior. Aqui temos duas maneiras
4) Potência de expoente 1: É sempre igual à base. (-a)1 = -a e
possíveis:
(+a) = +a
1

5) Potência de expoente zero e base diferente de zero: É igual


1) Transformando o número decimal em uma fração numera-
a 1. (+a)0 = 1 e (–b)0 = 1
dor é o número decimal sem a vírgula e o denominador é composto
pelo numeral 1, seguido de tantos zeros quantas forem as casas de-
Conjunto dos números racionais – Q m
cimais do número decimal dado. Ex.:
Um número racional é o que pode ser escrito na forma n ,
0,035 = 35/1000
onde m e n são números inteiros, sendo que n deve ser diferente
de zero. Frequentemente usamos m/n para significar a divisão de
2) Através da fração geratriz. Aí temos o caso das dízimas perió-
m por n.
dicas que podem ser simples ou compostas.
– Simples: o seu período é composto por um mesmo número
ou conjunto de números que se repeti infinitamente. Exemplos:

25
MATEMÁTICA

Procedimento: para transformarmos uma dízima periódica simples em fração basta utilizarmos o dígito 9 no denominador para cada
quantos dígitos tiver o período da dízima.

– Composta: quando a mesma apresenta um ante período que não se repete.

a)

Procedimento: para cada algarismo do período ainda se coloca um algarismo 9 no denominador. Mas, agora, para cada algarismo do
antiperíodo se coloca um algarismo zero, também no denominador.

b)

Procedimento: é o mesmo aplicado ao item “a”, acrescido na frente da parte inteira (fração mista), ao qual transformamos e obtemos
a fração geratriz.

Exemplo:
(PREF. NITERÓI) Simplificando a expressão abaixo

Obtém-se :

(A) ½
(B) 1
(C) 3/2
(D) 2
(E) 3

26
MATEMÁTICA
Resolução: Exemplo:
(PREF. JUNDIAI/SP – AGENTE DE SERVIÇOS OPERACIONAIS
– MAKIYAMA) Na escola onde estudo, ¼ dos alunos tem a língua
portuguesa como disciplina favorita, 9/20 têm a matemática como
favorita e os demais têm ciências como favorita. Sendo assim, qual
fração representa os alunos que têm ciências como disciplina favo-
rita?
(A) 1/4
(B) 3/10
(C) 2/9
Resposta: B (D) 4/5
(E) 3/2
Caraterísticas dos números racionais
O módulo e o número oposto são as mesmas dos números in- Resolução:
teiros. Somando português e matemática:

Inverso: dado um número racional a/b o inverso desse número


(a/b)–n, é a fração onde o numerador vira denominador e o denomi-
nador numerador (b/a)n.

O que resta gosta de ciências:

Resposta: B
Representação geométrica
• Multiplicação: como todo número racional é uma fração ou
pode ser escrito na forma de uma fração, definimos o produto de
dois números racionais a e c , da mesma forma que o produto de
b d
frações, através de:

Observa-se que entre dois inteiros consecutivos existem infini-


tos números racionais.

Operações • Divisão: a divisão de dois números racionais p e q é a própria


• Soma ou adição: como todo número racional é uma fração operação de multiplicação do número p pelo inverso de q, isto é: p
ou pode ser escrito na forma de uma fração, definimos a adição ÷ q = p × q-1
entre os números racionais a e c , da mesma forma que a soma
de frações, através de: b d

Exemplo:
(PM/SE – SOLDADO 3ªCLASSE – FUNCAB) Numa operação
• Subtração: a subtração de dois números racionais p e q é a policial de rotina, que abordou 800 pessoas, verificou-se que 3/4
própria operação de adição do número p com o oposto de q, isto é: dessas pessoas eram homens e 1/5 deles foram detidos. Já entre as
p – q = p + (–q) mulheres abordadas, 1/8 foram detidas.
Qual o total de pessoas detidas nessa operação policial?
(A) 145
(B) 185
(C) 220
(D) 260
(E) 120
ATENÇÃO: Na adição/subtração se o denominador for igual,
conserva-se os denominadores e efetua-se a operação apresen-
tada.

27
MATEMÁTICA
Resolução: 2) Símbolos:
- Primeiro, resolvemos os parênteses ( ), até acabarem os cál-
culos dentro dos parênteses,
-Depois os colchetes [ ];
- E por último as chaves { }.

ATENÇÃO:
– Quando o sinal de adição (+) anteceder um parêntese, col-
chetes ou chaves, deveremos eliminar o parêntese, o colchete ou
chaves, na ordem de resolução, reescrevendo os números internos
com os seus sinais originais.
– Quando o sinal de subtração (-) anteceder um parêntese, col-
chetes ou chaves, deveremos eliminar o parêntese, o colchete ou
chaves, na ordem de resolução, reescrevendo os números internos
com os seus sinais invertidos.

Resposta: A Exemplo:
(MANAUSPREV – ANALISTA PREVIDENCIÁRIO – ADMINISTRATI-
• Potenciação: é válido as propriedades aplicadas aos núme- VA – FCC) Considere as expressões numéricas, abaixo.
ros inteiros. Aqui destacaremos apenas as que se aplicam aos nú- A = 1/2 + 1/4+ 1/8 + 1/16 + 1/32 e
meros racionais. B = 1/3 + 1/9 + 1/27 + 1/81 + 1/243

A) Toda potência com expoente negativo de um número ra- O valor, aproximado, da soma entre A e B é
cional diferente de zero é igual a outra potência que tem a base (A) 2
igual ao inverso da base anterior e o expoente igual ao oposto do (B) 3
expoente anterior. (C) 1
(D) 2,5
(E) 1,5

Resolução:
Vamos resolver cada expressão separadamente:

B) Toda potência com expoente ímpar tem o mesmo sinal da


base.

C) Toda potência com expoente par é um número positivo.

Resposta: E

Expressões numéricas Múltiplos


São todas sentenças matemáticas formadas por números, suas Dizemos que um número é múltiplo de outro quando o primei-
operações (adições, subtrações, multiplicações, divisões, potencia- ro é resultado da multiplicação entre o segundo e algum número
ções e radiciações) e também por símbolos chamados de sinais de natural e o segundo, nesse caso, é divisor do primeiro. O que sig-
associação, que podem aparecer em uma única expressão. nifica que existem dois números, x e y, tal que x é múltiplo de y se
existir algum número natural n tal que:
Procedimentos x = y·n
1) Operações:
- Resolvermos primeiros as potenciações e/ou radiciações na Se esse número existir, podemos dizer que y é um divisor de x e
ordem que aparecem; podemos escrever: x = n/y
- Depois as multiplicações e/ou divisões;
- Por último as adições e/ou subtrações na ordem que apare- Observações:
cem. 1) Todo número natural é múltiplo de si mesmo.

28
MATEMÁTICA
2) Todo número natural é múltiplo de 1.
3) Todo número natural, diferente de zero, tem infinitos múl-
tiplos.
4) O zero é múltiplo de qualquer número natural.
5) Os múltiplos do número 2 são chamados de números pares,
e a fórmula geral desses números é 2k (k ∈ N). Os demais são cha-
mados de números ímpares, e a fórmula geral desses números é 2k
+ 1 (k ∈ N).
6) O mesmo se aplica para os números inteiros, tendo k ∈ Z.

Critérios de divisibilidade
São regras práticas que nos possibilitam dizer se um número Divisores
é ou não divisível por outro, sem que seja necessário efetuarmos Os divisores de um número n, é o conjunto formado por todos
a divisão. os números que o dividem exatamente. Tomemos como exemplo o
No quadro abaixo temos um resumo de alguns dos critérios: número 12.

Um método para descobrimos os divisores é através da fato-


ração numérica. O número de divisores naturais é igual ao produto
dos expoentes dos fatores primos acrescidos de 1.
Logo o número de divisores de 12 são:

Para sabermos quais são esses 6 divisores basta pegarmos cada


fator da decomposição e seu respectivo expoente natural que varia
de zero até o expoente com o qual o fator se apresenta na decom-
posição do número natural.
12 = 22 . 31 =
22 = 20,21 e 22 ; 31 = 30 e 31, teremos:
20 . 30=1
20 . 31=3
21 . 30=2
21 . 31=2.3=6
(Fonte: https://www.guiadamatematica.com.br/criterios-de-divisibili- 22 . 31=4.3=12
dade/ - reeditado) 22 . 30=4
Vale ressaltar a divisibilidade por 7: Um número é divisível por
7 quando o último algarismo do número, multiplicado por 2, sub- O conjunto de divisores de 12 são: D (12)={1, 2, 3, 4, 6, 12}
traído do número sem o algarismo, resulta em um número múltiplo A soma dos divisores é dada por: 1 + 2 + 3 + 4 + 6 + 12 = 28
de 7. Neste, o processo será repetido a fim de diminuir a quantida-
de de algarismos a serem analisados quanto à divisibilidade por 7. Máximo divisor comum (MDC)
É o maior número que é divisor comum de todos os números
Outros critérios dados. Para o cálculo do MDC usamos a decomposição em fatores
Divisibilidade por 12: Um número é divisível por 12 quando é primos. Procedemos da seguinte maneira:
divisível por 3 e por 4 ao mesmo tempo. Após decompor em fatores primos, o MDC é o produto dos FA-
Divisibilidade por 15: Um número é divisível por 15 quando é TORES COMUNS obtidos, cada um deles elevado ao seu MENOR
divisível por 3 e por 5 ao mesmo tempo. EXPOENTE.

Fatoração numérica
Trata-se de decompor o número em fatores primos. Para de-
compormos este número natural em fatores primos, dividimos o
mesmo pelo seu menor divisor primo, após pegamos o quociente
e dividimos o pelo seu menor divisor, e assim sucessivamente até
obtermos o quociente 1. O produto de todos os fatores primos re-
presenta o número fatorado. Exemplo:

29
MATEMÁTICA
Exemplo:
MDC (18,24,42) =

Observe que os fatores comuns entre eles são: 2 e 3, então pegamos os de menores expoentes: 2x3 = 6. Logo o Máximo Divisor Co-
mum entre 18,24 e 42 é 6.

Mínimo múltiplo comum (MMC)


É o menor número positivo que é múltiplo comum de todos os números dados. A técnica para acharmos é a mesma do MDC, apenas
com a seguinte ressalva:
O MMC é o produto dos FATORES COMUNS E NÃO-COMUNS, cada um deles elevado ao SEU MAIOR EXPOENTE.
Pegando o exemplo anterior, teríamos:
MMC (18,24,42) =
Fatores comuns e não-comuns= 2,3 e 7
Com maiores expoentes: 2³x3²x7 = 8x9x7 = 504. Logo o Mínimo Múltiplo Comum entre 18,24 e 42 é 504.

Temos ainda que o produto do MDC e MMC é dado por: MDC (A,B). MMC (A,B)= A.B

Os cálculos desse tipo de problemas, envolvem adições e subtrações, posteriormente as multiplicações e divisões. Depois os pro-
blemas são resolvidos com a utilização dos fundamentos algébricos, isto é, criamos equações matemáticas com valores desconhecidos
(letras). Observe algumas situações que podem ser descritas com utilização da álgebra.
É bom ter mente algumas situações que podemos encontrar:

Exemplos:
(PREF. GUARUJÁ/SP – SEDUC – PROFESSOR DE MATEMÁTICA – CAIPIMES) Sobre 4 amigos, sabe-se que Clodoaldo é 5 centímetros
mais alto que Mônica e 10 centímetros mais baixo que Andreia. Sabe-se também que Andreia é 3 centímetros mais alta que Doralice e que
Doralice não é mais baixa que Clodoaldo. Se Doralice tem 1,70 metros, então é verdade que Mônica tem, de altura:
(A) 1,52 metros.
(B) 1,58 metros.
(C) 1,54 metros.
(D) 1,56 metros.

Resolução:
Escrevendo em forma de equações, temos:
C = M + 0,05 ( I )
C = A – 0,10 ( II )
A = D + 0,03 ( III )
D não é mais baixa que C
Se D = 1,70 , então:

30
MATEMÁTICA
( III ) A = 1,70 + 0,03 = 1,73 Fração é todo número que pode ser escrito da seguinte forma
( II ) C = 1,73 – 0,10 = 1,63 a/b, com b≠0. Sendo a o numerador e b o denominador. Uma fra-
( I ) 1,63 = M + 0,05 ção é uma divisão em partes iguais. Observe a figura:
M = 1,63 – 0,05 = 1,58 m
Resposta: B

(CEFET – AUXILIAR EM ADMINISTRAÇÃO – CESGRANRIO) Em


três meses, Fernando depositou, ao todo, R$ 1.176,00 em sua ca-
derneta de poupança. Se, no segundo mês, ele depositou R$ 126,00
a mais do que no primeiro e, no terceiro mês, R$ 48,00 a menos do
que no segundo, qual foi o valor depositado no segundo mês? O numerador indica quantas partes tomamos do total que foi
(A) R$ 498,00 dividida a unidade.
(B) R$ 450,00 O denominador indica quantas partes iguais foi dividida a uni-
(C) R$ 402,00 dade.
(D) R$ 334,00 Lê-se: um quarto.
(E) R$ 324,00
Atenção:
Resolução: • Frações com denominadores de 1 a 10: meios, terços, quar-
Primeiro mês = x tos, quintos, sextos, sétimos, oitavos, nonos e décimos.
Segundo mês = x + 126 • Frações com denominadores potências de 10: décimos, cen-
Terceiro mês = x + 126 – 48 = x + 78 tésimos, milésimos, décimos de milésimos, centésimos de milési-
Total = x + x + 126 + x + 78 = 1176 mos etc.
3.x = 1176 – 204 • Denominadores diferentes dos citados anteriormente:
x = 972 / 3 Enuncia-se o numerador e, em seguida, o denominador seguido da
x = R$ 324,00 (1º mês) palavra “avos”.
* No 2º mês: 324 + 126 = R$ 450,00
Resposta: B Tipos de frações
– Frações Próprias: Numerador é menor que o denominador.
(PREFEITURA MUNICIPAL DE RIBEIRÃO PRETO/SP – AGENTE Ex.: 7/15
DE ADMINISTRAÇÃO – VUNESP) Uma loja de materiais elétricos – Frações Impróprias: Numerador é maior ou igual ao denomi-
testou um lote com 360 lâmpadas e constatou que a razão entre o nador. Ex.: 6/7
número de lâmpadas queimadas e o número de lâmpadas boas era – Frações aparentes: Numerador é múltiplo do denominador.
2 / 7. Sabendo-se que, acidentalmente, 10 lâmpadas boas quebra- As mesmas pertencem também ao grupo das frações impróprias.
ram e que lâmpadas queimadas ou quebradas não podem ser ven- Ex.: 6/3
didas, então a razão entre o número de lâmpadas que não podem – Frações mistas: Números compostos de uma parte inteira e
ser vendidas e o número de lâmpadas boas passou a ser de outra fracionária. Podemos transformar uma fração imprópria na
(A) 1 / 4. forma mista e vice e versa. Ex.: 1 1/12 (um inteiro e um doze avos)
(B) 1 / 3. – Frações equivalentes: Duas ou mais frações que apresentam
(C) 2 / 5. a mesma parte da unidade. Ex.: 2/4 = 1/2
(D) 1 / 2. – Frações irredutíveis: Frações onde o numerador e o denomi-
(E) 2 / 3. nador são primos entre si. Ex.: 5/11 ;

Resolução: Operações com frações


Chamemos o número de lâmpadas queimadas de ( Q ) e o nú-
mero de lâmpadas boas de ( B ). Assim: • Adição e Subtração
B + Q = 360 , ou seja, B = 360 – Q ( I ) Com mesmo denominador: Conserva-se o denominador e so-
ma-se ou subtrai-se os numeradores.

, ou seja, 7.Q = 2.B ( II )

Substituindo a equação ( I ) na equação ( II ), temos:


7.Q = 2. (360 – Q)
7.Q = 720 – 2.Q Com denominadores diferentes: é necessário reduzir ao mes-
7.Q + 2.Q = 720 mo denominador através do MMC entre os denominadores. Usa-
9.Q = 720 mos tanto na adição quanto na subtração.
Q = 720 / 9
Q = 80 (queimadas)
Como 10 lâmpadas boas quebraram, temos:
Q’ = 80 + 10 = 90 e B’ = 360 – 90 = 270

Resposta: B O MMC entre os denominadores (3,2) = 6

31
MATEMÁTICA
• Multiplicação e Divisão
Multiplicação: É produto dos numerados pelos denominadores RELAÇÕES E FUNÇÕES; FUNÇÕES POLINOMIAIS; FUN-
dados. Ex.: ÇÕES EXPONENCIAIS E LOGARÍTMICAS

FUNÇÕES E EQUAÇÕES LINEARES


Chama-se função do 1º grau ou afim a função f: R → R definida
por y = ax + b, com a e b números reais e a 0. a é o coeficiente an-
gular da reta e determina sua inclinação, b é o coeficiente linear da
reta e determina a intersecção da reta com o eixo y.

– Divisão: É igual a primeira fração multiplicada pelo inverso da


segunda fração. Ex.:

Com a ϵ R* e b ϵ R.

Usualmente chamamos as funções polinomiais de :1º grau, 2º


etc, mas o correto seria Função de grau 1,2 etc. Pois o classifica a
função é o seu grau do seu polinômio.
A função do 1º grau pode ser classificada de acordo com seus
Obs.: Sempre que possível podemos simplificar o resultado da gráficos. Considere sempre a forma genérica y = ax + b.
fração resultante de forma a torna-la irredutível.
Função constante: se a = 0, então y = b, b ∈ R. Desta maneira,
Exemplo: por exemplo, se y = 4 é função constante, pois, para qualquer valor
(EBSERH/HUPES – UFBA – TÉCNICO EM INFORMÁTICA – IA- de x, o valor de y ou f(x) será sempre 4.
DES) O suco de três garrafas iguais foi dividido igualmente entre 5
pessoas. Cada uma recebeu

(A)

(B)

Função identidade: se a = 1 e b = 0, então y = x. Nesta função, x


(C) e y têm sempre os mesmos valores. Graficamente temos: A reta y =
x ou f(x) = x é denominada bissetriz dos quadrantes ímpares.

(D)

(E)

Resolução:
Se cada garrafa contém X litros de suco, e eu tenho 3 garrafas,
então o total será de 3X litros de suco. Precisamos dividir essa quan-
tidade de suco (em litros) para 5 pessoas, logo teremos:
Mas, se a = -1 e b = 0, temos então y = -x. A reta determinada
por esta função é a bissetriz dos quadrantes pares, conforme mos-
tra o gráfico ao lado. x e y têm valores iguais em módulo, porém
com sinais contrários.

Onde x é litros de suco, assim a fração que cada um recebeu de


suco é de 3/5 de suco da garrafa.
Resposta: B

32
MATEMÁTICA
Função linear: é a função do 1º grau quando b = 0, a ≠ 0 e a ≠ Função ímpar: quando para todo elemento x pertencente ao
1, a e b ∈ R. domínio, temos f(-x) = -f(x) ∀ x є D(f). Ou seja, os elementos simé-
tricos do domínio terão imagens simétricas.
Função afim: é a função do 1º grau quando a ≠ 0, b ≠ 0, a e b
∈ R.

Função Injetora: é a função cujo domínio apresenta elementos


distintos e também imagens distintas.

Gráfico da função do 1º grau


A representação geométrica da função do 1º grau é uma reta,
portanto, para determinar o gráfico, é necessário obter dois pontos.
Em particular, procuraremos os pontos em que a reta corta os eixos
x e y.
De modo geral, dada a função f(x) = ax + b, para determinarmos
a intersecção da reta com os eixos, procedemos do seguinte modo:

Função Sobrejetora: é quando todos os elementos do domínio


forem imagens de PELO MENOS UM elemento do domínio.

1º) Igualamos y a zero, então ax + b = 0 ⇒ x = - b/a, no eixo x


encontramos o ponto (-b/a, 0).
2º) Igualamos x a zero, então f(x) = a. 0 + b ⇒ f(x) = b, no eixo y
Função Bijetora: é uma função que é ao mesmo tempo injetora encontramos o ponto (0, b).
e sobrejetora. • f(x) é crescente se a é um número positivo (a > 0);
• f(x) é decrescente se a é um número negativo (a < 0).

Função Par: quando para todo elemento x pertencente ao do- Raiz ou zero da função do 1º grau
mínio temos f(x)=f(-x), ∀ x ∈ D(f). Ou seja, os valores simétricos A raiz ou zero da função do 1º grau é o valor de x para o qual y =
devem possuir a mesma imagem. f(x) = 0. Graficamente, é o ponto em que a reta “corta” o eixo x. Por-
tanto, para determinar a raiz da função, basta a igualarmos a zero:

Estudo de sinal da função do 1º grau


Estudar o sinal de uma função do 1º grau é determinar os valo-
res de x para que y seja positivo, negativo ou zero.
1º) Determinamos a raiz da função, igualando-a a zero: (raiz:
x =- b/a)

33
MATEMÁTICA
2º) Verificamos se a função é crescente (a>0) ou decrescente (a ( B ) o ponto N está no eixo y abaixo do zero, e o ponto P está no
< 0); temos duas possibilidades: eixo x à direita do zero, mas N está em uma posição mais baixa que
o ponto P, e, assim, a função é crescente.
( D ) o ponto L está no 3º quadrante e o ponto M está no 1º
quadrante, e L está em uma posição mais baixa do que o ponto M,
sendo, assim, crescente.
( C ) o ponto S está no 2º quadrante e o ponto T está no 4º qua-
drante, e S está em uma posição mais alta do que o ponto T, sendo,
assim, decrescente.
Resposta: C.

EQUAÇÕES LINEARES
As equações do tipo a1x1 + a2x2 + a3x3 + .....+ anxn = b, são equa-
ções lineares, onde a1, a2, a3, ... são os coeficientes; x1, x2, x3,... as
incógnitas e b o termo independente.
Por exemplo, a equação 4x – 3y + 5z = 31 é uma equação linear.
Os coeficientes são 4, –3 e 5; x, y e z as incógnitas e 31 o termo
Exemplos: 01. (PM/SP – CABO – CETRO) O gráfico abaixo re- independente.
presenta o salário bruto (S) de um policial militar em função das Para x = 2, y = 4 e z = 7, temos 4.2 – 3.4 + 5.7 = 31, concluímos
horas (h) trabalhadas em certa cidade. Portanto, o valor que este que o terno ordenado (2,4,7) é solução da equação linear
policial receberá por 186 horas é 4x – 3y + 5z = 31.

FUNÇÕES QUADRÁTICAS
Chama-se função do 2º grau ou função quadrática, de domínio
R e contradomínio R, a função:

Com a, b e c reais e a ≠ 0.

Onde:
a é o coeficiente de x2
b é o coeficiente de x
c é o termo independente
(A) R$ 3.487,50.
(B) R$ 3.506,25. Chama-se função completa aquela em que a, b e c não são nu-
(C) R$ 3.534,00. los, e função incompleta aquela em que b ou c são nulos.
(D) R$ 3.553,00.
Raízes da função do 2ºgrau
Resolução: Analogamente à função do 1º grau, para encontrar as raízes
da função quadrática, devemos igualar f(x) a zero. Teremos então:
300 750 𝑥
= =
16 40 186 ax2 + bx + c = 0

40x = 750∙186 A expressão assim obtida denomina-se equação do 2º grau.


x = 3487,50 As raízes da equação são determinadas utilizando-se a fórmula de
Resposta: A. Bhaskara:

02. (CBTU/RJ - Assistente Operacional - Condução de Veículos


Metroferroviários – CONSULPLAN) Qual dos pares de pontos a se-
guir pertencem a uma função do 1º grau decrescente?
(A) Q(3, 3) e R(5, 5).
(B) N(0, –2) e P(2, 0). Δ (letra grega: delta) é chamado de discriminante da equação.
(C) S(–1, 1) e T(1, –1). Observe que o discriminante terá um valor numérico, do qual te-
(D) L(–2, –3) e M(2, 3). mos de extrair a raiz quadrada. Neste caso, temos três casos a con-
siderar:
Resolução: Δ > 0 ⇒ duas raízes reais e distintas;
Para pertencer a uma função polinomial do 1º grau decrescen- Δ = 0 ⇒ duas raízes reais e iguais;
te, o primeiro ponto deve estar em uma posição “mais alta” do que Δ < 0 ⇒ não existem raízes reais (∄ x ∈ R).
o 2º ponto.
Vamos analisar as alternativas:
( A ) os pontos Q e R estão no 1º quadrante, mas Q está em uma
posição mais baixa que o ponto R, e, assim, a função é crescente.

34
MATEMÁTICA
Gráfico da função do 2º grau Coordenadas do vértice
As coordenadas do vértice da parábola são dadas por:
Concavidade da parábola
Graficamente, a função do 2º grau, de domínio r, é representa-
da por uma curva denominada parábola. Dada a função y = ax2 + bx
+ c, cujo gráfico é uma parábola, se:

Estudo do sinal da função do 2º grau


Estudar o sinal da função quadrática é determinar os valores de
x para que y seja: positivo, negativo ou zero. Dada a função f(x) = y
O termo independente = ax2 + bx + c, para saber os sinais de y, determinamos as raízes (se
Na função y = ax2 + bx + c, se x = 0 temos y = c. Os pontos em existirem) e analisamos o valor do discriminante.
que x = 0 estão no eixo y, isto significa que o ponto (0, c) é onde a
parábola “corta” o eixo y.

Raízes da função
Considerando os sinais do discriminante (Δ) e do coeficiente de
x2, teremos os gráficos que seguem para a função y = ax2 + bx + c.
Exemplos: 01. (CBM/MG – Oficial Bombeiro Militar – FU-
MARC) Duas cidades A e B estão separadas por uma distância d.
Considere um ciclista que parte da cidade A em direção à cidade B.
A distância d, em quilômetros, que o ciclista ainda precisa percorrer
para chegar ao seu destino em função do tempo t, em horas, é dada
100 − 𝑡 2
pela função 𝑑 𝑡 = . Sendo assim, a velocidade
média 𝑡+1

desenvolvida pelo ciclista em todo o percurso da cidade A até


a cidade B é igual a

(A) 10 Km/h
Vértice da parábola – Máximos e mínimos da função (B) 20 Km/h
Observe os vértices nos gráficos: (C) 90 Km/h
(D) 100 Km/h

Resolução:
Vamos calcular a distância total, fazendo t = 0:
100−02
𝑑 0 = 0+1
= 100𝑘𝑚
Agora, vamos substituir na função:
100 – t² = 0
O vértice da parábola será: – t² = – 100 . (– 1)
• o ponto mínimo se a concavidade estiver voltada para cima t² = 100
(a > 0); t= √100=10km/h
• o ponto máximo se a concavidade estiver voltada para baixo Resposta: A.
(a < 0).

A reta paralela ao eixo y que passa pelo vértice da parábola é


chamada de eixo de simetria.

35
MATEMÁTICA
02. (IPEM – TÉCNICO EM METROLOGIA E QUALIDADE – VU- b=2
NESP) A figura ilustra um arco decorativo de parábola AB sobre a c=-24
porta da entrada de um salão: a + b + c = 1 + 2 – 24 = -21
Resposta: E.

FUNÇÃO EXPONENCIAL
Antes seria bom revisarmos algumas noções de potencializa-
ção e radiciação.
Sejam a e b bases reais e diferentes de zero e m e n expoentes
inteiros, temos:

Considere um sistema de coordenadas cartesianas com centro


em O, de modo que o eixo vertical (y) passe pelo ponto mais alto do
arco (V), e o horizontal (x) passe pelos dois pontos de apoio desse
arco sobre a porta (A e B).
Sabendo-se que a função quadrática que descreve esse arco é
f(x) = – x²+ c, e que V = (0; 0,81), pode-se afirmar que a distância ,
em metros, é igual a
(A) 2,1.
(B) 1,8.
(C) 1,6.
(D) 1,9.
(E) 1,4.

Resolução:
C=0,81, pois é exatamente a distância de V
F(x)=-x²+0,81
0=-x²+0,81
X²=0,81
X=±0,9
A distância AB é 0,9+0,9=1,8
Resposta: B.

03. (TRANSPETRO – TÉCNICO DE ADMINISTRAÇÃO E CONTRO-


LE JÚNIOR – CESGRANRIO) A raiz da função f(x) = 2x − 8 é também Equação exponencial
raiz da função quadrática g(x) = ax²+ bx + c. Se o vértice da parábola, A equação exponencial caracteriza-se pela presença da incóg-
gráfico da função g(x), é o ponto V(−1, −25), a soma a + b + c é igual nita no expoente. Exemplos:
a:
(A) − 25
(B) − 24
(C) − 23
(D) − 22
(E) – 21

Resolução:
2x-8=0
2x=8
X=4

𝑥1 + 𝑥2
𝑥𝑣 = Para resolver estas equações, além das propriedades de potên-
2 cias, utilizamos a seguinte propriedade:
Se duas potências são iguais, tendo as bases iguais, então os
4 + 𝑥2 expoentes são iguais: am = an ⇔ m = n, sendo a > 0 e a ≠ 1.
−1 =
2 Gráficos da função exponencial
x2=-2-4=-6 A função exponencial f, de domínio R e contradomínio R, é de-
finida por y = ax, onde a > 0 e a ≠1. Exemplos:
Lembrando que para encontrar a equação, temos:
(x - 4)(x + 6) = x² + 6x - 4x - 24 = x² + 2x - 24
a=1

36
MATEMÁTICA
01. Considere a função y = 3x.
Vamos atribuir valores a x, calcular y e a seguir construir o grá-
fico:

Inequação exponencial
A inequação exponencial caracteriza-se pela presença da incóg-
nita no expoente e de um dos sinais de desigualdade: >, <, ≥ ou ≤.
Analisando seus gráficos, temos:

02. Considerando a função, encontre a função: y = (1/3)x

Observando o gráfico, temos que:


• na função crescente, conservamos o sinal da desigualdade
para comparar os expoentes:

Observando as funções anteriores, podemos concluir que para


y = ax:
• se a > 1, a função exponencial é crescente;
• se 0 < a < 1, a função é decrescente.
• na função decrescente, “invertemos” o sinal da desigualdade
Graficamente temos: para comparar os expoentes:

Desde que as bases sejam iguais.

37
MATEMÁTICA
Exemplos: 01. (Corpo de Bombeiros Militar/MT – Oficial Bombeiro Militar – COVEST – UNEMAT) As funções exponenciais são muito
usadas para modelar o crescimento ou o decaimento populacional de uma determinada região em um determinado período de tempo. A
função modela o comportamento de uma determinada cidade quanto ao seu crescimento populacional em um determinado período de
tempo, em que P é a população em milhares de habitantes e t é o número de anos desde 1980.
Qual a taxa média de crescimento populacional anual dessa cidade?
(A) 1,023%
(B) 1,23%
(C) 2,3%
(D) 0,023%
(E) 0,23%

Resolução:
P(t)=234 .(1,023)t

Primeiramente, vamos calcular a população inicial, fazendo t = 0:


P(0)=234 .(1,023)0=234 .1=234 mil

Agora, vamos calcular a população após 1 ano, fazendo t = 1:


P(1)=234 .(1,023)1=234 .1,023=239,382

Por fim, vamos utilizar a Regra de Três Simples:

População %
234 --------------- 100
239,382 ------------ x

234.x = 239,382 . 100


x = 23938,2 / 234
x = 102,3%
102,3% = 100% (população já existente) + 2,3% (crescimento)
Resposta: C.

02. (Polícia Civil/SP – Desenhista Técnico-Pericial – VUNESP) Uma população P cresce em função do tempo t (em anos), segundo a
sentença . Hoje, no instante t = 0, a população é de 2 000 indivíduos. A população será de 50 000 indivíduos daqui a
(A) 20 anos.
(B) 25 anos.
(C) 50 anos.
(D) 15 anos.
(E) 10 anos.

Resolução:
50000=2000 .50,1 .t

50000
50,1 .𝑡 =
2000

50,1 .t= 52
Vamos simplificar as bases (5), sobrando somente os expoentes.
Assim:
0,1 . t = 2
t = 2 / 0,1
t = 20 anos
Resposta: A.

FUNÇÃO LOGARÍTMICA

Logaritmo
O logaritmo de um número b, na base a, onde a e b são positivos e a é diferente de um, é um número x, tal que x é o expoente de a
para se obter b, então:

38
MATEMÁTICA
Onde:
b é chamado de logaritmando
a é chamado de base
x é o logaritmo

Observações
- loga a = 1, sendo a > 0 e a ≠ 1
- Nos logaritmos decimais, ou seja, aqueles em que a base é 10, está frequentemente é omitida. Por exemplo: logaritmo de 2 na base
10; notação: log 2

Propriedades decorrentes da definição

Domínio (condição de existência)


Segundo a definição, o logaritmando e a base devem ser positivos, e a base deve ser diferente de 1. Portanto, sempre que encontra-
mos incógnitas no logaritmando ou na base devemos garantir a existência do logaritmo.

Propriedades

Logaritmo decimal - característica e mantissa


Normalmente eles são calculados fazendo-se o uso da calculadora e da tabela de logaritmos. Mas fique tranquilo em sua prova as
bancas fornecem os valores dos logaritmos.

Exemplo: Determine log 341.

Resolução:
Sabemos que 341 está entre 100 e 1.000:
102 < 341 < 103

Como a característica é o expoente de menor potência de 10, temos que c = 2.


Consultando a tabela para 341, encontramos m = 0,53275. Logo: log 341 = 2 + 0,53275 → log 341 = 2,53275.

Propriedades operatórias dos logaritmos

Cologaritmo
cologa b = - loga b, sendo b> 0, a > 0 e a ≠ 1

Mudança de base
Para resolver questões que envolvam logaritmo com bases diferentes, utilizamos a seguinte expressão:

Função logarítmica
Função logarítmica é a função f, de domínio R*+ e contradomínio R, que associa cada número real e positivo x ao logaritmo de x na
base a, onde a é um número real, positivo e diferente de 1.

39
MATEMÁTICA
Observando as funções anteriores, podemos concluir que para
y = logax:
• se a > 1, a função é crescente;
• se 0 < a < 1, a função é decrescente.

Equações logarítmicas
Gráfico da função logarítmica A equação logarítmica caracteriza-se pela presença do sinal de
Vamos construir o gráfico de duas funções logarítmicas como igualdade e da incógnita no logaritmando.
exemplo:
Para resolver uma equação, antes de mais nada devemos es-
A) y = log3 x tabelecer a condição de existência do logaritmo, determinando os
Atribuímos valores convenientes a x, calculamos y, conforme valores da incógnita para que o logaritmando e a base sejam positi-
mostra a tabela. Localizamos os pontos no plano cartesiano obten- vos, e a base diferente de 1.
do a curva que representa a função.
Inequações logarítmicas
Identificamos as inequações logarítmicas pela presença da in-
cógnita no logaritmando e de um dos sinais de desigualdade: >, <,
≥ ou ≤.
Assim como nas equações, devemos garantir a existência do
logaritmo impondo as seguintes condições: o logaritmando e a base
devem ser positivos e a base deve ser diferente de 1.
Na resolução de inequações logarítmicas, procuramos obter
logaritmos de bases iguais nos dois membros da inequação, para
poder comparar os logaritmandos. Porém, para que não ocorram
distorções, devemos verificar se as funções envolvidas são crescen-
tes ou decrescentes. A justificativa será feita por meio da análise
gráfica de duas funções:

B) y = log1/3 x
Vamos tabelar valores convenientes de x, calculando y. Locali-
zamos os pontos no plano cartesiano, determinando a curva corres-
pondente à função.

40
MATEMÁTICA
Na função crescente, os sinais coincidem na comparação dos
logaritmandos e, posteriormente, dos respectivos logaritmos; po- MATRIZES; DETERMINANTES; SISTEMAS LINEARES
rém, o mesmo não ocorre na função decrescente. De modo geral,
quando resolvemos uma inequação logarítmica, temos de observar Matriz
o valor numérico da base pois, sendo os dois membros da inequa- Uma matriz é uma tabela de números reais dispostos segundo
ção compostos por logaritmos de mesma base, para comparar os linhas horizontais e colunas verticais.
respectivos logaritmandos temos dois casos a considerar: O conjunto ordenado dos números que formam a tabela, é de-
• se a base é um número maior que 1 (função crescente), utili- nominado matriz, e cada número pertencente a ela é chamado de
zamos o mesmo sinal da inequação; elemento da matriz.
• se a base é um número entre zero e 1 (função decrescente),
utilizamos o “sinal inverso” da inequação. • Tipo ou ordem de uma matriz
As matrizes são classificadas de acordo com o seu número de
Concluindo, dada a função y = loga x e dois números reais x1 e linhas e de colunas. Assim, a matriz representada a seguir é deno-
x2: minada matriz do tipo, ou ordem, 3 x 4 (lê-se três por quatro), pois
tem três linhas e quatro colunas. Exemplo:

Exemplos:
01. (PETROBRAS-GEOFISICO JUNIOR – CESGRANRIO) Se log x
representa o logaritmo na base 10 de x, então o valor de n tal que
log n = 3 - log 2 é:

(A) 2000
(B) 1000 • Representação genérica de uma matriz
(C) 500 Costumamos representar uma matriz por uma letra maiúscula
(D) 100 (A, B, C...), indicando sua ordem no lado inferior direito da letra.
(E) 10 Quando desejamos indicar a ordem de modo genérico, fazemos uso
de letras minúsculas. Exemplo: Am x n.
Resolução: Da mesma maneira, indicamos os elementos de uma matriz
log n = 3 - log 2 pela mesma letra que a denomina, mas em minúscula. A linha e a
log n + log 2 = 3 * 1 coluna em que se encontra tal elemento é indicada também no lado
onde 1 = log 10 então: inferior direito do elemento. Exemplo: a11.
log (n * 2) = 3 * log 10
log(n*2) = log 10 ^3
2n = 10^3
2n = 1000
n = 1000 / 2
n = 500
Resposta: C.

02. (MF – Assistente Técnico Administrativo – ESAF) Sabendo-


-se que log x representa o logaritmo de x na base 10, calcule o valor
da expressão log 20 + log 5.
(A) 5
(B) 4
(C) 1
(D) 2 Exemplo:
(E) 3 (PM/SE – SOLDADO 3ª CLASSE – FUNCAB) A matriz abaixo re-
gistra as ocorrências policiais em uma das regiões da cidade duran-
Resolução: te uma semana.
E = log20 + log5
E = log(2 x 10) + log5
E = log2 + log10 + log5
E = log10 + log (2 x 5)
E = log10 + log10
E = 2 log10
E=2
Resposta: D.

41
MATEMÁTICA
Sendo M=(aij)3x7 com cada elemento aij representando o número de ocorrência no turno i do dia j da semana.
O número total de ocorrências no 2º turno do 2º dia, somando como 3º turno do 6º dia e com o 1º turno do 7º dia será:
(A) 61
(B) 59
(C) 58
(D) 60
(E) 62

Resolução:
Turno i –linha da matriz
Turno j- coluna da matriz
2º turno do 2º dia – a22=18
3º turno do 6º dia-a36=25
1º turno do 7º dia-a17=19
Somando:18+25+19=62
Resposta: E

• Igualdade de matrizes
Duas matrizes A e B são iguais quando apresentam a mesma ordem e seus elementos correspondentes forem iguais.

• Operações com matrizes


– Adição: somamos os elementos correspondentes das matrizes, por isso, é necessário que as matrizes sejam de mesma ordem.
A=[aij]m x n; B = [bij]m x n, portanto C = A + B ⇔ cij = aij + bij.

Exemplo:
(PM/SP – SARGENTO CFS – CETRO) Considere a seguinte sentença envolvendo matrizes:

Diante do exposto, assinale a alternativa que apresenta o valor de y que torna a sentença verdadeira.
(A) 4.
(B) 6.
(C) 8.
(D) 10.

Resolução:

y=10
Resposta: D

– Multiplicação por um número real: sendo k ∈ R e A uma matriz de ordem m x n, a matriz k . A é obtida multiplicando-se todos os
elementos de A por k.

– Subtração: a diferença entre duas matrizes A e B (de mesma ordem) é obtida por meio da soma da matriz A com a oposta de B.

42
MATEMÁTICA

– Multiplicação entre matrizes: consideremos o produto A . B = C. Para efetuarmos a multiplicação entre A e B, é necessário, antes de
mais nada, determinar se a multiplicação é possível, isto é, se o número de colunas de A é igual ao número de linhas de B, determinando
a ordem de C: Am x n x Bn x p = Cm x p, como o número de colunas de A coincide com o de linhas de B(n) então torna-se possível o produto, e a
matriz C terá o número de linhas de A(m) e o número de colunas de B(p)

De modo geral, temos:

Exemplo:
(CPTM – ALMOXARIFE – MAKIYAMA) Assinale a alternativa que apresente o resultado da multiplicação das matrizes A e B abaixo:

(A)

(B)

(C)

(D)

(E)

Resolução:

Resposta: B

43
MATEMÁTICA
• Casos particulares
– Matriz identidade ou unidade: é a matriz quadrada que possui os elementos de sua diagonal principal iguais a 1 e os demais ele-
mentos iguais a 0. Indicamos a matriz identidade de Ιn, onde n é a ordem da matriz.

– Matriz transposta: é a matriz obtida pela troca ordenada de linhas por colunas de uma matriz. Dada uma matriz A de ordem m x n,
obtém-se uma outra matriz de ordem n x m, chamada de transposta de A. Indica-se por At.

Exemplo:
(CPTM – ANALISTA DE COMUNICAÇÃO JÚNIOR – MAKIYAMA) Para que a soma de uma matriz e sua respectiva matriz transposta At
em uma matriz identidade, são condições a serem cumpridas:
(A) a=0 e d=0
(B) c=1 e b=1
(C) a=1/c e b=1/d
(D) a²-b²=1 e c²-d²=1
(E) b=-c e a=d=1/2

Resolução:

2a=1
a=1/2
b+c=0
b=-c
2d=1
D=1/2
Resposta: E

– Matriz inversa: dizemos que uma matriz quadrada A, de ordem n, admite inversa se existe uma matriz A-1, tal que:

Determinantes
Determinante é um número real associado a uma matriz quadrada. Para indicar o determinante, usamos barras. Seja A uma matriz
quadrada de ordem n, indicamos o determinante de A por:

44
MATEMÁTICA
• Determinante de uma matriz de 1ª- ordem
A matriz de ordem 1 só possui um elemento. Por isso, o determinante de uma matriz de 1ª ordem é o próprio elemento.

• Determinante de uma matriz de 2ª- ordem


Em uma matriz de 2ª ordem, obtém-se o determinante por meio da diferença do produto dos elementos da diagonal principal pelo
produto dos elementos da diagonal secundária.

Exemplo:
(PM/SP – SARGENTO CFS – CETRO) É correto afirmar que o determinante é igual a zero para x igual a
(A) 1.
(B) 2.
(C) -2.
(D) -1.

Resolução:
D = 4 - (-2x)
0 = 4 + 2x
x=-2

Resposta: C

• Regra de Sarrus
Esta técnica é utilizada para obtermos o determinante de matrizes de 3ª ordem. Utilizaremos um exemplo para mostrar como aplicar
a regra de Sarrus. A regra de Sarrus consiste em:
a) Repetir as duas primeiras colunas à direita do determinante.
b) Multiplicar os elementos da diagonal principal e os elementos que estiverem nas duas paralelas a essa diagonal, conservando os
sinais desses produtos.
c) Efetuar o produto dos elementos da diagonal secundária e dos elementos que estiverem nas duas paralelas à diagonal e multipli-
cá-los por -1.
d) Somar os resultados dos itens b e c. E assim encontraremos o resultado do determinante.

Simplificando temos:

Exemplo:
(PREF. ARARAQUARA/SP – AGENTE DA ADMINISTRAÇÃO DOS SERVIÇOS DE SANEAMENTO – CETRO) Dada a matriz

, assinale a alternativa que apresenta o valor do determinante de A é

(A) -9.
(B) -8.
(C) 0.
(D) 4.

45
MATEMÁTICA
Resolução:

detA = - 1 – 4 + 2 - (2 + 2 + 2) = - 9
Resposta: A

• Teorema de Laplace
Para matrizes quadradas de ordem n ≥ 2, o teorema de Laplace oferece uma solução prática no cálculo dos determinantes. Pelo teo-
rema, o determinante de uma matriz quadrada A de ordem n (n ≥ 2) é igual à soma dos produtos dos elementos de uma linha ou de uma
coluna qualquer, pelos respectivos co-fatores.

Exemplo:

Dada a matriz quadrada de ordem 3, , vamos calcular det A usando o teorema de Laplace.
Podemos calcular o determinante da matriz A, escolhendo qualquer linha ou coluna. Por exemplo, escolhendo a 1ª linha, teremos:
det A = a11. A11 + a12. A12 + a13. A13

Portanto, temos que:


det A = 3. (-21) + 2. 6 + 1. (-12) ⇒ det A = -63 + 12 – 12 ⇒ det A = -63

Exemplo:
(TRANSPETRO – ENGENHEIRO JÚNIOR – AUTOMAÇÃO – CESGRANRIO) Um sistema dinâmico, utilizado para controle de uma rede
automatizada, forneceu dados processados ao longo do tempo e que permitiram a construção do quadro abaixo.

1 3 2 0
3 1 0 2
2 3 0 1
0 2 1 3

A partir dos dados assinalados, mantendo-se a mesma disposição, construiu-se uma matriz M. O valor do determinante associado à
matriz M é
(A) 42
(B) 44
(C) 46
(D) 48
(E) 50

46
MATEMÁTICA
Resolução:

Como é uma matriz 4x4 vamos achar o determinante através do teorema de Laplace. Para isso precisamos, calcular os cofatores. Dica:
pela fileira que possua mais zero. O cofator é dado pela fórmula: . Para o determinante é usado os números que
sobraram tirando a linha e a coluna.

Resposta: D

• Determinante de uma matriz de ordem n > 3


Para obtermos o determinante de matrizes de ordem n > 3, utilizamos o teorema de Laplace e a regra de Sarrus.

Exemplo:

Escolhendo a 1ª linha para o desenvolvimento do teorema de Laplace. Temos então:


det A = a11. A11 + a12. A12 + a13. A13 + a14. A14

Como os determinantes são, agora, de 3ª ordem, podemos aplicar a regra de Sarrus em cada um deles. Assim:
det A= 3. (188) - 1. (121) + 2. (61) ⇒ det A = 564 - 121 + 122 ⇒ det A = 565

• Propriedades dos determinantes


a) Se todos os elementos de uma linha ou de uma coluna são nulos, o determinante é nulo.

47
MATEMÁTICA
• Representação genérica de um sistema linear
Um sistema linear de m equações nas n incógnitas x1, x2, ..., xn
é da forma:

b) Se uma matriz A possui duas linhas ou duas colunas iguais,


então o determinante é nulo.

onde a11, a12 , ..., an e b1, b2 , ..., bn são números reais.

Se o conjunto de números reais (k1, k2, ..., kn) torna verdadeiras


todas as equações do sistema, dizemos que esse conjunto é solu-
c) Em uma matriz cuja linha ou coluna foi multiplicada por um ção do sistema linear. Como as equações lineares são homogêneas
número k real, o determinante também fica multiplicado pelo mes- quando b = 0, então, consequentemente, um sistema linear será
mo número k. homogêneo quando b1 = b2 = ... = bn = 0. Assim, o sistema admitirá
a solução trivial, (0, 0, ... 0).

Exemplo:
Na equação 4x – y = 2, o par ordenado (3,10) é uma solução,
pois ao substituirmos esses valores na equação obtemos uma igual-
dade.
4. 3 – 10 → 12 – 10 = 2
Já o par (3,0) não é a solução, pois 4.3 – 0 = 2 → 12 ≠ 2

• Representação de um sistema linear por meio de matrizes


Um sistema linear de m equações com n incógnitas pode ser
d) Para duas matrizes quadradas de mesma ordem, vale a se- escrito sob a forma de matrizes, bastando separar seus componen-
guinte propriedade: tes por matriz.
Sejam:
det (A. B) = det A + det B. Amn ⇒ a matriz dos coeficientes das incógnitas;
Xn1 ⇒ a matriz das incógnitas;
e) Uma matriz quadrada A será inversível se, e somente se, seu Bn1 ⇒ a matriz dos termos independentes.
determinante for diferente de zero.

Sistemas lineares
Entendemos por sistema linear um conjunto de equações li-
neares reunidas com o objetivo de se obterem soluções comuns a
todas essas equações.

• Equação linear
Chamamos de equações lineares as equações do 1º grau que
apresentam a forma: Portanto, podemos escrever o sistema sob a forma matricial:
a1x1 + a2x2 + a3x3+...anxn = b,

onde a1, a2, a3,.., an e b são números reais


x1, x2, x3,.., xn são as incógnitas.
Os números reais a1, a2, a3..., an são chamados de coeficientes e
b é o termo independente.

ATENÇÃO: TODOS os expoentes de todas as variáveis são


SEMPRE iguais a 1.
• Sistema normal
• Solução de uma equação linear É o sistema em que o número de equações é igual ao número
Dada uma equação linear com n incógnitas: de incógnitas (m = n) e o determinante da matriz dos coeficientes é
a1x1 + a2x2 + ... + anxn = b, temos que sua solução é a sequência diferente de zero.
de números reais (k1, k2, ..., kn) que, colocados correspondentemen-
te no lugar de x1, x2, ..., xn, tornam verdadeira a igualdade. Exemplo:
Quando a equação linear for homogênea, então ela admitirá Dado o sistema S: , temos
pelo menos a solução (0, 0, ..., 0), chamada de solução trivial.

48
MATEMÁTICA

Logo, o sistema linear S é normal.

• Classificação de um sistema linear


Classificar um sistema linear é considerá-lo em relação ao número de soluções que ele apresenta. Assim, os sistemas lineares podem
ser:
a) Sistema impossível ou incompatível: quando não admite solução. O sistema não admite solução quando o det A for nulo, e pelo
menos um dos determinantes relativos às incógnitas for diferente de zero, isto é: det A 1 0 ou det A2 0 ou ... ou det An 0.
b) Sistema possível ou compatível: quando admite pelo menos uma solução. Este sistema pode ser:
– Determinado: quando admitir uma única solução. ‘O sistema é determinado quando det A 0.
Em resumo temos:

• Regra de Cramer
Para a resolução de sistemas normais, utilizaremos a regra de Cramer.

Consideramos os sistemas .

Suponhamos que a ≠ 0. Observamos que a matriz incompleta desse sistema é

, cujo determinante é indicado por D = ad – bc.

Escalonando o sistema, obtemos:

Se substituirmos em M a 2ª coluna (dos coeficientes de y) pela coluna dos coeficientes independentes, obteremos , cujo de-
terminante é indicado por Dy = af – ce.
Assim, em (*), na 2ª equação, obtemos D. y = Dy. Se D ≠ 0, segue que

Substituindo esse valor de y na 1ª equação de (*) e considerando a matriz , cujo determinante é indicado por Dx = ed – bf,
obtemos , D ≠ 0.

Em síntese, temos:

O sistema é possível e determinado quando , e a solução desse sistema é dada por:

49
MATEMÁTICA

Esta regra é um importante recurso na resolução de sistemas lineares possíveis e determinados, especialmente quando o escalona-
mento se torna trabalhoso (por causa dos coeficientes das equações) ou quando o sistema é literal.

Exemplo:
Aplicando a Regra de Cramer para resolver os sistemas

Temos que , dessa forma, SPD.

Uma alternativa para encontrar o valor de z seria substituir x por -2 e y por 3 em qualquer uma das equações do sistema.
Assim, S = {(-2,3-1)}.

Exemplos:
(UNIOESTE – ANALISTA DE INFORMÁTICA – UNIOESTE) Considere o seguinte sistema de equações lineares

Assinale a alternativa correta.


(A) O determinante da matriz dos coeficientes do sistema é um número estritamente positivo.
(B) O sistema possui uma única solução (1, 1, -1).
(C) O sistema possui infinitas soluções.
(D) O posto da matriz ampliada associada ao sistema é igual a 3.
(E) Os vetores linha (1, 2, 3/2) e (2, 4, 3) não são colineares.

Resolução:

O sistema pode ser SI(sistema impossível) ou SPI(sistema possível indeterminado)


Para ser SI Dx = 0 e SPI Dx ≠ 0

50
MATEMÁTICA
Dx ≠ 0, portanto o sistema tem infinitas soluções.
Resposta: C

(SEDUC/RJ - PROFESSOR – MATEMÁTICA – CEPERJ) Sabendo-se que 2a + 3b + 4c = 17 e que 4a + b - 2c = 9, o valor de a + b + c é:


(A) 3.
(B) 4.
(C) 5.
(D) 6.
(E) 7.

Resolução:
(I) 2a + 3b + 4c = 17 x(-2)
(II) 4a + b – 2c = 9
Multiplicamos a primeira equação por – 2 e somamos com a segunda, cancelando a variável a:
(I) 2a + 3b + 4c = 17
(II) – 5b – 10c = - 25 : (- 5)

Então:
(I) 2a + 3b + 4c = 17
(II) b +2c = 5
Um sistema com três variáveis e duas equações é possível e indeterminado (tem infinitas soluções), então fazendo a variável c = α
(qualquer letra grega).
Substituímos c em (II):
b + 2α = 5
Reposta: D

SEQUÊNCIAS; PROGRESSÕES ARITMÉTICAS E PROGRESSÕES GEOMÉTRICAS

Progressão aritmética (P.A.)


É toda sequência numérica em que cada um de seus termos, a partir do segundo, é igual ao anterior somado a uma constante r, de-
nominada razão da progressão aritmética. Como em qualquer sequência os termos são chamados de a1, a2, a3, a4,.......,an,....

• Cálculo da razão
A razão de uma P.A. é dada pela diferença de um termo qualquer pelo termo imediatamente anterior a ele.
r = a2 – a1 = a3 – a2 = a4 – a3 = a5 – a4 = .......... = an – an – 1

Exemplos:
- (5, 9, 13, 17, 21, 25,......) é uma P.A. onde a1 = 5 e razão r = 4
- (2, 9, 16, 23, 30,.....) é uma P.A. onde a1 = 2 e razão r = 7
- (23, 21, 19, 17, 15,....) é uma P.A. onde a1 = 23 e razão r = - 2.

• Classificação
Uma P.A. é classificada de acordo com a razão.

Se r > 0 ⇒ CRESCENTE. Se r < 0 ⇒ DECRESCENTE. Se r = 0 ⇒ CONSTANTE.

• Fórmula do Termo Geral


Em toda P.A., cada termo é o anterior somado com a razão, então temos:
1° termo: a1
2° termo: a2 = a1 + r
3° termo: a3 = a2 + r = a1 + r + r = a1 + 2r
4° termo: a4 = a3 + r = a1 + 2r + r = a1 + 3r
5° termo: a5 = a4 + r = a1 + 3r + r = a1 + 4r
6° termo: a6 = a5 + r = a1 + 4r + r = a1 + 5r

51
MATEMÁTICA
. . . . . .
. . . . . .
. . . . . .
n° termo é:

Exemplo:
(PREF. AMPARO/SP – AGENTE ESCOLAR – CONRIO) Descubra o 99º termo da P.A. (45, 48, 51,...)
(A) 339
(B) 337
(C) 333
(D) 331

Resolução:

Resposta: A

Propriedades
1) Numa P.A. a soma dos termos equidistantes dos extremos é igual à soma dos extremos.
2) Numa P.A. com número ímpar de termos, o termo médio é igual à média aritmética entre os extremos.

Exemplo:

3) A sequência (a, b, c) é P.A. se, e somente se, o termo médio é igual à média aritmética entre a e c, isto é:

52
MATEMÁTICA
Soma dos n primeiros termos

Progressão geométrica (P.G.)


É uma sequência onde cada termo é obtido multiplicando o anterior por uma constante. Essa constante é chamada de razão da P.G.
e simbolizada pela letra q.

Cálculo da razão
A razão da P.G. é obtida dividindo um termo por seu antecessor. Assim: (a1, a2, a3, ..., an - 1, an, ...) é P.G. ⇔ an = (an - 1) q, n ≥ 2

Exemplos:

Classificação
Uma P.G. é classificada de acordo com o primeiro termo e a razão.

CRESCENTE DECRESCENTE ALTERNANTE CONSTANTE SINGULAR


a1 > 0 e q > 1 a1 > 0 e 0 < q < 1 Cada termo apresenta sinal contrário q = 1. a1 = 0
ou quando ou quando ao do anterior. Isto ocorre quando. (também é chamada de Esta- ou
a1 < 0 e 0 < q < 1. a1 < 0 e q > 1. q<0 cionária) q = 0.

Fórmula do termo geral


Em toda P.G. cada termo é o anterior multiplicado pela razão, então temos:
1° termo: a1
2° termo: a2 = a1.q
3° termo: a3 = a2.q = a1.q.q = a1q2
4° termo: a4 = a3.q = a1.q2.q = a1.q3
5° termo: a5 = a4.q = a1.q3.q = a1.q4
. . . . .
. . . . .
. . . . .

n° termo é:

53
MATEMÁTICA

Exemplo:
(TRF 3ª – ANALISTA JUDICIÁRIO - INFORMÁTICA – FCC) Um tabuleiro de xadrez possui 64 casas. Se fosse possível colocar 1 grão de
arroz na primeira casa, 4 grãos na segunda, 16 grãos na terceira, 64 grãos na quarta, 256 na quinta, e assim sucessivamente, o total de
grãos de arroz que deveria ser colocado na 64ª casa desse tabuleiro seria igual a
(A) 264.
(B) 2126.
(C) 266.
(D) 2128.
(E) 2256.

Resolução:
Pelos valores apresentados, é uma PG de razão 4
a64 = ?
a1 = 1
q=4
n = 64

Resposta: B

Propriedades
1) Em qualquer P.G., cada termo, exceto os extremos, é a média geométrica entre o precedente e o consequente.
2) Em toda P.G. finita, o produto dos termos equidistantes dos extremos é igual ao produto dos extremos.

3) Em uma P.G. de número ímpar de termos, o termo médio é a média geométrica entre os extremos.
Em síntese temos:

4) Em uma PG, tomando-se três termos consecutivos, o termo central é a média geométrica dos seus vizinhos.

Soma dos n primeiros termos


A fórmula para calcular a soma de todos os seus termos é dada por:

54
MATEMÁTICA
Produto dos n termos (A) 1/5.
(B) 1/6.
(C) 2/5.
(D) 2/9.
(E) 3/5.

Resolução:
Temos as seguintes regras para o produto:
1) O produto de n números positivos é sempre positivo.
2) No produto de n números negativos:
a) se n é par: o produto é positivo.
b) se n é ímpar: o produto é negativo.

Soma dos infinitos termos


A soma dos infinitos termos de uma P.G de razão q, com -1 < q
< 1, é dada por:
Resposta: B

Lucro e Prejuízo em porcentagem


É a diferença entre o preço de venda e o preço de custo. Se
a diferença for POSITIVA, temos o LUCRO (L), caso seja NEGATIVA,
temos PREJUÍZO (P).
Logo: Lucro (L) = Preço de Venda (V) – Preço de Custo (C).
Exemplo:
A soma dos elementos da sequência numérica infinita (3; 0,9;
0,09; 0,009; …) é
(A) 3,1
(B) 3,9
(C) 3,99
(D) 3, 999
(E) 4

Resolução:
Sejam S as somas dos elementos da sequência e S1 a soma da
PG infinita (0,9; 0,09; 0,009;…) de razão q = 0,09/0,9 = 0,1. Assim:
S = 3 + S1
Como -1 < q < 1 podemos aplicar a fórmula da soma de uma PG Exemplo:
infinita para obter S1: (CÂMARA DE SÃO PAULO/SP – TÉCNICO ADMINISTRATIVO –
S1 = 0,9/(1 - 0,1) = 0,9/0,9 = 1 → S = 3 + 1 = 4 FCC) O preço de venda de um produto, descontado um imposto de
Resposta: E 16% que incide sobre esse mesmo preço, supera o preço de com-
pra em 40%, os quais constituem o lucro líquido do vendedor. Em
quantos por cento, aproximadamente, o preço de venda é superior
ao de compra?
MATEMÁTICA FINANCEIRA (A) 67%.
(B) 61%.
Porcentagem (C) 65%.
São chamadas de razões centesimais ou taxas percentuais ou (D) 63%.
simplesmente de porcentagem, as razões de denominador 100, ou (E) 69%.
seja, que representam a centésima parte de uma grandeza. Costu-
mam ser indicadas pelo numerador seguido do símbolo %. (Lê-se: Resolução:
“por cento”). Preço de venda: V
Preço de compra: C
V – 0,16V = 1,4C
0,84V = 1,4C

Exemplo:
(CÂMARA MUNICIPAL DE SÃO JOSÉ DOS CAMPOS/SP – ANA-
LISTA TÉCNICO LEGISLATIVO – DESIGNER GRÁFICO – VUNESP) O O preço de venda é 67% superior ao preço de compra.
departamento de Contabilidade de uma empresa tem 20 funcio- Resposta: A
nários, sendo que 15% deles são estagiários. O departamento de
Recursos Humanos tem 10 funcionários, sendo 20% estagiários. Em
relação ao total de funcionários desses dois departamentos, a fra-
ção de estagiários é igual a

55
MATEMÁTICA
Aumento e Desconto em porcentagem
– Aumentar um valor V em p%, equivale a multiplicá-lo por

Logo:

- Diminuir um valor V em p%, equivale a multiplicá-lo por

Logo:

Fator de multiplicação

É o valor final de , é o que chamamos de fator de multiplicação, muito útil para resolução de cálculos de
porcentagem. O mesmo pode ser um acréscimo ou decréscimo no valor do produto.

Aumentos e Descontos sucessivos em porcentagem


São valores que aumentam ou diminuem sucessivamente. Para efetuar os respectivos descontos ou aumentos, fazemos uso dos fato-
res de multiplicação. Basta multiplicarmos o Valor pelo fator de multiplicação (acréscimo e/ou decréscimo).
Exemplo: Certo produto industrial que custava R$ 5.000,00 sofreu um acréscimo de 30% e, em seguida, um desconto de 20%. Qual o
preço desse produto após esse acréscimo e desconto?

Resolução:
VA = 5000 .(1,3) = 6500 e
VD = 6500 .(0,80) = 5200, podemos, para agilizar os cálculos, juntar tudo em uma única equação:
5000 . 1,3 . 0,8 = 5200
Logo o preço do produto após o acréscimo e desconto é de R$ 5.200,00

Juros simples (ou capitalização simples)


Os juros são determinados tomando como base de cálculo o capital da operação, e o total do juro é devido ao credor (aquele que
empresta) no final da operação. Devemos ter em mente:
– Os juros são representados pela letra J*.
– O dinheiro que se deposita ou se empresta chamamos de capital e é representado pela letra C (capital) ou P(principal) ou VP ou PV
(valor presente) *.
– O tempo de depósito ou de empréstimo é representado pela letra t ou n.*
– A taxa de juros é a razão centesimal que incide sobre um capital durante certo tempo. É representado pela letra i e utilizada para
calcular juros.
*Varia de acordo com a bibliografia estudada.

ATENÇÃO: Devemos sempre relacionar a taxa e o tempo na mesma unidade para efetuarmos os cálculos.

56
MATEMÁTICA
Usamos a seguinte fórmula: O (1+i)t ou (1+i)n é chamado de fator de acumulação de capital.

ATENÇÃO: as unidades de tempo referentes à taxa de juros (i) e


do período (t), tem de ser necessariamente iguais.

Em juros simples:
– O capital cresce linearmente com o tempo;
– O capital cresce a uma progressão aritmética de razão: J=C.i
– A taxa i e o tempo t devem ser expressos na mesma unidade.
– Devemos expressar a taxa i na forma decimal.
– Montante (M) ou FV (valor futuro) é a soma do capital com
os juros, ou seja:
M=C+J
M = C.(1+i.t)

Exemplo: O crescimento do principal (capital) em:


(PRODAM/AM – Assistente – FUNCAB) Qual é o capital que, – juros simples é LINEAR, CONSTANTE;
investido no sistema de juros simples e à taxa mensal de 2,5 %, pro- – juros compostos é EXPONENCIAL, GEOMÉTRICO e, portanto
duzirá um montante de R$ 3.900,00 em oito meses? tem um crescimento muito mais “rápido”;
(A) R$ 1.650,00
Observe no gráfico que:
(B) R$ 2.225,00
– O montante após 1º tempo é igual tanto para o regime de
(C) R$ 3.250,00
juros simples como para juros compostos;
(D) R$ 3.460,00
– Antes do 1º tempo o montante seria maior no regime de
(E) R$ 3.500,00
juros simples;
– Depois do 1º tempo o montante seria maior no regime de
Resolução:
Montante = Capital + juros, ou seja: j = M – C , que fica: j = juros compostos.
3900 – C ( I )
Agora, é só substituir ( I ) na fórmula do juros simples: Exemplo:
(PREF. GUARUJÁ/SP – SEDUC – PROFESSOR DE MATEMÁTICA
– CAIPIMES) Um capital foi aplicado por um período de 3 anos, com
taxa de juros compostos de 10% ao ano. É correto afirmar que essa
aplicação rendeu juros que corresponderam a, exatamente:
(A) 30% do capital aplicado.
(B) 31,20% do capital aplicado.
(C) 32% do capital aplicado.
(D) 33,10% do capital aplicado.
390000 – 100.C = 2,5 . 8 . C
– 100.C – 20.C = – 390000 . (– 1) Resolução:
120.C = 390000
C = 390000 / 120
C = R$ 3250,00
Resposta: C

Juros compostos (capitalização composta)


A taxa de juros incide sobre o capital de cada período. Também
conhecido como “juros sobre juros”.
Como, M = C + j , ou seja , j = M – C , temos:
Usamos a seguinte fórmula: j = 1,331.C – C = 0,331 . C
0,331 = 33,10 / 100 = 33,10%
Resposta: D

Juros Compostos utilizando Logaritmos


Algumas questões que envolvem juros compostos, precisam de
conceitos de logaritmos, principalmente aquelas as quais precisa-
mos achar o tempo/prazo. Normalmente as questões informam os
valores do logaritmo, então não é necessário decorar os valores da
tabela.

57
MATEMÁTICA
Exemplo:
(FGV-SP) Uma aplicação financeira rende juros de 10% ao ano, compostos anualmente. Utilizando para cálculos a aproximação de ,
pode-se estimar que uma aplicação de R$ 1.000,00 seria resgatada no montante de R$ 1.000.000,00 após:
(A) Mais de um século.
(B) 1 século
(C) 4/5 de século
(D) 2/3 de século
(E) ¾ de século

Resolução:
A fórmula de juros compostos é M = C(1 + i)t e do enunciado temos que M = 1.000.000, C = 1.000, i = 10% = 0,1:
1.000.000 = 1.000(1 + 0,1)t

(agora para calcular t temos que usar logaritmo nos dois lados da equação para pode utilizar a propriedade
, o expoente m passa multiplicando)

t.0,04 = 3

Resposta: E

ANOTAÇÕES

_______________________________________________________________________________________________________________

_______________________________________________________________________________________________________________

_______________________________________________________________________________________________________________

_______________________________________________________________________________________________________________

_______________________________________________________________________________________________________________

_______________________________________________________________________________________________________________

_______________________________________________________________________________________________________________

_______________________________________________________________________________________________________________

_______________________________________________________________________________________________________________

_______________________________________________________________________________________________________________

_______________________________________________________________________________________________________________

_______________________________________________________________________________________________________________

_______________________________________________________________________________________________________________

_______________________________________________________________________________________________________________

_______________________________________________________________________________________________________________

_______________________________________________________________________________________________________________

58
ATUALIDADES DO MERCADO FINANCEIRO
1. Sistema Financeiro Nacional. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 01
2. Dinâmica do mercado. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 02
3. Mercado bancário. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 03
ATUALIDADES DO MERCADO FINANCEIRO
Tarifa
SISTEMA FINANCEIRO NACIONAL Em contrapartida ao limite para os juros, o BC anunciou que
bancos poderão cobrar uma tarifa para disponibilizar o limite de
SISTEMA FINANCEIRO NACIONAL (SFN) cheque especial aos clientes, o que não ocorre hoje.
O SFN é um conjunto de instituições financeiras que promovem • Para limites de crédito de até R$ 500 está vedada a co-
o encontro entre poupadores e captadores de recursos, ou seja, brança de taxa.
aqueles que tem dinheiro e aqueles que necessitam dele. Através • Acima desse valor, as instituições poderão cobrar uma ta-
do SFN o dinheiro circula na economia, através da aquisição de bens rifa mensal de até 0,25% do valor que exceder R$ 500. Atualmente,
e serviços, pagamentos de obrigações e dívidas e investimentos di- cerca de 19 milhões de clientes têm limite até este valor.
versos. A cobrança começará a ser feita automaticamente para contra-
O SFN é organizado por órgãos normativos, supervisores e ope- tos firmados (isto é, novas contas correntes com limite de cheque
radores. especial) a partir de 6 de janeiro de 2020.
Desde a criação do Ministério da Economia (que absorveu os Para os correntistas que já têm acesso ao cheque especial, utili-
seguintes Ministérios: Ministério da Fazenda; Ministério do Plane- zado ou não, a cobrança de tarifa só será possível após 1º de junho
jamento, Desenvolvimento e Gestão; Ministério do Desenvolvimen- de 2020. E ainda assim, após uma “repactuação” do contrato com o
to, Indústria, Comércio Exterior e Serviços (MDIC); e Ministério do banco.” (g1.globo.com, 2021).
Trabalho), em 01/01/2019; alterações importantes foram realizadas
• Implementação do Open Banking – As informações bancá-
em instituições participantes do Sistema Financeiro Nacional.
rias não são da instituição financeira, mas sim, do cliente; que tem
Conforme o Ministério da Economia: “A Medida Provisória 870,
a liberdade de divulgá-las ou não para outras entidades do mesmo
de 1º de janeiro de 2019 estabeleceu a nova estrutura do governo
segmento.
federal. Dentro da organização dos órgãos da Presidência da Repú-
blica e dos ministérios, foi criado o Ministério da Economia, inte- “O Banco Central deu início a processo de implementação do
grando atribuições dos ministérios da Fazenda, do Planejamento, Open Banking com objetivo de aumentar a eficiência e a competi-
Desenvolvimento e Gestão, da Indústria, Comércio Exterior e Ser- ção no Sistema Financeiro Nacional e abrir espaço para a atuação
viços, e do Trabalho. de novas empresas do setor. Publicado nesta quarta-feira (24/04),
A estrutura regimental do Ministério da Economia foi definida o Comunicado 33.455 estabelece as principais diretrizes que irão
pelo Decreto nº 9.679, de 2 de janeiro de 2019, com alterações do orientar a proposta de regulamentação do modelo a ser adotado
Decreto nº 9.745, de 08 de abril de 2019 e do Decreto nº 10.072 no Brasil.
de 18 de outubro de 2019, e do Decreto n° 10.366, de 22 de Maio Com o Open Banking, o Banco Central busca aumentar a efi-
de 2020 e posteriores alterações com a conversão da MP na Lei nº ciência no Sistema Financeiro Nacional, mediante a promoção de
13.844, de 18 de junho de 2019.” ambiente de negócio mais inclusivo e competitivo, preservando sua
• Nova Composição do CMN (Conselho Monetário Nacional) segurança e a proteção dos consumidores. Em linha com a recém
– Ministro da Economia (antes Ministro da Fazenda), Presidente do aprovada Lei de Proteção de Dados Pessoais, o Open Banking parte
BACEN e Secretário Especial da Fazenda do Ministério da Economia do princípio de que os dados bancários pertencem aos clientes e
(antes Ministro do Planejamento, Orçamento e Gestão). não às instituições financeiras. Dessa forma, desde que autorizadas
• BNDES (Banco Nacional de Desenvolvimento Econômico pelo correntista, as instituições financeiras compartilharão dados,
e Social) – Era vinculado do MDIC (Ministério do Desenvolvimento, produtos e serviços com outras instituições, por meio de abertura e
Indústria, Comércio Exterior e Serviços), atualmente faz parte do integração de plataformas e infraestruturas de tecnologia, de forma
Ministério da Economia. segura, ágil e conveniente.
• CNPC (Conselho Nacional de Previdência Complementar e Os requisitos estabelecidos pelo Banco Central indicam que de-
PREVIC (Superintendência Nacional de Previdência Complementar) verão ser compartilhadas, inicialmente, as seguintes informações e
– Antes vinculados ao Ministério da Previdência, agora fazem parte serviços:
também do Ministério da Economia. I - produtos e serviços oferecidos pelas instituições participan-
• CMN limitou as taxas de juros no cheque especial para no tes (localização de pontos de atendimento, características de pro-
máximo, 8% a.m.; e bancos poderão cobrar tarifa para liberação de
dutos, termos e condições contratuais e custos financeiros, entre
limites. Resolução 4.705 de 27/11/2019.
outros);
“O Banco Central anunciou nesta quarta-feira (27) que os juros
II - dados cadastrais dos clientes (nome, número de inscrição
do cheque especial serão de no máximo 8% ao mês. A medida passa
no Cadastro de Pessoas Físicas - CPF, filiação, endereço, entre ou-
a vigorar em 6 de janeiro de 2020.
É a primeira vez que o Banco Central decide impor uma taxa tros);
máxima a uma linha de crédito com recursos livres, isto é, que não III - dados transacionais dos clientes (dados relativos a contas
tem um direcionamento estipulado por lei (como ocorre com o cré- de depósito, a operações de crédito, a demais produtos e serviços
dito imobiliário ou microcrédito). contratados pelos clientes, entre outros); e
A decisão foi tomada em reunião do Conselho Monetário Na- IV - serviços de pagamento (inicialização de pagamento, trans-
cional (CMN), formado pelo Banco Central e pelo Ministério da Eco- ferências de fundos, pagamentos de produtos e serviços, entre ou-
nomia. tros).
O cheque especial é uma das modalidades de crédito mais ca- No segundo semestre, deverão ser submetidas à consulta pú-
ras do país e não tem limite para os juros, ou seja, os bancos têm blica minutas de atos normativos sobre o tema e seu cronograma
liberdade para definir a taxa. de implementação.
Dados divulgados mais cedo pelo BC mostram que a taxa mé-
dia do cheque especial alcançou 305,9% ao ano em outubro, o que
equivale a uma taxa de 12% ao mês. Com o limite imposto agora,
o juro anual será de cerca de 150% ao ano, no máximo, de acordo
com o Banco Central.

1
ATUALIDADES DO MERCADO FINANCEIRO
Como funciona O Pix tende a ter um custo de aceitação menor por sua estrutu-
Por meio do Open Banking, clientes bancários poderiam, por ra ter menos intermediários.
exemplo, visualizar em um único aplicativo o extrato consolidado Mais detalhes sobre a diferenciação entre o Pix e os demais
de todas as suas contas bancárias e investimentos. Também será meios de transferência e de pagamento podem ser visualizadas na
possível, por este mesmo aplicativo, realizar uma transferência de FAQ do Pix.
recursos ou realizar um pagamento, sem a necessidade de acessar Com quem é possível fazer um Pix
diretamente o site ou aplicativo do banco.” (bcb.gov.br, 2021). O Pix pode ser utilizado para transferências e pagamentos:
• entre pessoas (transações P2P, person to person);
• entre pessoas e estabelecimentos comerciais, incluindo
DINÂMICA DO MERCADO comércio eletrônico (transações P2B, person to business);
• entre estabelecimentos, como pagamentos de fornecedo-
DINÂMICA DO MERCADO res, por exemplo (transações B2B, business to business);
A dinâmica do mercado financeiro se dá através do relaciona- • para transferências envolvendo entes governamentais,
mento entre os agentes e de como as políticas econômicas afetam como pagamentos de taxas e impostos (transações P2G e B2G, per-
a movimentação e a quantidade de moeda disponível na economia. son to government e business to government).
Pix
Sistema de pagamento desenvolvido pelo BACEN. Sua princi- Limite de valor nas transações
pal característica é que as transações realizadas (pagamentos ou Não há limite mínimo para pagamentos ou transferências via
transferências), ocorrem de forma instantânea, no máximo em 10 Pix. Isso quer dizer que você pode fazer transações a partir de
segundos; todos os dias do anos (finais de semana e feriados), 24 R$0,01. Em geral, também não há limite máximo de valores. Entre-
horas por dia.
tanto, as instituições que ofertam o Pix poderão estabelecer limites
Conforme o BACEN: “Pix é o pagamento instantâneo brasilei-
máximos de valor baseados em critérios de mitigação de riscos de
ro. O meio de pagamento criado pelo Banco Central (BC) em que
fraude e de critérios de prevenção à lavagem de dinheiro e ao finan-
os recursos são transferidos entre contas em poucos segundos, a
ciamento do terrorismo.”
qualquer hora ou dia. É prático, rápido e seguro. O Pix pode ser
realizado a partir de uma conta corrente, conta poupança ou conta Inflação
de pagamento pré-paga. A inflação de 2020 foi 4,52%. A previsão para 2021 é 3,75%
Além de aumentar a velocidade em que pagamentos ou trans- (conforme BACEN) (permitindo variação de 1,5% para mais ou me-
ferências são feitos e recebidos, o Pix tem o potencial de: nos), ou seja, 5,25% (máximo) e 2,25% (mínimo).
• alavancar a competitividade e a eficiência do mercado; “O IPCA (Índice de Preços ao Consumidor Amplo), a inflação
• baixar o custo, aumentar a segurança e aprimorar a expe- oficial no país, fechou 2020 a 4,52%. Esse é o maior nível para um
riência dos clientes; ano desde 2016, quando foi de 6,29%. Em 2019, a inflação foi de
• incentivar a eletronização do mercado de pagamentos de 4,31%. O resultado ficou acima do centro da meta do governo para
varejo; o ano passado, que era de 4%, mas dentro da margem de tolerância
• promover a inclusão financeira; e de 1,5 ponto percentual para baixo (2,5%) ou para cima (5,5%).”
• preencher uma série de lacunas existentes na cesta de (uol.com.br, 2021).
instrumentos de pagamentos disponíveis atualmente à população.
Diferença entre Pix e outros meios de transferência e de paga- Recessão Técnica 2020
mento Em 2020, o Brasil passou por uma recessão técnica (dois tri-
O Pix foi criado para ser um meio de pagamento bastante am- mestres consecutivos com resultado negativo). Devido a pandemia
plo. Qualquer pagamento ou transferência que hoje é feito usando do novo Coronavírus, os setores de comércio e serviços sofreram
diferentes meios (TED, cartão, boleto etc.), poderá ser feito com o com a redução de negócios, o que aumentou consideravelmente o
Pix, simplesmente com o uso do aparelho celular. nível de desempregados no país.
As transferências tradicionais no Brasil são entre contas da Para movimentar a economia, o Estado teve que intervir com a
mesma instituição (transferência simples) ou entre contas de insti- renda temporária através do auxílio emergencial.
tuições diferentes (TED e DOC). O Pix é mais uma opção disponível Ainda que reduzida, a segurança econômica estava voltada
à população que convive com os tipos tradicionais. A diferença é para a agricultura. Mas, com o dólar em alta, os empresários do se-
que, com o Pix, não é necessário saber onde a outra pessoa tem tor passaram a exportar muito mais, reduzindo a oferta interna de
conta. Você realiza a transferência a partir, por exemplo, de um te- produtos como soja, arroz, etc. Com o aumento de moeda, devido
lefone na sua lista de contatos, usando a Chave Pix. Outra diferença
o auxílio emergencial e a situação incerta da pandemia, houve uma
é que o Pix não tem limite de horário, nem de dia da semana e os
corrida aos supermercados em busca de produtos da cesta bási-
recursos são disponibilizados ao recebedor em poucos segundos. O
ca. Essa demanda em desequilíbrio com a quantidade de produtos
Pix funciona 24 horas, 7 dias por semana, entre quaisquer bancos,
ofertados fez com que os preços se elevassem, gerando um aumen-
de banco para fintech, de fintech para instituição de pagamento,
entre outros. to também no índice de inflação.
As transações de pagamento por meio de boleto exigem a lei- De acordo com o site da CNN Brasil:
tura de código de barras, enquanto o Pix pode fazer a leitura de um “A recessão técnica é um termo usado para definir um período
QR Code. A diferença é que, no Pix a liquidação é em tempo real, o de dois ou mais trimestres consecutivos de queda no Produto In-
pagador e o recebedor são notificados a respeito da conclusão da terno Bruto. Mas, atenção: a comparação é feita com os três meses
transação e o pagamento pode ser feito em qualquer dia e horário. anteriores, e não com o mesmo período do ano no ano anterior.
As transações de pagamento utilizando cartão de débito exi- A atual recessão na economia se dá pelas quedas de 2,5% do
gem uso de maquininhas ou instrumento similar. Com Pix, as tran- PIB no primeiro trimestre (número revisado nesta terça pelo IBGE)
sações podem ser iniciadas por meio do telefone celular, sem a ne- e 9,7% entre abril e junho.
cessidade de qualquer outro instrumento.

2
ATUALIDADES DO MERCADO FINANCEIRO
O que puxou a recessão de 2020? A contagem do período de 4 anos se inicia na data da liquidação
Marcado pela crise do novo coronavírus, o primeiro semestre ou intervenção em instituição financeira onde o investidor detenha
do ano foi marcado por tombos setoriais históricos, principalmen- valor garantido pelo FGC, sendo que permanece inalterado o limite
te na indústria e no setor de serviços. Nos primeiros três meses, a da garantia de R$ 250 mil por CPF/CNPJ e conglomerado financeiro.
maior queda – 2,2% – foi observada nos serviços. Comércio, ser- Aos investimentos contratados ou repactuados até 21 de de-
viços prestados às famílias e outras atividades de serviços foram zembro de 2017, data da aprovação do CMN, não se aplica o teto
duramente afetados. de R$ 1 milhão a cada período de 4 anos.
A indústria foi o destaque negativo do segundo trimestre, com O teto foi aprovado na Assembleia Geral Extraordinária (AGE)
queda de 12,3%. Os destaques foram os recuos nas Indústrias de do FGC, no dia 18 de dezembro, mediante alteração no Regulamen-
Transformação, de -17,5%; Construção -5,7%; na atividade de Eletri- to do fundo, a qual foi também aprovada pelo CMN em reunião de
cidade e gás, água, esgoto, atividades de gestão de resíduos -4,4%. 21 de dezembro de 2017.” (fgc.org.br, 2021)
Quando o assunto é PIB, é importante ficar de olho no consu-
mo das famílias, que tem participação de 65% no indicação. Nos Cartões de débito e crédito
segundo trimestre, o consumo das famílias teve recuo recorde de Os cartões bancários são conhecidos como moedas de plástico.
12,5%, resultado que poderia ser pior, não fosse o auxílio emergen- Podem ser múltiplos e utilizados como débito ou crédito, ou com as
cial.” funções individuais.
Além das funções conhecidas do cartão de débito, como paga-
Criptomoedas mentos, saques, consultas de extrato e saldo, etc; podem ser utiliza-
É um tipo de moeda, porém, totalmente digital. Se diferencia dos como pré datados e CDC (Crédito Direto ao Consumidor).
das demais, pois não é vinculada a alguma economia ou nacionali- Os cartões de crédito, além de ser meio de pagamento de bens
dade. e serviços parcelados e com limites pré estabelecidos, faz saques,
Existem diversas, mas a mais popular é a Bitcoin. pagamentos de contas, etc. e conta com a modalidade básica (ape-
“Genericamente, uma criptomoeda é um tipo de dinheiro – nas para pagamentos de compras e contas, saques) e o cartão di-
como outras moedas com as quais convivemos cotidianamente – ferenciado (que inclui as funções do básico), porém, oferece tam-
com a diferença de ser totalmente digital. Além disso, ela não emi- bém programas de benefícios e recompensas, como milhas, pontos,
tida por nenhum governo (como é o caso do real ou do dólar, por descontos em estabelecimentos ou serviços conveniados (cartões
exemplo). co-branded); vinculados a alguma associação (cartão de afinidade);
Mas isso é possível? Para explicar que sim, Fernando Ulrich, emitidos em estabelecimentos comerciais par uso exclusivos nas lo-
autor do livro Bitcoin: A moeda na era digital, faz uma analogia bem jas da rede (cartões private label).
simples: “O que o e-mail fez com a informação, o Bitcoin fará com Para os tipos débito e crédito, existe a modalidade do paga-
o dinheiro”. Antes da internet, as pessoas dependiam dos correios mento por aproximação. Bastando aproximar o chip com o equipa-
para enviar uma mensagem a quem estivesse em outro lugar. Era mento para ocorrer a captação de dados, sem a necessidade de se-
preciso um intermediário para entregá-la fisicamente – inimaginá- nhas. Todo o processo ocorre através da tecnologia NFC (Near Field
vel para quem tem acesso a e-mail e outros serviços de mensageria.
Communication). Essa modalidade ganhou mais clientes a partir da
Algo semelhante acontecerá com as moedas virtuais no futuro.
pandemia, devido as medidas para evitar contato físico.
“Com o Bitcoin você pode transferir fundos de A para B em qual-
quer parte do mundo sem jamais precisar confiar em um terceiro
FINTECHS
para essa simples tarefa”, explica Ulrich no livro.
As Fintechs são startups que trabalham para inovar e otimizar
Embora o Bitcoin seja a moeda digital mais conhecida, o con-
serviços do sistema financeiro.Essas empresas possuem custos ope-
ceito de criptomoeda é anterior a ele. Segundo o site Bitcoin.org,
racionais menores que as instituições financeiras tradicionais, gra-
mantido pela comunidade ligada ao Bitcoin, as criptomoedas foram
ças a utilizam de tecnologias, que elevam seu nível de eficiência e
descritas pela primeira vez em 1998 por Wei Dai, que sugeriu usar a
criptografia para controlar a emissão e as transações realizadas com reduzem o valor dos serviços ofertados.
um novo tipo de dinheiro. Isso dispensaria a necessidade da exis- O termo fintech surgiu da união das palavras financial + te-
tência de uma autoridade central, como acontece com as moedas chonology (tecnologia fiananceira). Exemplo disso é a utilização de
convencionais.” (infomoney.com.br, 2021). smatrphones para a utilização de bancos móveis, transformando o
acesso bancário para toda a população.
“Fintechs são empresas que introduzem inovações nos mer-
MERCADO BANCÁRIO cados financeiros por meio do uso intenso de tecnologia, com po-
tencial para criar novos modelos de negócios. Atuam por meio de
MERCADO BANCÁRIO plataformas online e oferecem serviços digitais inovadores relacio-
É o ambiente em que seus agentes podem negociar produtos nados ao setor.
financeiros. No Brasil, há várias categorias de fintechs: de crédito, de paga-
mento, gestão financeira, empréstimo, investimento, financiamen-
Fundo Garantido de Crédito (FGC) to, seguro, negociação de dívidas, câmbio, e multisserviços.
O FGC (Fundo Garantidor de Crédito) passa a limitar a sua pro- Podem ser autorizadas a funcionar no país dois tipos de finte-
teção ao valor de R$ 1.000.000,00 por CPF ou CNPJ no período de chs de crédito – para intermediação entre credores e devedores por
quatro anos; mantido, no entanto, o limite de R$ 250.000,00 por meio de negociações realizadas em meio eletrônico: a Sociedade
instituição financeira quanto a liquidação, intervenção ou falência. de Crédito Direto (SCD) e a Sociedade de Empréstimo entre Pesso-
“O Conselho Monetário Nacional (CMN) aprovou, em 21 de de- as (SEP), cujas operações constarão do Sistema de Informações de
zembro de 2017, a alteração promovida no Regulamento do Fundo Créditos (SCR).
Garantidor de Créditos (FGC), que estabelece teto de R$ 1 milhão, ​Autorização
a cada período de 4 anos, para garantias pagas para cada CPF ou Para entrar em operação, as fintechs que quiserem operar
CNPJ. como SCD ou SEP devem solicitar autorização ao Banco Central.

3
ATUALIDADES DO MERCADO FINANCEIRO
Além de obter informações sobre os proprietários, o BC preci- A inscrição será realizada por meio do hotsite do Sandbox Re-
sa: comprovar a origem e da respectiva movimentação financeira gulatório. As entidades interessadas deverão apresentar projeto
dos recursos utilizados no empreendimento pelos controladores e enquadrado no conceito de projeto inovador, definido na regula-
verificar se há compatibilidade da capacidade econômico-financei- mentação do programa, o qual deverá estar no âmbito de compe-
ra com o porte, a natureza e o objetivo do empreendimento. tência do Conselho Monetário Nacional ou do Banco Central do
No Brasil, as fintechs estão regulamentadas desde abril de Brasil. Considerando a capacidade operacional da referida Autar-
2018 pelo Conselho Monetário Nacional (CMN) – Resoluções 4.656 quia, o número de participantes será limitado e sua seleção se dará
e 4.657. com base em critérios a serem definidos pela regulamentação do
Bancos digitais programa.” (gov.br, 2021).
São bancos que não possuem estrutura física, mas oferecem os
mesmos serviços que um banco tradicional, como conta corrente,
poupança, cartões, saques, etc. ANOTAÇÕES
“Uma conta digital é uma conta bancária em que todas as ope-
rações são realizadas de forma digital, seja por um aplicativo espe-
______________________________________________________
cífico, por email ou por serviços como o internet banking.
Isso permite que o usuário economize tempo e dinheiro, pois ______________________________________________________
não precisa se deslocar para uma agência física e muitas vezes não
é nem necessário contatar um atendente humano. A principal van- ______________________________________________________
tagem dessas contas é a ausência de taxas para a realização dos
serviços, ou a presença de taxas consideravelmente mais baratas do ______________________________________________________
que você encontrará em contas tradicionais.
______________________________________________________
Essas contas também costumam ser mais seguras, devido aos
avanços na área de informática, contando com sistema de seguran- ______________________________________________________
ça (como validação por itoken) para evitar golpes e outros tipos de
ataque. ______________________________________________________
Como funciona uma conta digital?
Uma das principais vantagens da conta digital é que não é ne- ______________________________________________________
cessário se deslocar até uma agência bancária para fazer a abertura.
______________________________________________________
Como as instituições responsáveis por essas contas são, em geral,
fintechs, não existe uma sede física para atender os clientes. Todo o ______________________________________________________
contato e abertura das contas são feitos pelo próprio celular.
Ao baixar o aplicativo do banco em que você deseja criar sua ______________________________________________________
conta digital, será pedido que você preencha seus dados e envie
uma foto ou um PDF de alguns documentos, como RG e compro- ______________________________________________________
vante de endereço. A partir dessa etapa inicial, todo o processo
______________________________________________________
continuará sendo feito pelo aplicativo e por email e em poucos dias
(às vezes horas) você já estará com sua nova conta.” (promobit.com. ______________________________________________________
br, 2021).
Sandbox Regulatório ______________________________________________________
É a técnica que permite testar produtos e serviços financeiros
num ambiente próprio e controlado, com clientes reais que possam ______________________________________________________
mensurar possíveis riscos e acompanhar o desenvolvimento desse
______________________________________________________
processo na esfera do BACEN e de todo o Sistema Financeiro Na-
cional. ______________________________________________________
“O Sandbox Regulatório é uma iniciativa que permite que insti-
tuições já autorizadas e ainda não autorizadas a funcionar pelo Ban- ______________________________________________________
co Central do Brasil possam testar projetos inovadores (produtos
ou serviços experimentais) com clientes reais, sujeitos a requisitos ______________________________________________________
regulatórios específicos.
Os principais benefícios para os participantes são: ______________________________________________________
Teste de um projeto inovador com clientes reais, sujeito a re- ______________________________________________________
quisitos regulatórios customizados e mais brandos do que aqueles
estabelecidos para as instituições incumbentes. ______________________________________________________
Monitoramento específico pela área de supervisão do Banco
Central do Brasil, agregando experiência ao participante de como é _____________________________________________________
trabalhar em ambientes supervisionados.
Contato com a área de regulação do Banco Central do Brasil, _____________________________________________________
podendo fornecer subsídios a eventual nova regulamentação do ______________________________________________________
sistema financeiro, especificamente na área específica do seu pro-
jeto. ______________________________________________________
O início do primeiro ciclo do Sandbox Regulatório do Banco
Central do Brasil está previsto para o primeiro semestre de 2021. ______________________________________________________

4
PROBABILIDADE E ESTATÍSTICA
1. Análise combinatória; Noções de probabilidade; Teorema de Bayes; Probabilidade condicional . . . . . . . . . . . . . . . . . . . . . . . . . . . . 01
2. Noções de estatística; População e amostra; Análise e interpretação de tabelas e gráficos; Regressão, tendências, extrapolações e
interpolações; Tabelas de distribuição empírica de variáveis e histogramas; Estatística descritiva (média, mediana, variância, desvio
padrão, percentis, quartis, outliers, covariância) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 06
PROBABILIDADE E ESTATÍSTICA
Exemplos:
ANÁLISE COMBINATÓRIA; NOÇÕES DE PROBABILIDA- 5! = 5 . 4 . 3 . 2 . 1 = 120.
DE; TEOREMA DE BAYES; PROBABILIDADE CONDICIO- 7! = 7 . 6 . 5 . 4 . 3 . 2 . 1 = 5.040.
NAL
ATENÇÃO
A Análise Combinatória é a parte da Matemática que desen-
volve meios para trabalharmos com problemas de contagem. Ve- 0! = 1
jamos eles: 1! = 1
Tenha cuidado 2! = 2, pois 2 . 1 = 2. E 3!
Princípio fundamental de contagem (PFC)
Não é igual a 3, pois 3 . 2 . 1 = 6.
É o total de possibilidades de o evento ocorrer.
Arranjo simples
• Princípio multiplicativo: P1. P2. P3. ... .Pn.(regra do “e”). É
Arranjo simples de n elementos tomados p a p, onde n>=1 e p
um princípio utilizado em sucessão de escolha, como ordem.
é um número natural, é qualquer ordenação de p elementos dentre
• Princípio aditivo: P1 + P2 + P3 + ... + Pn. (regra do “ou”). É o
os n elementos, em que cada maneira de tomar os elementos se
princípio utilizado quando podemos escolher uma coisa ou outra.
diferenciam pela ordem e natureza dos elementos.
Exemplos:
Atenção: Observe que no grupo dos elementos: {1,2,3} um dos
(BNB) Apesar de todos os caminhos levarem a Roma, eles pas-
arranjos formados, com três elementos, 123 é DIFERENTE de 321, e
sam por diversos lugares antes. Considerando-se que existem três
assim sucessivamente.
caminhos a seguir quando se deseja ir da cidade A para a cidade
B, e que existem mais cinco opções da cidade B para Roma, qual a
• Sem repetição
quantidade de caminhos que se pode tomar para ir de A até Roma,
A fórmula para cálculo de arranjo simples é dada por:
passando necessariamente por B?
(A) Oito.
(B) Dez.
(C) Quinze.
(D) Dezesseis.
(E) Vinte.
Onde:
Resolução:
n = Quantidade total de elementos no conjunto.
Observe que temos uma sucessão de escolhas:
P =Quantidade de elementos por arranjo
Primeiro, de A para B e depois de B para Roma.
Exemplo: Uma escola possui 18 professores. Entre eles, serão
1ª possibilidade: 3 (A para B).
escolhidos: um diretor, um vice-diretor e um coordenador pedagó-
Obs.: o número 3 representa a quantidade de escolhas para a
gico. Quantas as possibilidades de escolha?
primeira opção.
n = 18 (professores)
p = 3 (cargos de diretor, vice-diretor e coordenador pedagógi-
2ª possibilidade: 5 (B para Roma).
co)
Temos duas possibilidades: A para B depois B para Roma, logo,
uma sucessão de escolhas.
Resultado: 3 . 5 = 15 possibilidades.
Resposta: C.

(PREF. CHAPECÓ/SC – ENGENHEIRO DE TRÂNSITO – IOBV) Em


• Com repetição
um restaurante os clientes têm a sua disposição, 6 tipos de carnes,
Os elementos que compõem o conjunto podem aparecer re-
4 tipos de cereais, 4 tipos de sobremesas e 5 tipos de sucos. Se o
petidos em um agrupamento, ou seja, ocorre a repetição de um
cliente quiser pedir 1 tipo carne, 1 tipo de cereal, 1 tipo de sobre-
mesmo elemento em um agrupamento.
mesa e 1 tipo de suco, então o número de opções diferentes com
A fórmula geral para o arranjo com repetição é representada
que ele poderia fazer o seu pedido, é:
por:
(A) 19
(B) 480
(C) 420
(D) 90

Resolução:
Exemplo: Seja P um conjunto com elementos: P = {A,B,C,D},
A questão trata-se de princípio fundamental da contagem, logo
tomando os agrupamentos de dois em dois, considerando o arranjo
vamos enumerar todas as possibilidades de fazermos o pedido:
com repetição quantos agrupamentos podemos obter em relação
6 x 4 x 4 x 5 = 480 maneiras.
ao conjunto P.
Resposta: B.
Resolução:
Fatorial
P = {A, B, C, D}
Sendo n um número natural, chama-se de n! (lê-se: n fatorial)
n=4
a expressão:
p=2
n! = n (n - 1) (n - 2) (n - 3). ... .2 . 1, como n ≥ 2.

1
PROBABILIDADE E ESTATÍSTICA
A(n,p)=np
A(4,2)=42=16

Permutação
É a TROCA DE POSIÇÃO de elementos de uma sequência. Utili- Resposta: Certo.
zamos todos os elementos.
• Circular
• Sem repetição A permutação circular é formada por pessoas em um formato
circular. A fórmula é necessária, pois existem algumas permutações
realizadas que são iguais. Usamos sempre quando:
a) Pessoas estão em um formato circular.
b) Pessoas estão sentadas em uma mesa quadrada (retangular)
de 4 lugares.
Atenção: Todas as questões de permutação simples podem ser
resolvidas pelo princípio fundamental de contagem (PFC).

Exemplo:
(PREF. LAGOA DA CONFUSÃO/TO – ORIENTADOR SOCIAL – Exemplo:
IDECAN) Renato é mais velho que Jorge de forma que a razão entre (CESPE) Uma mesa circular tem seus 6 lugares, que serão ocu-
o número de anagramas de seus nomes representa a diferença en- pados pelos 6 participantes de uma reunião. Nessa situação, o nú-
tre suas idades. Se Jorge tem 20 anos, a idade de Renato é mero de formas diferentes para se ocupar esses lugares com os par-
(A) 24. ticipantes da reunião é superior a 102.
(B) 25. ( ) Certo
(C) 26. ( ) Errado
(D) 27.
(E) 28. Resolução:
É um caso clássico de permutação circular.
Resolução: Pc = (6 - 1) ! = 5! = 5 . 4 . 3 . 2 . 1 = 120 possibilidades.
Anagramas de RENATO Resposta: CERTO.
______
6.5.4.3.2.1=720 Combinação
Combinação é uma escolha de um grupo, SEM LEVAR EM CON-
Anagramas de JORGE SIDERAÇÃO a ordem dos elementos envolvidos.
_____
5.4.3.2.1=120
• Sem repetição
Razão dos anagramas: 720/120=6 Dados n elementos distintos, chama-se de combinação simples
Se Jorge tem 20 anos, Renato tem 20+6=26 anos. desses n elementos, tomados p a p, a qualquer agrupamento de p
Resposta: C. elementos distintos, escolhidos entre os n elementos dados e que
diferem entre si pela natureza de seus elementos.
• Com repetição
Na permutação com elementos repetidos ocorrem permuta- Fórmula:
ções que não mudam o elemento, pois existe troca de elementos
iguais. Por isso, o uso da fórmula é fundamental.

Exemplo:
(CRQ 2ª REGIÃO/MG – AUXILIAR ADMINISTRATIVO – FUN-
DEP) Com 12 fiscais, deve-se fazer um grupo de trabalho com 3
Exemplo: deles. Como esse grupo deverá ter um coordenador, que pode ser
(CESPE) Considere que um decorador deva usar 7 faixas colo- qualquer um deles, o número de maneiras distintas possíveis de se
ridas de dimensões iguais, pendurando-as verticalmente na vitri- fazer esse grupo é:
ne de uma loja para produzir diversas formas. Nessa situação, se 3 (A) 4
faixas são verdes e indistinguíveis, 3 faixas são amarelas e indistin- (B) 660
guíveis e 1 faixa é branca, esse decorador conseguirá produzir, no (C) 1 320
máximo, 140 formas diferentes com essas faixas. (D) 3 960
( ) Certo
( ) Errado Resolução:
Como trata-se de Combinação, usamos a fórmula:
Resolução:
Total: 7 faixas, sendo 3 verdes e 3 amarelas.

Onde n = 12 e p = 3

2
PROBABILIDADE E ESTATÍSTICA

Como cada um deles pode ser o coordenado, e no grupo tem 3 pessoas, logo temos 220 x 3 = 660.
Resposta: B.

As questões que envolvem combinação estão relacionadas a duas coisas:


– Escolha de um grupo ou comissões.
– Escolha de grupo de elementos, sem ordem, ou seja, escolha de grupo de pessoas, coisas, objetos ou frutas.

• Com repetição
É uma escolha de grupos, sem ordem, porém, podemos repetir elementos na hora de escolher.

Exemplo:
Em uma combinação com repetição classe 2 do conjunto {a, b, c}, quantas combinações obtemos?
Utilizando a fórmula da combinação com repetição, verificamos o mesmo resultado sem necessidade de enumerar todas as possibi-
lidades:
n=3ep=2

PROBABILIDADES
A teoria da probabilidade permite que se calcule a chance de ocorrência de um número em um experimento aleatório.

Elementos da teoria das probabilidades


• Experimentos aleatórios: fenômenos que apresentam resultados imprevisíveis quando repetidos, mesmo que as condições sejam
semelhantes.
• Espaço amostral: é o conjunto U, de todos os resultados possíveis de um experimento aleatório.
• Evento: qualquer subconjunto de um espaço amostral, ou seja, qualquer que seja E Ì U, onde E é o evento e U, o espaço amostral.

Experimento composto
Quando temos dois ou mais experimentos realizados simultaneamente, dizemos que o experimento é composto. Nesse caso, o nú-
mero de elementos do espaço amostral é dado pelo produto dos números de elementos dos espaços amostrais de cada experimento.
n(U) = n(U1).n(U2)

Probabilidade de um evento
Em um espaço amostral U, equiprobabilístico (com elementos que têm chances iguais de ocorrer), com n(U) elementos, o evento E,
com n(E) elementos, onde E Ì U, a probabilidade de ocorrer o evento E, denotado por p(E), é o número real, tal que:

3
PROBABILIDADE E ESTATÍSTICA
Onde,
n(E) = número de elementos do evento E.
n(S) = número de elementos do espaço amostral S.

Sendo 0 ≤ P(E) ≤ 1 e S um conjunto equiprovável, ou seja, todos os elementos têm a mesma “chance de acontecer.

ATENÇÃO:
As probabilidades podem ser escritas na forma decimal ou representadas em porcentagem.
Assim: 0 ≤ p(E) ≤ 1, onde:
p(∅) = 0 ou p(∅) = 0%
p(U) = 1 ou p(U) = 100%

Exemplo:
(PREF. NITERÓI – AGENTE FAZENDÁRIO – FGV) O quadro a seguir mostra a distribuição das idades dos funcionários de certa repartição
pública:

FAIXA DE IDADES (ANOS) NÚMERO DE FUNCIONÁRIOS


20 ou menos 2
De 21 a 30 8
De 31 a 40 12
De 41 a 50 14
Mais de 50 4

Escolhendo ao acaso um desses funcionários, a probabilidade de que ele tenha mais de 40 anos é:
(A) 30%;
(B) 35%;
(C) 40%;
(D) 45%;
(E) 55%.

Resolução:
O espaço amostral é a soma de todos os funcionário:
2 + 8 + 12 + 14 + 4 = 40
O número de funcionário que tem mais de 40 anos é: 14 + 4 = 18
Logo a probabilidade é:

Resposta: D

Probabilidade da união de eventos


Para obtermos a probabilidade da união de eventos utilizamos a seguinte expressão:

Quando os eventos forem mutuamente exclusivos, tendo A ∩ B = Ø, utilizamos a seguinte equação:

4
PROBABILIDADE E ESTATÍSTICA

Probabilidade de um evento complementar


É quando a soma das probabilidades de ocorrer o evento E, e de não ocorrer o evento E (seu complementar, Ē) é 1.

Probabilidade condicional
Quando se impõe uma condição que reduz o espaço amostral, dizemos que se trata de uma probabilidade condicional.
Sejam A e B dois eventos de um espaço amostral U, com p(B) ≠ 0. Chama-se probabilidade de A condicionada a B a probabilidade de
ocorrência do evento A, sabendo-se que já ocorreu ou que vai ocorrer o evento B, ou seja:

Podemos também ler como: a probabilidade de A “dado que” ou “sabendo que” a probabilidade de B.

– Caso forem dois eventos simultâneos (ou sucessivos): para se avaliar a probabilidade de ocorrem dois eventos simultâneos (ou
sucessivos), que é P (A ∩ B), é preciso multiplicar a probabilidade de ocorrer um deles P(B) pela probabilidade de ocorrer o outro, sabendo
que o primeiro já ocorreu P (A | B). Sendo:

– Se dois eventos forem independentes: dois eventos A e B de um espaço amostral S são independentes quando P(A|B) = P(A) ou
P(B|A) = P(B). Sendo os eventos A e B independentes, temos:

P (A ∩ B) = P(A). P(B)

Lei Binomial de probabilidade


A lei binominal das probabilidades é dada pela fórmula:

Sendo:
n: número de tentativas independentes;
p: probabilidade de ocorrer o evento em cada experimento (sucesso);
q: probabilidade de não ocorrer o evento (fracasso); q = 1 - p
k: número de sucessos.

ATENÇÃO:
A lei binomial deve ser aplicada nas seguintes condições:
– O experimento deve ser repetido nas mesmas condições as n vezes.
– Em cada experimento devem ocorrer os eventos E e .
– A probabilidade do E deve ser constante em todas as n vezes.
– Cada experimento é independente dos demais.

5
PROBABILIDADE E ESTATÍSTICA
Exemplo: Gráficos
Lançando-se um dado 5 vezes, qual a probabilidade de ocorre- Outro modo de apresentar dados estatísticos é sob uma forma
rem três faces 6? ilustrada, comumente chamada de gráfico. Os gráficos constituem-
-se numa das mais eficientes formas de apresentação de dados.
Resolução: Um gráfico é, essencialmente, uma figura construída a partir de
n: número de tentativas ⇒ n = 5 uma tabela; mas, enquanto a tabela fornece uma ideia mais precisa
k: número de sucessos ⇒ k = 3 e possibilita uma inspeção mais rigorosa aos dados, o gráfico é mais
p: probabilidade de ocorrer face 6 ⇒ p = 1/6 indicado para situações que visem proporcionar uma impressão
q: probabilidade de não ocorrer face 6 ⇒ q = 1- p ⇒ q = 5/6 mais rápida e maior facilidade de compreensão do comportamento
do fenômeno em estudo.
Os gráficos e as tabelas se prestam, portanto, a objetivos distin-
tos, de modo que a utilização de uma forma de apresentação não
NOÇÕES DE ESTATÍSTICA; POPULAÇÃO E AMOSTRA; exclui a outra.
ANÁLISE E INTERPRETAÇÃO DE TABELAS E GRÁFICOS; Para a confecção de um gráfico, algumas regras gerais devem
REGRESSÃO, TENDÊNCIAS, EXTRAPOLAÇÕES E INTER- ser observadas:
POLAÇÕES; TABELAS DE DISTRIBUIÇÃO EMPÍRICA DE Os gráficos, geralmente, são construídos num sistema de eixos
VARIÁVEIS E HISTOGRAMAS; ESTATÍSTICA DESCRITIVA chamado sistema cartesiano ortogonal. A variável independente é
(MÉDIA, MEDIANA, VARIÂNCIA, DESVIO PADRÃO, localizada no eixo horizontal (abscissas), enquanto a variável de-
PERCENTIS, QUARTIS, OUTLIERS, COVARIÂNCIA) pendente é colocada no eixo vertical (ordenadas). No eixo vertical,
o início da escala deverá ser sempre zero, ponto de encontro dos
eixos.
Tabelas − Iguais intervalos para as medidas deverão corresponder a
A tabela é a forma não discursiva de apresentar informações, iguais intervalos para as escalas. Exemplo: Se ao intervalo 10-15 kg
das quais o dado numérico se destaca como informação central. corresponde 2 cm na escala, ao intervalo 40-45 kg também deverá
Sua finalidade é apresentar os dados de modo ordenado, simples corresponder 2 cm, enquanto ao intervalo 40-50 kg corresponderá
e de fácil interpretação, fornecendo o máximo de informação num 4 cm.
mínimo de espaço. − O gráfico deverá possuir título, fonte, notas e legenda, ou
seja, toda a informação necessária à sua compreensão, sem auxílio
Elementos da tabela do texto.
Uma tabela estatística é composta de elementos essenciais e − O gráfico deverá possuir formato aproximadamente quadra-
elementos complementares. Os elementos essenciais são: do para evitar que problemas de escala interfiram na sua correta
− Título: é a indicação que precede a tabela contendo a desig- interpretação.
nação do fato observado, o local e a época em que foi estudado.
− Corpo: é o conjunto de linhas e colunas onde estão inseridos Tipos de Gráficos
os dados.
− Cabeçalho: é a parte superior da tabela que indica o conteú- • Estereogramas: são gráficos onde as grandezas são repre-
do das colunas. sentadas por volumes. Geralmente são construídos num sistema
− Coluna indicadora: é a parte da tabela que indica o conteúdo de eixos bidimensional, mas podem ser construídos num sistema
das linhas. tridimensional para ilustrar a relação entre três variáveis.
Os elementos complementares são:
− Fonte: entidade que fornece os dados ou elabora a tabela.
− Notas: informações de natureza geral, destinadas a esclare-
cer o conteúdo das tabelas.
− Chamadas: informações específicas destinadas a esclarecer
ou conceituar dados numa parte da tabela. Deverão estar indica-
das no corpo da tabela, em números arábicos entre parênteses, à
esquerda nas casas e à direita na coluna indicadora. Os elementos
complementares devem situar-se no rodapé da tabela, na mesma
ordem em que foram descritos.

• Cartogramas: são representações em cartas geográficas (ma-


pas).

6
PROBABILIDADE E ESTATÍSTICA

b) Gráfico de barras: segue as mesmas instruções que o gráfico


de colunas, tendo a única diferença que os retângulos são dispostos
horizontalmente. É usado quando as inscrições dos retângulos fo-
rem maiores que a base dos mesmos.

• Pictogramas ou gráficos pictóricos: são gráficos puramente


ilustrativos, construídos de modo a ter grande apelo visual, dirigi-
dos a um público muito grande e heterogêneo. Não devem ser uti-
lizados em situações que exijam maior precisão.

• Diagramas: são gráficos geométricos de duas dimensões, de c) Gráfico de linhas ou curvas: neste gráfico os pontos são dis-
fácil elaboração e grande utilização. Podem ser ainda subdivididos postos no plano de acordo com suas coordenadas, e a seguir são li-
em: gráficos de colunas, de barras, de linhas ou curvas e de setores. gados por segmentos de reta. É muito utilizado em séries históricas
e em séries mistas quando um dos fatores de variação é o tempo,
a) Gráfico de colunas: neste gráfico as grandezas são compa- como instrumento de comparação.
radas através de retângulos de mesma largura, dispostos vertical-
mente e com alturas proporcionais às grandezas. A distância entre
os retângulos deve ser, no mínimo, igual a 1/2 e, no máximo, 2/3 da
largura da base dos mesmos.

d) Gráfico em setores: é recomendado para situações em que


se deseja evidenciar o quanto cada informação representa do total.
A figura consiste num círculo onde o total (100%) representa 360°,
subdividido em tantas partes quanto for necessário à representa-

7
PROBABILIDADE E ESTATÍSTICA
ção. Essa divisão se faz por meio de uma regra de três simples. Com (B) a quantidade de chuva acumulada no mês de março foi
o auxílio de um transferidor efetuasse a marcação dos ângulos cor- maior em Fortaleza.
respondentes a cada divisão. (C) Fortaleza teve mais dias em que choveu do que Florianó-
polis.
(D) choveu a mesma quantidade em Fortaleza e Florianópolis.

Resolução:
A única alternativa que contém a informação correta com os
gráficos é a C.
Resposta: C

Média Aritmética
Ela se divide em:

• Simples: é a soma de todos os seus elementos, dividida pelo


número de elementos n.
Exemplo: Para o cálculo:
(PREF. FORTALEZA/CE – PEDAGOGIA – PREF. FORTALEZA) “Es- Se x for a média aritmética dos elementos do conjunto numéri-
tar alfabetizado, neste final de século, supõe saber ler e interpretar co A = {x1; x2; x3; ...; xn}, então, por definição:
dados apresentados de maneira organizada e construir represen-
tações, para formular e resolver problemas que impliquem o reco-
lhimento de dados e a análise de informações. Essa característica
da vida contemporânea traz ao currículo de Matemática uma de-
manda em abordar elementos da estatística, da combinatória e da
probabilidade, desde os ciclos iniciais” (BRASIL, 1997).
Exemplo:
Observe os gráficos e analise as informações. (CÂMARA MUNICIPAL DE SÃO JOSÉ DOS CAMPOS/SP – ANALIS-
TA TÉCNICO LEGISLATIVO – DESIGNER GRÁFICO – VUNESP) Na festa
de seu aniversário em 2014, todos os sete filhos de João estavam
presentes. A idade de João nessa ocasião representava 2 vezes a
média aritmética da idade de seus filhos, e a razão entre a soma das
idades deles e a idade de João valia
(A) 1,5.
(B) 2,0.
(C) 2,5.
(D) 3,0.
(E) 3,5.

Resolução:
Foi dado que: J = 2.M

(I)

Foi pedido:

Na equação ( I ), temos que:

A partir das informações contidas nos gráficos, é correto afir- Resposta: E


mar que: • Ponderada: é a soma dos produtos de cada elemento multi-
(A) nos dias 03 e 14 choveu a mesma quantidade em Fortaleza plicado pelo respectivo peso, dividida pela soma dos pesos.
e Florianópolis.

8
PROBABILIDADE E ESTATÍSTICA
Para o cálculo Exemplo:
Na figura abaixo os segmentos AB e DA são tangentes à cir-
cunferência determinada pelos pontos B, C e D. Sabendo-se que os
segmentos AB e CD são paralelos, pode-se afirmar que o lado BC é:

ATENÇÃO: A palavra média, sem especificações (aritmética ou


ponderada), deve ser entendida como média aritmética.

Exemplo:
(CÂMARA MUNICIPAL DE SÃO JOSÉ DO RIO PRETO/SP – PRO-
GRAMADOR DE COMPUTADOR – FIP) A média semestral de um cur-
so é dada pela média ponderada de três provas com peso igual a 1
na primeira prova, peso 2 na segunda prova e peso 3 na terceira.
Qual a média de um aluno que tirou 8,0 na primeira, 6,5 na segunda (A) a média aritmética entre AB e CD.
e 9,0 na terceira? (B) a média geométrica entre AB e CD.
(A) 7,0 (C) a média harmônica entre AB e CD.
(B) 8,0 (D) o inverso da média aritmética entre AB e CD.
(C) 7,8 (E) o inverso da média harmônica entre AB e CD.
(D) 8,4
(E) 7,2 Resolução:
Sendo AB paralela a CD, se traçarmos uma reta perpendicular a
Resolução: AB, esta será perpendicular a CD também.
Na média ponderada multiplicamos o peso da prova pela sua Traçamos então uma reta perpendicular a AB, passando por B e
nota e dividimos pela soma de todos os pesos, assim temos: outra perpendicular a AB passando por D:

Resposta: B

Média geométrica
É definida, para números positivos, como a raiz n-ésima do pro-
duto de n elementos de um conjunto de dados.

Sendo BE perpendicular a AB temos que BE irá passar pelo cen-


tro da circunferência, ou seja, podemos concluir que o ponto E é
ponto médio de CD.
• Aplicações Agora que ED é metade de CD, podemos dizer que o compri-
Como o próprio nome indica, a média geométrica sugere inter- mento AF vale AB-CD/2.
pretações geométricas. Podemos calcular, por exemplo, o lado de Aplicamos Pitágoras no triângulo ADF:
um quadrado que possui a mesma área de um retângulo, usando a
definição de média geométrica.

Exemplo:
A média geométrica entre os números 12, 64, 126 e 345, é (1)
dada por:
G = R4[12 ×64×126×345] = 76,013 Aplicamos agora no triângulo ECB:

Média harmônica (2)


Corresponde a quantidade de números de um conjunto dividi-
dos pela soma do inverso de seus termos. Embora pareça compli- Agora diminuímos a equação (1) da equação (2):
cado, sua formulação mostra que também é muito simples de ser
calculada:

Note, no desenho, que os segmentos AD e AB possuem o mes-


mo comprimento, pois são tangentes à circunferência. Vamos então
substituir na expressão acima AD = AB:

9
PROBABILIDADE E ESTATÍSTICA
ANOTAÇÕES

______________________________________________________
Ou seja, BC é a média geométrica entre AB e CD.
Resposta: B ______________________________________________________

______________________________________________________
ANOTAÇÕES ______________________________________________________

______________________________________________________
______________________________________________________
______________________________________________________
______________________________________________________
______________________________________________________
______________________________________________________
______________________________________________________
______________________________________________________
______________________________________________________
______________________________________________________
______________________________________________________
______________________________________________________
______________________________________________________
______________________________________________________
______________________________________________________
______________________________________________________
______________________________________________________
______________________________________________________
______________________________________________________
______________________________________________________
______________________________________________________
______________________________________________________
______________________________________________________
______________________________________________________
______________________________________________________
______________________________________________________
______________________________________________________
______________________________________________________
______________________________________________________
______________________________________________________
______________________________________________________
______________________________________________________
______________________________________________________
______________________________________________________
______________________________________________________
______________________________________________________
______________________________________________________
______________________________________________________
_____________________________________________________
______________________________________________________
_____________________________________________________
______________________________________________________
______________________________________________________
______________________________________________________
______________________________________________________
______________________________________________________
______________________________________________________
_____________________________________________________
______________________________________________________
_____________________________________________________
______________________________________________________
______________________________________________________
______________________________________________________
______________________________________________________
______________________________________________________
______________________________________________________
______________________________________________________
______________________________________________________
______________________________________________________

10
CONHECIMENTOS BANCÁRIOS
1. Estrutura do Sistema Financeiro Nacional: Conselho Monetário Nacional; Banco Central do Brasil; Comissão de Valores Mobiliá-
rios. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 01
2. COPOM – Comitê de Política Monetária. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 04
3. Produtos Bancários: Noções de cartões de crédito e débito, crédito direto ao consumidor, crédito rural, caderneta de poupança, capi-
talização, previdência, investimentos e seguros. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 06
4. Noções de Mercado de capitais. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11
5. Noções de Mercado Câmbio: Instituições autorizadas a operar e operações básicas. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13
6. Garantias do Sistema Financeiro Nacional: aval; fiança; penhor mercantil; alienação fiduciária; hipoteca; fianças bancárias. . . . . 13
7. Crime de lavagem de dinheiro: conceito e etapas. Prevenção e combate ao crime de lavagem de dinheiro: Lei nº 9.613/98 e suas alte-
rações . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14
8. Circular Bacen 3.461/2009 e suas alterações e Carta-Circular Bacen 3.542/12. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15
9. Autorregulação Bancária. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15
CONHECIMENTOS BANCÁRIOS
Como funciona o CMN
ESTRUTURA DO SISTEMA FINANCEIRO NACIONAL: Os membros do CMN reúnem-se uma vez por mês para deli-
CONSELHO MONETÁRIO NACIONAL. BANCO CENTRAL berar sobre assuntos como adaptar o volume dos meios de paga-
DO BRASIL. COMISSÃO DE VALORES MOBILIÁRIOS mento às reais necessidades da economia; regular o valor interno e
externo da moeda e o equilíbrio do balanço de pagamentos; orien-
ESTRUTURA DO SISTEMA FINANCEIRO NACIONAL tar a aplicação dos recursos das instituições financeiras; propiciar o
Sistema Financeiro Nacional (SFN) aperfeiçoamento das instituições e dos instrumentos financeiros;
De acordo com o BACEN: zelar pela liquidez e solvência das instituições financeiras; e coor-
“O Sistema Financeiro Nacional (SFN) é formado por um con- denar as políticas monetária, creditícia, orçamentária e da dívida
junto de entidades e instituições que promovem a intermediação pública interna e externa.
financeira, isto é, o encontro entre credores e tomadores de recur- Em casos extraordinários, pode acontecer mais de uma reunião
sos. É por meio do sistema financeiro que as pessoas, as empresas por mês. As matérias aprovadas são regulamentadas por meio de
e o governo circulam a maior parte dos seus ativos, pagam suas Resoluções CMN divulgadas no Diário Oficial da União (DOU) e no
dívidas e realizam seus investimentos. Busca de normas do Conselho e do Banco Central (BC).
O SFN é organizado por agentes normativos, supervisores e Composição do CMN
operadores. Os órgãos normativos determinam regras gerais para • Ministro da Economia (presidente do Conselho)
o bom funcionamento do sistema. As entidades supervisoras traba- • Presidente do Banco Central
lham para que os integrantes do sistema financeiro sigam as regras • Secretário Especial de Fazenda do Ministério da Econo-
definidas pelos órgãos normativos. Os operadores são as institui- mia
ções que ofertam serviços financeiros, no papel de intermediários”. O CMN foi criado junto com o Banco Central, pela Lei nº 4.595,
de 31 de dezembro de 1964. O Conselho deu início às suas ativida-
des 90 dias depois, em 31 de março de 1965”.

BANCO CENTRAL DO BRASIL (BACEN)


Conhecido como BACEN, Banco Central do Brasil ou mesmo,
Banco Central, é uma autarquia federal, vinculada ao Ministério da
Economia, com sua sede em Brasília.
Possui autonomia para executar medidas que favoreçam a eco-
nomia do país.
Conforme definição própria:
“O Banco Central (BC) é o guardião dos valores do Brasil. O BC é
uma autarquia federal, vinculada - mas não subordinada - ao Minis-
tério da Economia, e foi criado pela Lei nº 4.595/1964.
Sua missão é assegurar à sociedade a estabilidade do poder
de compra da moeda e um sistema financeiro sólido, eficiente e
competitivo.

Múltiplas atividades
As tarefas a cargo do Banco Central são bastante diversas. En-
tenda no detalhe:

Inflação baixa​e estável


Manter a inflação sob controle, ao redor da meta, é objetivo
Fonte:https://www.bcb.gov.br/estabilidadefinanceira/sfn fundamental do BC.
A estabilidade dos preços preserva o v​alor do dinheiro, man-
* Dependendo de suas atividades corretoras e distribuidoras tendo o poder de compra da moeda​. ​Para alcançar esse objetivo, o
também são fiscalizadas pela CVM. BC utiliza a política monetária, política que se refere às ações do BC
** As Instituições de Pagamento não compõem o SFN, mas são que visam afetar o custo do dinheiro (taxas de juros) e a quantidade
reguladas e fiscalizadas pelo BCB, conforme diretrizes estabelecidas de dinheiro (condições de liquidez) na economia.
pelo CMN.
CONSELHO MONETÁRIO NACIONAL (CMN) Sistema financeiro seguro e eficient​​e
É a autoridade máxima do Sistema Financeiro Nacional. Sendo Faz parte da missão do BC assegurar que o sistema financeiro
órgão normativo, apenas define normas e diretrizes para execução seja sólido (tenha capital suficiente para arcar com seus compro-
do BACEM e da CVM. missos) e eficiente.
Conforme definição do Banco Central do Brasil:
“O Conselho Monetário Nacional (CMN) é o órgão superior do Banco do governo
Sistema Financeiro Nacional (SFN) e tem a responsabilidade de for- O BC detém as contas mais importantes do governo e é o depo-
mular a política da moeda e do crédito. Seu objetivo é a estabilida- sitório das reservas internacionais do país
de da moeda e o desenvolvimento econômico e social do país.
Banco dos​bancos
As instituições financeiras precisam manter contas no BC.​Essas
contas são monitoradas para que as transações financeiras acon-
teçam com fluidez e para que as próprias contas não fechem o dia
com saldo negativo.

1
CONHECIMENTOS BANCÁRIOS
Emissor do dinheiro​ CONSELHO DE RECURSOS DO SISTEMA FINANCEIRO NACIO-
O BC gerencia o meio circulante, que nada mais é do que ga- NAL (CRSFN)
rantir, para a população, o fornecimento adequado de dinheiro em Tem como função principal, revisar as decisões administrativas
espécie”. e de primeira instância do Sistema Financeiro Nacional, principal-
mente do BACEN, da CVM e do COAF (Conselho de controle de Ati-
COMISSÃO DE VALORES MOBILIÁRIOS (CVM) vidades Financeiras).
Autarquia federal, vinculada ao Ministério da Economia.Possui A Secretaria Especial da Fazenda define:
autoridade executora e reguladora, ou seja, cria normas e regras “O Conselho de Recursos do Sistema Financeiro Nacional
através da Instrução Normativa CVM. Todas as informações relacio- (CRSFN) é um órgão colegiado, de segundo grau, integrante da es-
nadas ao mercado de capitais estão reguladas nesse conjunto de trutura do Ministério da Economia e tem por finalidade julgar, em
instruções. última instância administrativa, os recursos contra as sanções apli-
Conforme o Ministério da Economia: cadas pelo BCB e CVM e, nos processos de lavagem de dinheiro, as
“A Comissão de Valores Mobiliários (CVM) foi criada em sanções aplicadas pelo COAF, SUSEP e demais autoridades compe-
07/12/1976 pela Lei 6.385/76, com o objetivo de fiscalizar, norma- tentes”.
tizar, disciplinar e desenvolver o mercado de valores mobiliários no
Brasil. BANCOS COMERCIAIS
A CVM é uma entidade autárquica em regime especial, vin- É o banco mais popular entre as instituições financeiras. Foi o
culada ao Ministério da Economia, com personalidade jurídica e primeiro banco comercial a oferecer a tão conhecida conta corren-
patrimônio próprios, dotada de autoridade administrativa inde- te (conta de depósito a vista), além de outros serviços bancárias
pendente, ausência de subordinação hierárquica, mandato fixo e como; recebimento e pagamento de títulos, operações de crédito,
estabilidade de seus dirigentes, e autonomia financeira e orçamen- conta poupança, vendas de seguros, etc.
tária. É a principal instituição financeira intermediária, tendo o poder
da geração de moeda na economia brasileira. Atende pessoas físi-
Desenvolvimento do mercado cas e jurídicas.
Estimular a formação de poupança e a sua aplicação em valores
mobiliários; promover a expansão e o funcionamento eficiente e re- CAIXAS ECONÔMICAS
gular do mercado de ações; e estimular as aplicações permanentes É uma instituição financeira que oferece todos os serviços de
em ações do capital social de companhias abertas sob controle de um banco comercial, porém, apenas a caixa tem desempenha o pa-
capitais privados nacionais (Lei 6.385/76, art. 4º, incisos I e II). pel de banco social, participando diretamente dos programas do
Eficiência e funcionamento do mercado governo. Inclusive os cidadãos que não são clientes, podem usufruir
Assegurar o funcionamento eficiente e regular dos mercados desses serviços.
da bolsa e de balcão; assegurar a observância de práticas comer-
ciais equitativas no mercado de valores mobiliários; e assegurar a COOPERATIVAS DE CRÉDITO
observância, no mercado, das condições de utilização de crédito Representa um grupo de pessoas com a mesma intenção,
fixadas pelo Conselho Monetário Nacional (Lei 6.385/76, art. 4º, prestar serviços financeiros, como; abertura de contas, aplicações
incisos III, VII e VIII). financeiras, emissão de cartão de crédito, etc. O diferencial é que na
cooperativa, o cliente como associados, é também um dos donos.
Proteção dos investidores Essas instituições estão localizadas também longe dos grandes
Proteger os titulares de valores mobiliários e os investidores do centros, como em pequenos bairros ou comunidades.
mercado contra emissões irregulares de valores mobiliários; atos Contam com a proteção do Fundo Garantidor do Cooperativis-
ilegais de administradores e acionistas controladores das compa- mo de Crédito, para casos em que o dinheiro deva ser devolvido
nhias abertas, ou de administradores de carteira de valores mobi- aos clientes.
liários; e o uso de informação relevante não divulgada no mercado
de valores mobiliários. Evitar ou coibir modalidades de fraude ou BANCOS COMERCIAIS COOPERATIVOS
manipulação destinadas a criar condições artificiais de demanda, São bancos instituídos como cooperativas, porém, tiveram
oferta ou preço dos valores mobiliários negociados no mercado (Lei que se modificar com o passar do tempo devido seu crescimento.
6.385/76, art. 4º, incisos IV e V). Juntam-se três centrais cooperativas e constituem uma Sociedade
Anônima de capital fechado, em que 51% de seu capital deve per-
Acesso à informação adequada manecer em poder das controladoras.
Assegurar o acesso do público a informações sobre os valores Os bancos comerciais cooperativos devem ter uma carteira co-
mobiliários negociados e as companhias que os tenham emitido, re- mercial e funcionar como um banco comercial. Suas atividades fi-
gulamentando a Lei e administrando o sistema de registro de emis- cam restritas apenas no estado em que estejam seus controladores.
sores, de distribuição e de agentes regulados (Lei 6.385/76, art. 4º,
inciso VI, e art. 8º, incisos I e II). BANCOS DE INVESTIMENTO
São instituições financeiras privadas que captam e adminis-
Fiscalização e punição tram recursos na forma de fundos de investimento, emprestando
Fiscalizar permanentemente as atividades e os serviços do no mercado a médios e longos prazos. Executam alguns serviços
mercado de valores mobiliários, bem como a veiculação de infor- dos bancos comerciais, mas não abrem contas correntes.
mações relativas ao mercado, às pessoas que dele participam e aos Sua forma de constituição é a Sociedade Anônima.
valores nele negociados, e impor penalidades aos infratores das
Leis 6.404/76 e 6.385/76, das normas da própria CVM ou de leis es- BANCOS DE DESENVOLVIMENTO
peciais cujo cumprimento lhe incumba fiscalizar (Lei 6.385/76, art. São bancos públicos que oferecem crédito para projetos que
8º, incisos III e V, e art. 11)”. desenvolvimento econômico e social do país. No Brasil, o principal é
o Banco Nacional de Desenvolvimento Econômico e Social (BNDES).

2
CONHECIMENTOS BANCÁRIOS
SOCIEDADES DE CRÉDITO, FINANCIAMENTO E INVESTIMENTO A popularidade da Bolsa se deve a compra e venda de ações,
São instituições financeiras privadas, mais conhecidas como fi- porém, há outros seguimentos na estrutura da bolsa:
nanceiras; que fornecem empréstimos e financiamentos para aqui- • Mercados a vista.
sição de bens, serviços, capitas de giro, etc. • Derivativos listados.
São constituídas como Sociedades Anônimas e devem manter • Derivativos de balcão.
em sua denominação social a expressão “crédito, financiamento e • Ativos de renda fixa.
investimento”. • Crédito imobiliário
Podem ser independentes, sem vínculos com outras institui- • Financiamento de veículos.
ções ou ligadas a ligados a diversos tipos de conglomerado, tais Todos esses empréstimos devem ter sua garantia registrada em
como, financeiros, estabelecimentos comerciais, grupos indústrias um sistema de liquidação financeira.
(montadoras). As Bolsas de Valores estão presentes em todo o mundo. Entre
Sua captação de recurso ocorre principalmente por Letras de as maiores do mundo estão a de New York, a Nasdaq, a de Tókio, a
câmbio e RDB. de Londres, etc.
Aqui no Brasil, temos a Bolsa que se chama [B]3. Até 2008,
SOCIEDADES DE ARRENDAMENTO MERCANTIL eram duas Bolsas, a BM&F e Bovespa, no entanto, neste mesmo
São empresas que operam as carteiras de leasing, não são con- ano, houve a unificação e se tornou a BM&F Bovespa. Em 2017, se
sideradas como instituições financeiras. juntou a esta a CETIP (Central de Custódia e Liquidação Financeira
Oferecem serviços de arrendamento de bens móveis e imóveis de Títulos), formando a [B]3 (Brasil, Bolsa e Balcão).
próprios, segundo as especificações do arrendatário (cliente). O IBOVESPA é o principal índice da Bolsa, sendo composto pe-
São fiscalizadas pelo Banco Central do Brasil e realizam opera- las ações mais negociadas e por isso tem maior representatividade
ções com idênticas a financiamentos. no mercado brasileiro de ações. É revisado a cada quatro meses,
SOCIEDADES CORRETORAS DE TÍTULOS E VALORES MOBILIÁ- assim, são alterados suas ações e também seus percentuais.
RIOS Mas existem outros índices, conhecidos como setoriais, por
São instituições que atuam no na intermediação de títulos e exemplo: índice de energia, índice de mercado imobiliário, etc.
valores mobiliários (recursos captados pelas empresas para suprir A praticidade é um dos atrativos de investir na Bolsa, já que são
as necessidades de caixa) nos mercados financeiro e de capitais. investimentos são realizados totalmente de forma on-line. Também
Possuem autorização de funcionamento pelo Banco Central do a rentabilidade chama a atenção, especialmente no cenário de ju-
Brasil e compõem o Sistema Financeiro Nacional. ros baixos do Brasil. Há ainda, os proventos que fazem parte dos
lucros das companhias, repassado aos acionistas. É possível inves-
SOCIEDADES DISTRIBUIDORAS DE TÍTULOS E VALORES MOBI- tir na Bolsa com poucos recursos. Porém, o investimento só ocorre
LIÁRIOS E SOCIEDADES DE CRÉDITO IMOBILIÁRIO através de uma corretora de valores.
São as principais instituições que operam na Bolsa de Valores,
também atuando no mercado de câmbio. Constituídas sob a forma BOLSAS DE MERCADORIAS E DE FUTUROS
de Sociedades Anônimas ou sociedades por quotas de responsabi- Bolsa em que eram negociados contratos futuros de commodi-
lidade limitada. São fiscalizadas pelo Banco Central do Brasil e pela ties; como soja, milho, água, energia, ouro, gás natural.
Comissão de Valores Mobiliários. Em 2008, a BM&F e a BOVESPA se unificaram, dando início a
Sua administração é realizada por pessoas naturais, residentes BM&F BOVESPA. Em 2017, ocorreu outra fusão, dessa vez com a
no Brasil, que cumprem exigências pelo Banco Central do Brasil, CETIP, dando origem a [B]3 Brasil, Bolsa e Balcão; que é agora a única
com relação a sua formação e conhecimento. Cumprem funções Bolsa de Valores do Brasil.
auxiliares no Sistema Financeiro Nacional.
São capacitadas para: SISTEMA ESPECIAL DE LIQUIDAÇÃO E CUSTÓDIA (SELIC)
Encarregar-se da administração de carteira de custódia de títu- Conhecida como a Taxa Básica de Juros, é um indicador que
los e valores mobiliários. serve de referência para diversas outras taxas.
• Exercer funções de agente fiduciário. A SELIC é de responsabilidade do Comitê de Política Monetária
• Instituir, organizar e administrar fundos de investimentos (COPOM), que organiza reuniões a cada 45 dias para definir qual
e clubes de investimento. será a meta para a taxa. Após cada reunião, o COPOM disponibiliza
• Constituir sociedades de investimentos de capital estran- uma ta com seu parecer e o resultado da taxa SELIC que pode ser
geiro e administrar a respectiva carteira de títulos e valores mobi- de aumento, redução ou mesmo manutenção da taxa (quando per-
liários. manece inalterada).
A SELIC pode ser considerada também, um mecanismo de con-
BOLSAS DE VALORES trole da inflação. Quando está a inflação está alta, o COPOM tende
A Bolsa de Valores é o ponto de encontro entre vendedores e a escolher aumentar a taxa de juros e conter esse processo. Com o
compradores de produtos financeiros e foi constituída para organi- aumento, fica mais difícil a obtenção de crédito, reduzindo o consu-
zar essas negociações que ocorrem em grande número e aconte- mo, a elevação dos preços; o resultado é a queda da inflação. Se a
cem em questão de segundos devido a tecnologia da plataforma inflação estiver controlada, a tendência é que o COPOM promova a
da Bolsa. redução na SELIC, como conseqüência, temos um aumento na libe-
A Bolsa estabelece regras de negociações com o objetivo de ração de crédito e maior investimento nas empresas.
tornar o ambiente transparente e seguro para todas as partes en-
volvidas.
O produto mais popular negociado na Bolsa é a ação, que re-
presenta uma pequena parte de uma empresa, então, ao adquirir
uma ação o comprador se torna um acionista (pequeno sócio) do
negócio.

3
CONHECIMENTOS BANCÁRIOS
CETIP S.A. Em 21 de junho de 1999, pelo Decreto n° 3.088, foi adotada a
Central de Liquidação e Custódia de Operações Financeiras foi sistemática de “metas para a inflação” como diretriz de política mo-
uma empresa privada do mercado financeiro. netária. Isso é, as decisões do Copom passam a ter como principal
Iniciou suas atividades em 1986, atuando com serviços de re- objetivo o cumprimento de metas para a inflação, definidas pelo
gistro, central de depositária, negociação e liquidação de ativos e Conselho Monetário Nacional.
títulos. Em 2017 houve a fusão com a BM&F BOVESPA, formando a Importância do Copom para a economia brasileira
atual Bolsa de Valores no país, a [B]3 Brasil, Bolsa e Balcão. O Copom é responsável pelo estabelecimento de políticas mo-
netárias. Isso significa que suas decisões influenciam fatores como
ASSOCIAÇÕES DE POUPANÇA E EMPRÉSTIMO (APE) o controle da oferta de moeda e questões relacionadas à concessão
Instituições não consideradas financeiras, mas sim sociedades de créditos, por exemplo.
civis. Tem como finalidade captação de poupança e financiamento Dessa forma, essas decisões impactam no poder de compra,
da casa própria. preço das mercadorias, valor da moeda nacional e até mesmo valor
São regulamentadas pela Lei nº 6.855/80, pertencem ao Siste- dos serviços disponibilizados no país.
ma Financeiro Nacional, devendo seguir as regras do BACEN e do O Comitê também tem a responsabilidade de, de 3 em 3 me-
COPOM. Pertencem também ao Sistema Financeiro da Habitação ses, divulgar o relatório de inflação. Com base nesses estudos, é
(SFH). definido pelo Copom um dos mais importantes índices econômicos
A Poupex é a única APE em atividade no Brasil nos dias de hoje, para investidores: a taxa Selic.
atuando para captar recursos da poupança e financiamento de ha- Ou seja, seus investimentos são afetados diretamente pelas
bitação para seus associados. decisões do Copom. Se você possui títulos com rentabilidade pós-
Os associados são aqueles que depositam para formar poupan- -fixada ou híbrida, o retorno acompanhará essas diretrizes. Além
ças e também os que adquirem financiamento imobiliário. disso, boa parte dos investimentos de renda fixa também estão as-
Suas operações quanto a aplicação de dinheiro consistem em sociados à Selic.
direcionar os recursos para o mercado imobiliário, incluindo o SFH. A famosa Selic trata-se de uma meta para a taxa de juros básica
As operações para captar recursos, além dos depósitos de da economia brasileira. Vamos falar mais sobre ela ao longo desse
poupança, são constituídas por: Letras hipotecárias, repasses e re- artigo.
financiamentos contraídos no país, empréstimos e financiamentos
contraídos no exterior, letras de crédito imobiliário, letra financeira Qual a função do Copom?
e depósitos interfinanceiros. O Copom é uma solução para regular a liquidez da economia
brasileira.
COPOM – COMITÊ DE POLÍTICA MONETÁRIA A implementação do Comitê visava tornar esse processo mais
transparente e eficaz. Como você viu nesse artigo, essa não é uma
estratégia adotada apenas no Brasil, mas em diversos outros países,
COPOM – Comitê de Política Monetária como os Estados Unidos e Alemanha.
Copom, ou Comitê de Política Monetária, é um órgão do Banco
Claro, um dos mais conhecidos objetivos do Copom é o estabe-
Central. Ele foi criado em 1996 com o objetivo de traçar e acompa-
lecimento da taxa Selic. Vamos entender melhor:
nhar a política monetária do país. Esse é o órgão responsável pelo
estabelecimento de diretrizes a respeito da taxa de juros.
O que é a taxa Selic?
Trata-se de um órgão do Banco Central criado com o objetivo
Uma das principais pautas abordadas em reuniões do Copom
de estabelecer importantes critérios sobre a economia do Brasil.
se refere ao valor dos juros básicos da economia brasileira: a taxa
As decisões do Copom impactam diretamente no dia a dia dos
Selic (Sistema Especial de Liquidação e de Custódia).
brasileiros, principalmente os investidores. Veja quais são os obje-
A Selic é utilizada tanto por bancos quanto por outras institui-
tivos do Copom, conforme declarados pelo Banco Central do Brasil:
- Implementar a política monetária; ções financeiras como referência no momento de conceder em-
- Estabelecer a meta da Taxa Selic; préstimos, financiamentos e aplicações.
- Analisar o Relatório de Inflação. Em resumo, representa a média de juros que o Governo brasi-
Mais adiante nesse artigo, iremos explorar melhor as funções leiro paga por empréstimos. Isso significa que, quando a Selic está
do Copom e seu impacto na economia brasileira. alta, os bancos preferem emprestar ao Governo. Com uma taxa
mais baixa, existe um incentivo maior para emprestar ao consumi-
Histórico do Copom dor final.
O Copom foi inspirado em uma solução similar adotada nos Então, quanto maior a Selic, mais “caro” é para o consumidor
Estados Unidos, o Federal Open Market Committee (FOMC). Além final realizar qualquer tipo de financiamento. Isso faz com que o
disso, também empresta alguns conceitos do órgão associado ao consumo caia. Assim, uma Selic mais baixa proporciona incentivos
Banco Central Alemão, o Central Bank Council. ao crescimento da economia nacional.
Criado em 20 de junho de 1996, o Copom é considerado uma Em contrapartida, quanto menor a taxa Selic, menor ficam os
solução para proporcionar maior transparência para o estabeleci- rendimentos de aplicações de renda fixa. Alguns exemplos são a
mento de diretrizes da política monetária, além da definição da taxa poupança, CBDs e Tesouro Direto atrelado a esse índice.
de juros. Dessa forma, muitos investidores deixam a renda fixa e passam
Em junho de 1998, o Banco Central da Inglaterra também ade- a investir diretamente nas empresas ou até mesmo empreender,
riu a um modelo similar, instituindo o Monetary Policy Committee gerando mais empregos.
(MPC).
O regulamento do Copom tem passado por muitas mudan- A relação entre o Copom e a Taxa Selic
ças desde seu estabelecimento em 1996. As alterações se referem Um dos principais objetivos do Copom é, justamente, a fixação
tanto ao objetivo do comitê quanto à periodicidade das reuniões e da taxa Selic. Isso é, a cada 45 dias, os membros se reúnem para
competências de seus integrantes. decidir se a Selic se mantém ou se modifica.

4
CONHECIMENTOS BANCÁRIOS
Essa decisão tem influência em todo mercado de investimentos. Além disso, impacta também o valor da moeda e os preços de mer-
cadorias e serviços.
Assim, acompanhar os movimentos da taxa básica de juros é fundamental, e não apenas para quem investe.
Em 3,75% ao ano desde o dia 18 de março, a Selic se encontra no menor patamar desde que a taxa passou a ser utilizada como instru-
mento de política monetária, em 1999. Esse corte, o segundo no governo de Jair Bolsonaro, já estava previsto segundo a pesquisa Focus
do BC.

Quem faz parte do Copom?


O Copom é formado pelos presidentes e diretores do Banco Central do Brasil. Além disso, fazem parte do Comitê outros agentes de
departamentos ligados à economia – direta ou indiretamente.
Os membros do Copom associados ao Banco Central do Brasil são:
- Presidente;
- Diretor de Administração;
- Diretoria de Política Econômica;
- Diretor de Assuntos Internacionais e de Gestão de Riscos Corporativos;
- Diretoria de Fiscalização;
- Diretor de Organização do Sistema Financeiro e Controle de Operações do Crédito Rural;
- Diretoria de Política Monetária;
- Diretor de Regulação;
- Diretoria de Relacionamento Institucional e Cidadania.

Também participam das reuniões os chefes de departamentos do Banco Central:


- Departamento de Operações Bancárias e de Sistema de Pagamentos;
- Depto de Operações do Mercado Aberto;
- Departamento Econômico;
- Depto de Estudos e Pesquisas;
- Departamento das Reservas Internacionais;
- Depto de Assuntos Internacionais;
- Departamento de Relacionamento com Investidores e Estudos Especiais.

De quanto em quanto tempo ocorre a reunião do Copom?


Desde sua criação até 2005, as reuniões do Copom aconteciam todos os meses. Atualmente, elas acontecem a cada 45 dias. Isso é, 8
vezes por ano.
Normalmente, o calendário de reuniões do Copom é divulgado pelo Banco Central até junho do ano anterior. Veja o calendário de
2020:
- 4 e 5 de fevereiro;
- 17 e 18 de março;
- 5 e 6 de maio;
- 16 e 17 de junho;
- 4 e 5 de agosto;
- 15 e 16 de setembro;
- 27 e 28 de outubro;
- 8 e 9 de dezembro.

Como funciona uma reunião do Copom


As reuniões do Copom acontecem no decorrer de dois dias. Dessa forma, elas são divididas em duas sessões:
1. Apresentações técnicas de conjuntura econômica;
2. Decisão da meta da Taxa Selic.
No primeiro dia de reuniões, é apresentada uma análise técnica pelos chefes de departamento. Os dados abrangem:
- Inflação;
- Nível de atividade;
- Evolução dos agregados monetários;
- Contas públicas;
- Balanço de pagamentos;
- Economia internacional;
- Mercado de câmbio;
- Reservas internacionais;
- Mercado monetário;
- Operações de mercado aberto;
- Expectativas para variáveis macroeconômicas.
No segundo dia de reunião, os membros do Copom definem, por maioria simples de votos, a meta da Taxa Selic. A decisão é tomada
com base na avaliação do cenário macroeconômico e dos riscos associados.
Após o término do segundo dia de reunião, a partir das 18h, são divulgados os comunicados de decisões do Copom. As atas, em por-
tuguês, são divulgadas às 8h da terça-feira da semana posterior a cada reunião.

5
CONHECIMENTOS BANCÁRIOS
O Copom publica, ainda, um documento chamado “Relatório de Inflação” ao fim de cada trimestre civil. Isso é, em março, junho, se-
tembro e dezembro. Esse documento analisa detalhadamente a conjuntura econômica e financeira do Brasil e traz projeções para a taxa
de inflação.
Veja na tabela a seguir o processo completo de uma reunião do Copom:

Um dos passos mais importantes para investir de maneira eficaz e o mais segura possível é, sem dúvidas, a educação financeira. É
essencial, principalmente, compreender os fatores que geram impacto na nossa economia e como são definidos.
Um dos indicadores mais importantes para a economia brasileira é a taxa Selic, definida a cada 45 dias pelo Copom.

PRODUTOS BANCÁRIOS: NOÇÕES DE CARTÕES DE CRÉDITO E DÉBITO, CRÉDITO DIRETO AO CONSUMIDOR, CRÉDITO
RURAL, CADERNETA DE POUPANÇA, CAPITALIZAÇÃO, PREVIDÊNCIA, INVESTIMENTOS E SEGUROS 

PRODUTOS E SERVIÇOS FINANCEIROS

DEPÓSITOS À VISTA, DEPÓSITOS A PRAZO (CDB E RDB) E LETRAS DE CÂMBIO.


Depósitos à vista: Conhecidos como depósitos em conta corrente, representam a entrega de valores as instituições financeiras, para
que sejam guardados ou aplicados, com resgate total ou parcial no momento em que o cliente necessitar.
Também é uma forma de captação de recursos pelos bancos, porém, sem remuneração, já que possuem liquidez imediata.
Depósitos à prazo: Investimentos em que o cliente deve aguardar o prazo de vencimento para resgatá-lo, conforme contrato.
Certificado de Depósito bancário (CDB) e Recibo de Depósito Bancário (RDB) são os principais instrumentos de depósitos a prazo.
Considerados investimentos, pois são aplicados em troca de remuneração de juros.
• CDB – Possui liquidez diária e pode ser regatado a qualquer momento (sob aviso prévio). Tem emissão digital e física. Suscetíveis
a incidência de IR e IOF, possuem garantia pelo Fundo Garantidor de Crédito em até R$ 250.000,00 por título, (limitado a quatro por CPF
ou CNPJ).
• RDB – Título de renda fixa emitido pelas instituições financeiras. Nesse investimento o cliente empresta dinheiro para uma ins-
tituição financeira e no vencimento tem o retorno do capital investido mais o rendimento. Sofre incidência de IR e de IOF apenas quando
resgatado num prazo menor que 30 dias após a aplicação. Tem a segurança do Fundo Garantidor de Crédito nas mesmas condições do CDB.

Letras de câmbio LC’s): São títulos de renda fixa que permitem que o dinheiro seja emprestado a uma financeira. Podem ser pré e pós
fixadas ou híbridas.
• Pré fixada – Indicam a rentabilidade final no momento da aplicação inicial.
• Pós fixada – A rentabilidade total será apresentada apenas no vencimento do título.
• Híbrida – Parte do valor está na modalidade pré e a outra metade na pós fixada.
São asseguradas pelo Fundo Garantidor de Crédito (FGC), no valor de até R$ 250.000,00, com um limite total de R$ 1.000.000,00.
Sofrem incidência de IOF e também de IR.

COBRANÇA E PAGAMENTO DE TÍTULOS E CARNÊS


A movimentação de títulos e carnês tem objetivo de processar e controlar as operações realizadas com títulos e carnês enviados as
instituições financeiras por empresas ou pessoas físicas.
Boleto: Título de cobrança regulamentado pelo BACEN. É muito popular, podendo ser emitido por pessoas físicas e jurídicas, inclusive
para pessoas que não possuem vínculo com algum banco, porém, seu emissor dever ter conta corrente para que os valores recebidos se-
jam por lá, depositados. Seu pagamento pode ocorrer em estabelecimentos variados, como supermercados, lotéricas, etc. O valor estará
disponível em conta, um dia após a sua liquidação. Tem a facilidade de ser pago em supermercados, lotéricas, etc.
Para a realização deste serviço, os bancos estão autorizados a cobrar tarifas conforme o contrato da conta corrente do cliente.
Carnê: Também um título de cobrança, representa a união de vários boletos. São emitidos para compras parceladas, formalizando
uma relação de crédito concedido entre vendedor e consumidor. Antes de sua emissão, é necessário análise dos dados do cliente, com a
finalidade de determinar se este tem condições de pagar pelo objeto de compra.

6
CONHECIMENTOS BANCÁRIOS
TRANSFERÊNCIA AUTOMÁTICA DE FUNDOS FUNDOS MÚTUOS DE INVESTIMENTO
Prestação de serviços em que a instituição financeira movimen- São fundos de investimentos gerenciados por profissionais es-
ta recursos de uma ou mais contas correntes para um ou mais fun- pecialistas no mercado financeiro. Os fundos gerenciam recursos de
dos. Para isso, o cliente antecipadamente autoriza o banco o movi- um grupo de investidores, em carteiras diversificadas de títulos e
mentar suas contas. valores mobiliários, com divisão de recursos (cotas de participação)
É um serviço sem cobrança adicional para o cliente. em partes iguais para todos.
Considerada uma maneira de gerenciar recursos do cliente, Os fundos são individuais, cada um com seu grau de risco e
pois dada a autorização, o banco pode também fazer o resgate de custo de serviços definidos desde o início. Os recursos arrecadados
valores (resgate automático), transferindo-os da conta de aplicação com as vendas das cotas são investidos em títulos, que resultarão
para a conta corrente quando houver necessidade da cobertura de na rentabilidade dos fundos
possíveis valores que não estejam disponíveis. A Comissão de Valores Mobiliários (CVM) é o órgão responsá-
vel por normas, registros, autorizações, e supervisão dos fundos.
COMMERCIAL PAPERS
São títulos de crédito emitidos por empresas não financeiras HOTMONEY
da modalidade Sociedades Anônimas (S.A’s), com necessidade de São empréstimos de curtíssimo prazo (de 1 a 29 dias), desti-
captar recursos no mercado interno para financiar suas necessida- nados as pessoas jurídicas para financiar o capital de giro. Nesse
des de fluxo de caixa. sistema, os recursos são transferidos entre mercados, com rapidez
Tem um prazo de mínimo de 30 dias e máximo de 180 ou 360. e eficiência referente aos ganhos. No entanto, suas taxas de juros
Para S.A’s de capital fechado é de até 180 e com capital aberto de são altas e seus prazos de pagamento, muito pequenos.
até 360. As empresas optantes pelo hotmoney contratam o serviço
É uma operação considerada alternativa para empréstimos através de instituição financeira e celebração de contrato.
bancários convencionais, possibilitando redução nas taxas de juros
devida eliminação da intermediação financeira e também mais ra- CONTAS GARANTIDAS
pidez e simplicidade na negociação entre tomadores e investidores. É uma linha de crédito disponível na conta corrente para utili-
zação no curtíssimo prazo. Está vinculada a uma garantia, como al-
ARRECADAÇÃO DE TRIBUTOS E TARIFAS PÚBLICAS gum recebível ou garantia real (hipoteca, penhor, anticrese). Após a
Toda a arrecadação de tributos e tarifas públicas, obrigatoria- realização do contrato entre cliente e instituição financeira, o limite
mente transita pelas instituições financeiras para seu pagamento. estabelecido é disponibilizado.
São serviços prestados através de convênios específicos de arreca- Costumam ter taxas de juros mais baixas e limite de crédito
dação e repasse. mais elevado devido as garantias.
Geralmente, o poder público mantém um banco preferencial
conveniado para centralizar suas arrecadações e identificar paga- CRÉDITO ROTATIVO
mento dos contribuintes. Modalidade de crédito muito utilizada para pagamento de car-
Tributo: Cobrança coercitiva, realizada pelo agente público tões de créditos, porém, também para cheque especial, caução de
(união, estados e municípios) em relação à pessoa física e jurídica duplicatas. Pessoas físicas e jurídica podem contar com este recur-
(impostos, taxas e contribuições). so.
Tarifas Públicas: Pagamento de serviços realizados por conces- O limite de crédito é utilizado em um período curto, mediante
sionárias (água, luz, telefone e gás). o pagamento com juros.
Ex. Fatura do cartão de crédito no valor de R$ 5.000,00; com
HOME/OFFICE BANKING E REMOTE BANKING pagamento mínimo obrigatório de R$ 1.000,00; pagamento reali-
Home/Office Banking: Tecnologia desenvolvida para que os zado de R$ 800,00. O saldo restante a pagar de R$ 4.200,00 é o
clientes realizem operações bancárias fora das agências, através crédito rotativo.
dos recursos da internet, permitindo economia de tempo. Esse sis-
tema favorece também a redução de custos e expansão de serviços DESCONTOS DE TÍTULOS
para as instituições financeiras.
Modalidade de crédito, conhecida comoa antecipação de re-
Remote Banking: Serviços disponíveis para que o cliente tenha
cebíveis que o cliente tem e já apresentou a instituição financeira
acesso a todo tipo de acesso fora de uma agência. Objetiva reduzir
como forma de garantia (nota promissória, cheques, etc.).
custos de operação e geração de eficiência na relação entre banco e
Por essa antecipação, o banco cobra uma taxa, chamada de
cliente. Ex. Banco 24 horas, atendimento telefônico, aplicativos para
taxa de redesconto, definida a partir de um percentual sobre o valor
celular e computadores diversos, atendimento via chat e whatsapp.
nominal ou futuro do título. Nessa antecipação de recurso incide o
IOF; e outros encargos bancários contratuais.
CORPORATE FINANCE
É geralmente utilizado por pessoas jurídicas, mas pessoas físi-
É a prestação de serviços de instituições financeiras de inves-
cas também tem acesso.
timento, para grandes empresas em negociações de aquisições, ci-
sões, fusões, incorporações, etc.
Os bancos, através de seus profissionais especialistas, auxiliam FINANCIAMENTO DE CAPITAL DE GIRO.
na análise de cálculo do valor das empresas envolvidas (valuation), O financiamento do capital de giro pode ocorrer de duas for-
pesquisas de mercado para assegurar a justificativa da operação. mas:
Além desse serviço, o banco concede, em muitos casos, em- a) Quando o capital de giro não está vinculado a algum gasto
préstimos ou apoio na captação de recursos internos ou externos exclusivo.
para a realização da operação. É cobrada uma comissão sobre a b) Quando está vinculado a compra de insumos ou material
operação, geralmente uma taxa fixa, acordada em contrato. de estoque.

7
CONHECIMENTOS BANCÁRIOS
A movimentação dos recursos ocorre através de transferência Todos os contratos de leasing podem ter bens móveis e imó-
para a conta do tomador. veis.
O limite de financiamento é determinado pela análise de crédi-
to do cliente e sua capacidade de pagamento. Os pagamentos po- FINANCIAMENTO DE CAPITAL FIXO.
dem variar conforme a necessidade da empresa. As instituições financeiras não tem muita opção para crédito
Os bancos comerciais costumam ter muitas opções para finan- quando se trata de capital fixo. Esse capital geralmente necessita
ciamento de capital de giro quanto a prazos, taxas, garantias. Po- de valores muito altos, o que gera muita insegurança nos bancos,
rém, ocorre dessa modalidade de financiamento ter taxas de juros quanto ao cumprimento dessa obrigação, pelo volume de recursos
mais baixas. Os recursos liberados podem ocorrer de forma isolada e pelo período de amortização muito longo.
ou associada a investimentos fixos e possuem incidência de IOF. Os recursos são liberados para financiar itens que contribuam
As garantias para essa linha de crédito incluem alienação fidu- para o crescimento e desenvolvimento e funcionamento das em-
ciária, penhora de recebíveis, hipoteca, etc. presas, como máquinas e equipamentos, instalações, etc.
Assim, as instituições governamentais se dispõem com maior
VENDOR FINANCE/COMPROR FINANCE facilidade a financiar em longo prazo, o capital fixo; como o Banco
Vendor finance: É a operação de financiamento em que a ins- Nacional de Desenvolvimento Econômico e Social (BNDES).
tituição financeira intercede por meio de convênio à negociação de As modalidades de crédito são:
compra de venda entre duas empresas. • Crédito Direto ao Consumidor (CDC) – Concedidos por
A negociação é formalizada em contrato com a empresa ven- bancos e financeiras, as pessoas físicas e jurídicas, na aquisição de
dedora, mencionando que o banco financiará recursos para a com- bens e serviços. Com pagamentos geralmente realizado em presta-
pradora, realizando o pagamento da compra à vista, mediante des- ções mensais. Com incidência de juros, IOF e taxas de abertura de
conto. crédito.
Neste caso, apenas a empresa vendedora é cliente do banco, • CDC com Interveniência (CDCI) – Liberados apenas para
por isso, celebra o contrato, a empresa compradora, que recebe o empresas exclusivos intermediários de seus clientes, garantindo o
crédito não precisa ser correntista. pagamento. Tem os mesmos prazos e taxas do CDC, porém, meno-
Compror finance: É a operação de financiamento em que a ins- res; pois não há risco por parte do cliente, mas sim, do seu inter-
tituição financeira intermedia através de convênio uma negociação veniente.
de compra e venda entre duas empresas. Nesta situação, a empre- • Crédito Direto (CD) – Semelhante ao CDCI, em que a ins-
sa compradora, cliente do banco firma contrato para aquisição de tituição apropria-se da carteira dos lojistas e assume os riscos do
mercadorias a vista, sendo financiada pela instituição financeira. crédito.
Não há necessidade do envolvimento da vendedora. O paga- • Crédito Automático por Cheque – Concedido aos clientes
mento acontecerá em data futura, acordado em contrato. especiais, como um cheque especial. Com pagamento parcelado,
com taxas de juros pré fixadas ou flutuantes, aceitas pelos clientes
LEASING (TIPOS, FUNCIONAMENTO, BENS) e acordadas em contratos.
Leasing é um arrendamento mercantil. Neste processo, exis-
tem duas partes envolvidas, que podem ser tanto pessoas físicas As garantias para essa linha de crédito incluem alienação fidu-
como jurídicas. ciária, penhora de recebíveis, hipoteca, etc.
O arrendatário é que tem o direito da posse de uso temporário
de um bem, em troca do pagamento de parcelas mensais a empresa CRÉDITO DIRETO AO CONSUMIDOR
que fez o arrendamento. É uma forma de desfrutar do bem, sem ne- Linha de crédito, também conhecida como empréstimo pesso-
cessidade de comprá-lo. Para que essa relação aconteça, é preciso al; destinada geralmente a pessoas físicas. Realizado por instituição
do arrendador (empresa). bancária ou instituição particular (como lojas de departamento). Os
Existem três tipos de leasing: juros são considerados altos, devido a poucas garantias, pois o valor
a) Leasing financeiro – de longo prazo, em que o cliente ma- é descontado diretamente da conta corrente.
nifesta o interesse na aquisição do bem. Ao finalizar o contrato, o
bem já terá sido pago. Caso não haja interesse em permanecer com CRÉDITO RURAL
o bem, este será vendido e se o recebido for menor que o valor de Crédito destinado aos produtores rurais, cooperativas de pro-
aquisição, o arrendatário pagará por essa diferença; sendo este va- dutores rurais, associação de produtores rurais, etc. Os recursos são
lor maior, receberá o valor correspondente; chamado de Valor Resi- disponibilizados por instituições financeiras, considerados especiais
dual Garantido (VRG). Para os bens com vida útil de até cinco anos, por terem taxas de juros abaixo do mercado.
o prazo do contrato será de dois anos. Já os bens com vida útil su- Seu objetivo é estimular o crescimento da área rural, incenti-
perior a cinco anos, o contrato deverá ser de no mínimo, três anos. vando e fortalecendo pequenos produtores, desenvolvendo as ati-
b) Leasing operacional – de curto prazo, em que o arrendatá- vidades florestais e pecuárias, aumentando a produção através de
rio manifesta logo de início sua opção por não obrigatoriedade em métodos eficazes; estimulando a geração de renda e a mão de obra
adquirir o bem. São três opções ao final desse contrato: adquirir o para agricultura familiar e aquisição de equipamentos.
bem, renovar o bem, ou não renovar. Nessa modalidade, não existe Financia as atividades de custeio, investimento e beneficia-
o VRG. Prazo mínimo de contrato, por 90 dias, não podendo ultra- mento ou industrialização. Serve também para o custeio de despe-
passar 75% da vida útil do bem. sas de produção, investimento na produção e custeio das despesas
c) Sale and leaseback – modalidade em que o arrendatário pós produção.
vende o bem a um terceiro, no entanto, continua fazendo uso deste Por ser um programa do governo tem algumas, devem ser obe-
por meio de aluguel, formalizado em contrato. decidas algumas exigências:
• Idoneidade
• Orçamento do Projeto e viabilidade econômica
• Acompanhamento do cronograma indicado no projeto
• Fiscalização do financiador

8
CONHECIMENTOS BANCÁRIOS
• Cumprimento das regras de zoneamento. d. Comprovação de credenciamento do Beneficiário perante
o CNPq, mediante publicação do respectivo certificado no D.O.U.,
Pode ser concedido para pessoas físicas ou jurídicas, inclusive e (ii) da apresentação da licença de importação dos bens deferida
para quem não é produtor rural; desde que esteja vinculado a ativi- pelo CNPq, extraída do Sistema Integrado de Comércio Exterior –
dades pertinentes a agricultura, pecuária, pesquisa, etc. SISCOMEX, nos casos de dispensa de exame de similaridade previs-
São necessárias garantias como penhor, aval, fiança, hipoteca, tos na Lei 8.010, de 1990.
etc. Observações
A lei que define o crédito rural é a Lei nº 4.829, de 05/12/1965. Os critérios mencionados serão observados, no que couber,
O pagamento será realizado conforme seu valor original e po- para o financiamento de serviços importados.
derá ser desde uma única parcela, ou amortizações conforme con- No que se refere ao item “c” anterior, o BNDES:
trato. i. terá a faculdade de acolher ou não a indicação, feita pelas
partes interessadas, de entidade representativa ou entidade tec-
CADERNETAS DE POUPANÇA nológica como responsáveis pela comprovação da inexistência de
A aplicação mais popular, devido sua segurança e facilidade e produção ou similar nacional;
liquidez imediata. ii. não ficará vinculado ao entendimento constante dos do-
Pode ter resgate em qualquer momento, porém a remunera- cumentos apresentados pelas referidas entidades sobre a inexistên-
ção só ocorrer para valores que ficam parados a partir de 30 dias. cia de similar nacional;
Para cálculos de juros, será observado o índice de 0,5% a.m., sem- O BNDES poderá, caso entenda necessário e em caráter com-
pre que a taxa SELIC for maior que 8,5% a.a.; se a meta for inferior plementar, consultar os fabricantes nacionais sobre a existência de
ou igual a 8,5% a.a., o índice corresponderá a 70% do valor da meta. produção ou similar nacional”.
A poupança foi criada para estimular o sistema habitacional do Exportação
país. Não há limite de aplicação ou de resgate. Está isenta da tri- O BNDES financia as exportações, atuando no pré embarque,
butação do IR e IOF. Os bancos não cobram pela manutenção das com apoio a produção e no pós embarque, quando a produção já
cadernetas de poupança. está sendo comercializada. Esse crédito permite a competitividade
das empresas em âmbito internacional, trazendo retornos positivos
FINANCIAMENTO À IMPORTAÇÃO E À EXPORTAÇÃO: REPAS- na economia interna.
SES DE RECURSOS DO BNDES De acordo com o BNDES:
Importação “Pré-embarque – financiamento à produção para exportação
O Banco Nacional de Desenvolvimento Econômico e Social (BN- O produto BNDES Exim Pós-embarque compreende as seguin-
DES) é uma empresa pública e um dos maiores bancos de desenvol- tes linhas de financiamento: BNDES Exim Pós-embarque Bens, BN-
vimento do mundo. DES Exim Pós-embarque Serviços, BNDES Exim Pós-embarque Aero-
Por se tratar de um banco público e instrumento principal da
naves e BNDES Exim Automático.
União para financiamento e investimento de longo prazo; antes de
No produto pós-embarque, o objeto do financiamento é a co-
conceder crédito, avalia o impacto que esse recurso causará nos
mercialização de bens e serviços brasileiros. Nesse caso, o BNDES
setores socioambiental e econômico do Brasil.
antecipa à empresa brasileira exportadora o valor dos bens ou ser-
Assim, antes de conceder financiamentos para a importação
viços devido pelo importador estrangeiro. Esse desembolso de re-
fará uma análise minuciosa para identificar se o bem a ser adquirido
cursos se dá em reais no Brasil, e o importador estrangeiro passa a
não possui semelhança ou equivalência a outro produzido interna-
dever ao BNDES. Portanto, não há remessa de divisas ao exterior. O
mente. Pois, a importação desse item permitiria concorrência para
pagamento do financiamento pelo importador estrangeiro é reali-
a produção daquele já existente, causando prejuízos e danos eco-
nômicos a economia e ao desenvolvimento sustentável da nação. zado por intermédio de banco mandatário, que entre outras atribui-
Conforme o BNDES: ções, fecha o câmbio e repassa o valor em reais ao BNDES.
“O apoio à importação de bens ficará condicionado à compro- O financiamento à comercialização pode ser realizado por meio
vação de inexistência de similar nacional, utilizando-se, para essa de duas modalidades operacionais: supplier credit ou buyer credit,
comprovação, um dos seguintes documentos: além da linha BNDES Exim Automático.
a. Resolução da Câmara de Comércio Exterior (CAMEX) com Supplier credit
a lista de bens contemplados pelo regime de Ex-tarifário, constando Refinanciamento ao exportador por meio do desconto de títu-
o bem a ser financiado. A Resolução deverá estar em vigor na data los. Veja como funciona:
da aprovação e da contratação da operação; • O exportador concede ao importador financiamento por
b. Anotação realizada pelo Departamento de Comércio Exte- meio de carta de crédito, letras de câmbio ou notas promissórias.
rior (DECEX) na própria licença de importação do bem financiado, Esses títulos deverão ser cedidos ou endossados pelo exportador
atestando a inexistência de similar nacional; ao BNDES.
c. Atestado de entidade representativa ou de classe, de âm- • O BNDES realiza o refinanciamento mediante o desconto
bito nacional e que já prestem serviço semelhante para a Secretaria dos instrumentos de pagamento, e desembolsa os recursos ao ex-
de Comércio Exterior, de inexistência de produção ou similar na- portador, à vista, em reais, no Brasil.
cional. • O importador pagará ao BNDES no prazo definido.
Em caso de oposição das partes interessadas (Postulante, In- • O banco mandatário realiza as transferências de recursos
tervenientes, dentre outros) em relação ao referido atestado, será e documentos relativos à operação.
solicitado ainda laudo técnico emitido por entidade tecnológica de
reconhecida idoneidade e competência técnica, preferencialmente Fluxo Operacional – BNDES Exim Pós-embarque Supplier Cre-
contendo os seguintes fatores: produtividade, qualidade, prazo de dit
entrega usual para o equipamento, fornecimentos anteriores, con- 1. Após aprovada pelo BNDES a operação na modalidade Su-
sumo de energia e de matérias-primas e outros fatores de desem- pplier Credit, o Exportador pode embarcar os produtos/executar os
penho específicos do caso; serviços para o Importador.

9
CONHECIMENTOS BANCÁRIOS
2. O Importador apresenta títulos ou cartas de crédito emiti- BNDES Exim Automático
dos em favor do Exportador. Apoio à comercialização no exterior de bens de fabricação na-
3. O Exportador realiza o endosso dos títulos ou a cessão das cional mediante a abertura de linha de crédito a instituições finan-
cartas de crédito em favor do BNDES. ceiras no exterior. O importador terá acesso ao financiamento do
4. O Banco Mandatário envia ao BNDES a documentação BNDES para adquirir bens brasileiros, por meio de bancos no seu
comprobatória da exportação e o pedido de liberação de recursos. próprio país. O desembolso de recursos pelo BNDES ao exporta-
5. O BNDES analisa a documentação e, caso esteja em boa dor, por intermédio do banco mandatário, é realizado em reais, no
ordem, realiza o desembolso de recursos ao Banco Mandatário. Brasil. Por sua vez, o banco no exterior, responsável pelo risco da
6. Em seguida, o Banco Mandatário repassa os recursos ao operação, efetua os pagamentos via banco mandatário ao BNDES.
Exportador. Fluxo Operacional – BNDES Exim Automático
7. Após o término da carência de principal do financiamento, 1. O Exportador realiza uma negociação comercial com o Im-
o Importador inicia a amortização das prestações, via Banco Man- portador, para entrega futura de bens.
datário, até a total liquidação financeira do contrato. 2. O Banco no exterior aprova o crédito do Importador.
8. Em seguida, o Banco Mandatário repassa os pagamentos 3. O Exportador encaminha ao BNDES o pedido de financia-
ao BNDES, até a total liquidação do financiamento. mento, com informações sobre a operação de exportação. O BNDES
avalia, de acordo com parâmetros previamente estabelecidos, e ho-
Buyer credit mologa a operação.
Financiamento à exportação mediante celebração de contrato 4. O Exportador embarca os bens ao Importador envia docu-
com o importador, com interveniência do exportador. Operações mentos comprobatórios da exportação para o Banco Mandatário,
mais complexas e que envolvem diretamente o importador es- que envia ao BNDES a documentação e o pedido de liberação de
trangeiro são em geral realizadas por meio desta modalidade. Veja
recursos.
como funciona:
5. O BNDES analisa a documentação e, caso esteja em boa
• O BNDES concede ao importador financiamento mediante
ordem, realiza o desembolso de recursos ao Banco Mandatário.
a celebração de contrato de financiamento, firmado entre o BNDES
6. Em seguida, o Banco Mandatário libera os recursos ao Ex-
e o importador, ou entre o BNDES e o devedor, com a interveniência
do exportador. portador.
• O BNDES desembolsa os recursos ao exportador, em reais, 7. Após o término da carência de principal do financiamento,
no Brasil. o Banco no exterior inicia a amortização das prestações, até a total
• O importador ou o devedor pagará ao BNDES no prazo liquidação do financiamento”.
definido.
• O banco mandatário realiza as transferências de recursos CARTÕES DE CRÉDITO
e documentos relativos à operação. Modalidade de crédito que beneficia o consumidor no mo-
mento da compra de um produto ou serviço, já que o vencimento
Fluxo Operacional – BNDES Exim Pós-embarque Buyer Credit da fatura (documento que detalhas as despesas) ocorrerá em data
1. O Exportador firma um contrato comercial com o Importa- posterior, inclusive com situações de parcelamento. Por isso, não é
dor, para entrega futura de bens/serviços. necessário dispor de dinheiro no momento da aquisição.
2. O Exportador encaminha ao BNDES a consulta prévia, com No entanto, o vendedor/prestador receber em poucos dias
informações sobre a operação de exportação. O BNDES avalia, de através da instituição financeira ou da administradora de cartões.
acordo com parâmetros previamente estabelecidos, e aprova a Caso o valor não seja pago com atrasos ou em data diferente do
operação, que é formalizada por meio de um contrato de financia- vencimento, há incidência de juros conforme contrato.
mento com o Importador/devedor, com interveniência do Expor-
tador. TÍTULOS DE CAPITALIZAÇÃO
3. O Exportador embarca os produtos/executa os serviços ao Título de crédito, regulamentado pela Superintendência de
Importador. Seguros Privados (SUSEP) com prazo e regras estabelecidos em
4. O Exportador envia documentos comprobatórios da ex- contrato. É conhecido popularmente como uma forma segura de
portação e quaisquer outros relacionados no contrato de financia- guardar dinheiro e concorrer sorteio de prêmios.
mento para o Banco Mandatário. O capital é separado em três partes:
5. O Banco Mandatário envia ao BNDES a documentação e o 1ª. É acumulada com juros corrigidos ao longo do tempo.
pedido de liberação de recursos. 2ª. Destinada para custear os sorteios.
6. O BNDES analisa a documentação e, caso esteja em boa
3ª. Reservada para custear as despesas administrativas.
ordem, realiza o desembolso de recursos ao Banco Mandatário.
Além de ser vendido em agências bancárias, pode ser encon-
7. Em seguida, o Banco Mandatário repassa os recursos ao
trado em lotéricas, correios, etc. Suas principais características são:
Exportador.
• Prazo de vigência – mínimo de 12 meses, organizadas em
8. Após o término da carência de principal do financiamento,
o Importador inicia a amortização das prestações, até a total liqui- séries visíveis no próprio título, com emissão de ao menos, 10.000
dação financeira do contrato. unidades.
• Forma de pagamento – mensal, periódico ou único.

Muitas vezes, o título de capitalização pode ser confundido


com uma espécie de poupança com premiação através de sorteios,
porém, no final do contrato, o valor resgatado é menor que o valor
inicial investido. Sua rentabilidade mínima oferecidadeve ser a par-
tir do valor da Taxa Referencial (TR), somada a 20% da taxa de juros
mensal aplicada a caderneta de poupança.

10
CONHECIMENTOS BANCÁRIOS
Não possui liquidez imediata e de acordo com o contrato, po-
derá ou não ser resgatada antes do vencimento. Sendo possível, o NOÇÕES DE MERCADO DE CAPITAIS
valor será menor do que o valor total pago até o momento.
Talvez você já tenha ouvido falar em mercado de capitais por aí.
PLANOS DE APOSENTADORIA E PENSÃO PRIVADOS. Se a resposta é sim, então você entende que ele faz parte da estru-
Plano de previdência privada é um tipo de produto financeiro, tura financeira do país. Mas, apesar de ser um termo cada vez mais
uma forma de seguro em que o investidor acumula capital, remune- comum, ainda surge a dúvida: afinal, o que é mercado de capitais?
rado conforme as aplicações escolhidas pelo administrador do pla- É possível entender o que é e como funciona o mercado de
no. O fundo de previdência é o canal de investimento dos planos. capitais de forma descomplicada. Pense, primeiro, em quem movi-
A Previdência privada foi criada com o objetivo de complemen- menta a nossa economia. São pessoas como você e outros tantos
tar a previdência social, porém, também, como um seguro para os investidores, além das empresas.
trabalhadores que não contribuem para o INSS. Agora, o que há de comum entre vocês? A resposta é simples:
Os principais planos são PGBL e VGBL, que se diferenciam pela todos realizam movimentações financeiras.
tributação. No VGBL, a incidência do IR ocorre apenas sobre os ren- Empresas investem na geração de produtos e serviços. Tudo
dimentos; no PGBL o IR incide sobre o valor resgatado ou no rece- isso demanda muitos recursos e, frequentemente, eles vêm de pes-
bimento da renda.
soas que investem parte de seu dinheiro para valorizá-lo.
Conforme a SUSEP:
É aí que o mercado de capitais entra. Ele aproxima quem tem
“VGBL (Vida Gerador de Benefícios Livres) e PGBL (Plano Gera-
dinheiro para investir de quem precisa desse dinheiro para financiar
dor de Benefícios Livres) são planos por sobrevivência (de seguro
seus projetos. Que tal entender melhor essa área tão importante
de pessoas e de previdência complementar aberta, respectivamen-
te) que, após um período de acumulação de recursos (período de para o sistema financeiro? Vamos lá.
diferimento), proporcionam aos investidores (segurados e partici-
pantes) uma renda mensal - que poderá ser vitalícia ou por período O que é mercado de capitais?
determinado - ou um pagamento único. O primeiro (VGBL) é clas- Como você já percebeu, o mercado de capitais é um segmen-
sificado como seguro de pessoa, enquanto o segundo (PGBL) é um to do sistema financeiro responsável por intermediar negociações
plano de previdência complementar. entre quem precisa captar recursos para financiar projetos e quem
No caso do PGBL, os participantes que utilizam o modelo com- deseja investir.
pleto de declaração de ajuste anual do I.R.P.F podem deduzir as Aí você pode pensar: então é um tipo de empréstimo ou cré-
contribuições do respectivo exercício, no limite máximo de 12% dito? Na verdade, não. No mercado de capitais, a relação é dife-
de sua renda bruta anual. Os prêmios/contribuições pagos a pla- rente, pois não ocorre por meio de operações de crédito (como os
nos VGBL não podem ser deduzidos na declaração de ajuste anual tradicionais empréstimos dos bancos), mas a partir da negociação
do I.R.P.F e, portanto, este tipo de plano seria mais adequado aos de ativos, como por exemplo as ações ou títulos de dívida (as cha-
consumidores que utilizam o modelo simplificado de declaração de madas debêntures).
ajuste anual do I.R.P.F ou aos que já ultrapassaram o limite de 12% Quer saber como você pode entrar nesse universo? O merca-
da renda bruta anual para efeito de dedução dos prêmios e ainda do de capitais é responsável por diversas oportunidades de investi-
desejam contratar um plano de acumulação para complementação mento todos os dias.
de renda”. Para compreender melhor a função do mercado de capitais na
economia, vamos nos aprofundar um pouco mais no sistema finan-
PLANOS DE SEGUROS ceiro.
Seguro é toda situação em que o segurador tem é obrigado
a indenizar o segurado na ocorrência de um sinistro, em troca do Os tipos de mercado do sistema financeiro
prêmio de seguro. Os seguros são acionados por diversas ocasiões, O sistema financeiro movimenta a economia de um país por
por isso existem os planos de seguro. meio do fluxo financeiro entre quem tem dinheiro para gastar e
Os planos de seguros fazem parte do Sistema Nacional de Se- quem precisa desse dinheiro para manter os negócios.
guros Privados; instituído pelo Decreto Lei nº 73/1.966. Constituído
Mas, afinal, não é isso o que ocorre diariamente na nossa so-
pelo Conselho Nacional de Seguros Privados – CNSP; pela Superin-
ciedade? Perceba que a nossa relação com o dinheiro é, basicamen-
tendência de Seguros Privados – SUSEP; pelos resseguradores; por
te, essa, só que ela ocorre de diferentes formas e em diferentes
sociedades autorizadas a operar em seguros privados; e por corre-
níveis. Afinal, todo mundo precisa de dinheiro.
tores habilitados.
Um plano de seguro é um serviço oferecido por empresas pri- Uma empresa, quando inicia suas operações, precisa investir
vadas que disponibilizam atendimentos para situações de sinistro. dinheiro no negócio. Esse capital é próprio (vem dos sócios) ou de
Os planos são individualizados para atender cada cliente conforme terceiros. Fato é que, de alguma forma, foi necessário captar recur-
suas necessidades. Para isso, é necessário formalizar o plano atra- sos para tirar os planos do papel
vés de um contrato chamado apólice. Em troca, os empresários esperam que, depois de um tempo,
A apólice é o contrato da cobertura com direitos e obrigações tenham um retorno financeiro superior ao que foi investido.
para as partes envolvidas. Nela devem constar todas as informa- Nesse sentido, essa empresa vai contratar pessoas para traba-
ções sobre o objeto do seguro, como dados do segurado e do bem lhar em troca de um salário. Assim, terão recursos para seu próprio
a ser coberto, período de contratação, localização do bem, riscos consumo (por exemplo, pagar a conta de luz, água, telefone, com-
envolvidos, prêmio, tipos de sinistros, valor e condições gerais da prar roupas e alimentos).
indenização, franquia. Os planos de seguro são contratados como E é o consumo, por sua vez, que vai estimular a produção em-
forma de prevenção, no entanto podem não se concretizar, caso presarial e os novos negócios. Esse é um resumo simples de como
não haja sinistros. tudo está ligado na economia. Para que ela funcione adequada-
mente, o sistema financeiro faz a intermediação dessas relações.

11
CONHECIMENTOS BANCÁRIOS
As relações de que estamos falando se resumem basicamen- Ativos negociados no mercado de capitais
te ao consumo, à reserva financeira e aos investimentos. É muito Basicamente, existem 3 categorias de valores mobiliários distri-
simples, veja só: quando você gasta menos, sobra mais dinheiro na buídos pelo mercado de capitais:
conta, certo? Ações
Assim, quando uma empresa gera menos recursos e ainda quer Representam uma participação em uma empresa de capital
crescer, depende de dinheiro de quem tem economias: você. aberto — inscrita na CVM e na Bolsa de Valores. Uma pessoa, ao
E qual é o seu ganho nessa história? Bem, se você emprestar comprar uma ação, torna-se um sócio do negócio, podendo em al-
dinheiro para essa empresa, vai receber de volta o dinheiro inves- guns casos receber parte dos lucros, através de dividendos.
tido mais os juros, isto é, o tanto que ele rendeu enquanto durou É possível lucrar, ainda, ao vender uma ação por um valor supe-
esse investimento. E para quem captou esse recurso (a empresa), a rior ao da compra. Para a empresa, o principal benefício de oferecer
vantagem está no retorno do investimento feito, podendo comprar suas ações no mercado é a captação de recursos para seu próprio
novos equipamentos, contratar mais pessoas e até abrir uma nova desenvolvimento.
filial.
Os impactos de começar a pensar dessa maneira são muitos. Commercial Papers
Entender que o seu dinheiro pode trabalhar por você estando no São títulos de curto prazo emitidos por empresas para captar
mercado de capitais te ajudará a alcançar novos objetivo, sonhos recursos diretamente com quem quer investir. Vale lembrar que
e planos. essa é uma operação diferente das que ocorrem no mercado de
Voltando para o mercado de capitais, a negociação entre essas crédito, em que o dinheiro vem dos bancos. Os Commercial Papers
duas pontas, ou seja, para o dinheiro sair do seu bolso e parar na são ativos de curto prazo, com retorno do investimento em 30 dias,
conta da empresa, acontece graças à organização do sistema finan- no mínimo, e 360 dias, no máximo.
ceiro, que se divide em 4 grandes mercados:
- Mercado monetário: caracterizado pela transferência de va- Debêntures
lores de curtíssimo prazo, como as que ocorrem entre instituições Também são títulos corporativos, porém, normalmente de
financeiras de um dia para o outro. longo prazo. Emitidas por empresas, as debêntures são títulos de
- Mercado de crédito: diz respeito aos empréstimos feitos junto dívida. Ou seja, em vez de você pegar um empréstimo com um ban-
às instituições financeiras para consumo ou capital de giro. co, é a empresa que está pedindo um empréstimo a você. Para as
- Mercado de câmbio: engloba as transações envolvendo mo- companhias, é uma maneira de obter recursos para pagamento de
edas estrangeiras. dívidas ou realização de investimentos.
- Mercado de capitais: permite a captação de recursos para em-
presas por meio da negociação de títulos por pessoas que querem Mercado de capitais e mercado de ações: qual a diferença
investir e multiplicar seu dinheiro. Para cumprir a função de conectar as pessoas que investem a
Como você viu, mercado de crédito e mercado de capitais empresas que precisam de recursos, o mercado de capitais promo-
têm propósitos parecidos, mas são muito diferentes. No crédito, o ve a negociação de instrumentos financeiros.
empréstimo é feito por instituições financeiras, como bancos. No É no Mercado de Ações que alguns desses ativos são distribuí-
mercado de capitais, o dinheiro vai das pessoas que querem inves- dos, nesse caso, as ações, como o próprio nome entrega.
tir para as empresas, tendo as corretoras de valores ou os bancos Entre os títulos emitidos no mercado de capitais, as ações ocu-
como intermediários. pam um espaço de destaque. Tanto é assim que o termo Mercado
de Ações surgiu para descrever esse ambiente tão específico de ne-
Então, como funciona o mercado de capitais? gociação. Afinal de contas, os procedimentos, as regras e a estrutu-
Na prática, o mercado de capitais estimula as pessoas a inves- ra de funcionamento são diferentes.
tirem em busca de bons retornos e também facilita a captação de Isso não quer dizer, no entanto, que o Mercado de Ações seja
recursos pelas empresas. Ou seja, é um motor importante da eco- um segmento complicado para quem quer investir. É bem simples,
nomia. na verdade. Porém, a participação das empresas e a disponibiliza-
Já citamos aqui que sua principal função é distribuir títulos (ou ção dos ativos precisa seguir alguns critérios. Quem administra essa
ativos) emitidos por empresas — chamados de valores mobiliários. estrutura toda é a Bolsa de Valores, que no Brasil é operada pela B3,
Mas quais são esses ativos e quem regula esse mercado? É exata- antiga BM&FBovespa.
mente isso que você vai descobrir agora.
Como funciona a Bolsa de Valores no mercado de capitais
O papel da CVM no mercado de capitais A Bolsa de Valores é o ambiente em que são negociadas as
A Comissão de Valores Mobiliários (CVM) é o órgão que regula ações, entre outros títulos. Podemos resumir esse processo em 3
e fiscaliza o mercado de capitais. Os ativos negociados nesse mer- etapas, tomando a negociação de ações como exemplo. Veja só:
cado são de renda variável, ou seja, têm um risco maior, pois estão
mais sujeitos a oscilações. Para quem investe, portanto, é impor- Oferta Pública Inicial
tante contar com um ambiente de negociação que seja confiável e O lançamento das ações de uma empresa no mercado de ca-
transparente. pitais começa com a Initial Public Offering (IPO), ou em bom portu-
Por isso, a CVM estabelece normas que devem ser seguidas pe- guês: Oferta Pública Inicial.
las empresas que participam desse mercado.
Entre elas, estão as exigências de prestação de informações Mercado primário
financeiras frequentemente, por exemplo. Em caso de descumpri- A partir da IPO, as pessoas já podem adquirir as ações direta-
mento das regras impostas, pode haver punições. Ou seja, a CVM mente da empresa. Todo o dinheiro captado com as primeiras ven-
está sempre de olho para garantir que esse mercado funcione da das das ações é repassado à empresa.
melhor maneira possível.

12
CONHECIMENTOS BANCÁRIOS
Mercado secundário manda, com exportadores ofertando dólares e precisando de reais
Quem adquiriu ações no mercado primário pode, a qualquer e importadores oferecendo reais e precisando de dólares. Assim de-
momento, vender esses ativos para quem deseja comprá-los. A manda e oferta se igualam, criando um equilíbrio, a chamada taxa
partir desse momento, as ações passam a ser negociadas entre os de câmbio.
investidores, sem a participação direta da empresa. Assim sendo, o Taxa de câmbio alta desestimula importações, pois produtos
valor das transações de compra e venda da ação é repassado dos e insumos importados ficam mais caros e com isso, uma possível
compradores para os vendedores.1 redução da oferta de produtos no mercado interno. A inflação ten-
de a se elevar e as demandas internacionais por bens e serviços
aumentam.
NOÇÕES DE MERCADO CÂMBIO: INSTITUIÇÕES AUTO- Quando a taxa de câmbio está baixa, há um estímulo as impor-
RIZADAS A OPERAR E OPERAÇÕES BÁSICAS tações de produtos e insumos importados mais baratos. Ocorre au-
mento da competitividade entre produtos nacionais e estrangeiros.
MERCADO DE CÂMBIO A tendência da inflação é diminuir demandas internacionais por
bens e serviços.
Instituições Autorizadas a operar
Remessas
As instituições que operam neste mercado são os bancos múlti-
Representam uma forma segura do envio de dinheiro para fora
plos, bancos comerciais, caixas econômicas, bancos de investimen-
do país, sendo muito semelhante a uma transferência entre contas.
to, bancos de câmbio (realizam todas as operações previstas para o
Por ocorrer entre países diferentes, possuem regras específicas, por
mercado de câmbio).
exemplo, na compra é necessário a comprovação de uma fatura pró
Os bancos de desenvolvimento, agências de fomento e as so- forma, documento que registra e formaliza a intenção da compra e
ciedades de crédito, financiamento e investimento; podem execu- venda; com o objetivo de rastrear a origem das transações, evitan-
tar apenas algumas operações autorizadas pelo BACEN. do fraudes e evasão de divisas de um país para outro.
As sociedades corretoras de títulos e valores mobiliários, socie- Dados pessoais e bancários são necessários para ajudar os go-
dades distribuidoras de títulos e valores mobiliários e sociedades vernos dos países envolvidos na transação e identificar origem da
de câmbio; realizam operações de câmbio com clientes para liqui- saída e destino desse envio.
dação de até US$ 100 mil ou em moedas de outras nacionalidades e É preciso contar com uma instituição financeira para interme-
operações no mercado interbancário, arbitragens no país e através diar esse processo.
de banco autorizado a operar no mercado de câmbio e arbitragem O motivo do envio também deve ser explicado, para que se
com o exterior. adeque ao enquadramento de câmbio do BACEN do Brasil.
Operações Básicas A remessa internacional é uma operação sujeita ao IOF e tam-
Qualquer modalidade de pagamentos ou recebimentos em bém outros impostos sobre o valor, dependendo do enquadramen-
moeda estrangeira, inclusive, aplicações no mercado financeiro ex- to do BACEN. Os enquadramentos mais comuns são: pagamento de
terno, transferências. cursos, manutenção de residências e compra de imóveis no exterior.
Todas as operações de câmbio são formalizadas e registradas Além disso, uma taxa de envio deve ser paga a instituição que
no sistema de câmbio – Sistema Integrado de Registro de Opera- viabiliza a transação; o valor muda de instituição para instituição.
ções de Câmbio.
SISCOMEX
Características de Contratos de Câmbio Programa integrado de comércio exterior que possibilita as
Operações que envolvem a movimentação de valores para o operações de compra e venda no mercado internacional.
exterior.Implica uma negociação de troca de moedas, regulamenta- Foi criado em 1992, iniciando suas operações na exportação no
do pelo BACEN, através da circular nº 3591, de 16/12/2013. Nesse ano seguinte; e em 1997 foi implantado seu módulo de importação.
contrato, devem constar as partes interessadas, ou seja, a institui- Integra todo o país na área de comércio exterior, sendo ope-
ção que está autorizada a operar o câmbio, a parte que está no Bra- racionalizado pela rede SERPRO. Para sua utilização, é necessário o
cadastro da empresa na Receita Federal, para os processamentos
sil e a parte que se encontra no exterior.
de registros na importação e exportação.
É necessário, discriminar no documento; o custo da operação,
Seu objetivo é simplificar e padronizar as operações de comér-
a taxa de câmbio, o prazo para liquidação da operação, o intermedi-
cio exterior, agilizando as operações de embarque de mercadoria,
ário (casa de câmbio) e a taxa da comissão de corretagem.
diminuindo o período de liberação dos importados, dispondo de
controle automático, gerando dados confiáveis, inibindo possíveis
Taxas de Câmbio fraudes, ampliando atendimentos, motivando a entrada de novas
Processo da relação de troca entre moedas. É possível quan- empresas do comércio exterior.
tificar como o montante de Real necessário para trocar por dólar,
euro, etc.
A relação entre a taxa de Câmbio surge entre a demanda e a
oferta pelas demais moedas em relação ao Real. GARANTIAS DO SISTEMA FINANCEIRO NACIONAL:
Exemplo: Os exportadores compram produtos no Brasil e ven- AVAL; FIANÇA; PENHOR MERCANTIL; ALIENAÇÃO FI-
dem para o resto do mundo, logo, recebem dos compradores em DUCIÁRIA; HIPOTECA; FIANÇAS BANCÁRIAS
dólar que entram na economia brasileira. Enquanto isso, no Bra-
sil, os fornecedores precisam receber em Real. Já, os importadores GARANTIAS DO SISTEMA FINANCEIRO NACIONAL
compram mercadorias no exterior e trazem para o país, vendem São obrigações assumidas por meio do oferecimento do patri-
e recebem em Real; porém, os fornecedores estrangeiros querem mônio para garantir uma dívida.
levar dólares para o exterior. Temos assim, a relação de oferta e de- Aval: Declaração unilateral através da qual o avalista assume as
obrigações previstas no titulo.
1 Fonte: www.toroinvestimentos.com.br

13
CONHECIMENTOS BANCÁRIOS
Fiança: O fiador garante satisfazer o credor através da quitação
da dívida, caso o devedor não o faça. CRIME DE LAVAGEM DE DINHEIRO: CONCEITO E ETA-
Penhor mercantil: Válido para as negociações comerciais. Ga- PAS. PREVENÇÃO E COMBATE AO CRIME DE LAVAGEM
rantia real sobre bens móveis. Estabelecido em favor do credor para DE DINHEIRO: LEI Nº 9.613/98 E SUAS ALTERAÇÕES
que haja mais certeza que o seu direito será realizado. O devedor
transfere para o credor a posse de um bem (estoque, veículos, jóias) CRIME DE LAVAGEM DE DINHEIRO
móvel até que sua dívida seja quitada, desta forma o se devolve a CONCEITO E ETAPAS
posse do bem para seu dono. Toda situação que tem como intenção ocultar a origem de
Alienação fiduciária: Transferência da posse de um bem à ins- dinheiro de atividades criminosas. Ou seja, são tentativas de dar
tituição financeira. É realizado principalmente, nos contratos de fi- aparência de dinheiro “limpo” (lícito) para quantias “sujas” (ilícitas).
nanciamento de veículos e imóveis. A informação de que o compa- Suas fases compreendem:
rador tem direito de usufruir do bem, mas juridicamente pertence a 1ª. Colocação – Quando o dinheiro entra no mercado financei-
instituição que concedeu o crédito até seu pagamento total. ro, circulando através da aquisição de bens (geralmente com paga-
Hipoteca: Na contratação de um crédito se oferece um bem mento em espécie), depósitos em contas correntes e em contas de
imóvel de sua propriedade que ficará e caso não ocorra o pagamen- “paraísos fiscais”, etc.
to, o bem poderá ser tomado pelo credor. 2ª. Ocultação – Também conhecida como extratificação, tende
Fiança bancária: Garantia concedida pela instituição financeira a dificultar o rastreamento do dinheiro, através da alta quantidade
quando o cliente não possui outro tipo de fiador. de transações.
Fundo Garantidor de Crédito (FGC): Instituição sem fins lucra- 3ª. Integração – Momento em que o dinheiro sujo volta formal-
tivos, criada em 1995, com a finalidade de proteger o investidor mente para o sistema financeiro com aparência de “limpo”.
em eventuais riscos nas empresas administradores desses recursos.
Alguns produtos são cobertos pelas garantias de até R$ 250.000,00, PREVENÇÃO E COMBATE AO CRIME DE LAVAGEM DE DINHEI-
como depósitos a vista, depósitos de poupança, Letras de Câmbio, RO
Letras hipotecárias, depósitos a prazo, com ou sem emissão de CDB Regras e normas estabelecidas pelas instituições financeiras
e RDB, etc. adotam para a prevenção do crime de “lavagem de dinheiro”. O
Segundo o FGC, quanto ao limite da garantia de até R$ 1 mi- mínimo de informações exigidas e que devem estar sempre atu-
lhão: alizadas são: Nome, identificação e comprovação de documentos
“O Conselho Monetário Nacional (CMN) aprovou, em 21 de de- pessoais, profissão, estado civil e endereço.
zembro de 2017, a alteração promovida no Regulamento do Fundo As regras e normas são baseadas em critérios como cadastro
Garantidor de Créditos (FGC), que estabelece teto de R$ 1 milhão, completo e sempre atualizado, Relacionamento de proximidade
a cada período de 4 anos, para garantias pagas para cada CPF ou com o cliente e monitoramento das operações.
CNPJ. A Federação Brasileira de Bancos (FEBRABAN) desde 2008 vem
Teto para investidor vale para cada período de 4 anos, por CPF concentrando esforços na tentativa de combater à lavagem de di-
ou CNPJ. Após 4 anos, o teto é restabelecido. nheiro, aprovando inclusive, neste mesmo ano, o código de Autor-
A contagem do período de 4 anos se inicia na data da liqui- regulação Bancária, em que ficam muito claros, seus esforços na
dação ou intervenção em instituição financeira onde o investidor Prevenção e combate à Lavagem de Dinheiro e Financiamento do
detenha valor garantido pelo FGC. Terrorismo e Responsabilidade Social.
Permanece inalterado o limite de ​R$ 250 mil por CPF ou CNPJ
e conglomerado financeiro. Lei n.º 9.613/1998 e suas alterações
Aos investimentos contratados ou repactuados até 21 de de- Mais conhecida como “Lei de lavagem de dinheiro”, foi criada
zembro de 2017 não se aplica o teto de R$ 1 milhão a cada período para atender as solicitações de instituições financeiras e econômi-
de 4 anos”. cas, que já tinham esgotados todos os recursos jurídicos contra os
crimes de lavagem de dinheiro; já que nela se prevêem punições
rigorosas para os praticantes de tais atos, porém com algumas es-
Como era Como ficou
pecificações e exclusividades para tipos de crimes, penas e multas.
Garantia de até R$ 250 Em 09 de julho de 2012 foi publicada uma nova lei sobre lava-
mil por CPF/CNPJ e conglome- gem de dinheiro, a Lei nº 12.683, também chamada de PLDII, que
rado financeiro, em depósitos apenas atualiza a Lei nº 9.613/98.
Limite permanece A PLDII tem o objetivo de tornar mais eficiente a investigação
cobertos pelo Fundo Garan-
inalterado. criminal e o processo penal para os crimes de lavagem de dinheiro.
tidor de Créditos e emitidos
por instituições associadas à Uma das alterações foi permitir o enquadramento com origem
entidade. oculta ou ilícita e a adoção de punição mais severa. Isto foi neces-
sário devido o nível de inteligência e inovação nos métodos de atu-
Teto de R$ 1 milhão por ação dos criminosos.
Não havia teto para garan-
CPF ou CNPJ, a cada período Enquanto na Lei 9.613/98, havia uma lista pré definidas de ati-
tia paga pelo FGC por CPF​ou
de 4 anos,​para a garantia vidades ilícitas, por exemplo, tráfico de drogas, terrorismo, seques-
CNPJ em qualquer período.
paga pelo FGC. tro, etc., na PLDII a possibilidade é de punição para qualquer que
seja a origem ilícita.
Investidores não-resi-
Investidores não-resi- Na Lei 9.613/98, o teto para as multas era de R$ 200.00,00,
dentes passam a contar com
dentes não contavam com a com penas de 3 à 10 anos de reclusão; agora as multas podem che-
a garantia, para investimen-
garantia do FGC. gar a R$ 20 milhões.
tos elegíveis.
Também ocorreu a ampliação dos tipos de profissionais obriga-
dos a enviar ao COAF, informações de operações suspeitas, como as
Fonte: https://www.fgc.org.br/garantia-fgc/fgc-nova-garantia de doleiros, comerciantes de artigos de luxo, etc.

14
CONHECIMENTOS BANCÁRIOS
Como esta nova lei trata-se de uma atualização, já prevê a pos- I – Situações relacionadas com operações em espécie em moe-
sibilidade de apreensão em nome de “laranjas” e também a sua da nacional com a utilização de contas de depósitos ou de contas de
venda, ficando este valor depositado em juízo até o final do julga- pagamento;
mento. II – Situações relacionadas com operações em espécie e car-
No caso da colaboração do auto, co-autor ou qualquer partici- tões pré-pagos em moeda estrangeira e cheques de viagem;
pante da lavagem de dinheiro colaborar com as autoridades, a pena III – Situações relacionadas com a identificação e qualificação
poderá ser reduzida de 1 à, cabendo ao juiz a decisão por sua apli- de clientes;
cação ou redução, a qualquer tempo, mesmo após a condenação IV – Situações relacionadas com a movimentação de contas de
depósito e de contas de pagamento em moeda nacional;
VI – Situações relacionadas com operações de crédito no País;
CIRCULAR BACEN 3.461/2009 E SUAS ALTERAÇÕES E VII – Situações relacionadas com a movimentação de recursos
CARTA-CIRCULAR BACEN 3.542/12 oriundos de contratos com o setor público;
VIII – Situações relacionadas a consórcios;
Circular Bacen nº 3461/2009 IX – Situações relacionadas a pessoas ou entidades suspeitas
Circular que trata de alguns procedimentos específicos na pre- de envolvimento com financiamento ao terrorismo e a proliferação
venção dos crimes previstos na Lei nº 9.613/1998. de armas de destruição em massa;
São procedimentos que as instituições financeiras autorizadas X – Situações relacionadas com atividades internacionais;
a funcionar, devem realizar. Os artigos 12 e 13 desta circular, infor- XI – Situações relacionadas com operações de crédito contra-
mam por exemplo, que as instituições financeiras são obrigadas a tadas no exterior;
fazer comunicação de informações suspeitas ao COAF. XII – Situações relacionadas com operações de investimento
Conforme a Circular: externo;
“Comunicações ao Coaf XIII – Situações relacionadas com funcionários, parceiros e
Art. 12. As instituições de que trata o art. 1º devem comunicar prestadores de serviços terceirizados;
ao Conselho de Controle de Atividades Financeiras (Coaf), na forma XIV – Situações relacionadas a campanhas eleitorais;
determinada pelo Banco Central do Brasil: XV – Situações relacionadas a BNDU (Bens Não De Uso) e ou-
I - as ocorrências de que trata o art. 8º, § 1º, inciso I, no prazo tros ativos não financeiros;
de até 5 (cinco) dias úteis após o encerramento do mês calendário; XVI – Situações relacionadas com a movimentação de contas
II - as ocorrências de que trata o art. 9º, § 1º, incisos I e III, na correntes em moeda estrangeira (CCME); e
data da operação. Parágrafo único. Devem também ser comunica- XVII – Situações relacionadas com operações realizadas em
das ao Coaf as propostas de realização das operações de que trata
municípios localizados em regiões de risco.
o caput.
Art. 13. As instituições de que trata o art. 1º devem comunicar
ao Coaf, na forma determinada pelo Banco Central do Brasil: AUTORREGULAÇÃO BANCÁRIA
I - as operações realizadas ou serviços prestados cujo valor seja
igual ou superior a R$10.000,00 (dez mil reais) e que, considerando
A Federação Brasileira de Bancos-Febraban cumprindo sua vo-
as partes envolvidas, os valores, as formas de realização, os instru-
cação de representar o setor bancário e de fortalecer a sua relação
mentos utilizados ou a falta de fundamento econômico ou legal,
com a sociedade liderou, em conjunto com os maiores bancos do
possam configurar a existência de indícios dos crimes previstos na
País, a criação do Sistema Brasileiro de Autorregulação Bancária.
Lei nº 9.613, de 1998;
II - as operações realizadas ou serviços prestados que, por sua A autorregulação possibilitará aos bancos, em conjunto com a
habitualidade, valor ou forma, configurem artifício que objetive sociedade, harmonizar o sistema bancário, suplementando as nor-
burlar os mecanismos de identificação, controle e registro; mas e os mecanismos de controle já existentes.
III - as operações realizadas ou os serviços prestados, qualquer A plena concorrência é essencial para a manutenção dos direi-
que seja o valor, a pessoas que reconhecidamente tenham perpe- tos do consumidor. Assim, a Febraban desenvolveu a autorregula-
trado ou intentado perpetrar atos terroristas ou neles participado ção como um sistema voluntário, focado na sadia concorrência do
ou facilitado o seu cometimento, bem como a existência de recur- mercado, na elevação de padrões e no aumento da transparência
sos pertencentes ou por eles controlados direta ou indiretamente; em benefício dos consumidores. Ao se tornar voluntário na inte-
IV - os atos suspeitos de financiamento do terrorismo. gração do sistema de autorregulação, aderindo aos mais elevados
§ 1º O disposto no inciso III aplica-se também às entidades per- padrões ético e de conduta, cada banco atesta o comprometimento
tencentes ou controladas, direta ou indiretamente, pelas pessoas com os seus consumidores e com a sociedade brasileira.
ali mencionadas, bem como por pessoas e entidades atuando em Os bancos fazem parte do dia-a-dia das pessoas, possibilitando
seu nome ou sob seu comando. desde o pagamento e o recebimento de salários, aposentadorias,
§ 2º As comunicações das ocorrências de que tratam os incisos impostos, taxas, contas e compras, até a tomada de empréstimos
III e IV devem ser realizadas até o dia útil seguinte àquele em que e aplicação em investimentos. Apenas em 2007, foram realizadas
verificadas. algo em torno de 41 bilhões de transações, muitas das quais nas
§ 3º Devem também ser comunicadas ao Coaf as propostas de mais de 18.000 agências distribuídas no País. Números dessa mag-
realização das operações e atos descritos nos incisos I a IV”. nitude mostram o quanto um sistema bancário saudável, ético e
eficiente é essencial para o desenvolvimento econômico e social do
Carta-Circular Bacen nº 4001/2020 Brasil
Circular com a relação das atividades e situações que possam
configurar crimes de lavagem de dinheiro ou ocultação de bens, di-
reitos e valores. Compondo 17 categorias a serem adotadas pelas
instituições financeiras autorizadas a funcionar no país.

15
CONHECIMENTOS BANCÁRIOS
As atividades bancárias, por sua importância, complexidade e Conceitos
dinamismo, são reguladas por um número considerável de normas Para os efeitos deste código, considera-se:
voltadas à estruturação do Sistema Financeiro e ao relacionamento Ética - virtude caracterizada pela orientação dos atos das asso-
entre os bancos e seu público. Diversas entidades asseguram que ciadas segundo os valores do bem e da decência pública.
tais normas sejam devidamente respeitadas. Dentre elas, o Banco Conduta - manifestação do modo como uma associada se com-
Central, os órgãos de defesa do consumidor, os tribunais, as organi- porta perante a sociedade, tendo como base as crenças, culturas,
zações não-governamentais e os veículos de comunicação. Esse sis- valores morais e éticos que seguem.
tema de normas e mecanismos de controle é reconhecidamente só- Conflito de Interesse - qualquer situação na qual a associada
lido e eficaz. Não obstante, sempre haverá o que ser aperfeiçoado. possa ter sua capacidade de julgamento e decisão afetada, po-
dendo incorrer ou sugerir quebra do princípio de imparcialidade e
Preâmbulo favorecer seu próprio interesses, de terceiros ou, ainda, de cunho
O Código de Conduta Ética e Autorregulação reforça o compro- político, em detrimento dos interesses e princípios da FEBRABAN.
misso de todas as Instituições Financeiras associadas à Federação Compliance - Compliance é o dever de cumprir, de estar em
Brasileira de Bancos – FEBRABAN com o Sistema de Autorregulação conformidade e fazer cumprir leis, diretrizes, regulamentos inter-
Bancária – SARB. nos e externos, buscando mitigar o risco atrelado à reputação, ao
Criado por deliberação do Conselho Diretor da FEBRABAN, em risco legal ou regulatório.
28 de agosto de 2008, o SARB estabelece padrões ainda mais ele- Corrupção - toda e qualquer ação, culposa ou dolosa, que im-
vados de conduta a serem seguidos pelas Instituições Financeiras plique sugestão, oferta, promessa, concessão (forma ativa) ou so-
Signatárias, de modo que possam atuar de forma ainda mais trans- licitação, exigência, aceitação ou recebimento (forma passiva), de
parente e eficiente, em benefício do segmento, dos consumidores vantagens indevidas, de natureza financeira ou não, tais como: pro-
e de toda a sociedade. pina, tráfico de influência e favorecimentos, em troca de realização
Regido pelos princípios da integridade, equidade, respeito ao ou omissão de atos inerentes as suas atribuições, operações ou ati-
consumidor, transparência, excelência, sustentabilidade e confian- vidades, ou visando a benefícios para si ou para terceiros.
ça, o SARB reflete o compromisso do sistema financeiro no seu re- Instituições Financeiras – pessoa jurídica de direito público ou
lacionamento com o consumidor, com a livre concorrência; respon- privado, conforme Lei nº 7.492/86, que tenha como atividade prin-
sabilidade socioambiental; prevenção de situações de conflito de cipal ou acessória, cumulativamente ou não, a captação, interme-
interesses; prevenção à fraude; combate à lavagem de dinheiro e diação ou aplicação de recursos financeiros de terceiros, em moeda
com a adoção de medidas voltadas à anticorrupção. nacional ou estrangeira, ou a custódia, emissão, distribuição, ne-
Aliados a este Código de Conduta Ética e Autorregulação, o Sis- gociação, intermediação ou administração de valores mobiliários.
tema de Autorregulação Bancária também é regido por Normativos Signatárias – todas as Instituições Financeiras associadas à FE-
de adesão voluntária pelas Instituições Financeiras Signatárias, que BRABAN.
se harmonizam à legislação vigente e possuem três principais eixos: Signatárias nível I – Instituições Financeiras Signatárias a este
Relacionamento com o Consumidor; Responsabilidade Socioam- Código de Conduta Ética e Autorregulação.
biental; Prevenção à Lavagem de Dinheiro e ao Financiamento ao Signatárias nível II – Instituições Financeiras Signatárias que
Terrorismo. aderiram a pelo menos um dos eixos normativos do SARB.
O Código de Conduta Ética e Autorregulação representa um Signatárias nível III – Instituições Financeiras Signatárias que
marco no fortalecimento do Sistema de Autorregulação Bancária e aderiram a todos os eixos normativos do SARB. 2
um compromisso das Instituições associadas à FEBRABAN com um O Código completo está disponível em:
sistema financeiro saudável, ético e eficiente. http://cms.autorregulacaobancaria.com.br/Arquivos/docu-
mentos/PDF/C%C3%B3digo%20de%20Conduta%20%C3%89ti-
Público-alvo e Abrangência ca%20e%20Autorregula%C3%A7%C3%A3o%20Banc%C3%A-
Este Código de Conduta Ética e Autorregulação Bancária é apli- 1ria%20VF.pdf
cável a todas as Instituições Financeiras associadas à Federação Bra-
sileira de Bancos - FEBRABAN. REFERÊNCIAS
A observância dos conceitos e condutas é obrigatória para as
Instituições Financeiras associadas, bem como para as entidades https://www.anbima.com.br/pt_br/noticias/guia-anbima-
que, embora não associadas, expressamente aderirem a este Códi- -com-boas-praticas-sobre-prevencao-a-lavagem-de-dinheiro-e-ao-
go mediante a assinatura do competente termo de adesão. -financiamento-do-terrorismo-auxilia-instituicoes-a-implementa-
O presente Código não se sobrepõe à legislação e regulamen- rem-suas-politicas-internas.htm
tação vigentes, ainda que venham a ser editadas normas, após o
início de sua vigência, que sejam contrárias às disposições ora tra- https://www.bcb.gov.br/pre/normativos/busca/download-
zidas. Caso haja contradição entre regras estabelecidas neste Códi- Normativo.asp?arquivo=/Lists/Normativos/Attachments/47555/
go e normas legais ou regulamentares, essas últimas prevalecerão, Circ_3461_v1_O.pdf
sem prejuízo das demais regras contidas neste Código.
As instituições associadas devem assegurar que o presente Có- https://www.bcb.gov.br/pre/normativos/busca/download-
digo seja também observado por todos os integrantes do seu con- Normativo.asp?arquivo=/Lists/Normativos/Attachments/50982/
glomerado ou grupo financeiro, que estejam autorizados no Brasil, Circ_4001_v1_O.pdf
a desempenhar qualquer das atividades autorizadas pelo Conselho
Monetário Nacional e pelo Banco Central do Brasil. Tal obrigação https://www.fgc.org.br/garantia-fgc/sobre-a-garantia-fgc
não implica o reconhecimento, por parte das instituições associa-
das, da existência de qualquer modalidade de assunção, solidarie- https://www.gov.br/fazenda/pt-br/orgaos/orgaos-colegiados-
dade ou transferência de responsabilidade entre estes integrantes. -do-me/crsnsp/institucional/historico-e-competencia
Entretanto, todas as referidas associadas estão sujeitas aos concei-
tos e condutas estabelecidas pelo presente Código. 2 Fonte: www.consumidor.mppr.mp.br

16
CONHECIMENTOS BANCÁRIOS
https://www.gov.br/fazenda/pt-br/assuntos/cmn
https://www.bcb.gov.br/acessoinformacao/cmn EXERCÍCIOS

https://www.bcb.gov.br/pre/composicao/soc_arrend_merc. 1. (FITO – ANALISTA DE GESTÃO FINANÇAS – SUPERIOR – VU-


asp?frame=1#:~:text=O%20arrendamento%20mercantil%20(lea- NESP – 2020) Assinale a alternativa correta a respeito do Sistema
sing)%20permite,bem%20sem%20ser%20propriet%C3%A1rio%20 Financeiro Nacional.
dele.&text=Sociedade%20de%20arrendamento%20mercantil%20 (A) As instituições financeiras, conhecidas por bancárias, são
(SAM,fins%20de%20uso%20pr%C3%B3prio%20desta. aquelas a quem se permite a criação de moeda por meio do recebi-
mento de depósitos à vista.
https://www.ancord.org.br/ (B) Corretoras, bancos de investimento e sociedades de arren-
damento mercantil são exemplos de instituições financeiras conhe-
http://www.b3.com.br/pt_br/ cidas como bancárias.
(C) O Sistema Financeiro Nacional é constituído pelas institui-
https://www.bcb.gov.br/pre/composicao/assoc_poup_emp. ções financeiras privadas existentes no país.
asp?frame=1#:~:text=empr%C3%A9stimos%20e%20financiamen- (D) O Banco Central do Brasil (BACEN) tem por finalidade bási-
tos%20contra%C3%ADdos%20no%20exterior%3B&text=letras%20 ca a normatização, fiscalização e o controle do mercado de valores
de%20cr%C3%A9dito%20imobili%C3%A1rio%2C%20letra,sen- mobiliários, representado principalmente por ações, partes benefi-
do%20supervisionada%20pelo%20Banco%20Central. ciárias e debêntures.
(E) O Conselho Monetário Nacional (CMN) desenvolve uma sé-
http://www.susep.gov.br/setores-susep/seger/coate/pergun- rie de atividades executivas, tais como o recebimento de depósito
tas-mais-frequentes-sobre-planos-por-sobrevivencia-pgbl-e-vgbl à vista.

http://novosite.susep.gov.br/ 2. (FITO – ANALISTA DE GESTÃO FINANÇAS – SUPERIOR – VU-


NESP – 2020) Assinale a alternativa correta sobre o Sistema de Li-
https://www.gov.br/fazenda/pt-br/orgaos/orgaos-colegiados- quidação e Custódia.
-do-me/crsfn (A) A taxa Selic é fixada periodicamente pelo Comitê de Política
Monetária (COPOM) da Comissão de Valores Mobiliários.
https://www.bndes.gov.br/wps/portal/site/home/financia- (B) O Sistema Especial de Liquidação e Custódia (Selic) tem por
mento/guia/comprovacao-de-inexistencia-de-similar-nacional finalidade controlar e liquidar financeiramente as operações de
compra e de venda de títulos públicos (Dívida Pública Federal Inter-
https://www.bndes.gov.br/wps/portal/site/home/onde-atu- na) e manter sua custódia física e escritural.
amos/exportacao (C) Os Certificados de Depósitos Interfinanceiros (CDIs) são tí-
tulos emitidos por instituições financeiras com circulação restrita
https://www.gov.br/cvm/pt-br/acesso-a-informacao-cvm/ins- no mercado internacional.
titucional/competencia (D) Os participantes da Central de Custódia e de Liquidação
Financeira de Títulos Privados (Cetip) são as instituições que com-
https://www.fgcoop.coop.br/quem-somos põem o mercado financeiro, como bancos privados, corretoras pú-
blicas e distribuidoras de TVM, fundos de investimentos em títulos
https://www.bcb.gov.br/acessoinformacao/cmn do tesouro nacional, fundos de pensão, companhias de seguro vin-
culadas a bancos públicos.
https://www.gov.br/cvm/pt-br/acesso-a-informacao-cvm/ins- (E) Os títulos mais negociados no Selic são os emitidos pelo Te-
titucional/sobre-a-cvm souro Nacional que compõem a Dívida Pública Federal Externa.

https://www.gov.br/cvm/pt-br 3. (FITO – ANALISTA DE GESTÃO FINANÇAS – SUPERIOR – VU-


NESP – 2020) Assinale a alternativa correta sobre o Certificado de
Depósitos Bancários (CDB). (A) É uma obrigação de pagamento pas-
sada de um capital aplicado em depósito a prazo fixo em institui-
ções financeiras.
(B) Não incide Imposto de Renda sobre os rendimentos produ-
zidos pelo CDB.
(C) Não pode ser negociado antes de seu vencimento.
(D) Se for prefixado, é informado ao investidor, no momento da
aplicação, quanto irá pagar em seu vencimento.
(E) Trata-se de um título de alto risco, visto que está vinculado
à solvência da instituição financeira.

17
CONHECIMENTOS BANCÁRIOS
4. (PREFEITURA DE COCAL/PI – AUXILIAR ADMINISTRATIVO – 9. (BANRISUL – ESCRITURÁRIO – MÉDIO – FCC – 2019) Para
MÉDIO – IMA – 2019) As operações exercidas pelos bancos se divi- que possam fornecer empréstimo e financiamento para aquisição
dem em operações ativas e operações passivas, onde normalmente de bens, serviços e capital de giro no mercado nacional, as socieda-
o lucro dos bancos resultam da diferença entre as operações pas- des de crédito, financiamento e investimento, além de utilizar o seu
sivas e ativas. Assinale a alternativa que se refere a uma operação capital próprio, emitem
passiva dos bancos: (A) letras de câmbio.
(A) Desconto de títulos. (B) certificados de depósito bancário.
(B) Concessão de crédito rural. (C) notas promissórias comerciais.
(C) Operações de repasses e refinanciamentos. (D) letras de crédito imobiliário.
(D) Depósitos a prazo fixo (de pessoas físicas ou jurídicas). (E) debêntures conversíveis.

5. (METRÔ/SP – ANALISTA DE DESENVOLVIMENTO DEGESTÃO 10. (BANRISUL – ESCRITURÁRIO – MÉDIO – FCC – 2019) O Co-
JÚNIOR AUXILIAR ADMINISTRATIVO A – SUPERIOR – FCC – 2019) mitê de Política Monetária (Copom) é o órgão decisório do Banco
O Banco Central do Brasil é uma autarquia federal integrante do Central que, no regime de metas para a inflação, implementado no
Sistema Financeiro Nacional, sendo vinculado ao Ministério da Eco- Brasil em 1999, tem por objetivo:
nomia. Dentre as suas diversas funções, o Banco Central é respon- I. Promover a maior geração de empregos.
sável por I I . Estabelecer as diretrizes da política monetária.
(A) negociar ações de sociedades de capital aberto e outros va- I I I . Definir a meta para a taxa básica de juros no Brasil e seu
lores mobiliários. eventual viés. Está correto o que consta de
(B) certificar os profissionais do mercado financeiro e de capi- (A) I, apenas.
tais do Brasil. (B) I e I I , apenas.
(C) gerenciar as reservas cambiais do país em ouro e em moeda (C) I I e I I I , apenas.
estrangeira. (D) I I I , apenas. (E) I, I I e I I I .
(D) fazer o registro das companhias abertas.
(E) organizar o funcionamento e as operações das bolsas de 11. (BANRISUL – ESCRITURÁRIO – MÉDIO – FCC – 2019) A Co-
valores. missão de Valores Mobiliários (CVM) é uma entidade autárquica em
regime especial, vinculada ao Ministério da Fazenda, que tem o ob-
6. (BANRISUL – ESCRITURÁRIO – MÉDIO – FCC – 2019) No âm- jetivo de fiscalizar, normatizar, disciplinar e desenvolver o mercado
bito do Sistema Financeiro Nacional, a atribuição da coordenação de valores mobiliários no Brasil. Para tanto, o seu mandato legal
da Dívida Pública Federal externa e interna é contempla
(A) do Banco Central do Brasil. (A) proteger as instituições financeiras intermediárias.
(B) do Ministério da Fazenda. (B) assegurar o sigilo das informações sobre os valores mobiliá-
(C) da Secretaria do Tesouro Nacional. rios negociados e as companhias que os tenham emitido.
(D) do Ministério do Planejamento, Orçamento e Gestão. (C) estimular a formação de poupança e a sua aplicação em
(E) do Conselho Monetário Nacional. títulos do Tesouro Nacional. (D) estimular as aplicações permanen-
tes em ações do capital social de companhias abertas sob controle
7. (BANRISUL – ESCRITURÁRIO – MÉDIO – FCC – 2019) Como público.
parte da missão de assegurar que o sistema financeiro seja sólido (E) evitar modalidades de manipulação destinadas a criar con-
e eficiente, a autorização para funcionamento de instituições finan- dições artificiais de negociação no mercado de valores mobiliários.
ceiras controladas por capitais nacionais é concedida (A) pelo Con-
selho Monetário Nacional. 12. (BANRISUL – ESCRITURÁRIO – MÉDIO – FCC – 2019) O
(B) pela Comissão de Valores Mobiliários. Conselho de Recursos do Sistema Financeiro Nacional é um órgão
(C) pela Presidência da República. colegiado, integrante da estrutura do Ministério da Fazenda, e que
(D) pelo Banco Central do Brasil. tem por finalidade julgar os recursos contra as sanções aplicadas
(E) pelo Senado Federal. pelo Banco Central e pela Comissão de Valores Mobiliários (CVM)
e, nos processos de lavagem de dinheiro, as sanções aplicadas pelo
8. (BANRISUL – ESCRITURÁRIO – MÉDIO – FCC – 2019) O que Conselho de Controle de Atividades Financeiras (COAF) e demais
caracteriza um banco múltiplo, como o Banrisul, é a autoridades competentes em
(A) possibilidade de captar, por meio das suas agências, somen- (A) casos de interesse exclusivo de investidores estrangeiros.
te depósitos à vista. (B) processos de segunda instância judicial.
(B) atuação com, pelo menos, duas carteiras, devendo uma, (C) situações de litígio entre instituições financeiras estatais.
obrigatoriamente, ser de banco comercial ou de investimento. (D) segundo grau e última instância administrativa.
(C) proibição de realizar compra e venda de moeda estrangeira (E) arbitragens decorrentes da utilização de instrumentos fi-
em espécie. nanceiros derivativos.
(D) atuação na gestão dos recursos do Fundo de Garantia por
Tempo de Serviço (FGTS).
(E) obrigatoriedade de ter o controle acionário de uma socieda-
de de arrendamento mercantil.

18
CONHECIMENTOS BANCÁRIOS
13. (BANRISUL – ESCRITURÁRIO – MÉDIO – FCC – 2019) O Sis- 17. (BANRISUL – ESCRITURÁRIO – MÉDIO – FCC – 2019) O Fun-
tema Especial de Liquidação e de Custódia (Selic) é uma das deno- do Garantidor de Créditos (FGC) administra o mecanismo de pro-
minadas Infraestruturas do Mercado Financeiro (IMF), por meio do teção aos depositantes e investidores no âmbito do Sistema Finan-
qual ceiro Nacional e, sob certas condições, garante cobertura ordinária
(A) são custodiados títulos privados mantidos em carteiras de sobre
fundos de investimento. (B) são registradas as transações de com- (A) depósitos à vista e valores aplicados em previdência privada
pra e venda de títulos emitidos por instituições financeiras. VGBL ou PGBL.
(C) são transferidos os títulos para o comprador, em cada ne- (B) depósitos sacáveis mediante aviso prévio e letras de câm-
gociação, em tempo real. (D) ocorrem transferências de reservas e bio.
fundos para as câmaras de compensação e liquidação. (C) depósitos a prazo, com ou sem emissão de certificado, e
(E) há possibilidade de lançamentos retroativos até determina- depósitos judiciais.
do horário limite no dia posterior. (D) letras de crédito do agronegócio e cotas de fundos de in-
vestimento.
14. (BANRISUL – ESCRITURÁRIO – MÉDIO – FCC – 2019) As (E) operações relacionadas a programas de interesse governa-
Bolsas são ambientes físicos ou virtuais organizados para compra e mental instituídos por lei e depósitos de poupança.
venda de ações, derivativos e outros valores mobiliários. Para que
as transações ocorram, é necessário que funcione, de forma harmo- 18. (BANRISUL – ESCRITURÁRIO – MÉDIO – FCC – 2019) Os
niosa, toda uma cadeia de serviços de negociação e pós-negocia- produtos e serviços bancários, oferecidos pelos bancos comerciais,
ção, o que, no Brasil, caracteriza o setor como sendo são objeto de regulação do Banco Central do Brasil (BACEN). Por-
(A) verticalmente integrado. tanto, para o funcionário da instituição, compreender as expecta-
(B) de regime de compensação negociado caso a caso para de- tivas do cliente
rivativos financeiros. (A) não deve ser objeto de seu trabalho, visto que o tempo
(C) horizontalmente distribuído entre os agentes do mercado. gasto com essa atividade diminui a dedicação a outras atividades
(D) aquele em que é desnecessária a existência de contraparte importantes a serem desenvolvidas.
central garantidora. (B) não é importante, visto que o cliente poderá encontrar es-
(E) dependente da Comissão de Valores Mobiliários para con- ses produtos e serviços em qualquer outra instituição financeira.
trole do risco. (C) é necessário, bem como interpretar as necessidades atuais
e futuras do cliente, fazendo com que a oferta de valor de um pro-
15. (BANRISUL – ESCRITURÁRIO – MÉDIO – FCC – 2019) Fre- duto ou serviço seja a mais adequada possível.
quentemente ofertados aos clientes das redes bancárias, os títulos (D) não é necessário, bem como conhecer detalhadamente os
de capitalização proporcionam produtos e serviços oferecidos pela instituição, porque isso foge
(A) garantia da instituição financeira emissora. completamente das suas atribuições.
(B) isenção de imposto de renda sobre o valor resgatado que (E) pode parecer acintoso, ao passo que questões de ordem
exceda à aplicação. profissional e pessoal poderão ser abordadas, não contribuindo
(C) prazo de validade igual ou superior a seis meses na moda- com práticas apropriadas de atendimento ao cliente, gerando cons-
lidade tradicional. trangimentos.
(D) possibilidade de transferência durante a vigência, de uma
pessoa para outra. 19. (BANRISUL – ESCRITURÁRIO – MÉDIO – FCC – 2019) A Cir-
(E) a opção, pelo subscritor, da emissão “ao portador”. cular no 3.461/2009 e suas alterações, do Banco Central, consolida
as regras sobre os procedimentos a serem adotados por instituições
16. (BANRISUL – ESCRITURÁRIO – MÉDIO – FCC – 2019) As financeiras na prevenção e combate às atividades relacionadas com
Cédulas de Crédito Bancário (CCB) constituem uma promessa de os crimes de lavagem de dinheiro, previstos na Lei n2 9.613/1998 e
pagamento em dinheiro e são: suas alterações. Dentre outros, determina que deve ser dispensada
I. Títulos executivos judiciais que representam dívida em di- especial atenção
nheiro, certa, líquida e exigível. (A) a situações em que não seja possível manter atualizadas as
I I . Lastreadas em uma operação de crédito de qualquer mo- informações cadastrais de seus clientes.
dalidade. (B) ao sistema de vigilância presencial nas dependências das
I I I . Isentas de imposto de renda sobre os rendimentos, quan- agências bancárias.
do adquiridas por pessoa física. Está correto o que consta de (C) à habitualidade de depósitos em espécie em valores totais
(A) I, apenas. mensais que não superem três mil reais.
(B) I e I I I , apenas. (D) à elevada frequência de utilização, pelo cliente, de caixas
(C) I I e I I I , apenas. eletrônicos em diferentes locais.
(D) I, I I e I I I . (E) ao volume das aquisições de moeda estrangeira pelo cliente
(E) I I , apenas.
para fins de alegadas viagens internacionais.

19
CONHECIMENTOS BANCÁRIOS
20. (BRB – ESCRITURÁRIO – MÉDIO – IADES – 2019) Considere 23. (BANESTES – TÉCNICO BANCÁRIO – MÉDIO – FGV – 2018)
uma instituição financeira autorizada a operar três carteiras: a car- A remuneração atual da caderneta de poupança possui um compo-
teira de desenvolvimento, a carteira de crédito imobiliário e uma nente básico, baseado na taxa referencial (TR), e um adicional, de-
outra carteira. Com base apenas nessas informações, é correto afir- pendente da política monetária corrente. O parâmetro de política
mar que a instituição monetária utilizado no cálculo é a:
(A) está autorizada a captar depósitos à vista. (A) taxa do CDI – Certificado de Depósito Interbancário;
(B) pode emitir debêntures. (B) meta da taxa Selic;
(C) opera uma carteira comercial. (C) meta de inflação;
(D) consiste em um banco público. (D) taxa Selic diária;
(E) está organizada sob a forma de sociedade limitada. (E) rentabilidade média das NTN-B’s.

21. (BRB – ESCRITURÁRIO – MÉDIO – IADES – 2019) A respeito 24. (BANESTES – TÉCNICO BANCÁRIO – MÉDIO – FGV – 2018)
das operações de arrendamento mercantil, assinale a alternativa A fiança bancária é uma operação tradicional no mercado brasileiro,
correta. em que um banco, por meio da “carta de fiança”, assume o papel de
(A) Se o valor presente das contraprestações for maior que o fiador de uma outra companhia numa operação comercial, concor-
custo do bem, a operação classifica-se como de arrendamento mer- rência pública ou de crédito. Do ponto de vista dos riscos envolvidos
cantil financeiro. para as partes, há mitigação do risco:
(B) Independentemente da modalidade de arrendamento mer- (A) de crédito envolvido entre o fiador (banco) e o afiançado
cantil, a arrendatária é sempre uma pessoa jurídica. (empresa);
(C) As operações na modalidade de arrendamento mercantil fi- (B) de mercado envolvido entre a empresa afiançada e sua con-
nanceiro são privativas das sociedades de arrendamento mercantil. traparte – um fornecedor, por exemplo;
(D) Não havendo previsão de pagamento de valor residual ga- (C) operacional envolvido entre a empresa afiançada e sua con-
rantido, tem-se, obrigatoriamente, um contrato de compra e venda, traparte – um fornecedor, por exemplo;
e não de arrendamento mercantil. (D) de crédito envolvido entre a empresa afiançada e sua con-
(E) A constituição e o funcionamento das sociedades de arren- traparte – um fornecedor, por exemplo;
damento mercantil dependem de autorização da Comissão de Valo- (E) de mercado envolvido entre o fiador (banco) e o afiançado
res Mobiliários (CVM). (empresa).

22. (BRB – ESCRITURÁRIO – MÉDIO – IADES – 2019) A Lei no 25. (BANESTES – TÉCNICO BANCÁRIO – MÉDIO – FGV – 2018)
9.613/1998 tipifica, no respectivo art. 1o , os crimes de lavagem de O Fundo Garantidor de Créditos (FGC) é uma entidade privada, sem
dinheiro, com enquadramento penal básico consistente na oculta- fins lucrativos, e que administra um mecanismo de proteção aos
ção ou dissimulação da natureza, origem, localização, disposição, correntistas, poupadores e investidores. Sua função primordial é a
movimentação ou propriedade de bens, direitos ou valores prove- recuperação dos depósitos ou créditos mantidos em instituição fi-
nientes, direta ou indiretamente, de infração penal, ao tempo em nanceira, até determinado valor, em caso de:
que estabelece, nos arts. 2o a 7o , disposições especiais referentes (A) fusão, cisão ou aquisição;
a processo e julgamento, bem como aos efeitos pessoais e patri- (B) abertura de capital;
moniais de eventual condenação. Considerando os aspectos legais (C) fechamento de capital;
referentes à lavagem de dinheiro e o fato de que ela se desenvolve (D) oferta pública inicial;
em fases que eventualmente se superpõem ou comunicam, assina- (E) intervenção, liquidação ou falência.
le a alternativa correta.
(A) A primeira fase da lavagem de dinheiro, denominada “dis- 26. (BANESTES – TÉCNICO BANCÁRIO – MÉDIO – FGV – 2018)
simulação” (layering), é caracterizada por uma multiplicidade de O cartão de crédito é um meio de pagamento que permite ao clien-
operações e transações realizadas mediante empresas e contas sem te pagar compras ou serviços até um limite de crédito previamente
aparente relação com o agente envolvido na prática delituosa, tor- definido no contrato de uso do cartão. O ideal é que o cliente sem-
nando impossível ou extremamente difícil identificar a origem ilícita pre pague suas faturas nas datas acordadas – o valor inteiro ou pelo
dos bens, direitos ou valores provenientes, direta ou indiretamente, menos um percentual do valor devido. Esse procedimento evita:
de infração penal. (A) o cancelamento do cartão de crédito;
(B) Os crimes de lavagem de dinheiro somente se configuram (B) o cancelamento da conta-corrente do cliente;
caso sejam cometidos de forma reiterada ou se a infração penal (C) a entrada no crédito rotativo;
antecedente tiver sido praticada por organização criminosa. (D) a entrada no Sistema de Proteção ao Crédito (SPC);
(C) A pena para os crimes de lavagem de dinheiro poderá ser (E) um processo junto ao Banco Central.
reduzida de um a dois terços e ser cumprida em regime semiaberto
ou aberto, sendo possível ao juiz deixar de aplicá-la ou substituí-
-la, a qualquer tempo, por pena restritiva de direitos, se o agente,
no curso de investigação ou processo, colaborar espontaneamente
com as autoridades, prestando esclarecimentos que conduzam à
apuração das infrações penais, à identificação dos autores, coauto-
res e partícipes, ou à localização dos bens, direitos ou valores objeto
da infração penal.
(D) Os tipos penais de lavagem de dinheiro admitem a forma
culposa, em que o agente criminoso dá causa ao resultado por im-
prudência, negligência ou imperícia.
(E) O processo e julgamento dos crimes de lavagem de dinheiro
são de competência exclusiva da Justiça Federal.

20
CONHECIMENTOS BANCÁRIOS
27. (BANESTES – TÉCNICO BANCÁRIO – MÉDIO – FGV – 2018)
Uma das garantias ao cumprimento de um contrato celebrado no GABARITO
âmbito do Sistema de Financiamento Imobiliário (SFI) é a alienação
fiduciária. Sobre o instituto e suas disposições legais, analise as afir-
mativas a seguir. 1 B
I. Por meio da alienação fiduciária o devedor, ou fiduciante,
com a finalidade de garantia, contrata a transferência ao credor, ou 2 C
fiduciário, da propriedade resolúvel de bem imóvel. 3 D
II. A alienação fiduciária poderá ser contratada por pessoa física
4 D
ou jurídica, não sendo privativa das entidades que operam no SFI.
III. Constitui-se a propriedade fiduciária de bem imóvel através 5 C
do registro do contrato que lhe serve de título no competente Re- 6 E
gistro de Imóveis. Está correto o que se afirma em:
(A) somente I; (B) somente II; 7 D
(C) somente I e III; 8 B
(D) somente II e III; 9 A
(E) I, II e III.
10 C
28. (BANESTES – TÉCNICO BANCÁRIO – MÉDIO – FGV – 2018) 11 E
Alfredo contraiu uma dívida com o Banco X e assinou uma cédula de
12 D
crédito bancário com o aval de João. Em relação ao aval, é correto
afirmar que o avalista: 13 C
(A) passa a ser o único responsável pelo pagamento, exoneran- 14 A
do o avalizado Alfredo de responsabilidade;
(B) responderá subsidiariamente pelo pagamento, na ausência 15 D
de bens suficientes de Alfredo para pagar a dívida; 16 E
(C) torna-se devedor solidário pelo pagamento perante o Ban- 17 B
co X, podendo esse cobrar a dívida tanto dele quanto do avalizado;
(D) não se obriga pelo pagamento porque é nulo aval prestado 18 C
em favor de instituição financeira, caso do Banco X; 19 A
(E) responderá pelo pagamento solidariamente com Alfredo,
20 D
desde que esse celebre simultaneamente contrato de fiança com
o Banco X. 21 A
22 C
29. (BANESTES – TÉCNICO BANCÁRIO – MÉDIO – FGV – 2018)
Durante a vigência de um contrato de fiança, o credor Atílio con- 23 B
cedeu prorrogação do prazo de pagamento da dívida (moratória) 24 D
ao afiançado sem consentimento do fiador Jerônimo. Com esse ato 25 E
por parte do credor, é correto afirmar que:
(A) deverá Jerônimo requerer a Atílio prorrogação do prazo 26 C
de duração do contrato para se adequar à moratória concedida ao 27 E
afiançado;
28 C
(B) Jerônimo, ainda que solidário pelo pagamento da dívida pe-
rante Atílio, ficará desobrigado pela falta de consentimento com a 29 B
moratória; 30 D
(C) Jerônimo permanecerá obrigado pelo pagamento da dívida
pelos 6 meses seguintes ao dia do vencimento; findo tal prazo ficará
desobrigado;
(D) caberá a Atílio decidir se Jerônimo ficará ou não desobriga-
ANOTAÇÕES
do da fiança com a concessão da moratória;
(E) Jerônimo poderá pedir a anulação do contrato porque é ______________________________________________________
proibido ao credor conceder moratória ao afiançado.
______________________________________________________
30. (BANESTES – TÉCNICO BANCÁRIO – MÉDIO – FGV – 2018)
Em garantia de empréstimo concedido pelo Banco W, Tereza deu ______________________________________________________
um imóvel de sua propriedade ao credor. A garantia constituída
abrange todas as acessões, melhoramentos ou construções do imó- ______________________________________________________
vel e não impede a proprietária de aliená-lo. Com base nessas infor- ______________________________________________________
mações, a garantia prestada por Tereza é:
(A) aval; ______________________________________________________
(B) fiança bancária;
(C) alienação fiduciária em garantia; ______________________________________________________
(D) hipoteca;
(E) anticrese. ______________________________________________________

21
CONHECIMENTOS BANCÁRIOS
______________________________________________________ ______________________________________________________

______________________________________________________ ______________________________________________________

______________________________________________________ ______________________________________________________

_____________________________________________________ ______________________________________________________

_____________________________________________________ ______________________________________________________

______________________________________________________ ______________________________________________________

______________________________________________________ ______________________________________________________

______________________________________________________ ______________________________________________________

______________________________________________________ ______________________________________________________

______________________________________________________ ______________________________________________________

______________________________________________________ ______________________________________________________

______________________________________________________ ______________________________________________________

______________________________________________________ ______________________________________________________

______________________________________________________ ______________________________________________________

______________________________________________________ ______________________________________________________

______________________________________________________ ______________________________________________________

______________________________________________________ ______________________________________________________

______________________________________________________ ______________________________________________________

______________________________________________________ ______________________________________________________

______________________________________________________ ______________________________________________________

______________________________________________________ ______________________________________________________

______________________________________________________ ______________________________________________________

______________________________________________________ ______________________________________________________

______________________________________________________ ______________________________________________________

______________________________________________________ ______________________________________________________

______________________________________________________ ______________________________________________________

______________________________________________________ ______________________________________________________

______________________________________________________ ______________________________________________________

______________________________________________________ ______________________________________________________

______________________________________________________ ______________________________________________________

______________________________________________________ ______________________________________________________

______________________________________________________ ______________________________________________________

______________________________________________________ ______________________________________________________

______________________________________________________ ______________________________________________________

______________________________________________________ ______________________________________________________

22
CONHECIMENTOS DE INFORMÁTICA

Conhecimentos de Informática
1. Linguagens de programação: Java (SE 8 e EE 7), Phyton 3.6, JavaScript/EcmaScript 6, Scala 2.12 e Pig 0.16; . . . . . . . . . . . . . . . . . . 01
2. Estruturas de dados e algoritmos: busca sequencial e busca binária sobre arrays, ordenação (métodos da bolha, ordenação por sele-
ção, . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 39
3. ordenação por inserção, lista encadeada, pilha, fila, noções sobre árvore binária), noções de algoritmos de aprendizado supervisiona-
dos e não supervisionados; . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 39
4. Banco de dados: conceitos de banco de dados e sistemas gerenciadores de bancos de dados (SGBD), modelagem conceitual de dados
5. (a abordagem entidaderelacionamento), modelo relacional de dados (conceitos básicos, normalização), banco de dados SQL (lingua-
gem SQL (SQL2008), linguagem HiveQL (Hive 2.2.0)), banco de dados NoSQL (conceitos básicos, bancos orientados a grafos, colunas,
6. chave/valor e documentos), data Warehouse (modelagem conceitual para data warehouses, dados multidimensionais) . . . . . . . 73
7. Tecnologias web: HTML 5, CSS 3, XML 1.1, Json (ECMA-404), Angular.js 1.6.x, Node.js 6.11.3, REST; . . . . . . . . . . . . . . . . . . . . . . . . . 97
8. Manipulação e visualização de dados: linguagem R 3.4.2 e R Studio 5.1, OLAP, MS Excel 2013; . . . . . . . . . . . . . . . . . . . . . . . . . . . . 128
9. Sistema de arquivos e ingestão de dados: conceitos de MapReduce, HDFS/Hadoop/YARN 2.7.4, Ferramentas de ingestão de dados
10. (Sqoop 1.4.6, Flume 1.7.0, NiFi 1.3.0 e Kafka 0.11.0) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 150
CONHECIMENTOS DE INFORMÁTICA

LINGUAGENS DE PROGRAMAÇÃO: JAVA (SE 8 E EE 7), PHYTON 3.6, JAVASCRIPT/ECMAS-


CRIPT 6, SCALA 2.12 E PIG 0.16;

A linguagem Java
Conheça as APIs Java
A maioria dos desenvolvedores Java constantemente consultam a documentação on-line oficial da API Java— , também chamada
de Javadoc. Por padrão, você vê três áreas de janela no Javadoc. A área de janela superior esquerda mostra todos os pacotes na API
e a área de janela inferior esquerda mostra as classes em cada pacote. A área de janela principal (à direita) mostra os detalhes do
pacote ou classe atualmente selecionados. Por exemplo, se você clicar no pacote java.util na área de janela superior esquerda e clicar
na classe ArrayList listada abaixo dele, verá os detalhes sobre ArrayList na área de janela direita, incluindo uma descrição do que ela
faz, como usá-la e seus métodos.
Como qualquer linguagem de programação, a linguagem Java tem sua própria estrutura, regras de sintaxe e paradigma de pro-
gramação. O paradigma de programação da linguagem Java baseia-se no conceito de OOP, que os recursos da linguagem suportam.
A linguagem Java deriva da linguagem C, portanto suas regras de sintaxe assemelham-se às regras de C. Por exemplo, os blocos de
códigos são modularizados em métodos e delimitados por chaves ({ e }) e variáveis são declaradas antes que sejam usadas.
Estruturalmente, a linguagem Java começa com pacotes. Um pacote é o mecanismo de namespace da linguagem Java. Dentro
dos pacotes estão as classes e dentro das classes estão métodos, variáveis, constantes e mais. Neste tutorial você aprende sobre as
partes da linguagem Java.

O compilador Java
Quando você programa na plataforma Java, escreve seu código-fonte em arquivos .java e depois os compila. O compilador veri-
fica seu código nas regras de sintaxe da linguagem e depois grava bytecodeem arquivos .class. Bytecode é um conjunto de instruções
destinadas a executar em uma Java virtual machine (JVM). Ao incluir esse nível de abstração, o compilador Java difere-se de outros
compiladores de linguagem, que escrevem instruções adequadas para o chipset de CPU no qual o programa é executado.

Fases de um programa Java


As fases pelo qual passam um programa Java relacionam-se da seguinte forma:

1. Criação do código fonte (Programa.java);


2. Compilação do código fonte e geração do bytecode (Programa.class);
3. Interpretação do bytecode pela máquina virtual;
4. Conversão do bytecode em linguagem de máquina.

Hotspot
Hotspot é a máquina virtual Java, ela provê algumas funcionalidades muito
importantes. Ao contrário de outras aplicações, que são compiladas diretamente para código da máquina em que serão executa-
das, em Java estas somente são transformadas em código de máquina em tempo de execução quando necessário.
No princípio esta abordagem trouxe problemas de sobrecarga e lentidão dos sistemas, no entanto, a JVM vem se aprimorando e,
em muitas situações, as aplicações Java tem desempenho similar as aplicações que são previamente compiladas.
Este desempenho vem melhorando muito devido a otimização que a máquina virtual consegue fazer a medida que o código é exe-
cutado. Perceba que quando programamos em C, por exemplo, o código fonte é transformado em código de máquina imediatamente.
Em princípio podemos pensar que o fato do programa não precisar passar
por uma etapa a mais, interpretação, irá torná-lo mais eficiente, mas muitas vezes a compilação estática não consegue prever si-
tuações que irão ocorrer durante a execução do código: trechos da aplicação mais utilizados, carga do sistema, quantidade de usuários
simultâneos, memória disponível e etc..
Estas informações, relativas ao ambiente no qual a aplicação está sendo
executada, são utilizadas pela JVM para fazer otimizações em tempo de execução e havendo necessidade o código que está sen-
do interpretado é transformado em instruções nativas do sistema operacional (código de máquina) em um processo de compilação
dinâmica.

1
CONHECIMENTOS DE INFORMÁTICA

Esta transformação em tempo de execução é realizada pelo Seu ambiente de desenvolvimento


JIT, Just-in-time O JDK inclui um conjunto de ferramentas de linha de co-
compiler. O fato do código (bytecode) ser transformado, em mandos para compilar e executar seu código Java, incluindo
tempo de execução, em código de máquina permite que a JVM uma cópia completa do JRE. Embora seja possível usar essas
mude a estratégia de compilação em busca de um melhor de- ferramentas para desenvolver seus aplicativos, a maioria dos
sempenho, em um ciclo de “aprendizado” contínuo. desenvolvedores apreciam a funcionalidade adicional, o geren-
ciamento de tarefas e a interface visual de um IDE.
A JVM Eclipse é um IDE de software livre popular para desenvolvi-
No tempo de execução, a JVM lê e interpreta arquivos .class mento Java. O Eclipse manipula tarefas básicas, como a compila-
e executa as instruções do programa na plataforma de hardware ção e depuração de códigos, portanto, você pode focar na escri-
nativa para qual a JVM foi escrita. A JVM interpreta o bytecode ta e teste de códigos. Além disso, é possível usar o Eclipse para
como uma CPU interpretaria instruções de linguagem assembly. organizar seus arquivos de código-fonte em projetos, compilar e
A diferença é que a JVM é uma parte do software escrita especi- testar esses projetos e armazenar arquivos de projetos em qual-
ficamente para uma determinada plataforma. A JVM é o núcleo quer número de repositórios de origem. É necessário ter um JDK
do princípio “gravação única, execução em qualquer local” da instalado para usar Eclipse para desenvolvimento Java. Se você
linguagem Java. Seu código pode executar em qualquer chipset fizer o download de um dos pacotes configuráveis Eclipse, ele já
para o qual a implementação da JVM adequada está disponível. virá com o JDK.
JVMs estão disponíveis para principais plataformas, como Linux
e Windows, e subconjuntos de linguagem Java foram implemen- Ferramentas do JDK
tados nas JVMs para telefones celulares e chips hobbyist. A seguir temos uma breve descrição das principais ferra-
mentas que fazem parte do JDK:
O coletor de lixo - javac: Compilador da linguagem Java;
Em vez de forçá-lo a manter a alocação de memória (ou usar - java: Interpretador Java;
uma biblioteca de terceiros para isso), a plataforma Java fornece - jdb: Debugador Java;
gerenciamento de memória fora do padrão. Quando seu apli- - java -prof: Interpretador com opção para gerar estatísticas
cativo Java cria uma instância de objeto no tempo de execução, sobre o uso dos métodos;
a JVM aloca automaticamente espaço de memória para esse - javadoc: Gerador de documentação;
objeto a partir de um conjunto de memória heap— reservado - jar: Ferramenta que comprime, lista e expande;
para uso de seu programa. Ocoletor de lixo Java é executado em - appletviewer: Permite a execução e debug de applets sem
segundo plano, mantendo o controle de quais objetos o apli- browser;
cativo não necessita mais e recuperando memória deles. Essa - javap: Permite ler a interface pública das classes; extcheck:
abordagem para manipulação de memória é chamada de geren- Detecta conflitos em arquivos Jar.
ciamento implícito de memória porque não exige a gravação de
qualquer código de manipulação de memória. A coleta de lixo é Primeiro contato com o Java - Definições
um dos recursos essenciais para o desempenho da plataforma - Classe: É a estrutura que, quando construída, produzirá
Java. um objeto, dizemos “todo objeto é instância de alguma classe”;
- Objeto: Em tempo de execução, quando a JVM encontra
O Java Development Kit a palavra reservada new é criada uma instância da classe apro-
Ao fazer o download de um Java Development Kit (JDK), priada;
você obtém, — além do compilador e de outras ferramentas, - Estado: É definido pelo conjunto de atributos de uma clas-
— uma biblioteca de classe completa de utilitários de pré-cons- se, isto é, cada instância da classe possuirá um estado indepen-
trução que o ajuda a realizar tarefas de desenvolvimento de dente dos demais objetos.
aplicativo mais comuns. A melhor forma de obter uma ideia do - Comportamento: São os métodos da classe, comporta-
escopo dos pacotes e bibliotecas JDK é verificar a documentação mento é aquilo que uma classe faz (algoritmos), muitas vezes,
da API JDK. um determinado comportamento (método) muda o estado do
objeto, isto é, após a execução do método um ou mais atributos
O Java Runtime Environment mudaram de valor;
O Java Runtime Environment (JRE; também conhecido como
o tempo de execução Java) inclui a JVM, bibliotecas de códigos Primeiro contato com o Java - Nomenclatura
e componentes necessários para executar programas que são Existem três aspectos importantes, em relação a nomencla-
escritos na linguagem Java. O JRE está disponível para diversas tura, que devemos considerar quando estamos programando
plataformas.É possível redistribuir livremente o JRE com seus Java.
aplicativos, de acordo com os termos da licença do JRE, para for- - Identificadores válidos: Definem as regras para que o com-
necer aos usuários do aplicativo uma plataforma na qual execu- pilador identifique o nome como válido.
tar seu software. O JRE está incluído no JDK. I. Devem iniciar com uma letra, cifrão ($) ou sublinhado/
Configurando seu ambiente de desenvolvimento Java underscore (_);
Nesta seção, você fará o download e instalará o JDK e a libe- II. Após o primeiro caracter podem ter qualquer combina-
ração atual do Eclipse IDE e configurará seu ambiente de desen- ção de letras, caracteres e números;
volvimento Eclipse. III.Não possuem limite de tamanho;

2
CONHECIMENTOS DE INFORMÁTICA

IV. Não podem ser palavras reservadas;


V. Identificadores são case-sensitive isto é, “Nome” e “nome” são identificadores diferentes.

Instale o JDK
Siga estas etapas para fazer o download e instalar o JDK:
Navegue para Downloads do Java SE e clique na caixa Plataforma Java (JDK) para exibir a página de download da última versão
do JDK.
Concorde com os termos da licença.
Em Java SE Development Kit, escolha o download que corresponda a seu sistema operacional e arquitetura de chip.
Windows
Salve o arquivo em sua unidade de disco rígido quando solicitado.
Quando o download estiver concluído, execute o programa de instalação. Instale o JDK em sua unidade de disco rígido em um
local fácil de lembrar, como C:\home\Java\jdk1.8.0_60. É uma boa ideia codificar o número de atualização no nome do diretório de
instalação escolhido.

Tipos de Dados
Observe a tabela a seguir, sobre os tipos de dados. Esses tipos são conhecidos como Tipos de Dados Primitivos. Como podemos
observar a linguagem Java oferece diversos tipos de dados com os quais podemos trabalhar. Há basicamente duas categorias em que
se encaixam os tipos de dados: tipos primitivos e tipos de referências. Os tipos primitivos correspondem a dados mais simples ou
escalares, enquanto os tipos de referências consistem em arrays, classes e interfaces. Estes serão vistos nos módulos subsequentes.
Vamos a uma descrição curta sobre cada um dos tipos:

Controle de Fluxo
O controle de fluxo é efetuado através do uso de condicionais, que são estruturas que modificam o fluxo de execução normal do
programa.

3
CONHECIMENTOS DE INFORMÁTICA

if-else
Sintaxe:

Quando existe apenas uma instrução após o if não precisamos abrir um bloco com as chaves. Se existirem mais instruções a aber-
tura do bloco é necessária.
Se houver mais de uma condição usa-se o else como podemos observar na segunda coluna acima.
Veja o exemplo abaixo e comente o mesmo na lista de discussão.

while e do-while

No caso do while as instruções serão executadas enquanto a expressão booleana for verdadeira.
O do-while executa a instrução pelo menos uma vez e continua executando enquanto a expressão booleana for verdadeira.
Observe os exemplos seguintes.

4
CONHECIMENTOS DE INFORMÁTICA

for
Sintaxe:

O for pode conter apenas uma instrução no seu corpo. Neste caso não é necessário abrir um bloco. Isso é assim porque o for já
implementa alguns comandos na sua assinatura, ou seja, no seu cabeçalho, como a inicialização da variável e o passo da repetição, ou
seja, o incremento/decremento da variável.
Veja os exemplos:

break e continue
Você deve ter observado que quando fizemos os laços infinitos com o while e com o for utilizamos um comando break. Para que
ele serve? Este comando serve para “quebrar” o laço, ou seja, ele fará com que o laço seja interrompido.
O comando continue também influi dentro de um laço. Mas ele não vai quebrar o laço. Ele interrompe aquela iteração do laço e
reinicia o bloco com a próxima iteração.

5
CONHECIMENTOS DE INFORMÁTICA

switch (case)
Sintaxe:

Switch só trabalha com valores inteiros, incluindo o char.

Entrada de Dados
Como eu faço para ler algo que o usuário digita no prompt?
Observe o programa abaixo:

Instale o Eclipse
Para fazer o download e instalar o Eclipse, siga estas etapas:
Navegue até Página de downloads do Eclipse IDE.
Clique em Eclipse IDE for Java Developers.
Em Links de download à direita, escolha sua plataforma (o site já pode ter encontrado seu tipo de sistema operacional).
Clique no espelho do qual deseja fazer download; depois salve o arquivo em sua unidade de disco rígido.
Extraia o conteúdo do arquivo .zip em um local em sua unidade de disco rígido do qual se lembre facilmente (como C:\home\
eclipse no Windows ou ~/home/eclipse em Mac ou Linux).

Configure o Eclipse
O Eclipse IDE opera sobre o JDK como um conceito de abstração útil, mas ainda precisa acessar o JDK e suas várias ferramentas.
Antes de poder usar o Eclipse para escrever código Java, é necessário informar a ele onde o JDK está localizado.
Para configurar seu ambiente de desenvolvimento Eclipse:
Ative o Eclipse clicando duas vezes em eclipse.exe (ou no executável equivalente em sua plataforma).
O Ativador de área de trabalho é aberto, permitindo escolher uma pasta raiz para seus projetos Eclipse. Use uma pasta da qual
possa se lembrar facilmente, como C:\home\workspace em Windows ou ~/home/workspace em Mac ou Linux.
Feche a janela Bem-vindo ao Eclipse.
Clique em Janela > Preferências > Java > JREs instalados. Figura 1 mostra esta seleção destacada na janela de configuração do
Eclipse para o JRE.

6
CONHECIMENTOS DE INFORMÁTICA

Figura 1. Configurando o JDK que o Eclipse usa

O Eclipse aponta para um JRE instalado. Você deve usar o JRE que transferiu por download com o JDK. Se o Eclipse não detectar
automaticamente o JDK instalado, clique em Incluir... e, na próxima caixa de diálogo, clique em VM padrão e clique em Avançar.
Especifique o diretório inicial do JDK (como C:\home\jdk1.8.0_60 em Windows) e clique em Concluir.
Confirme se o JDK que você deseja usar está selecionado e clique em OK.
O Eclipse está agora configurado e pronto para você criar projetos e compilar e executar código Java. A próxima seção o familiariza
com Eclipse.

Introdução ao Eclipse
O Eclipse é mais que um IDE; ele é um ecossistema de desenvolvimento completo. Esta seção é uma breve introdução prática para
usar o Eclipse para desenvolvimento Java.

O ambiente de desenvolvimento Eclipse


O ambiente de desenvolvimento Eclipse tem quatro principais componentes:
- Área de trabalho
- Projetos
- Perspectivas
- Visualizações

A unidade primária de organização no Eclipse é a  área de trabalho. Uma área de trabalho contém todos os seus  projetos.
Uma  perspectiva  é uma forma de consulta a cada projeto (consequentemente o nome) e dentro de uma perspectiva há uma ou
mais visualizações.

7
CONHECIMENTOS DE INFORMÁTICA

Conceitos de programação orientada a objeto Name


A linguagem Java é (principalmente) orientada a objetos. Se Age
você não usou uma linguagem orientada a objetos antes, os con- Height
ceitos de OOP podem parecer estranhos à primeira vista. Esta Weight
seção é uma rápida introdução aos conceitos de linguagem OOP, Eye color
usando programação estruturada como um ponto de contraste. Gender
Você provavelmente pensará em outros (e pode sempre in-
O que é um objeto? cluir mais atributos posteriormente), mas esta lista é um bom
Linguagens de programação estruturas, como C e COBOL, começo.
seguem um paradigma de programação diferente daquelas Comportamento
orientadas a objetos. O paradigma de programação estruturada Uma pessoa real pode fazer todo o tipo de ação, mas com-
é altamente orientado a dados: você possui estruturas de da- portamentos de objetos geralmente estão relacionados a algum
dos e instruções do programa atuam nesses dados. Linguagens tipo de contexto de aplicativo. Em um contexto de aplicativo de
orientadas a objetos, como a linguagem Java, combinam instru- negócios, por exemplo, você pode querer perguntar ao seu ob-
ções de dados e programas em objetos. jeto Person : “Qual é sua idade?” Em resposta, Personinformaria
Um objeto é uma entidade autocontida que contém atribu- o valor de seu atributo Age .
tos e comportamento, e nada mais. Em vez de ter uma estrutura Lógica mais complexa pode estar oculta dentro do obje-
de dados com campos (atributos) e transmite essa estrutura em to Person— , por exemplo calcular um Índice de massa corpórea
toda a lógica do programa que atua nela (comportamento), em (IMC) de uma pessoa para um aplicativo de saúde, — mas, por
uma linguagem orientada a objetos, dados e lógica de progra- enquanto, suponha que Person tenha o comportamento de res-
ma são combinados. Essa combinação pode ocorrer em níveis ponder a estas questões:
completamente diferentes, de objetos com baixa granularidade, Qual é seu nome?
como Number, a objetos com alta granularidade, como um ser- Qual é sua idade?
viço FundsTransfer em um aplicativo financeiro amplo. Qual é sua altura?
Qual é seu peso?
Objetos pai e filho Qual é a cor de seus olhos?
Um  objeto pai  é aquele que serve como base estrutural Qual é seu sexo?
para derivação de objetos-filho mais complexos. Um objeto-fi- Estado e sequência
lho assemelha-se ao seu pai, mas é mais especializado. Com o Estado  é um conceito importante em OOP. Um estado de
paradigma orientado a objetos, é possível reutilizar os atributos objeto é representado a qualquer momento pelo valor de seus
comuns e o comportamento do objeto pai, incluindo nesses ob- atributos.
jetos-filho atributos e comportamentos diferentes. (Você apren- No caso de  Person, seu estado é definido por atributos
de mais sobre herança na próxima seção deste tutorial.) como nome, idade, altura e peso. Se você quisesse apresentar
uma lista de vários desses atributos, poderia fazer isso usando
Comunicação e coordenação de objetos uma classe  String  , da qual eu falarei mais posteriormente no
Os objetos se comunicam enviando mensagens (chamadas tutorial.
de métodos na linguagem Java). Além disso, em um aplicativo Usando os conceitos de estado e sequência juntos, é pos-
orientado a objetos, o código do programa coordena as ativida- sível dizer para Person, “Diga-me quem você é fornecendo-me
des entre objetos para executar tarefas dentro do contexto do uma listagem (ou String) de seus atributos.”
domínio de aplicativo específico.
Resumo de objeto Princípios de OOP
Um objeto bem escrito: Se você veio de um plano de fundo de programação estru-
Tem limites nítidos turada, a proposição de valor de OOP pode ainda não estar mui-
Executa um conjunto finito de atividades to clara. Afinal, os atributos de uma pessoa e qualquer lógica
Conhece apenas sobre seus dados e quaisquer outros obje- para recuperar (e converter) esses valores podem ser escritos
tos necessários para realizar suas atividades em C ou COBOL. Esta seção esclarece os benefícios do paradig-
Em essência, um objeto é uma entidade discreta que pos- ma de OOP explicando seus princípios de definição: encapsula-
sui apenas as dependências necessárias em outros objetos para mento, herança e polimorfismo.
executar suas tarefas. - Encapsulamento
Agora, você vê como um objeto se parece. Lembre-se de que um objeto é, acima de tudo, discreto ou
O objeto Person autocontido. Essa característica é o princípio do encapsulamen-
Eu começo com um exemplo que baseia-se em um cenário to  em funcionamento.  Ocultação  é outro termo que às vezes
de desenvolvimento de aplicativo comum: um indivíduo sendo é usado para expressar a natureza autocontida e protegida de
representado por um objeto Person . objetos.
Voltando à definição de um objeto, você sabe que um ob- Independentemente da terminologia, o que é importante
jeto tem dois elementos primários: atributos e comportamento. é que o objeto mantém um limite entre seu estado e o com-
Eu mostro como eles se aplicam a Person . portamento e o mundo externo. Como objetos no mundo real,
Atributos objetos usados na programação de computador possuem vários
Quais atributos uma pessoa pode ter? Alguns atributos co- tipos de relacionamentos com diferentes categorias de objetos
muns incluem: nos aplicativos que os usam.

8
CONHECIMENTOS DE INFORMÁTICA

Na plataforma Java, é possível usar modificadores de aces- dades diferenciam a linguagem Java das linguagens puramen-
so (que eu apresento posteriormente no tutorial) para variar a te orientadas a objetos, como Smalltalk. Primeiro, a linguagem
natureza dos relacionamentos de objetos de público para priva- Java é uma mistura de objetos e tipos primitivos. Segundo, com
do. O acesso público é muito aberto, considerando que acesso Java, é possível escrever código que expõe os trabalhos internos
privado significa que os atributos de objetos estão acessíveis de um objeto a qualquer outro objeto que o usa.
apenas dentro do próprio objeto. A linguagem Java fornece a você as ferramentas necessárias
O limite público/privado impinge o princípio de encapsula- para seguir os princípios de som do OOP e produzir código orien-
mento orientado a objetos. Na plataforma Java, é possível variar tado a objetos de som. Como Java não é puramente orientada a
a intensidade desse limite em uma base de objeto por objeto, objetos, é necessário ter alguma disciplina sobre como escrever
dependendo de um sistema de confiança. O encapsulamento é o código — A linguagem não o força a fazer a tarefa corretamen-
um recurso poderoso da linguagem Java. te, portanto, você deve fazê-la por si mesmo.
- Herança Seria impossível apresentar toda a sintaxe da linguagem
Na programação estruturada, é comum copiar uma estru- Java em um único tutorial. O lembrete da Parte 1 foca nos fun-
tura, nomeá-la e incluir ou modificar os atributos que torna a damentos da linguagem, deixando você com conhecimento sufi-
nova entidade (como um registro  Account  ) diferente de sua ciente e prática para escrever programas simples. OOP trata ex-
fonte original. Com o tempo, essa abordagem gera uma gran- clusivamente de objetos, portanto, esta seção começa com dois
de questão de código duplicado, o que pode criar problemas de tópicos especialmente relacionados a como a linguagem Java os
manutenção. manipula: palavras reservadas e a estrutura de um objeto Java.
O OOP apresenta o conceito de herança, pelo qual classes
especializadas — sem código adicional — podem “copiar” os Palavras reservadas
atributos e o comportamento de classes de origem na qual elas Como qualquer linguagem de programação, a linguagem
se especializam. Se alguns desses atributos ou comportamentos Java designa determinadas palavras que o compilador reconhe-
precisarem mudar, você os substitui. O único código-fonte a ser ce como especiais. Por essa razão, você não pode usá-las para
mudado é o código necessário para criar classes especializadas. nomear suas construções Java. A lista de palavras reservadas é
O objeto de origem é chamado de pai e a nova especialização é surpreendentemente curta:
chamada de filho. abstract
Herança em funcionamento assert
Suponha que você esteja programando um aplicativo de re- boolean
cursos humanos e queira usar a classe Person como base (cha- break
mada de superclasse) para uma nova classe chamada Employee. byte
Sendo filha de Person, Employee teria todos os atributos de uma case
classe Person , junto com aqueles adicionais, como: catch
Número de identificação de contribuinte char
Número de matrícula class
Salário const
A herança facilita a criação da nova classe Employee sem a continue
necessidade de copiar todo o código Person manualmente. default
do
Polimorfismo double
O polimorfismo é um conceito mais difícil de compreender else
do que o encapsulamento e a herança. Em essência, isso signi- enum
fica que objetos que pertencem à mesma ramificação de uma extends
herança, quando enviam a mesma mensagem (ou seja, quando final
efetuam a mesma ação), podem manifestar esse comportamen- finally
to de forma diferente. float
Para entender como o polimorfismo se aplica a um contex- para
to de aplicativo de negócios, retorne ao exemplo de  Person  . goto
Lembre-se de dizer a  Person  para formatar seus atributos em if
uma  String? O polimorfismo torna possível que  Person  repre- implements
sente seus atributos em uma variedade de formas, dependendo import
do tipo que Person é. instanceof
O polimorfismo é um dos conceitos mais complexos que int
você encontrará no OOP na plataforma Java e está além do es- interface
copo de um tutorial introdutório. long
native
Introdução à linguagem Java new
A linguagem Java: não puramente orientada a objetos package
Com a linguagem Java, é possível criar objetos de primeira private
classe, mas nem  tudo na linguagem é um objeto. Duas quali- protected

9
CONHECIMENTOS DE INFORMÁTICA

public
return
short
static
strictfp
super
switch
synchronized
this
throw
throws
transient
try
void
volatile
while
Observe que true, falsee null são tecnicamente palavras não reservadas. Embora sejam literais, eu as inclui nesta lista porque você
não pode usá-las para nomear construções Java.
Uma vantagem da programação com um IDE é que ela pode usar a coloração de sintaxe para palavras reservadas, como eu mostro
posteriormente neste tutorial.

Estrutura de uma classe Java


Uma classe é um blueprint para uma entidade discreta (objeto) que contém atributos e comportamentos. A classe define a es-
trutura básica do objeto e, no tempo de execução, seu aplicativo cria uma instância do objeto. Um objeto tem um limite e um estado
nítidos e pode fazer ações quando corretamente solicitado. Cada linguagem orientada a objetos possui regras sobre como definir uma
classe.
Na linguagem Java, classes são definidas conforme mostrado na Listagem 1:

Listagem 1 contém vários tipos de construções, que eu diferenciei com a formatação de fonte. As construções mostradas em
negrito (que você localizará na lista de palavras reservadas) são literais; em qualquer definição de objeto, elas devem ser exatamente
o que estão na listagem. Os nomes fornecidos para outras construções descrevem os conceitos que eles representam. Eu expliquei
todas as construções detalhadamente no restante desta seção.
Observação: Na Listagem 1 e em alguns outros exemplos de códigos nesta seção, colchetes indicam que as construções dentro
deles não são requeridas. Os colchetes (diferente de { e }) não fazem parte da sintaxe Java.
Comentários no código
Observe que Listagem 1 também inclui algumas linhas de comentário:

10
CONHECIMENTOS DE INFORMÁTICA

Com informações apenas sobre cada linguagem de programação, os programadores podem incluir comentários para ajudar a do-
cumentar o código. A sintaxe Java permite comentários de única linha e multilinhas. Um comentário de única linha deve estar contido
em uma linha, embora seja possível usar comentários de única linha adjacentes para formar um bloco. Um comentário de multilinhas
começa com /*, deve terminar com */ e pode abranger qualquer número de linhas.

Empacotando classes
Com a linguagem Java, é possível escolher os nomes de suas classes, como Account, Person ou LizardMan. Às vezes, é possível
terminar usando o mesmo nome para expressar dois conceitos um pouco diferentes. Esta situação é chamada de colisão de nomes e
ocorre com frequência. A linguagem Java usa pacotes para resolver esses conflitos.
Um pacote Java é um mecanismo que fornece um namespace— de uma área dentro da qual nomes são exclusivos, mas fora dela
eles podem não ser. Para identificar uma construção exclusivamente, é necessário qualificá-la incluindo seu namespace.
Pacotes também fornecem a você uma boa forma de criar aplicativos mais complexos com unidades de funcionalidade discretas.

Definição de pacote
Para definir um pacote, você usa a palavra-chave package seguida de um nome de pacote legal, terminando com um ponto e
vírgula. Geralmente os nomes de pacotes são separados por pontos e seguem este esquema padrão de fato :
1 package orgType.orgName.appName.compName;
Esta definição de pacote é dividida como a seguir:
orgType é o tipo de organização, como com, orgou net.
orgName é o nome do domínio da organização, como makotojava, oracleou ibm.
appName é o nome do aplicativo, abreviado.
compName é o nome do componente.
A linguagem Java não força você a seguir esta convenção de pacote. De fato, não é necessário especificar um pacote, nesse caso,
todas as suas classes deverão ter nomes exclusivos e residirão no pacote padrão. Como melhor prática, eu recomendo que você defina
todas as suas classes Java em pacotes nomeados conforme descrito aqui. Você segue essa convenção em todo este tutorial.

Instruções de importação
O Eclipse simplifica as importações
Ao escrever código no editor de Eclipse, você pode digitar o nome de uma classe que deseja usar, seguido por Ctrl+Shift+O. O
Eclipse calcula quais importações você precisa e as inclui automaticamente. Se o Eclipse localizar duas classes com o mesmo nome,
ele exibirá uma caixa de diálogo perguntando em qual classe você deseja incluir importações.
Próxima à definição de classe (referindo-se novamente à Listagem 1) está a instrução de importação. Uma instrução de importa-
ção informa ao compilador Java onde localizar classes às quais você fez referência dentro de seu código. Qualquer classe não trivial usa
outras classes para alguma funcionalidade e a instrução de importação é como você informa ao compilador Java sobre elas.
Uma instrução de importação geralmente assemelha-se ao seguinte:
1 import ClassNameToImport;
Você especifica a palavra-chave import , seguida pela classe que deseja importar, seguida por um ponto e vírgula. O nome da
classe deve ser completo, o que significa que ele deve incluir seu pacote.
Para importar todas as classes dentro de um pacote, é possível inserir .* após o nome do pacote. Por exemplo, essa instrução
importa cada classe no pacote com.makotojava :
1 import com.makotojava.*;
A importação de um pacote integral pode tornar seu código menos legível, portanto, eu recomendo importar apenas as classes
necessárias, usando seus nomes completos.
Declaração de classe
Para definir um objeto na linguagem Java, você deve declarar uma classe. Novamente, pense em uma classe como um modelo
para um objeto, como um cortador de cookie.

Listagem 1 inclui esta declaração de classe:

11
CONHECIMENTOS DE INFORMÁTICA

Um  accessSpecifier  da classe pode ter diversos valores, uma instância de uma classe. Outros tipos de métodos podem
mas ele geralmente é public. Você logo consulta outros valores ser usados virtualmente para qualquer comportamento do apli-
de accessSpecifier . cativo.
A definição de classe na Listagem 1 mostra a forma de defi-
Convenções de nomenclatura de classe nir a estrutura de um método, que inclui elementos como:
É possível nomear classes basicamente como você realmen-
te deseja, mas a convenção é usar camel case: comece com uma accessSpecifier
letra maiúscula, altere para letras maiúsculas concatenada e tor- returnType
ne todas as outras letras minúsculas. Nomes de classes devem methodName
conter apenas letras e números. A aderência a estas diretrizes argumentList
garante que seu código seja mais acessível a outros desenvolve- A combinação desses elementos estruturais em uma defini-
dores que estão seguindo as mesmas convenções. ção de método é chamada de assinatura de método.
Classes podem ter dois tipos de membros: variáveis e mé-
todos. Depois, você consulta mais detalhadamente os dois tipos de
- Variáveis métodos, começando com construtores.
Os valores de variáveis de uma classe específica distinguem
cada instância daquela classe e definem seu estado. Esses valo- Métodos construtores
res geralmente são referidos como variáveis de instância. Uma Você usa construtores para especificar como instanciar uma
variável possui: classe. Listagem 1 mostra a sintaxe de declaração do construtor
Um accessSpecifier de forma abstrata; novamente:
Um dataType
Um variableName
Opcionalmente, um initialValue
Os valores possíveis de accessSpecifier são:

Variáveis públicas Construtores são opcionais


Nunca é uma boa ideia usar variáveis públicas, mas em ca- Se você não fornecer um construtor, o compilador forne-
sos extremamente raros, elas podem ser necessárias, portanto, cerá um para você, chamado de construtor padrão (ou sem ar-
existe a opção. A plataforma Java não limita seus casos de uso, gumento). No entanto, se você fornecer um construtor que não
portanto cabe a você ser disciplinado sobre o uso de boas con- seja um construtor sem argumento (ou no-arg), o compilador
venções de codificação, mesmo quando instigado a fazer de ou- não gerará automaticamente um para você.
tra forma. Um accessSpecifier do construtor é igual ao das variáveis.
public: qualquer objeto em qualquer pacote pode ver a va- O nome do construtor deve corresponder ao nome da classe.
riável. (Não use de forma alguma este valor; consulte a barra Portanto, se você chamar sua classe de Person, o nome do cons-
lateral Variáveis públicas .) trutor também deverá ser Person.
protected: qualquer objeto definido no mesmo pacote ou Para qualquer construtor que não seja o construtor padrão,
uma subclasse (definida em qualquer pacote) pode ver a vari- você transmite argumentList, que é um ou mais dos seguintes:
ável. argumentType argumentName
Nenhum especificador (também chamado de acesso amigá- Argumentos em um argumentList são separados por vírgu-
vel ou pacote privado ): apenas objetos cujas classes são defini- las e nenhum dos dois argumentos pode ter o mesmo nome.
das no mesmo pacote podem ver a variável. argumentType é um tipo primitivo ou outro tipo de classe (igual
private: apenas a classe contendo a variável pode vê-la. com tipos de variáveis).
Um dataType de variável depende do que a variável é, — ela
pode ser um tipo primitivo ou outro tipo de classe (novamente, Definição de classe com um construtor
mais sobre isso posteriormente). Agora, você vê o que acontece quando inclui a capacidade
O variableName está ativo para você, mas, por convenção, para criar um objeto Person de duas formas: usando um cons-
nomes de variáveis usam a convenção de camel case exceto pelo trutor no-arg e inicializando uma lista parcial de atributos.
fato de começarem com uma letra minúscula. (Este estilo é às
vezes chamado de Camel Case iniciado por letra minúscula.) Listagem 3 mostra como criar construtores e também como
Não se preocupe com o initialValue por enquanto; apenas usar argumentList:
saiba que é possível inicializar uma variável de instância ao de-
clará-la. (Caso contrário, o compilador gerará um padrão para
você que será configurado quando a classe for instanciada.)

- Métodos
Os métodos de uma classe definem seu comportamento.
Métodos se enquadram em duas categorias principais:
construtores ou todos os outros métodos, dos quais existem
muitos tipos. Um método construtor é usado apenas para criar

12
CONHECIMENTOS DE INFORMÁTICA

Lista 3. Person : definição de classe com um construtor

Observe o uso da palavra-chave this ao fazer designações de variáveis na Listagem 3. A palavra-chave this é uma abreviação Java
para “this object,” e você deve usá-la ao fazer referência para duas variáveis com o mesmo nome. Neste caso, age é um parâmetro de
construtor e uma variável de classe, portanto, a palava-chave this ajuda o compilador a desambiguar a referência.
O objeto Person está ficando mais interessante, mas precisa de mais comportamento. E, para isso, você precisa de mais métodos.

Outros métodos
Um construtor é um tipo particular de método com uma função específica. Similarmente, muitos outros tipos de métodos exe-
cutam funções específicas em programas Java. A exploração de outros tipos de métodos começa nesta seção e continua pelo tutorial.

De volta à Listagem 1,

Outros métodos assemelham-se muito aos construtores, com algumas exceções. Primeiro, é possível nomear outros métodos
como deseja (embora, claro, determinadas regras se apliquem). Eu recomendo as seguintes convenções:

Comece com uma letra minúscula.


Evite números, a menos que eles sejam absolutamente necessários.
Use apenas caracteres alfabéticos.
Segundo, diferente dos construtores, outros métodos possuem um tipo de retorno opcional.

Métodos estáticos e de instância


Geralmente, dois tipos de métodos (sem construtor) são usados: métodos de instância e métodos estáticos. Métodos de instân-
cia dependem do estado de uma instância de objeto específica para seus comportamentos. Métodos estáticos também são às vezes
chamados de métodos de classes, pois seus comportamentos não dependem de qualquer estado do objeto. O comportamento de um
método estático ocorre no nível de classe.
Métodos estáticos são amplamente usados para utilidade; você pode pensar neles como sendo métodos globais (à la C) enquanto
mantém o código para o método com a classe que o define.
Por exemplo, neste tutorial, você usa a classe JDK Logger para informações de saída para o console. Para criar uma instância da
classe Logger , você não instancia uma classe Logger ; ao contrário, você chama um método estático chamado getLogger().

13
CONHECIMENTOS DE INFORMÁTICA

A sintaxe para chamar um método estático em uma classe é diferente da sintaxe usada para chamar um método em um objeto.
Você também usa o nome da classe que contém o método estático, conforme mostrado nesta chamada:
Logger l = Logger.getLogger(“NewLogger”);
Neste exemplo, Logger é o nome da classe e getLogger(...) é o nome do método. Assim, para chamar um método estático, não é
necessário uma instância de objeto, apenas o nome da classe.

Agora vamos entender um pouco de cada trecho do código digitado.

Linha:
1. Declaração da classe pública de nome Teste;
2. Início do corpo da classe;
3. Declaração do método main (público, estático, sem retorno e parametrizado);
4. Início do corpo do método;
5. Comando para impressão na tela; 6. Fechamento do corpo do método main;
7. Fechamento da classe.

Método main
Antes de iniciar o método main, vamos abrir um breve parênteses para introduzir a forma como comentamos o código em Java.
Basicamente existem duas formas:
1. // texto: Esta é a forma de comentar apenas uma linha de código
2. /* texto */: Esta declaração é utilizada quando desejamos comentar mais de uma linha de código
Vejamos a classe anterior agora com comentários:

O main é o método que inicia as aplicações Java, quando solicitamos ao


interpretador que execute uma determinada classe compilada ele procura o método main, se este método não existir irá ser
gerada uma exceção informando que o método não foi localizado.
A JVM só irá reconhecer o método main se ele possuir as seguintes
características:
1. Ser público (public);
2. Estático (static);
3. Não retornar nenhum valor (void);
4. O nome deve ser “main”;
5. Receber como parâmetro um array de String.

14
CONHECIMENTOS DE INFORMÁTICA

Fonte: Vim
https://www.ibm.com/developerworks/br/java/tutorials/j- Tem em todo GNU/Linux e é altamente configurável. Uma
-introtojava1/index.html forma de transformar o vim em uma IDE Python completa é se-
http://t2ti.com/curso/video/java/basico/java_starter.php guindo o tutorial em vim a ide para programadores python.

Python Emacs
Python é uma linguagem poderosa e divertida. Com ela Um editor (ou um sistema operacional com capacidades de
você pode fazer diversas coisas como: edição?!) poderoso e amplamente extensível em eLisp (um dia-
- Construção de sistemas Web com Django, Flask, Pyramid, leto Lisp). Vencida a curva de aprendizado (considerada difícil por
etc. algumas pessoas) é possível torná-lo em uma IDE Python pode-
- Análise de dados, Inteligência Artificial, Machine Learning rosíssima. O python-mode.el prove diversas funcionalidades para
e etc com Numpy, Pandas, Matplotlib, etc edição, debug e desenvolvimento de programas em Python e o
- Construção de aplicativos com Kivy e Pybee Ropemacs funcionalidades de refactoring. Mais “Emacs Goodies”
- Construção de sistemas desktop com Tkinter, WxPython, na própria Wiki em PythonComEmacs.
etc.
Existem diversos cursos onlines onde você pode encontrar SciTE
material. São cursos que você consegue aprender o básico da Excelente editor de texto voltado para programação. Suporta
programação com Python como tipos de variáveis, como escre- uma grande lista de linguagens, pode rodar e debugar os progra-
ver funções, etc. mas, é fácil de usar e é facilmente configurável. Disponível para
Devo usar o Interpretador do Python puro? Depende da Windows e X (ambiente gráfico dos UNIXes).
sua preferência. Ele é uma ferramenta poderosa. Mas boa parte
de profissionais usa o interpretador ipython pois este contém jext
mais recursos visuais e de auxílio (como colorir as mensagens Muito bom editor! Suporta muitas linguagens e possui plu-
de erro). gins para Python (executar, por exemplo).
Que IDE usar? Depende muito da sua preferência. Você
pode usar qualquer editor de texto padrão, como o Notepad++, joe
Gedit ou Sublime até o VI puro. Não existe padrão. Para quem Editor de texto para dinossauros :-) Utiliza os mesmos coman-
vem do MATLAB ou R, o Spyder pode ser muito útil. O Pycharm dos do WordStar, SideKick, etc. Disponivel via apt-get e emerge.
é outro IDE muito utilizado na comunidade.
Aonde eu encontro os módulos para utilizar no meu pro- sublime
jeto? Alguns módulos já vem por padrão no Python puro, por Editor de texto proprietário e pago, porém disponibiliza uma
exemplo o módulo matemático. Outros, devem ser baixados de versão beta para uso sem custo. Atualmente na versão 3, a com-
um repositório, como é o caso do Django ou Numpy. Hoje, mais pra de sua licensa permite o uso de ambas as versão existentes.
de 107 mil projetos estão cadastros no repositório oficial. Caso
você não ache o que procura, há muito incentivo para que você PS Pad
construa um módulo novo e inclua no repositório! Grátis (freeware) para Windows. Colore código Python e su-
Se você não tem a menor ideia mesmo de que módulo você porta edição com vários encodings. Tem também utilitários para
precise, dê uma procurada no Google e StackOverflow. De certo HTML/XML, tabela ASCII e conversão DOS/UNIX. O Hex view que-
alguém já fez algo parecido com o que você precisa! bra um galho na hora de procurar erros em arquivos com enco-
O que são VirtualEnvs? O ideal para projetos Python é que ding incorreto.
você isole as bibliotecas que você usa, para evitar conflitos entre
projetos. Isso é uma boa prática e pode evitar dores de cabeça IDEs gratuitas
futuras. Idle
A IDLE vem com o Python. É feita com Tkinter e se você se
Ferramentas de Desenvolvimento acostumar pode lhe ajudar bastante. É bem simples de ser usada
Veja aqui uma listagem de ferramentas para te auxiliar no também.
desenvolvimento python:
PyCharm community
Editores de texto É desenvolvido pela companhia JetBrains. Esta edição é libe-
Atom rada sob a licença da Apache. É multiplataforma. Essa IDE fornece
Atom é open source e feito pelo Github e com suporte para análise de código, um depurador gráfico, um testador de unidade
várias linguagens, dentre elas o Python. É integrado ao Git e Gi- integrado, integração com sistemas de controle de versão (VC-
thub, sendo possível mexer com o Git e Github através da inter- Ses), e suporta desenvolvimento de web com Django.
face do editor de texto. Ótimo para iniciantes.
Komodo-Edit
Visual Studio Code Também desenvolvido pela ActiveState o Komodo-Edit é uma
O VSCode é open source e free, desenvolvido pela Micro- excelente opção de editor, bastante rico em recursos tais como
soft. Suporta inúmeras linguagens de programação. autocomplete, calltips, multi-language file support, syntax colo-
ring, syntax checking, Vi emulation, Emacs key bindings e outros.

15
CONHECIMENTOS DE INFORMÁTICA

NetBeans DrPython
Analogamente ao Eclipse, o NetBeans também oferece su- Usa wxPython. Criado para ser utilizado em escolas.
porte ao Python através de plugins.
IPython
NINJA-IDE Um shell com muitos recursos, através das comandos “má-
Do acrônimo recursivo: “Ninja-IDE Is Not Just Another IDE”, gicos”. Bastante útil, modo texto apenas. Você pode usá-lo como
é uma IDE multi-plataforma de desenvolvimento integrado. um shell “acoplado” aos seus programas também.
NINJA-IDE é executado em Linux/X11, Mac OS X e sistemas ope-
racionais de desktop Windows, e permite aos desenvolvedores KDevelop
criarem aplicações para diversas finalidades, utilizando todas as IDE livre para GNU/Linux e outros *nixes-like.
ferramentas e utilitários de NINJA-IDE, tornando a tarefa de es-
crever software mais fácil e agradável. PythonWin
IDE que acompanha as extensões Win32 para Python
SPE (PyWin32). Oferece auto-completion e debugging, e tem recur-
Desenvolvido com wxPython é livre e tem algumas funcio- sos extras voltados à programação Windows (coletor de exce-
nalidades interessantes. Tem wxGlade como plugin para dese- ções para componentes COM criados, COM browser, geração de
nho de telas gráficas. arquivos .py com informações sobre objetos COM (static dispa-
tch), etc.).
Spyder 2
Spyder (também conhecido como Pydee) é um poderoso PythonCard
ambiente de desenvolvimento interativo para a linguagem Py- É uma GUI para construção de aplicações multiplataforma
thon com edição avançada, testes interativos, recursos de depu- em Windows, Mac OS X e Linux, usando a linguagem de progra-
ração e introspecção mação Python. O lema de PythonCard é “coisas simples devem
ser simples de fazer e coisas complexas devem devem ser possi-
Pida veis”. É a ferramenta para quem deseja desenvolver aplicações
É um IDE desenvolvido com PyGTK e visa a integração com o gráficas de maneira rápida e fácil, com um mínimo de esforço
Vim. Oferece recursos como project management, source code e codificação; simples mas poderoso. Utiliza a biblioteca wxPy-
management, code browser, code refactor, profiler, debugger thon, mas separa a lógica do código da apresentação utilizando
entre outros. um tipo de arquivo de definição de recursos. (RômuloCampelo
- 08/04/2005)
Eric4
É feito com a biblioteca QT e se integra às ferramentas da PyScripter
QT e com outros softwares como o Bicycle Repair Man (refacto- Acompanha o conjunto de componentes python para Del-
ring) e TabNanny (verificação de indentações). O autor dos bin- phi (embora não requira que o Delphi esteja instalado para fun-
dings python para o Qt4, lançou um instalador para Windows cionar). Suporta debugging, auto-completion, navegação no có-
que contém as bibliotecas e os programas de desenvolvimento digo entre outros recursos.
do Qt4, o pyqwt e o Eric4, o que facilita bastante a instalação no
Windows. PyPE
Não se trata de uma IDE propriamente dita, mas é um editor
Boa-Constructor Python, leve, funcional e rico em recursos interessantes e mul-
Essa é a “única” IDE ao estilo RAD do Delphi/VB. Funcio- tiplataforma. Além disso, é desenvolvido utilizando wxPython.
na com o wxPython na versão 2.4 e acho que é a mais fácil de
ser usada apesar de não promover boas práticas de desenvolvi- Rodeo
mento como a de separar lógica de negócios de apresentação Rodeo é uma IDE leve e intuitiva voltada para análise de da-
(telas). As outras IDEs não possuem mecanismos para desenho dos. Com suporte a Jupyter Notebook, navegador de arquivos,
de telas gráficas mas podem usar ferramentas como Glade e/ busca de packages e visualização de gráficos, além de suporte a
ou wxGlade. comandos VIM.

Eclipse Quatro tipos de dados


Diferente de todos os outros. Pesado, grande, monstruoso Para evitar aquele degrau na segunda coluna entre o 99
mas muito poderoso. É feito em Java e é ideal para desenvolvi- e o 100, precisamos fazer um pequeno desvio para começar a
mento Java. Mas existem plugins para se desenvolver em Python aprender a lidar com textos, além de números. Digite eu = segui-
com ele (e detalhe: atualmente é um brasileiro quem o mantém) do do seu nome entre aspas:
que é o ppydev.
>>> eu = ‘Fulano’
EasyEclipse Você tem que digitar as aspas para evitar um erro. As aspas
EasyEclipse é open source e hospedado pela Sourceforge podem ser ‘simples’ ou “duplas”. Python guardará uma cópia do
que fornece muitas distribuições empacotadas do Eclipse pré- seu nome na memória do computador, e associará o identifica-
-configuradas com plug-ins para Python, Ruby, etc. dor eu a esse dado. Agora basta digitar eu para ver o seu nome.

16
CONHECIMENTOS DE INFORMÁTICA

>>> eu ge é uma expressão do tipo builtin_function_or_method, mas


‘Fulano’ range(3) é uma expressão do tipo ‘list’. Faz sentido? Se não faz,
>>> escreva reclamando!
Antes havíamos criado a variável d referindo-se à cotação
do dólar, e no capítulo anterior também criamos uma variável Cada tipo de dados suporta operações diferentes. Faça algu-
chamada lista, contendo uma lista de valores. Agora criamos a mas experiências e analise os resultados:
variável eu para se referir ao seu nome. Estes são exemplos de
três tipos de dados que Python é capaz de processar: número de >>> n1 = 10
ponto flutuante, lista de valores, e texto. >>> n2 = 20
Você pode saber o tipo de uma variável ou estrutura de da- >>> n1 + n2
dos usando a função type. Veja estes exemplos: 30
>>> n1 = ‘abacate’
>>> n2 = ‘banana’
>>> eu = ‘Luciano’
>>> n1 + n2
>>> d = 1.902
‘abacatebanana’
>>> type(eu)
>>> n2 + n1
<type ‘str’>
‘bananaabacate’
>>> type(d) >>>
<type ‘float’> Por exemplo, o operador + realiza uma soma quando apli-
>>> cado a dados numéricos, mas quando aplicado a dados do tipo
Python acaba de nos dizer que a variável eu refere-se a um string, o sinal + faz uma operação de concatenação (junção de
objeto do tipo ‘str’, uma abreviatura de “string” (basicamente o duas sequências). Agora experimente isto:
computador encara um texto como uma cadeia de caracteres).
E a variável d aponta para um objeto do tipo ‘float’, ou “número >>> x = 3.
de ponto-flutuante”, como já vimos antes. >>> x * 5
15.0
Vejamos mais alguns tipos de dados: >>> ‘x’ * 5
‘xxxxx’
>>> type(1) >>>
<type ‘int’> Note que x e ‘x’ são coisas totalmente diferentes. x é o
>>> type(1.) nome de uma variável que neste momento se refere ao valor
<type ‘float’> 3. (um float). O resultado de x * 5 é 15.0 (outro float, como era
>>> type([1,2,3]) de se esperar). Já ‘x’ é uma string com um caractere. Quando o
<type ‘list’> sinal * é aplicado entre uma string e um número inteiro, Python
>>> realiza uma operação de repetição. Como você pode notar, os
Observe que o número 1 não é ‘float’, mas ‘int’. Já o número operadores + e * fazem coisas diferentes dependendo dos tipos
1. (“um” seguido de um ponto decimal) é considerado um ‘flo- de dados fornecidos na expressão.
at’. Como já dissemos no primeiro capítulo, inteiros e floats têm É um prazer trabalhar com Python porque se trata de uma
tratamento diferente em Python. Uma divisão de inteiros (como linguagem muito coerente. Observe:
7/2), sempre fornece um resultado inteiro (3, nesse exemplo).
O próximo dado testado é uma lista, [1,2,3], que Python chama >>> [1,2] + [3,4]
[1, 2, 3, 4]
de ‘list’.
>>> ‘12’ * 3
‘121212’
Agora, experimente fazer esses dois testes:
>>> [1,2] * 3
[1, 2, 1, 2, 1, 2]
>>> type(range) >>>
<type ‘builtin_function_or_method’> No primeiro exemplo, vemos o operador + concatenando
>>> type(range(3)) duas listas. Os outros dois exemplos mostram a operação de re-
<type ‘list’> petição. Note que ‘12’ não é um número, mas uma string com-
>>> posta pelos caracteres ‘1’ e ‘2’. Para Python, strings e listas têm
Ao perguntarmos qual é o tipo associado ao nome range, muito em comum: ambas são sequências de itens. Enquanto
Python responde: ‘builtin_function_or_method’. Também já vi- strings são sequências de caracteres, listas são sequências de
mos isso no capítulo anterior: o nome range refere-se a uma itens quaisquer. Nos dois casos, concatenação e repetição fun-
função embutida no próprio interpretador. No teste seguinte, cionam de forma logicamente idêntica.
fornecemos um argumento para a função range, e assim pro-
duzimos um resultado (neste caso, a lista [0,1,2], que foi criada Enfeitando a tabela
na memória do seu computador, mas não foi exibida). É sobre Agora que sabemos sobre alguns tipos de dados, e que os
este resultado que a função type foi aplicada, retornando a in- operadores funcionam de forma diferente conforme os dados
formação de que se trata de um dado do tipo ‘list’. Ou seja, ran- da expressão, estamos prontos para aperfeiçoar nosso gerador

17
CONHECIMENTOS DE INFORMÁTICA

de tabelas usando o poderoso operador ‘%’, que em Python não Seu primeiro programa interativo
tem nada a ver com porcentagens. Para ver como ele funciona, Até agora, todos os programas que mostramos não são inte-
vamos criar uma string como esta: rativos, ou seja, uma vez rodando, eles não aceitam a entrada de
dados de um usuário ou do sistema. Programas não interativos
>>> msg = ‘um dólar vale %f real.’ são usados em muitas situações comuns. O programa que emi-
>>> te os cheques da folha de pagamentos de uma grande empresa
Agora vamos ver o que acontece quando chamamos a va- provavelmente não é interativo, mas recebe todos os dados ne-
riável msg: cessários em um único lote, antes de sua execução. Mas os pro-
gramas mais interessantes, como um processador de textos, um
>>> msg game ou o piloto automático de um avião são todos interativos.
‘um d\363lar vale %f real.’ Esse é o tipo de programa que passaremos a desenvolver agora.
>>> Nosso passeio pela ASCII art não teve apenas objetivos es-
Python representa varíaveis string dessa forma: entre aspas téticos. Quisemos mostrar como rodar um programa em Python
simples, e trocando os acentos por códigos especiais (estamos a partir da linha de comando porque, a partir de agora, vamos
falando do código ASCII em notação octal, algo que explicare- usar um comando da linguagem Python que não funciona na
mos depois). Se você quiser exibir o conteúdo de msg de forma atual versão do IDLE. O comando chama-se “raw_input”, e sua
mais apresentável, use o comando print: função é receber uma entrada de dados do usuário (input quer
dizer entrada de dados; cuidado porque você deve ter sido con-
>>> print msg dicionado a acreditar que “antes de P e B sempre vem a letra M”,
um dólar vale %f real. mas input é inglês, e se escreve com N mesmo; eu perdi uma
>>> hora com isso quando aprendia BASIC).
OK, é hora de explicar porque colocamos esse estranho %f Vejamos um primeiro exemplo. Observe que não estamos
dentro da mensagem. Trata-se de um marcador de posição para acentuando o texto no programa porque o DOS não reproduz
sinalizar onde Python deverá inserir um número quando quiser- corretamente os acentos do Windows, e precisamos do DOS
mos imprimir a mensagem com o valor da cotação. Experimente para testar esse programa. Deve haver uma forma de convencer
digitar o seguinte: o DOS a exibir os acentos corretos do Windows, mas ainda não
descobrimos como.
>>> d = 1.902 De qualquer forma, isso não quer dizer que não dá para
>>> print msg % d fazer programas com acentuação correta em Python; quando
um dólar vale 1.902000 real. aprendermos a criar softwares gráficos esse problema desapa-
>>> recerá.
Veja o que aconteceu: Python substituiu a marca %f pelo Digite o programinha abaixo, salve como despdom1.py e
valor da variável d. É assim que funciona: a partir de uma string execute na linha de comando.
com marcas de posição e um ou mais valores, o operador % pro-
duz uma nova string com os valores inseridos nas respectivas Esconder número das linhas
posições. Veja agora um exemplo com dois valores: 1 # despdom1.py - Calculadora de despesas domesticas
2
>>> msg2 = ‘Um dólar vale %f real e um real vale %f dólar.’ 3 print ‘Balanco de despesas domesticas’
>>> print msg2 % (d, 1/d) 4 ana = raw_input(‘Quanto gastou Ana? ‘)
Um dólar vale 1.902000 real e um real vale 0.525762 dólar. 5 bia = raw_input(‘Quanto gastou Bia? ‘)
>>> 6 total = float(ana) + float(bia)
Note que os valores d e 1/d estão entre parênteses. Isso é 7 print ‘Total de gastos = R$ %s.’ % total
obrigatório quando queremos passar mais de um valor para o 8 media = total/2
operador % (uma sequência de valores entre parênteses é um 9 print ‘Gastos por pessoa = R$ %s.’ % media
“tuplo”, um tipo especial de lista que explicaremos em um outro Os números que aparecem à esquerda na listagem acima
capítulo). não fazem parte do programa e não devem ser digitados. Eles
estão aí para facilitar a explicação que vem logo a seguir.
O símbolo %f serve para informar a Python que o valor a Antes de esmiuçar o programa, vale a pena executá-lo para
ser inserido naquela posição é um float. Se você quiser limitar o ver o que acontece. Você será solicitado a digitar um valor para
número de casas após o ponto decimal, basta usar um formato Ana e outro para Bia. Note que os valores deverão ser apenas
como esse: números. Se quiser usar centavos, use o ponto decimal em vez
de vírgula, como já vínhamos fazendo antes. E nada de $ ou R$.
>>> d = 1.685 Vejamos um exemplo de execução:
>>> ‘%.2f’ % d
‘1.69’ C:\PythonXX\Curso>..\python despdom1.py
>>> Balanco de despesas domesticas
Após o marcador %, a indicação .2 determina que devem
aparecer duas casas decimais após o ponto. Note que o resulta- Quanto gastou Ana? 10
do é arredondado: 1.685 virou 1.69. Quanto gastou Bia? 20

18
CONHECIMENTOS DE INFORMÁTICA

Total de gastos = 30.0 Balanco de despesas domesticas


Gastos por pessoa = 15.0
Quanto gastou Ana? 10
C:\PythonXX\Curso> Quanto gastou Bia? 20
Dissecando o código Total de gastos: R$ 30.0
Agora vamos acompanhar, linha por linha, como o interpre- Gastos por pessoa: R$ 15.0
tador executou o programa. Essa é a atividade mais importante Ana deve pagar: R$ 5.0
para desenvolver você como programador ou programadora. Utilize o comando File > Save As... para salvar o programa des-
Você precisa aprender a ler um programa e simular mentalmen- pdom1.py como despdom2.py. Agora vamos modificá-lo para fazer
te que acontece dentro do computador. “Quando você aprender o que queremos. Abaixo, o programa final, e a seguir, a explicação
a se colocar no lugar do computador ao ler um programa, estará de cada mudança que foi feita.
pronto, Gafanhoto”.
Linha 1: O sinal # indica comentário. Tudo o que aparece 1 # despdom2.py - Calculadora de despesas domesticas - ver-
em uma linha a partir desse sinal é ignorado pelo interpretador sao 2
Python. Neste caso, o comentário explica para nós, humanos, 2
o propósito do programa. Note que o comentário não aparece 3 print ‘Balanco de despesas domesticas’
para o usuário final quando o programa é executado. Comen- 4 ana = float(raw_input(‘Quanto gastou Ana? ‘))
tários servem apenas para ser lidos por outros programadores. 5 bia = float(raw_input(‘Quanto gastou Bia? ‘))
Linha 3: O velho comando print é usado para escrever o títu- 6 print
lo “Balanco de despesas domesticas” na tela do usuário. 7 total = ana + bia
Linha 4: O comando raw_input exibe a pergunta “Quanto 8 print ‘Total de gastos: R$ %s’ % total
gastou Ana?”, aguarda uma resposta e armazena na varíavel ana. 9 media = total/2
Linha 5: O mesmo comando é usado para guardar os gastos 10 print ‘Gastos por pessoa: R$ %s’ % media
de Bia na variável bia. 11 if ana < media:
Linha 6: Aqui é calculado o total. Note o uso da função float. 12 diferenca = media - ana
Acontece que a função raw_input não retorna números, e sim 13 print ‘Ana deve pagar: R$ %s’ %diferenca
strings. Como vimos no capítulo anterior, o operador “+” tem 14 else:
efeitos diferentes quando aplicado a strings; em vez de somar, 15 diferenca = media - bia
ele concatena ou junta os textos. Nesse caso, se ana é ‘10’ e bia 16 print ‘Bia deve pagar: R$ %s’ % diferenca
é ‘20’, ana + bia seria ‘1020’. Para realizar a soma, precisamos Linha 1: Acrescentamos “versao 2” ao comentário
antes transformar as strings em números, o que é feito pela fun- Linhas 4 e 5: Aqui fazemos a conversão dos resultados de raw_
ções float ou int. Nesse caso, usamos float porque não vamos input para float imediatamente, de modo que os valores armazena-
nos limitar a aceitar números inteiros. dos nas variáveis ana e bia são números, e não strings como antes.
Linha 7: O total é exibido, com o auxílio do operador % que Linha 6: Uma mudança cosmética apenas: acrescentamos uma
insere o valor na posição assinalada pelos caracteres %s dentro linha com apenas um print, para deixar na tela uma linha em branco
da mensagem. O código %s faz com que Python transforme o entre as perguntas e os resultados.
número em string. Linhas 7: Agora podemos simplesmente somar os valores de
Linha 8: Cálculo da média. Como ambos os valores são float, ana e bia, que já foram convertidos para float nas linhas 4 e 5.
o resultado será preciso (se fossem inteiros, o resultado também Linhas 8 a 10: Exibimos o total e processamos a média, como
seria forçado a ser inteiro, o que nesse caso levaria a erros do antes.
tipo). Linha 11: Apresentamos um novo comando de bloco, o co-
Linha 9: Mostramos a média, usando a mesma técnica da mando if, que pode ser traduzido exatamente como “se”. Essa linha
linha 7. diz, literalmente: “se ana < media:”. Ou seja, se o valor de Ana for
Experimente rodar o programa algumas vezes. Note que menor que o valor da média, execute o bloco endentado a seguir
não é um programa muito robusto: se você não digitar coisa al- (linhas 12 e 13). Caso contrário, não execute essas linhas, e passe
guma e teclar [ENTER] após uma das perguntas, ou responder direto para a linha 14.
com letras em vez de números, o programa “quebra”. No pró- Linhas 12 e 13: Calculamos e exibimos quanto Ana deve pagar.
ximo capítulo aprenderemos a lidar com entradas inesperadas. Linha 14: Aqui vemos outro comando de bloco, o else, que
pode ser traduzido como “senão”. O else só pode existir após um
Um programa mais esperto bloco iniciado por if. O bloco que segue o else só é executado quan-
O programa acima é quase útil. Ele calcula a despesa total do a condição prevista no if não ocorre. Isso significa que, quando
e a média, mas não responde à pergunta fundamental: quanto temos um bloco if e um bloco else, é garantido que apenas um dos
Ana tem que pagar a Bia, ou vice-versa? A aritmética envolvida dois será executado. Nesse caso, as linhas 15 e 16 só serão executa-
é simples: se Ana gastou menos, ela precisa pagar a Bia um valor das se o valor de Ana não for menor que a média.
igual à diferença entre o que gastou e a média. Gostaríamos que Linhas 15 e 16: Calculamos e exibimos quanto Bia deve pagar.
nosso programa funcionasse assim: Experimente um pouco com o programa despdom2.py. O
que acontece quando os gastos de Ana e Bia são iguais? Tente
responder essa pergunta sem rodar o programa. A chave está
na linha 11. Qual é a média quando os gastos são iguais? Ten-

19
CONHECIMENTOS DE INFORMÁTICA

te simular mentalmente o comportamento do computador na Dependendo do interpretador e da versão do Python que


execução passo a passo do programa. Dedique alguns minutos você esteja utilizando, ele poderá exibir diretamente os valores
a esse desafio, e só então rode o programa com valores iguais ‘True’ ou ‘False’. Isso acontece porque à variável foi atribuído o
para ver se acontece o que você imaginou. tipo booleano. Esse tipo retorna False para 0 e True para qualquer
valor diferente e zero, incluindo números negativos e decimais.
Tudo sobre o if
O comando if, que acabamos de conhecer através de um >>> booleano = 5
exemplo, é uma peça fundamental da linguagem Python, e de >>> bool(5)
quase todas as linguagens de programação existentes. Sua fun- True
ção é descrita como “comando de execução condicional de blo- >>> booleano = booleano - 5
co”, ou seja, é um comando que determina a execução ou não >>> bool(booleano)
de um bloco de comandos, de acordo com uma condição lógica. False
No exemplo, a condição lógica é “ana < media”. O operador < Voltando ao comando if, não existe nenhuma lei que obrigue
serve para comparar dois números e determinar se o primeiro a presença de um operador de comparação na condição do if. A
é menor que o segundo (ele também funciona com strings, mas única coisa que interessa é que a expressão que estiver no lugar
aí a comparação segue uma regra parecida com a ordem usada da condição será considerada falsa se for igual a 0 (zero), uma
dos dicionários). Os operadores de comparação de Python são string vazia, uma lista vazia ou o valor especial None, sobre o qual
os mesmos usados em Java e C++: voltaremos a falar depois. Qualquer valor que não seja um desses
será considerado “verdadeiro”, e provocará a execução do bloco
subordinado ao if. É por isso que os operadores de comparação
retornam 0 ou 1 para representar falso ou verdadeiro.
Não é obrigatória a presença de um bloco else após um if.
Mas um else só pode existir após um if. E um if pode conter, no
máximo, um else. Existe um terceiro comando de bloco relacio-
nado a esses, chamado elif. Ele corresponde à combinação else-if
existente em outras linguagens. Assim como o if, cada elif deve
ser acompanhado de uma condição que determinará a execução
do bloco subordinado. Como todo comando de bloco, a primeira
linha do elif deve ser terminada por um sinal de :.
Um if pode ser seguido de qualquer quantidade de blocos
elif, e se houver um bloco else ele deverá vir depois de todos os
elif. Veja esse fragmento de código, parte de um jogo simples que
criaremos no próximo capítulo:

Esconder número das linhas


Para sentir o funcionamento desses operadores, abra o in- 1 if vf == 0:
terpretador interativo do Python e digite esses testes (não va- 2 print ‘Alunissagem perfeita!’
mos mostrar os resultados aqui; faça você mesmo). 3 elif vf <= 2:
4 print ‘Alunissagem dentro do padrao.’
>>> a = 1 5 elif vf <= 10:
>>> b = 2 6 print ‘Alunissagem com avarias leves.’
>>> a == 1 7 elif vf <= 20:
>>> a == 2 8 print ‘Alunissagem com avarias severas.’
>>> a == b 9 else:
>>> 2 == b 10 print ‘Modulo lunar destruido no impacto.’
>>> a != b Numa sequência de if/elif/elif/.../else é garantido que um, e
>>> a != 1 apenas um dos blocos será executado. Fica como desafio para o
>>> a < b leitor descobrir como usar o comando elif para corrigir o bug dos
>>> a >= b gastos iguais, que aparece no programa despdom2.py.
As linhas 1 e 2 não produzem nenhum resultado, como já
vimos antes. Elas apenas atribuem valor às variáveis a e b. A li- Mais sobre o while
nha 3 parece um pouco com a linha 1, mas significa algo com- Os comandos while e for são semelhantes por causarem a re-
pletamente diferente. Aqui não acontece nenhuma atribuição, petição de um bloco. Ambos são chamados, pelos computólogos,
apenas uma comparação, que vai gerar um resultado. Um erro de comandos de iteração (iteração é sinônimo de repetição; não
bastante comum cometido por quem está aprendendo Python, confunda com “interação”, que é uma ação recíproca entre dois
C ou Java é usar = no lugar de == ao fazer uma comparação (em ou mais agentes).
Basic, por exemplo, o = é usado nos dois casos). Após cada as A diferença é que no comando for a iteração serve para per-
linhas a partir da linha 3, o interpretador mostrará um número 1 correr uma lista de itens, como fizemos anteriormente quando
ou 0, para indicar que a comparação é verdadeira (1) ou falsa (0). trabalhamos com tabelas de conversão. No caso do for, o núme-

20
CONHECIMENTOS DE INFORMÁTICA

ro de repetições é sempre conhecido de antemão: o bloco será Aqui a lógica é um pouco diferente: na linha 6 o loop while
executado uma vez para cada item da lista. O comando while tem como condição o número 1. Como o número 1 é constante,
serve para todos os outros casos de iteração, quando o número e é considerado “verdadeiro” pelo interpretador Python, o loop
de repetições é indefinido. Nossa somadora infinita é um exem- das linhas 6 a 9 seria repetido infinitas vezes, em tese. Na práti-
plo típico: a iteração que solicita valores e os totaliza poderá ser ca, a linha 8 verifica se o valor de n é zero. Em caso afirmativo, o
repetida qualquer número de vezes, dependendo apenas da sua comando “break” é acionado. Isso faz com que o loop while seja
vontade. interrompido imediatamente, e a execução do programa passa
Agora vamos analisar de perto duas circunstâncias espe- diretamente para a próxima linha após o bloco (linha 10 em nos-
ciais. Rode o programa e digite 0 (zero) como primeiro valor. Nas so exemplo).
linhas 5 e 6 o programa armazenará o zero nas variáveis n e to- Essa forma de codificar, usando loops infinitos com breaks,
tal. A seguir, na linha 7, o comando while verificará a condição não está de acordo com a Programação Estruturada, a filosofia
n != 0. Nesse caso, a condição será falsa. Então o bloco subordi- dominante entre os programadores nos anos 70. O problema
nado ao while não será executado nenhuma vez, e o programa é que não fica imediatamente aparente qual é a condição de
passará direto para a linha 10, mostrando o total. terminação do loop e alguns professores de computação podem
Outro momento interessante ocorre quando o primeiro va- descontar pontos por isso. Mas em se tratando de um bloco de
lor digitado não é zero, e a iteração é executada. Digamos que o apenas três linhas, não acho que isso seja um grande problema.
usuário digitou [1][Enter], [2][Enter] e [0][Enter]. O zero digitado A vantagem é que agora a função de leitura de dados ocorre em
pelo usuário será lido e armazenado em n na linha 8, como já apenas um lugar no programa (na linha 7) e não em dois, como
vimos. Na linha 9 o valor de n é somado ao total. Nessa iteração na versão anterior (linhas 5 e 8 de somadora1.py). Isso simpli-
o valor de n é zero, portanto estamos somando zero ao total, ficará nossa próxima alteração. Além disso, não acontece mais
uma operação inofensiva. Só após efetuar essa soma inútil, o a totalização inútil da linha 9, somando zero ao total na saída,
programa retornará ao início do bloco e verificará que a condi- porque o comando break da linha 8 faz o programa passar direto
ção do while não é mais verdadeira, pois agora nosso n é igual a para a linha 10.
zero. É importante perceber que, apesar de o valor de n passar a Uma forma mais natural de codificar esse loop seria usar
ser zero na linha 8, a execução continua até o fim do bloco, pas- comandos com o do/while ou repeat/until existentes em lin-
sando pela linha 9, para só então ocorrer o retorno ao início do guagens como C/C++/Java e Pascal/Delphi; nessas estruturas de
bloco e a verificação da condição de continuidade da repetição. controle, o teste é feito no fim do loop, garantindo a execução
Quando estudamos as condições lógicas no final do capítu- do bloco ao menos uma vez. É o que precisamos fazer aqui, mas
lo anterior, aprendemos que Python considera o valor 0 (zero) Python não possui um comando de loop especial para essa si-
como sinônimo de “falso”, e valores não-zero como “verdadei- tuação.
ros”. Programadores experientes em Python costumam tirar Fonte:
proveito desse fato para abreviar as condições que colocam em https://python.org.br
seus ifs e whiles. Em nosso programa somadora1.py, a linha 7: https://wiki.python.org.br/AprendaProgramar

while n != 0: Scripts são programas que executam determinadas tarefas


pode ser escrita de forma mais abreviada assim: e/ou rotinas automáticas no computador e em quaisquer dispo-
sitivos eletrônicos, sem precisar que alguém faça a mesma coisa
while n: manualmente. Scripts são criados por meio de linguagens de
Faça essa alteração no programa e experimente. Você verá programação (C, Java, PHP, ASP entre outras) . Através destas
que nada mudou no seu funcionamento. Isso porque, quando n linguagens, os desenvolvedores ou programadores escrevem
é diferente de zero, a condição “n” expressa em while n: é con- códigos que podem automatizar tarefas desde as mais simples
siderada verdadeira, e a iteração é executada. Quando n passa a as mais complexas. Há scripts para computadores, celulares, ta-
ser zero, a condição é falsa, encerrando a iteração. blets, para qualquer dispositivo móvel. A principal característica
ou essência do script é evitar repetição de trabalho manual já
Loops (quase) infinitos que o script fará por você. Com isso economiza tempo e evita o
Outra forma de escrever a somadora, mais elegante em mi- desgaste físico.
nha opinião, é a mostrada na listagem 3.
Exemplos de scripts:
Esconder número das linhas Os scripts mais conhecidos são os que criam efeitos espe-
1 # somadora2.py - somadora infinita - versao 2 ciais, como colocar uma palavra em negrito e itálico. Script que
2 faz o texto piscar. Scripts para enviar e receber mensagens nas
3 print ‘Digite os valores a somar seguidos de [ENTER].’ redes sociais. Os aplicativos do facebook são scripts. Quando
4 print ‘Para encerrar digite zero: 0’ você usa alguma ferramenta de pesquisa, é um script que busca
5 total = 0 o que você procura. A agenda de um celular é um script que or-
6 while 1: ganiza e gerencia todos seus contatos. Sempre que você clica em
7 n = float(raw_input(‘:’)) um botão, imagem ou link em seu navegador é um script que faz
8 if n == 0: break com que o site funcione. Cada opção, ao ser clicada pelo usuário,
9 total = total + n chama um script que executa determinada funcionalidade. To-
10 print ‘TOTAL: %s’ % total dos os ícones bonitinhos na tela do seu celular, smartphone ou

21
CONHECIMENTOS DE INFORMÁTICA

tablets são scripts. Existem scripts grátis e pagos. A tendência O lado do servidor do JavaScript estende-se do núcleo da
é de que quanto mais complexo for para criar um script, maior linguagem, fornecendo objetos relevantes à execução do JavaS-
será seu custo. Mas existem excelentes scripts grátis no mercado cript em um servidor. Por exemplo, as extensões do lado do ser-
desenvolvido por profissionais solidários. vidor permitem que uma aplicação se comunique com um ban-
co de dados, garantindo a continuidade de informações de uma
Diferença entre Java script, action script e Shell script? chamada para a outra da aplicação, ou executar manipulações
Java script é usado em navegadores (chrome, internet ex- de arquivos em um servidor.
plore, Mozilla e outros). Java script é uma linguagem de pro-
gramação que tem como objetivo criar scripts para serem exe- JavaScript e Java
cutados no navegador do usuário. Quando o usuário clica em JavaScript e Java são similares em algumas coisas, mas são
alguma opção em seu navegador, são os scripts ,que estão no diferentes em outras. O JavaScript assemelha-se ao Java, porém
navegador, que faz a opção funcionar. O action script é pratica- não possui tipagem estática e checagem rigída de tipos como o
mente a mesma coisa do Java script, a diferença é que o action Java. JavaScript segue a sintaxe básica do Java, convenções de
script é uma linguagem de programação do adobe flash. Action nomenclatura e construções de controle de fluxo, razões pelas
script seve para criar animações em flash. Quando você vê uma quais esta linguagem foi renomeada de LiveScript para JavaS-
animação que faz com que a página do site demore a carregar, cript.
é provável que está animação esteja em flash. Com Java script Em contraste com o sistema em tempo de compilação das
você consegue criar animações também, porém com action classes construídas por declarações no Java, JavaScript suporta
script você tem muito mais recursos, pois a linguagem foi desen- um sistema em tempo de execução com base em um pequeno
volvida para este fim. número de tipos de dados representando valores numéricos,
Já o Shell script é uma linguagem de programação para in- booleanos, e strings. JavaScript tem um modelo de objeto ba-
teragir com o sistema operacional. Shell script é muito usado no seado em protótipo em vez do modelo, mais comum, de objeto
Linux para a realização das mais diversas atividades administra- baseado em classes. O modelo baseado em protótipo fornece
tivas e de manutenção do sistema. O Shell é um interpretador de herança dinâmica; isto é, o que é herdado pode variar para ob-
comandos digitados pelo usuário. Você tecla um comando e o jetos individuais. JavaScript também suporta funções sem quais-
Shell interpreta e executa para realizar a tarefa desejada. O Shell quer requisitos especiais declarativos. As funções podem ser
serve para automatizar rotinas feitas no sistema, como fazer ba- propriedades de objetos, executando como métodos.
ckup dos arquivos, documentos e sites do servidor. Para fazer JavaScript é uma linguagem mais livre em comparação a
formatações de HD, pendrive, pra instalar programas via linha Java. Você não tem de declarar todas as variáveis, classes e mé-
de comando, para pesquisar e encontrar arquivos de difícil aces- todos. Você não tem que se preocupar com o fato dos métodos
so no sistema. No Windows, os arquivos de lote batch (*.bat) serem públicos, privados ou protegidos, e você não tem que im-
são também exemplos de Shell scripts. Seria o prompt de co- plementar interfaces. Variáveis, parâmetros e tipo de retorno da
mando (command.com e/ou cmd.exe). No Linux, é o bash ou sh. função não são explicitamente tipados.
Java é uma linguagem de programação baseada em classes,
Porque usar scripts? projetada para execução rápida e segurança de tipos. Segurança
O objetivo de ao criar um script é automatizar tarefas des- de tipo significa que, por exemplo, você não pode converter um
gastantes e repetitivas. Com isso, você ganha mais tempo para número inteiro em Java para uma referência de objeto ou aces-
se dedicar a tarefas mais importantes e urgentes. Então, use sar a memória privada corrompendo bytecodes Java. O modelo
scripts para simplificar sua vida, seu negócio. baseado em classes do Java significa que os programas são ex-
clusivamente constituídos por classes e seus métodos. Herança
O que é JavaScript? de classe do Java e tipagem forte geralmente requerem hierar-
JavaScript é uma linguagem de script orientada a objetos, quias de objetos fortemente acoplados. Esses requisitos tornam
multiplataforma. É uma linguagem pequena e leve. Dentro de a programação em Java mais complexa do que a programação
um ambiente de host (por exemplo, um navegador web) o JavaS- em JavaScript.
cript pode ser ligado aos objetos deste ambiente para prover um
controle programático sobre eles. Em contraste, JavaScript descende em espírito de uma li-
JavaScript tem uma biblioteca padrão de objetos, como: nhagem de linguagens menores com tipagem dinâmica, como
Array, Date, e Math, e um conjunto de elementos que formam o HyperTalk e dBASE. Essas linguagens de script oferecem ferra-
núcleo da linguagem, tais como: operadores, estruturas de con- mentas de programação para um público muito mais amplo por
trole e declarações. O núcleo do JavaScript pode ser estendido causa de sua sintaxe mais fácil, funções especializadas embuti-
para uma variedade de propósitos, complementando assim a das e requisitos mínimos para a criação de objetos.
linguagem:
O lado cliente do JavaScript estende-se do núcleo lingua-
gem, fornecendo objetos para controlar um navegador web e
seu Document Object Model (DOM). Por exemplo, as exten-
sões do lado do cliente permitem que uma aplicação coloque
elementos em um formulário HTML e responda a eventos do
usuário, como cliques do mouse, entrada de formulário e de na-
vegação da página.

22
CONHECIMENTOS DE INFORMÁTICA

Começando com JavaScript


Começar a aprender JavaScript é fácil: Tudo o que você precisa é de um navegador web moderno. Esse guia inclui algumas ca-
racterísticas do JavaScript que só estão disponíveis nas últimas versões do Firefox, então, é recomendável o uso de uma versão mais
recente do Firefox.
Há duas ferramentas no Firefox que são muito úteis para aprender JavaScript: O console web e o Scratchpad.

O console web
O console web mostra informações sobre a página web que está sendo carregada atualmente e também inclui a linha de coman-
do que você pode utilizar para executar códigos JavaScript na página atual.
Para abrir o console (Ctrl+Shift+K), selecione “Web Console” do menu “Web Developer”, que está sob o menu “Tools” no Firefox.
Ele aparece na parte inferior da janela do navegador. Na parte inferior do console está a linha de comando que você pode usar para
colocar o JavaScript, e a saída é exibida no painel acima:

Scratchpad
O Web Console é excelente para executar linhas únicas de JavaScript, mas embora você possa executar várias linhas, não é muito
conveniente para isso, e você não pode salvar as amostras de código usando o Web Console. Assim, para exemplos mais complexos a
ferramenta Scratchpad é melhor.

23
CONHECIMENTOS DE INFORMÁTICA

Para abrir o Scratchpad (Shift+F4), selecione “Scratchpad” do menu “Web Developer”, que está sob o menu “Tools/Ferramentas”
do Firefox. Ele abre em uma janela separada e é um editor que você pode usar para escrever e executar JavaScript no navegador. Você
também pode salvar os scripts para o disco e carregá-los a partir do disco.

Hello world
Para começar a escrever JavaScript, abra o Console Web ou o Scratchpad e escreva seu primeiro código JavaScript “Olá, mundo”.
function greetMe(nome) {
alert(“Olá, “ + nome);
}

greetMe(“mundo”); // “Olá, mundo”


Logo após, pressione Ctrl+R para executar o código em seu navegador.

Sintaxe básica
JavaScript pega emprestado a maior parte de sua sintaxe do Java, mas também é influenciado por Awk, Perl e Python.
JavaScript é case-sensitive e usa o conjunto de caracteres Unicode. Por exemplo, a palavra Früh (que significa “cedo” em Alemão)
pode ser usada como nome de variável.
var Früh = “foobar”;
Mas a variável früh não é a mesma que Früh porque JavaScript é case sensitive.
No JavaScript, instruções são chamadas de declaração e são separadas por um ponto e vírgula (;). Espaços, tabulação e uma nova
linha são chamados de espaços em branco. O código fonte dos scripts em JavaScript são lidos da esquerda para a direita e são conver-
tidos em uma sequência de elementos de entrada como simbolos, caracteres de controle, terminadores de linha, comentários ou es-
paço em branco. ECMAScript também define determinadas palavras-chave e literais, e tem regras para inserção automática de ponto
e vírgula (ASI) para terminar as declarações. No entanto, recomenda-se sempre adicionar ponto e vírgula no final de suas declarações;
isso evitará alguns imprevistos. Para obter mais informações, consulte a referência detalhada sobre a gramática léxica do JavaScript.

Comentários
A sintaxe dos comentários em JavaScript é semelhante como em C++ e em muitas outras linguagens:

24
CONHECIMENTOS DE INFORMÁTICA

// comentário de uma linha var input;


/* isto é um comentário longo if(input === undefined){
de múltiplas linhas. facaIsto();
*/ } else {
/* Você não pode, porém, /* aninhar comentários */ Syn- facaAquilo();
taxError */ }
O valor undefined se comporta como falso (false), quando
Declarações usado em um contexto booleano. Por exemplo, o código a seguir
Existem três tipos de declarações em JavaScript. executa a função myFunction devido o elemento myArray ser
undefined:
var var myArray = [];
Declara uma variável, opcionalmente, inicializando-a com if (!myArray[0]) myFunction();
um valor.
O valor undefined converte-se para NaN quando usado no
let
contexto numérico.
Declara uma variável local de escopo do bloco, opcional-
mente, inicializando-a com um valor.
const var a;
Declara uma constante de escopo de bloco, apenas de lei- a + 2; // Avaliado como NaN
tura. Quando você avalia uma variável nula, o valor nulo se com-
porta como 0 em contextos numéricos e como falso em contex-
Variáveis tos booleanos. Por exemplo:
Você usa variáveis como nomes simbólicos para os valores
em sua aplicação. O nome das variáveis, chamados de identifica- var n = null;
dores, obedecem determinadas regras. console.log(n * 32); // a saída para o console será 0.
Um identificador JavaScript deve começar com uma letra, Escopo de variávelSeção
underline (_), ou cifrão ($); os caracteres subsequentes podem Quando você declara uma váriavel fora de qualquer função,
também ser números (0-9). Devido JavaScript ser case-sensitive, ela é chamada de variável global, porque está disponível para
letras incluem caracteres de “A” a “Z” (maiúsculos) e caracteres qualquer outro código no documento atual. Quando você de-
de “a” a “z” (minúsculos). clara uma variável dentro de uma função, é chamada de variável
Você pode usar a ISO 8859-1 ou caracteres Unicode tal local, pois ela está disponível somente dentro dessa função.
como os identificadores å e ü. Você pode também usar as se- JavaScript antes do ECMAScript 6 não possuía escopo de de-
quências de escape Unicode como caracteres e identificadores. claração de bloco; pelo contrário, uma variável declarada dentro
Alguns exemplos de nomes legais são Numeros_visitas, de um bloco de uma função é uma variável local (ou contexto
temp99, e _nome. global) do bloco que está inserido a função. Por exemplo o có-
digo a seguir exibirá 5, porque o escopo de x está na função (ou
Declarando variáveis contexto global) no qual x é declarado, não o bloco, que neste
Você pode declarar uma variável de três formas: caso é a declaração if.
Com a palavra chave var. Por exemplo, var x = 42. Esta sin-
taxe pode ser usada para declarar tanto variáveis locais como if (true) {
variáveis globais. var x = 5;
Por simples adição de valor. Por exemplo, x = 42. Isso decla-
}
ra uma variável global. Essa declaração gera um aviso de adver-
console.log(x); // 5
tência no JavaScript. Você não deve usar essa variante.
Com a palavra chave let. Por exemplo, let y = 13. Essa sinta- Esse comportamento é alterado, quando usado a declara-
xe pode ser usada para declarar uma variável local de escopo de ção let introduzida pelo ECMAScript 6.
bloco. Veja escopo de variável abaixo.
if (true) {
Classificando variáveis let y = 5;
Uma variável declarada usando a declaração var ou let sem }
especificar o valor inicial tem o valor undefined. console.log(y); // ReferenceError: y não está definido
Uma tentativa de acessar uma variável não declarada resul-
tará no lançamento de uma exceção ReferenceError: Hoisting
var a; Outra coisa incomum sobre variáveis em JavaScript é que
console.log(“O valor de a é “ + a); // saída “O valor de a é você pode utilizar a variável e declará-la depois, sem obter uma
undefined” exceção. Este conceito é conhecido como hoisting; variáveis em
console.log(“O valor de b é “ + b); // executa uma exception JavaScript são num sentido “hoisted” ou lançada para o topo da
de erro de referência (ReferenceError) função ou declaração. No entanto, as variáveis que são “hois-
Você pode usar undefined para determinar se uma variável ted” retornarão um valor undefined. Então, mesmo se você usar
tem um valor. No código a seguir, não é atribuído um valor de ou referir a variável e depois declará-la e inicializá-la, ela ainda
entrada na variável e a declaração if será avaliada como verda- retornará undefined.
deira (true).

25
CONHECIMENTOS DE INFORMÁTICA

/** Uma constante não pode alterar seu valor por meio de uma
* Exemplo 1 atribuição ou ao ser declarada novamente enquanto o script é
*/ executado. Deve ser inicializada com um valor.
console.log(x === undefined); // exibe “true”
var x = 3; As regras de escopo para as constantes são as mesmas para
as variáveis let de escopo de bloco. Se a palavra-chave const for
/** omitida, o identificado é adotado para representar uma variável.
* Exemplo 2
*/ Você não pode declarar uma constante com o mesmo nome
// retornará um valor undefined de uma função ou variável que estão no mesmo escopo. Por
var myvar = “my value”; exemplo:

(function() { // Isto irá causar um erro


console.log(myvar); // undefined function f() {};
var myvar = “local value”; const f = 5;
})();
Os exemplos acima serão interpretados como: // Isto também irá causar um erro.
function f() {
/** const g = 5;
* Exemplo 1 var g;
*/
var x; //declarações
console.log(x === undefined); // exibe “true” }
x = 3; Estrutura de dados e tiposSeção
Tipos de dadosSeção
/** O mais recente padrão ECMAScript define sete tipos de da-
* Exemplo 2 dos:
*/
var myvar = “um valor”; Seis tipos de dados são os chamados primitivos:
Boolean. true e false.
(function() { null. Uma palavra-chave que indica valor nulo. Devido Ja-
var myvar; vaScript ser case-sensitive, null não é o mesmo que Null, NULL,
console.log(myvar); // undefined ou ainda outra variação.
myvar = “valor local”; undefined. Uma propriedade superior cujo valor é indefi-
})(); nido.
Devido o hoisting, todas as declarações var em uma função Number. 42 ou 3.14159.
devem ser colocadas no início da função. Essa recomendação de String. “Howdy”
prática deixa o código mais legível. Symbol (novo em ECMAScript 6). Um tipo de dado cuja as
instâncias são únicas e imutáveis.
Variáveis Globais e Object
Variáveis globais são propriedades do objeto global. Em Embora esses tipos de dados sejam uma quantidade rela-
páginas web o objeto global é a window, assim você pode con- tivamente pequena, eles permitem realizar funções úteis em
figurar e acessar variáveis globais utilizando a sintaxe window. suas aplicações. Objetos e funções são outros elementos fun-
variavel. damentais na linguagem. Você pode pensar em objetos como
recipientes para os valores, e funções como métodos que suas
Consequentemente, você pode acessar variáveis globais de- aplicações podem executar.
claradas em uma janela ou frame ou frame de outra janela. Por
exemplo, se uma variável chamada phoneNumber é declarada Conversão de tipos de dadosSeção
em um documento, você pode consultar esta variável de um fra- JavaScript é uma linguagem dinamicamente tipada. Isso sig-
me como parent.phoneNumber. nifica que você não precisa especificar o tipo de dado de uma
variável quando declará-la, e tipos de dados são convertidos au-
Constantes tomaticamente conforme a necessidade durante a execução do
Você pode criar uma constante apenas de leitura por meio script. Então, por exemplo, você pode definir uma variável da
da palavra-chave const. A sintaxe de um identificador de uma seguinte forma:
constante é semelhante ao identificador de uma variável: deve
começar com uma letra, underline ou cifrão e pode conter ca- var answer = 42;
ractere alfabético, numérico ou underline. E depois, você pode atribuir uma string para a mesma vari-
ável, por exemplo:
const prefix = ‘212’;

26
CONHECIMENTOS DE INFORMÁTICA

answer = “Obrigado pelos peixes...”; Se um array é criado usando um literal no topo do script,
Devido JavaScript ser dinamicamente tipado, essa declara- JavaScript interpreta o array cada vez que avalia a expressão que
ção não gera uma mensagem de erro. contêm o array literal. Além disso, um literal usado em uma fun-
ção é criado cada vez que a função é chamada.
Em expressões envolvendo valores numérico e string com o Array literal são também um array de objetos. Veja Array e
operador +, JavaScript converte valores numérico para strings. Coleções indexadas para detalhes sobre array de objetos.
Por exemplo, considere a seguinte declaração:
Vírgulas extras em array literal
x = “A resposta é “ + 42 // “A resposta é 42” Você não precisa especificar todos os elementos em um ar-
y = 42 + “ é a resposta” // “42 é a resposta” ray literal. Se você colocar duas vírgulas em uma linha, o array
Nas declarações envolvendo outros operadores, JavaScript é criado com undefined para os elementos não especificados. O
não converte valores numérico para strings. Por exemplo: exemplo a seguir cria um array chamado fish:

“37” - 7 // 30 var fish = [“Lion”, , “Angel”];


“37” + 7 // “377” Esse array tem dois elementos com valores e um elemento
Convertendo strings para númerosSeção vazio (fish[0] é “Lion”, fish[1] é undefined, e fish[2] é “Angel” ).
No caso de um valor que representa um número está arma- Se você incluir uma vírgula à direita no final da lista dos
zenado na memória como uma string, existem métodos para a elementos, a vírgula é ignorada. No exemplo a seguir, o com-
conversão. primento do array é três. Não há nenhum myList[3]. Todas as
outras vírgulas na lista indicam um novo elemento.
parseInt() Nota : Vírgulas à direita podem criar erros em algumas ver-
parseFloat() sões de navegadores web antigos, é recomendável removê-las.
parseInt irá retornar apenas números inteiros, então seu var myList = [‘home’, , ‘school’, ];
uso é restrito para a casa dos decimais. Além disso, é uma boa No exemplo a seguir, o comprimento do array é quatro, e
prática ao usar parseInt incluir o parâmetro da base. O parâme- myList[0] e myList[2] são undefined.
tro da base é usado para especificar qual sistema númerico deve var myList = [ , ‘home’, , ‘school’];
ser usado. No exemplo a seguir, o comprimento do array é quatro, e
myList[1] e myList[3] são undefined. Apenas a última vírgula é
Um método alternativo de conversão de um número em ignorada.
forma de string é com o operador + (operador soma): var myList = [‘home’, , ‘school’, , ];
Entender o comportamento de vírgulas extras é importante
“1.1” + “1.1” = “1.11.1” para a compreensão da linguagem JavaScript, no entanto, quan-
(+”1.1”) + (+”1.1”) = 2.2 do você escrever seu próprio código: declarar explicitamente os
// Nota: Os parênteses foram usados para deixar mais legí- elementos em falta como undefined vai aumentar a clareza do
vel o código, ele não é requerido. código, e consequentemente na sua manutenção.

Literais Literais Boolean


Você usa literais para representar valores em JavaScript. O tipo Boolean tem dois valores literal: true e false.
Estes são valores fixados, não variáveis, que você literalmente Não confunda os valores primitivos Boolean true e false
insere em seu script. Esta seção descreve os seguintes tipos li- com os valores true e false do objeto Boolean. O objeto Boolean
terais: é um invólucro em torno do tipo de dado primitivo. Veja Boole-
an para mais informação.
Array literal
Literais boolean Inteiros
Literais de ponto flutuante Inteiros podem ser expressos em decimal (base 10), hexa-
Inteiros decimal (base 16), octal (base 8) e binário (base 2).
Objeto literal Decimal inteiro literal consiste em uma sequência de dígitos
String literal sem um 0 (zero).
Array literalSeção 0 (zero) em um inteiro literal indica que ele está em octal.
Um array literal é uma lista de zero ou mais expressões, Octal pode incluir somente os dígitos 0-7.
onde cada uma delas representam um elemento do array, in- 0x (ou 0X) indica um hexadecimal. Inteiros hexadecimais
seridas entre colchetes ([]). Quando você cria um array usando podem incluir dígitos (0-9) e as letras a-f e A-F.
um array literal, ele é inicializado com os valores especificados 0b (ou 0B) indica um binário. Inteiros binário podem incluir
como seus elementos, e seu comprimento é definido com o nú- apenas os dígitos 0 e 1.
mero de elementos especificados. Alguns exemplos de inteiros literal são:
O exemplo a seguir cria um array coffees com três elemen-
tos e um comprimento de três: 0, 117 and -345 (decimal, base 10)
var coffees = [“French Roast”, “Colombian”, “Kona”]; 015, 0001 and -077 (octal, base 8)
Nota : Um array literal é um tipo de inicializador de objetos. 0x1123, 0x00111 and -0xF1A7 (hexadecimal, “hex” or base
Veja Usando inicializadores de Objetos. 16)

27
CONHECIMENTOS DE INFORMÁTICA

0b11, 0b0011 and -0b11 (binário, base 2) console.log(carro.carros.b); // Jeep


Para maiores informações, veja Literais numérico na refe- console.log(carro[7]); // Mazda
rência Léxica. Nomes de propriedades de objeto podem ser qualquer
string, incluindo uma string vazia. Caso o nome da propriedade
Literais de ponto flutuanteSeção não seja um identificador JavaScript ou número, ele deve ser co-
Um literal de ponto flutuante pode ter as seguintes partes: locado entre aspas. Nomes de propriedades que não possuem
identificadores válido, também não podem ser acessadas pela
Um inteiro decimal que pode ter sinal (precedido por “+” propriedade de ponto (.), mas podem ser acessadas e definidas
ou “-”), com a notação do tipo array (“[]”).
Um ponto decimal (“.”),
Uma fração (outro número decimal), var unusualPropertyNames = {
Um expoente. “”: “Uma string vazia”,
O expoente é um “e” ou “E” seguido por um inteiro, que “!”: “Bang!”
pode ter sinal (precedido por “+” ou “-”). Um literal de ponto }
flutuante deve ter no mínimo um dígito e um ponto decimal ou console.log(unusualPropertyNames.””); // SyntaxError:
“e” (ou “E”). string inesperada
Mais sucintamente, a sintaxe é: console.log(unusualPropertyNames[“”]); // Um string vazia
[(+|-)][digitos][.digitos][(E|e)[(+|-)]digitos] console.log(unusualPropertyNames.!); // SyntaxError:
Por exemplo: símbolo ! inesperado
3.1415926 console.log(unusualPropertyNames[“!”]); // Bang!
-.123456789 Observe:
-3.1E+12
.1e-23 var foo = {a: “alpha”, 2: “two”};
console.log(foo.a); // alpha
Objeto literal
console.log(foo[2]); // two
Um objeto literal é uma lista de zero ou mais pares de no-
//console.log(foo.2); // Error: missing ) after argument list
mes de propriedades e valores associados de um objeto, co-
//console.log(foo[a]); // Error: a não está definido
locado entre chaves ({}). Você não deve usar um objeto literal
console.log(foo[“a”]); // alpha
no início de uma declaração. Isso levará a um erro ou não se
console.log(foo[“2”]); // two
comportará conforme o esperado, porque o { será interpretado
Seção
como início de um bloco.
Expressão Regex LiteralSeção
Segue um exemplo de um objeto literal. O primeiro elemen-
Um regex literal é um padrão entre barras. A seguir um
to do objeto carro define uma propriedade, meuCarro, e atri-
bui para ele uma nova string, “Punto”; o segundo elemento, a exemplo de regex literal.
propriedade getCarro, é imediatamente atribuído o resultado de
chamar uma função (tipoCarro(“Fiat”)); o terceiro elemento, a var re = /ab+c/;
propriedade especial, usa uma variável existente (vendas). String LiteralSeção
Uma string literal são zero ou mais caracteres dispostos em
var vendas = “Toyota”; aspas duplas (“) ou aspas simples (‘). Uma sequência de carac-
teres deve ser delimitada por aspas do mesmo tipo; ou seja, as
function tipoCarro(nome) { duas aspas simples ou ambas aspas duplas. A seguir um exem-
if (nome == “Fiat”) { plo de strings literais.
return nome;
} else { “foo”
return “Desculpa, não vendemos carros “ + nome + “.”; ‘bar’
} “1234”
} “um linha \n outra linha”
“John’s cat”
var carro = { meuCarro: “Punto”, getCarro: tipoCarro(“Fiat”), Você pode chamar qualquer um dos métodos do objeto
especial: vendas }; string em uma string literal - JavaScript automaticamente con-
verte a string literal para um objeto string temporário, chama o
console.log(carro.meuCarro); // Punto método, em seguida, descarta o objeto string temporário. Você
console.log(carro.getCarro); // Fiat também pode usar a propriedade String.length com uma string
console.log(carro.especial); // Toyota literal:
Além disso, você pode usar um literal numérico ou string
para o nome de uma propriedade ou aninhar um objeto dentro console.log(“John’s cat”.length)
do outro. O exemplo a seguir usar essas opções. // Irá exibir a quantidade de caracteres na string incluindo o
espaço em branco.
var carro = { carros: {a: “Saab”, “b”: “Jeep”}, 7: “Mazda” }; // Nesse caso, 10 caracteres.

28
CONHECIMENTOS DE INFORMÁTICA

Você deve usar string literal, a não ser que você precise var home = “c:\\temp”;
usar um objeto string. Veja String para detalhes sobre objetos Você também pode escapar quebras de linhas, precedendo-
de strings. -as com barra invertida. A barra invertida e a quebra de linha são
ambas removidas da string.
Uso de caracteres especiais em string
Além dos caracteres comuns, você também pode incluir var str = “esta string \
caracteres especiais em strings, como mostrado no exemplo a está quebrada \
seguir. em várias\
linhas.”
“uma linha \n outra linha” console.log(str); // esta string está quebrada em várias li-
A tabela a seguir lista os caracteres especiais que podem ser nhas.
usados em strings no JavaScript. Embora JavaScript não tenha sintaxe “heredoc”, você pode
adicionar uma quebra de linha e um escape de quebra de linha
Tabela: Caracteres especiais no JavaScript no final de cada linha:
Caracter Descrição
\0 Byte nulo var poema =
\b Backspace “Rosas são vermelhas\n\
\f Alimentador de formulário Violetas são azuis,\n\
\n Nova linha Esse seu sorriso\n\
\r Retorno do carro é o que me seduz. (Lucas Pedrosa)”
\t Tabulação Fonte:
\v Tabulação vertical https://developer.mozilla.org/pt-BR/docs/Web/JavaS-
\’ Apóstrofo ou aspas simples cript/Guide/Values%2C_variables%2C_and_literals
\” Aspas dupla
\\ Caractere de barra invertida ECMAScript 6
Seja muito bem-vindo a uma nova era na história do JavaS-
\XXX
cript. Há muitos anos que a linguagem não ganhava modifica-
Caractere com a codificação Latin-1 especificada por três
ções e funcionalidades novas relevantes, mas isso mudou com a
dígitos octal XXX entre 0 e 377. Por exemplo, \251 é sequência
chegada da nova versão da especificação ECMAScript.
octal para o símbolo de direitos autorais.
O ECMAScript (ES) é a especificação da linguagem de script
que o JavaScript implementa, ou seja, é a descrição formal e
\xXX
estruturada de uma linguagem de script, sendo padronizada
Caractere com a codificação Latin-1 especificada por dois pela Ecma International – associação criada em 1961 dedicada
dígitos hexadecimal XX entre 00 e FF. Por exemplo, \xA9 é a se- à padronização de sistemas de informação e comunicação – na
quência hexadecimal para o símbolo de direitos autorais. especificação ECMA-262. No dia 17 de junho de 2015, foi defini-
da a sexta edição da especificação, a ES6 (também chamada de
\uXXXX ECMAScript 2015).
Caractere Unicode especificado por quatro dígitos hexade- Diferentemente das edições anteriores, o ES6 trouxe a
cimal XXXX. Por exemplo, \u00A9 é a sequência Unicode para o maior mudança para a linguagem JavaScript desde a sua criação,
símbolo de direitos autorais. Veja sequências de escape Unicode. há 20 anos. O principal objetivo da nova versão especificação foi
tornar a linguagem mais flexível, enxuta e fácil de se aprender e
Caracteres de escape trabalhar, tornando-a mais próxima a outras linguagens orienta-
Para caracteres não listados na tabela, se precedidos de das a objeto, como Java e Python.
barra invertida ela é ignorada, seu uso está absoleto e deve ser Dentre as principais mudanças, temos:
ignorado. - Criação de novos tipos de dados (Map, WeakMap, Set,
WeakSet);
Você pode inserir uma aspa dentro de uma string precen- - Novas maneiras de iterar objetos e coleções;
dendo-a com uma barra invertida. Isso é conhecido como esca- - Declaração de variáveis com let e const;
ping das aspas. Por exemplo: - Modularização e estrutura de classes;
- Geradores e símbolos;
var quote = “Ele lê \”The Cremation of Sam McGee\” de - Operadores rest e spread.
R.W. Service.”; Nos últimos anos, o JavaScript ganhou muita força na comu-
console.log(quote); nidade de desenvolvedores através do “grande boom” do ecos-
O resultado disso seria: sistema das tecnologias Node.js e npm. Desde então, a flexibili-
dade da linguagem tem sido usada a favor não somente do lado
Ele lê “The Cremation of Sam McGee” de R.W. Service. do cliente (nos navegadores), mas também do lado do servidor,
Para incluir uma barra invertida dentro de uma string, você algo impensável até alguns anos atrás. Tudo isso fez com que
deve escapar o caractere de barra invertida. Por exemplo, para não somente a comunidade, mas também grandes empresas de
atribuir o caminho do arquivo c:\temp para uma string, utilize o tecnologia como o Facebook, reconhecessem a força da lingua-
seguinte: gem e finalmente a levasse a sério.

29
CONHECIMENTOS DE INFORMÁTICA

E não faltam evidências que comprovam isso. A adoção e SCALA 2.12


a manutenção de projetos open source nunca foram tão gran- A Linguagem Scala (Scalabel Language) é uma linguagem
des. O GitHub – atualmente o maior site de hospedagem de de programação de propósito geral baseado em dois paradig-
projetos git na nuvem, onde reside a maior parte dos maiores mas: o orientado a objetos e funcional. Ela é fortemente basea-
projetos open source do mundo, como Docker, npm, Elastic- da no Java, mas inclui uma série de requisitos, principalmente
Search – divulgou um gráfico de popularidade de linguagens retirados de linguagens funcionais, para deixar o desenvolvi-
[1]. Note que o JavaScript tem estado em primeiro lugar desde mento de aplicações mais simples do que em Java. Scala roda
2012: na máquina virtual Java, e isso traz a vantagem de permitir o uso
de classes e métodos Java em um programa Scala, e vice e versa.
Popularidade das linguagens ao longo dos anos
Esse interesse na linguagem se refletiu na criação de uma Outras características da linguagem Scala são:
imensa diversidade de bibliotecas e frameworks. Alguns exem- Inferência de Tipos: Em Scala não precisamos declarar expli-
plos mais famosos que têm tido grande aceitação na comuni- citamente o tipo das variáveis, pois o próprio compilador infere
dade e no mercado: os tipos no momento do uso delas, o que traz grande flexibilida-
React: Biblioteca criada pela equipe do Facebook para de na programação;
criação de componentes; Pattern Matching: Funciona mais ou menos como um Swit-
React Native: Framework para criação de aplicativos mo- ch/Case, mas é muito mais poderoso, permitindo a comparação
bile usando o React; utilizando expressões regulares;
Angular 2: Framework MVC mantido pelo Google; Traits: É um conceito de várias linguagens de programação
js: Biblioteca para criação de componentes; OO, que foi adicionado em Scala também, e é mais ou menos
Meteor: Framework para criação de aplicações web sin- como uma interface Java, mas que permite que os métodos se-
glepage; jam implementados, e não apenas declarados;
Electron: Framework para criação de aplicações desktop Funções de Alta Ordem: Em Scala funções são objetos, por
multiplataforma. isso podemos utilizá-las de muitas formas, como por exemplo,
E com a grande adoção do JavaScript nos projetos, a maior passá-las como parâmetros para outras funções.
Objetos: Em Scala tudo é um objeto, inclusive os tipos bási-
parte dos navegadores – e outras tecnologias que implemen-
cos, como Integers e Floats, e até funções.
tam a especificação – hoje já dá suporte praticamente comple-
A linguagem Scala está sendo usada em diversas empresas,
to para todas as funcionalidades do ES6, sem a necessidade
como por exemplo, o Twitter, o GitHub e o FourSquare, e em
da utilização de tradutores como o Babel. É possível conferir
diversos projetos OpenSource famosos, como por exemplo, o
o status de compatibilidade no EcmaScript 6 – Compatibility
Apache Spark.
Table [2]:
Outra prova da grande adoção da linguagem e suas alte- Instalando e Rodando o Scala
rações é o Radar Tecnológico da ThoughtWorks. O Radar é o Para utilizar a linguagem Scala, é necessário ter instalado a
resultado das discussões do conselho consultivo de tecnologia JDK, se você utilizar uma IDE Scala, nada precisa ser feito, caso
da empresa, que se reúne regularmente para debater a estra- deseje desenvolver diretamente em um editor de texto e compi-
tégia global de tecnologia da empresa e as tendências tecnoló- lar os programas em console, é necessário instalar e configurar
gicas que têm impacto significativo na indústria. corretamente o compilador Scala, que pode ser baixado no site
Na edição 2016, a maior parte das tecnologias que apa- oficial (vid seção Links).
receram como destaque na categoria de Linguagens e Fra-
meworks são tecnologias JavaScript, como Ember.js, React.js, Exemplos da utilização de Scala
Redux e React Native. Para mostrar as principais características da linguagem Scala
Radar tecnológico da ThoughtWorks, onde o JavaScript serão exibidos diversos exemplos de código. A Listagem 1 mos-
tem destaque como base das tecnologias tra o Hello World em Scala, onde é possível perceber que o códi-
E as evoluções não param por aí. Para que a linguagem go é bastante parecido com o Java. Veja que primeiro é definido
não pare novamente no tempo, a Ecma Internacional se com- um object, e dentro deste existe o método main, que apenas
prometeu a lançar uma nova versão da especificação todos os chama a função print, passando como parâmetro a String “Hello
anos. Desde o ano passado, a sétima edição da especificação World!”. Uma diferença do Scala para o Java é que no Scala o
está sendo elaborada e promete trazer ainda mais melhorias, ponto e vírgula ao final da linha não é obrigatório.
tais como:
Listagem 1. HelloWorld em Scala
Novas operações em Array;
Operador de exponenciação (**); package main
Decoradores;
Propriedades estáticas de classe; object Main {
Async-await.
def main(args:Array[String]) {
Fonte: print(“Hello World!”)
https://imasters.com.br/front-end/o-ecmascript-6-e-o-fu- }
turo-do-javascript }

30
CONHECIMENTOS DE INFORMÁTICA

A Listagem 2 mostra um exemplo de declaração de variáveis digo. Na Listagem 4 é mostrado um exemplo onde é criada uma
em Scala. Como podemos observar, é utilizada a palavra reserva- função chamada fazConta, que recebe como parâmetro uma
da “var” para isso, e não colocamos o tipo nas variáveis, pois os função e dois parâmetros inteiros. O que o método faz é sim-
tipos serão definidos pelo compilador. Qualquer tipo de variável plesmente executar a função recebida como parâmetro para os
é declarado com o var, mesmo variáveis em que os valores são outros dois parâmetros passados para a função.
passados diretamente, como por exemplo, as variáveis num1
e num2, que são do tipo inteiro, e a variável texto, que é do Listagem 4. Passando funções como parâmetros.
tipo String. Para as instâncias que são criadas com o construtor,
como por exemplo, a variável texto que é do tipo StringBuffer package main
também usamos o “var”.
object Main {
Listagem 2. Declaração de variáveis em Scala
def fazConta(callback: (Int,Int) => Int, x:Int, y:Int) {
package main println(callback(x, y))
}
object Main {
def soma(x: Int, y: Int ): Int = {
def main(args:Array[String]) { x+y
var num1 = 5 }
var num2 = 10
var texto = “A soma é: “ def multiplicacao(x:Int, y:Int) : Int = {
println(texto + (num1 + num2)) x*y
}
var s = new StringBuffer
s.append(“Olá!”); def divisao(x:Int, y:Int) : Int = {
s.append(“Vamos aprender Scala?”) x*y
println(s); }

} def subtracao(x:Int, y:Int) : Int = {


} x*y
Em Scala existe também a declaração de valores fixos, ou }
objetos imutáveis, que são como as variáveis declaradas como
final em Java. Sempre que possível, é melhor utilizar objetos def main(args: Array[String]) {
imutáveis, pois eles permitem utilizar ao máximo as capacidades println(“Realiza as operações matemáticas:”)
de execução paralela do Scala. A Listagem 3 mostra um exemplo fazConta(soma, 5, 3);
da utilização dessas variáveis. fazConta(multiplicacao, 5,3);
fazConta(divisao, 5,3);
Listagem 3. Declaração de objetos imutáveis. fazConta(subtracao, 5,3);
}
package main }
Note que a declaração de uma função em Scala tem algu-
object Main6 { mas diferenças relevantes em relação ao Java. Primeiro é uti-
lizada a palavra reservada def e depois é definido o nome da
def main(args:Array[String]) { função, os parâmetros e, por fim, o tipo do retorno da função.
val num1 = 5 Note também que em Scala, apesar de permitido, não é preciso
val num2 = 10 colocar o return, pois é assumido que o valor do último coman-
val texto = “A soma é: “ do da função é utilizado para retorno. Caso seja desejado que a
println(texto + (num1 + num2)) função não retorne nada, é utilizado o tipo Unit na declaração
} do retorno da função.
} O exemplo da Listagem 4 demonstrou uma grande vanta-
Veja que o uso é parecido com o exemplo anterior, mas a gem da linguagem Scala, que é a passagem de funções como
diferença é que, ao invés de var, a palavra reservada usada para parâmetro, mas a quantidade de código necessário para escre-
essa declaração é o val. Se o programador tentar alterar o valor ver o programa não foi muito diferente do que seria necessário
de um objeto declarado como val, dará um erro de compilação. em Java. Porém, em Scala, é possível utilizar as funções Anôni-
Uma das maiores diferenças do Scala em relação ao Java, é mas (atualmente o Java também permite isso com as expressões
na forma em que funções podem ser usadas, pois em Scala fun- Lambda). A Listagem 5 mostra o mesmo exemplo, mas agora as
ções são objetos e, por isso, elas podem ser utilizadas de muitas funções soma e mult, ao invés de serem funções normais, são
formas, como por exemplo, serem passadas como parâmetros funções definidas diretamente na chamada do método fazConta
em outras funções, permitindo uma grande flexibilidade no có- e, com isso, não é necessário declarar as funções.

31
CONHECIMENTOS DE INFORMÁTICA

Listagem 5. Funções Anônimas. val listaIdade = List(5, 22, 15, 27, 7)


println(“Escreve as idades”)
package main printList(x => println(x), listaIdade)

object Main2 { println(“Escreve o dobro das idades”)


def fazConta(callback: (Int, Int) => Int, x: Int, y: Int) { printList(x => println(x * 2), listaIdade)
println(callback(x, y))
} println(“Filtra Idades maiores que 10”)
val listaFiltrada = listaIdade.filter(x => x > 10)
def contaUmDez(f: (Int) => Unit) { printList(x => println(x), listaFiltrada)
for (i <- 1 to 10) f(i)
} println(“Filtra Idades não sejam menores que 10”)
def main(args: Array[String]) { val listaFiltrada2 = listaIdade.filterNot (x => x < 10)
printList(x => println(x), listaFiltrada2)
println(“Realiza as operações matemáticas”)
fazConta((x, y) => x + y, 5, 6) }
fazConta((x, y) => x * y, 5, 3); }
fazConta((x, y) => x / y, 5, 3); Depois, apenas para mostrar que existem já alguns métodos
fazConta((x, y) => x - y, 5, 3); implementados pela própria API da linguagem Scala, foi utiliza-
do o método filter, que já existe no tipo list. Esse método espe-
println(“Conta até 10”) ra como parâmetro uma função (pode ser anônima ou não), e
contaUmDez(i => println(i)) ele vai retornar uma lista com apenas os valores que respeitem
} a condição passada na função como parâmetro. Apenas como
} exemplo, nesse mesmo código é utilizado o método finterNot,
A sintaxe para a utilização de funções anônimas é bastante que faz exatamente o contrário do método filter, pois ele filtra
simples: inicialmente são colocados os parâmetros da função. apenas os elementos que não respeitam a condição passada na
Como no exemplo, o val1 e val2, e depois o símbolo => são uti- função.
lizados para as funções anônimas. Caso a função tenha apenas Vejam que a função passada como parâmetro, tanto para
uma linha, basta escrever o código diretamente, caso contrário, ométodo filter como para o método filterNot, deve ser na forma
podem ser utilizadas chaves para a criação de um bloco de có- Int => Boolean.
digo. Note que mesmo utilizando funções anônimas, a declara- O Scala também é uma linguagem orientada a objetos, por
ção do parâmetro na função fazConta e a função passada como isso, ela permite a criação de classes, com todos os conceitos
parâmetro na chamada do método tem a mesma estrutura, nú- de orientação a objetos, como herança, polimorfismo e associa-
mero de parâmetros e tipo de retorno. ção entre classes. Para exemplificar o uso de classes em Scala,
Funções anônimas são muito utilizadas para trabalhar com a Listagem 7 apresenta a classe Conta criada com os atributos
coleções de dados e para realizar diferentes operações nessas numAgencia, numConta e saldo, e os métodos saque, deposito
coleções, como por exemplo, filtragem e mapeamento dos da- e toString.
dos. A Listagem 6 mostra funções anônimas utilizadas com co-
leções de dados, onde primeiro é definida a função printList, Listagem 7. Definindo uma classe em Scala
que recebe como parâmetro uma função e uma lista de inteiros.
No main, a primeira coisa é a definição da lista com algumas package classes
idades, depois há duas chamadas para o método printList: uma
que apenas imprime as idades, e outra que imprime as idades class Conta(nAgencia:String, nConta:String, s:Float) {
multiplicadas por dois.
var numAgencia:String = nAgencia
Listagem 6. Funções anônimas com coleções de dados var numConta:String = nConta
var saldo:Float = s
package main
def deposito(valor:Float): Unit = {
object Main8 { saldo = saldo + valor
}
def printList(printFunction: (Int) => Unit, aList: List[Int]) :
Unit = { def saque(valor:Float): Boolean = {
for (x <- aList) { if (saldo - valor >= 0) {
printFunction(x) saldo = saldo - valor
} return true
} }
def main(args: Array[String]) { false
}

32
CONHECIMENTOS DE INFORMÁTICA

Listagem 9. Pattern Matching com apenas um tipo


override def toString(): String =
“(Agencia:” + numAgencia + “, Conta: “ + numConta + “, package main
Saldo: “ + saldo + “)”;
object Main4 {
}
A definição da classe não é muito diferente da forma que def matchTest(x: Int): String = x match {
é feita em Java, pois a principal diferença é que a classe aceita case 1 => “um”
parâmetros, como é possível verificar logo na linha da declara- case 2 => “dois”
ção. Esses parâmetros devem ser passados no momento da cria- case 3 => «três»
ção das instâncias da classe, substituindo o construtor. Outra di- case 4 => “quatro”
ferença interessante entre Java e Scala nesse código é o método case 5 => “cinco”
saque, que retorna um tipo Boolean, então no último comando
case 6 => “seis”
dele basta colocar false como última instrução de um bloco, e
case 7 => “sete”
isso automaticamente será o retorno da função. A função depo-
case _ => “número passado pode ser qualquer número”
sito retorna um valor do tipo Unit, que é equivalente ao void do
Java, isto é, a função que retorna Unit não retorna nada. }
Utilizar uma classe para criar objetos é bastante fácil em
Scala, não há nenhuma grande diferença em relação ao Java. def main(args: Array[String]) {
A Listagem 8 mostra um exemplo da utilização da classe Con- println(matchTest(3))
ta criada no exemplo anterior. Nesse código apenas são criados println(matchTest(2))
dois objetos do tipo Conta: um na variável conta e o outro na va- println(matchTest(5))
riável conta2. Verifique que conta e conta2 são declaradas como println(matchTest(23))
val, o que impede que sejam instanciadas novas contas nessas }
variáveis. }
Vejam que na definição do método matchTest, já foi decla-
Listagem 8. Criando objetos de uma Classe Scala rado que ele é uma função match e que o retorno dessa função
é do tipo String. Logo, os valores literais dos números ou o “qual-
package main quer número” será também o retorno da função.
No exemplo anterior é possível observar que o código é
import classes.Conta mais simples que o de um Switch/Case tradicional, mas ainda
não há nenhuma grande diferença, por isso a Listagem 10 mos-
object Main3 { tra um exemplo de Pattern Matching mais interessante. O parâ-
def main(args: Array[String]) { metro e o retorno do método são do tipo Any, o que quer dizer
que pode ser passado qualquer coisa como parâmetro para o
val conta = new Conta(“12343”, “234543”, 1000) método, e que ele pode retornar qualquer coisa também. Nos
println(“Saque de 500 reais”) cases é possível observar que existem condições que comparam
println(conta.saque(500)) valores inteiros, Strings, e até verificam o tipo da variável passa-
println(“Deposito de 1000 reais”) da como parâmetro, já como retorno também existem inteiros,
conta.deposito(1000) String e até um objeto da classe conta que foi criada anterior-
println(conta)
mente nesse artigo.
val conta2 = new Conta(“4567”, “1234432”, 1000)
println(“Saque de 1500 reais”) Listagem 10. Pattern Matching como padrões de diversos
println(conta2.saque(1500)) tipos
println(“Deposito de 1000 reais”)
conta2.deposito(1000) package main
println(conta2)
import classes.Conta

} object Main5 {
} def matchTest(x: Any): Any = x match {
O conceito de Pattern Matching é uma forma de fazer com- case 1 => “um”
parações e decisões em Scala de forma muito mais poderosa e case “dois” => 2
simples do que utilizando os comandos Switch/Case. A Listagem case “três” => 3
9 apresenta um primeiro exemplo de Pattern Matching ainda case “quatro” => new Conta(“12345”, “12345”, 1000)
bastante simples. Nesse exemplo é passado um número intei- case y: Int => “É um número inteiro”
ro como parâmetro para a função, e com a palavra reservada case x: Conta => “É uma conta”
case, são definidas as possibilidades para o número passado case z: String => “É uma String”
como parâmetro. A última opção utiliza um underline, que seria }
o equivalente ao default de um comando switch/case. def main(args: Array[String]) {

33
CONHECIMENTOS DE INFORMÁTICA

println(matchTest(“dois”))
println(matchTest(1))
println(matchTest(5))
println(matchTest(“três”))
println(matchTest(“quatro”))
}
}
Uma consideração importante sobre o Pattern Matching é que, se nenhum padrão for encontrado para o parâmetro passado para
o método, será lançada uma exceção. Por isso é importante ou ter um case com o underline, ou fazer o tratamento de exceção sempre
que for chamada uma função desse tipo.
Uma grande vantagem da linguagem Scala é que ela é executada também na JVM, o que permite ao programador usar qualquer
coisa que tenha sido criado em Java, inclusive frameworks e jars de terceiros. Para demonstrar isso, a Listagem 11 mostra alguns exem-
plos do uso de classes Java em um programa em Scala: primeiro é criado um ArrayList de Strings e são adicionados três valores nesse
ArrayList; depois é criado uma instância da classe Date, e uma da classe SimpleDateFormat, e ao utilizar esses dois objetos é mostrada
a data atual no console. Por último é criado um objeto da classe ServcerSocket do Java.

Listagem 11. Utilizando classes Java em um programa Scala

package main

import java.util.ArrayList
import java.util.Date
import java.text.SimpleDateFormat
import java.net.ServerSocket

object Main7 {
def main(args: Array[String]) {

val lista = new ArrayList[String]


lista.add(“Eduardo”)
lista.add(“Luiz”)
lista.add(“Bruna”)

val agora = new Date


val dateFormatter = new SimpleDateFormat(“dd/MM/yyyy”)
println(dateFormatter format agora)

val socket = new ServerSocket(5000)


socket.accept();
socket.close();

}
}
Esse código não faz nada importante, mas com ele fica bem claro que é possível utilizar qualquer classe do Java em um programa
Scala, para isso basta importar as classes. Isso é uma grande vantagem, pois grande parte do que é criado em Java, é possível de usar
em Scala também.

Fonte:
https://www.devmedia.com.br/conheca-a-linguagem-scala/32850

PIG 0.16
Não é surpreendente que o Hadoop encontre a popularidade de seu ecossistema em crescimento. Uma área em particular que
está avançando é a programação de aplicativos Hadoop. Embora a programação de aplicativos Map e Reduce não seja complexa
demais, fazer isso requer alguma experiência com o desenvolvimento de software. O Apache Pig altera isto criando uma abstração
de linguagem de procedimentos mais simples sobre o MapReduce para expor uma interface mais parecida com Structured Query
Language (SQL) para aplicativos Hadoop. Então, em vez de gravar um aplicativo separado do MapReduce, é possível gravar um único
script no Pig Latin que é automaticamente paralelizado e distribuído em um cluster.

34
CONHECIMENTOS DE INFORMÁTICA

Exemplo de Pig Latin


Vamos começar com um exemplo simples de Pig e dissecá-lo. Um uso interessante do Hadoop é procurar um grande conjunto
de dados para registros que atendam a um determinado critério de procura (conhecido de outra forma no Linux® como grep). a Lis-
tagem 1 mostra a simplicidade deste processo no Pig. Dadas as três linhas mostradas, apenas uma é a procura real. A primeira linha
simplesmente lê o conjunto de dados de teste (o log de mensagens) em um pacote que representa uma coleção de tuplas. Você filtra
esses dados (a única entrada na tupla, representada como $0 ou campo 1) com uma expressão regular, procurando a sequência de
caracteres WARN. Por fim, você armazena este pacote, que agora representa todas essas tuplas das mensagens que contêm WARN
em um novo arquivo chamado warnings no sistema de arquivo do host.

Listagem 1. Um Script de Pig Latin Simples

Como você pode ver, este simples script implementa um fluxo simples, mas seria necessário consideravelmente mais código se
implementado diretamente no modelo tradicional de MapReduce. Isto torna consideravelmente mais fácil aprender o Hadoop e co-
meçar a trabalhar com os dados, comparados ao desenvolvimento bruto.
Vamos agora nos aprofundar um pouco mais na linguagem Pig e depois observar alguns outros exemplos dos recursos de lingua-
gem.

Os fundamentos de Pig Latin


Pig Latin é uma linguagem relativamente simples que executa instruções. Uma statement é uma operação que assume a entrada
(como um pacote, que representa um conjunto de tuplas) e emite outro pacote como sua saída. Uma bag é uma relação semelhante
à tabela, que você encontrará em um banco de dados relacional (em que as tuplas representam as linhas e as tuplas individuais são
feitas de campos).
Um script no Pig Latin geralmente segue um formato específico nos quais os dados são lidos do sistema de arquivos, um número
de operações é executado nos dados (transformando-os de uma ou mais formas) e depois a relação resultante é gravada de volta ao
sistema de arquivos. É possível ver este padrão em sua forma mais simples (com uma transformação) em a Listagem 1.
Pig possui um rico conjunto de tipos de dados, suportando não só conceitos de alto nível como pacotes, tuplas e mapas como
também tipos de dados simples como ints, longs, floats, doubles, chararrays e bytearrays. Com os tipos simples, você encontrará uma
variedade de operadores aritméticos (como add, subtract, multiply, divide e module) além de um operador condicional chamado
bincond que opera semelhante ao C ternary direto. E, como esperado, um conjunto integral de operadores de comparação, incluindo
o reconhecimento de padrões ricos usando expressões regulares.
Todas as instruções Pig Latin operam em relações (e são chamadas de operadores relacionais). Como mostrou a a Listagem 1, há
um operador para carregar dados e armazenar dados no arquivo de sistema. Há um meio para FILTRAR dados iterando as linhas de
uma relação. Esta funcionalidade é comumente usada para remover dados da relação que não são de fato para operações subsequen-
tes. Como alternativa, se precisar iterar as colunas de uma relação em vez das linhas, é possível usar FOREACH . FOREACH permite
operações aninhadas como FILTER quanto a ORDER para transformar os dados durante a iteração.
O operador ORDER fornece a capacidade de classificar uma relação baseada em um ou mais campos. O operador JOIN executa
uma união interna ou externa de duas ou mais relações baseadas em campos comuns. O operador SPLIT fornece a capacidade de di-
vidir uma relação em duas ou mais relações baseadas em uma expressão definida pelo usuário. Por fim, o operador GROUP agrupa os
dados em uma ou mais relações baseadas em alguma expressão. Tabela 1 fornece uma lista parcial de operadores relacionais no Pig.

35
CONHECIMENTOS DE INFORMÁTICA

Tabela 1. A lista incompleta de operadores relacionais do Pig Latin

Embora esta não seja uma lista exaustiva de operadores no Pig Latin, esta tabela fornece um conjunto extremamente útil de
operações para processar grandes conjuntos de dados. É possível aprender mais sobre a completa linguagem do Pig Latin por meio
de Recursos, como o Pig possui um conjunto legal de documentação online. Agora, pratique gravar alguns scripts do Pig Latin para
entender como esses operadores funcionam na prática.

Obtendo Acesso ao Pig


Em artigos anteriores no Hadoop, eu usei a abordagem de instalar e configurar o Hadoop como um pacote. Mas Cloudera facilitou
ainda mais o uso de Hadoop ao compactá-lo com Linux como um dispositivo virtual. E apesar de ser um grande download, a máquina
virtual (VM) é pré-construída e configurada não só com o Hadoop, mas também o Apache Hive e o Pig. Então, com um download e
um hypervisor tipo 2 livremente disponível (VirtualBox ou Kernel-based Virtual Machine [KVM]), você tem todo um ambiente Hadoop
que é pré-configurado e pronto para funcionar.

Deixando o Hadoop e o Pig prontos para execução


Após fazer download de seu arquivo VM específico, será necessário criar uma VM para seu hypervisor particular. Na Recursos),
você encontrará instruções passo a passo sobre como fazer isto.

Memória da VM Cloudera
Descobri que a VM não funcionaria adequadamente com 1GB de memória designada a ela. Duplicar ou triplicar essa distribuição
de memória resulta em operação normal (isto é, sem problemas de espaço™ de heap Java).
Uma vez que criar sua VM, é possível iniciá-la por meio de VirtualBox, que inicializa o kernel Linux e inicia todos os daemons ne-
cessários de Hadoop. Com a inicialização completa, comece criando um terminal no qual comunicar-se com o Hadoop e o Pig.
É possível usar o Pig em qualquer um dos modos. O primeiro é o modo Local, que não possui dependência no Hadoop ou no
Hadoop Distributed File System (HDFS), onde tudo é executado em uma única máquina virtual Java (JVM) no contexto do sistema de
arquivos local. O outro modo é Mapreduce, que usa um sistema de arquivos Hadoop e cluster.

36
CONHECIMENTOS DE INFORMÁTICA

Pig em Modo Local


Para o modo Local, simplesmente inicie o Pig e especifique o modo Local com exectype . Fazendo isso, leva você ao shell Grunt,
que permite inserir instruções Pig interativamente:

A partir daqui, é possível codificar interativamente seu script do Pig Latin, vendo o resultado após cada operador. Retorne à a
Listagem 1 e tente este script (consulte a Listagem 2). Observe que, neste caso, em vez de armazenar seus dados em um arquivo, você
simplesmente faz dump deles como um conjunto de relações. Você perceberá na saída modificada que cada linha de log (que corres-
ponde ao critério de procura definido pelo FILTER) é a própria relação (ligada por parênteses [()]).

Listagem 2. Usando Pig interativamente em modo Local

Se tiver especificado o operador STORE , ele teria gerado seus dados em um diretório do nome especificado (não um arquivo
regular simples).

Pig em modo Mapreduce


Para o modo Mapreduce, primeiro, você deve garantir que o Hadoop esteja em execução. A forma mais fácil de fazer isso é exe-
cutar uma operação de lista de arquivo na raiz da árvore de sistema de arquivos Hadoop, como na A Listagem 3.

Listagem 3. Testando a Disponibilidade do Hadoop

Como mostrado, este código resultará em uma listagem de um ou mais arquivos, se o Hadoop estiver executando com sucesso.
Agora, vamos testar o Pig. Comece iniciando o Pig e depois altere o diretório para sua raiz hdfs para determinar se é possível ver o que
você viu externamente no HDFS (consulte a Listagem 4).

Listagem 4. Testando o Pig

Até então, tudo bem. É possível ver seu sistema de arquivo Hadoop no Pig, então agora, tente ler alguns dados nele a partir de
seu sistema de arquivo host local. Copie um arquivo do local para HDFS pelo Pig (consulte Listagem 5).

37
CONHECIMENTOS DE INFORMÁTICA

Listagem 5. Obtendo alguns dados de teste

Em seguida, com seus dados de teste agora seguros no sistema de arquivos Hadoop, é possível tentar outro script. Observe que
é possível cat o arquivo no Pig para ver seu conteúdo (apenas para ver se está lá). Neste exemplo particular, identifique o número de
shells especificados para usuários no arquivo passwd (a última coluna em passwd).

Para começar, é necessário carregar seu arquivo passwd do HDFS em uma relação do Pig. Você faz isso antes de usar o operador
LOAD , mas, neste caso, deseja analisar os campos do arquivo de senha até seus campos individuais. Neste exemplo, especifique a fun-
ção PigStorage , que permite indicar o caractere delimitador para o arquivo (neste caso, um caractere de ponto e vírgula [:]). Você tam-
bém especifica os campos individuais (ou o esquema) com a palavra-chave AS , incluindo seus tipos individuais (consulte Listagem 6).

Listagem 6. Lendo seu arquivo em uma relação

Em seguida, use o operador GROUP para agrupar as tuplas nesta relação baseada em seu shell (consulte na Listagem 7). Faça
dump disto novamente, apenas para ilustrar o resultado do GROUP direto. Observe que há tuplas agrupadas (como em um pacote
interno) sob seu shell particular que está sendo usado (com o shell especificado no início).

Listagem 7. Agrupando as tuplas como uma função de seu shell

Mas o seu desejo é uma contagem dos shells exclusivos especificados no arquivo passwd. Então, você usa o operador FOREACH
para iterar cada tupla em seu grupo para COUNT o número que aparece (consulte Listagem 8 ).

Listagem 8. Agrupando os resultados com contagens para cada shell

Observação: Para executar este código como um script, basta digitar o script em um arquivo e, depois, executá-lo como pig mys-
cript.pig.

38
CONHECIMENTOS DE INFORMÁTICA

Operadores de Diagnóstico
O Pig suporta um número de operadores diagnósticos que podem ser usados para depurar scripts do Pig. Como você viu nos
exemplos de script anteriores, o operador DUMP é inestimável para visualizar não só dados, mas o esquema dos dados em si. Também
é possível usar o operador DESCRIBE para gerar um formato detalhado do esquema de uma relação (campo e tipo).
O operador EXPLAIN é totalmente um pouco mais complexo, porém útil. Para uma determinada relação, é possível usar EXPLAIN
para visualizar como os operadores físicos estão agrupados em tarefas de mapa e redução (isto é, como os dados são derivados).

Tabela 2 fornece uma lista de operadores de diagnóstico no Pig Latin e sua descrição.

Tabela 2. Os operadores de diagnóstico do Pig Latin

Funções Definidas pelo Usuário


Embora o Pig seja eficiente e útil no contexto explorado neste artigo, ele pode ser ainda mais eficiente com as funções definidas
pelo usuário (UDFs). Os scripts do Pig podem usar funções definidas para operações como a análise de dados de entrada ou formata-
ção de dados de saída e até mesmo de operadores. As UDFs são gravadas na linguagem Java e permitem que o Pig suporte processa-
mento customizado. As UDFs são a forma de estender o Pig em seu domínio de aplicativo particular. É possível aprender mais sobre o
desenvolvimento de UDFs em Recursos).

Usuários Pig
Como você pode ver neste breve artigo, o Pig é uma ferramenta eficiente para consulta de dados em um cluster Hadoop. É tão
eficiente que o Yahoo! estima que entre 40% e 60% de suas cargas de trabalho do Hadoop sejam geradas de scripts do Pig Latin. Com
100.000 CPUs no Yahoo! e, aproximadamente, 50% em execução no Hadoop, são muitos pigs por todo o lado.
Mas o Yahoo! não é a única organização que aproveita o Pig. Você encontrará o Pig no Twitter (processando logs, minerando
dados de tweet), na AOL e no MapQuest (para análises e processamento de dados em lote), e no LinkedIn, onde o Pig é usado para
descobrir pessoas que possa conhecer. O Ebay está, segundo boatos, usando o Pig para otimização de procura e adyard usa o Pig em
quase metade de seu sistema recomendado.

Fonte:
https://www.ibm.com/developerworks/br/library/l-apachepigdataquery/index.html

ESTRUTURAS DE DADOS E ALGORITMOS: BUSCA SEQUENCIAL E BUSCA BINÁRIA SOBRE ARRAYS,


ORDENAÇÃO (MÉTODOS DA BOLHA, ORDENAÇÃO POR SELEÇÃO, ORDENAÇÃO POR INSERÇÃO, LISTA
ENCADEADA, PILHA, FILA, NOÇÕES SOBRE ÁRVORE BINÁRIA), NOÇÕES DE ALGORITMOS DE APRENDI-
ZADO SUPERVISIONADOS E NÃO SUPERVISIONADOS;

Hoje, existem diversos tipos de linguagens de programação, as quais são escritas pelos programadores, algumas dessas lingua-
gens são compreendidas pelo computador e outras ajudam na forma de tradutores, explicado mais abaixo.

As linguagens podem ser classificadas como de três tipos:


- Linguagem de máquina;
- Linguagens assembly;
- Linguagens de alto nível;

Linguagem de máquina
É uma linguagem “crua”, ou seja não muda seu estado natural. Essa linguagem é formada de string de números, definindo a rea-
lização das operações em um computador, sendo realizado uma tarefa de cada vez.

39
CONHECIMENTOS DE INFORMÁTICA

Características da linguagem de máquina Linguagem Ada


Consistem geralmente em strings de números;
Qualquer computador entende diretamente a sua própria A linguagem Ada foi desenvolvida pelo patrocínio do Depar-
linguagem de máquina; tamento de Defesa dos EUA durante a década de 1970. Essa lin-
São dependentes de máquina (pode ser utilizada em um guagem foi batizada em Ada, em homenagem a Lady Ada Lovela-
tipo de computador); ce (LoveLace era a província onde morava), sendo considerada a
São complicadas para a leitura do código; primeira pessoa a escrever um programa no mundo no início do
Ex: +655042223, +232121234, +777798878 século XIX (para o dispositivo mecânico de computação conheci-
do como Máquina Analítica, projetado por Charles Babage).
Linguagem Assembly
Essa linguagem consiste de abreviações de expressões em A história das linguagens
inglês que são operações elementares, onde se originou a base Existem muitas linguagens de programação hoje no mer-
da linguagem Assembly. Os assemblers como conhecidos são cado, das quais são destacadas: C, Java, C++ entre outras. São
programas tradutores que convertem os primeiros programas linguagens que oferecem um alto nível de portabilidade e dão
de linguagem assembly em linguagem de máquina a velocidade suporte a inúmeros recursos de baixo nível que muitas outras
do computador. Embora o código seja mais claro para seres hu- linguagens não oferecem.
manos, ele é incompreensível para computadores até ser tradu- Portabilidade é um dos pontos chaves nesse processo de
zido em linguagem de máquina. desenvolvimento, acaba ajudando na capacidade de ser compi-
Ex: load basepay lado ou executado em diferentes arquiteturas seja de hardware
add overpay ou de software. O termo pode ser usado também para se referir
store grosspay a re-escrita de um código fonte para uma outra linguagem de
computador.
Linguagem Alto Nível Por exemplo a linguagem C foi criada por Dennis Ritchie, na
São instruções únicas que podem ser escritas para realizar Bell Laboratories, em 1972, nos Estados Unidos. Esse nome foi
tarefas substanciais. Os programas tradutores são conhecidos dado porque muitos de seus recursose características são de-
também pelo nome de compiladores - convertem os programas rivados da linguagem B BCPL (Basic CPL). O B foi desenvolvido
de linguagem em alto nível em linguagem de máquina. Esse tipo por Ken Thompsom, também na Bell Laboratories, em 1969, e
de linguagem permite aos programas escrever instruções que contou com a ajuda de Dennis Ritchie. Na verdade o B é uma
se pareçam com o inglês e contêm notações matemáticas co- simplificação da linguagem BCPL (Basic CPL). A BCPL foi criada
mumente utilizadas. As linguagem em C, C++, .NET e o JAVA são em 1966, também na Inglaterra, por Martin Richards, e foi de-
desse tipo de linguagem. senvolvida a partir da linguagem CPL (Combined Programming
Ex: folhaPagamento = basePagamento + tempoTrabalho Language ou Linguagem de Programação Combinada), criada no
Alguns exemplos de linguagens de alto nível: laboratório de matemática de uma universidade da Inglaterra.
Inicialmente o C foi criado para desenvolver o sistema ope-
Linguagem Fortran racional UNIX, que até à época havia sido escrito em Assembly,
O Fortran (FORmula TRANslator) foi uma linguagem de- que é uma linguagem de baixo nível e uma das primeiras lingua-
senvolvida pela IBM em meados da década de 1950 para ser gens de programação a serem criadas.
utilizada em aplicativos científicos de engenharia que exigiam Diversos sistemas operacionais já foram escritos em C, essa
complexos cálculos matemáticos. linguagem ajudou a criar outros tipos e que deu origem a uma lin-
guagem de programação muito importante que é o C++. Muitos
Linguagem Cobol usuários ainda confundem o C e o C++ por serem linguagens muito
O Cobol (Common Business Oriented Language) foi desen- parecidas, mas a diferença básica entre elas é que o C++ oferece
volvido no final da década de 1950 por fabricantes e usuários todos os recursos do C e mais a programação orientada a objetos.
de computadores do governo norte-americano e da indústria.
O Cobol é utilizado para aplicativos comerciais que exigem ma- Programador(a)
nipulação precisa e eficiente de grandes quanidades de dados. Programar, na prática, é escrever um texto que será trans-
formado em um software. Esse texto deve ser escrito em uma
Linguagem Pascal linguagem de programação e é chamado de código, mas não
Em 1960 começou a se gerar grandes esforços no desenvol- é um código lido apenas por uma máquina, é um código que
vimento de software e a gerar conflitos, por isso em meados na pode ser lido por um ser humano. Para quem sabe inglês é ainda
década de 1960 uma pesquisa foi feita onde se resultou na evo- mais legível, pois várias linguagens de programação usam pala-
lução da programação estruturada - uma abordagem mais clara vras nesse idioma, como if, else, do, while, integer, etc. Quem
para se escrever programas mais claros, mais fáceis de testar, escreve códigos em linguagens de programação é chamado de
modificar e depurar. programador(a) ou desenvolvedor(a).
Sendo que um dos resultados mais concretos dessa pesqui-
sa se originou a linguagem de programação Pascal pelo Profes- Código
sor NickLaus Wirth em 1971. Para usar uma linguagem de programação é preciso escre-
ver códigos com ela. Você terá que aprender seus elementos e
as regras de como combiná-los.

40
CONHECIMENTOS DE INFORMÁTICA

Apesar de propósitos e características distintas, existem se- de arquivo) ou pode dar errado (equivalente a dar pau!). Se deu
melhanças entre o aprendizado de um novo idioma e o de uma tudo certo, dizemos que o código escrito “rodou” ou que tal có-
linguagem de programação. No idioma, primeiro você aprende digo “está rodando” ou, ainda, “rodei esse código com sucesso”
o que são algumas palavras, depois constrói pequenas frases até para falar que a transformação ocorreu sem erros. O “rodar”
que uma hora chega em parágrafos e textos completos. Na lin- logo receberá um termo técnico bonito, mas por enquanto é im-
guagem de programação, primeiro se entende quais são seus portante você entender o conceito de um algoritmo funcionar
elementos (equivalente as palavras do idioma) escrevendo có- ou não quando escrito em determinada linguagem de progra-
digos simples, formados por uma única linha, depois códigos mação.
com mais de uma linha, blocos de código independentes que Imagine uma prova de certificação para se tornar um pro-
são chamados conforme o fluxo do programa e a interação do gramador Poliglota. A prova é composta de algoritmos em dife-
usuário e, por fim, desenvolve um software completo. rentes linguagens com perguntas simples como: “O algoritmo
Quanto mais um programador souber sobre uma linguagem a seguir rodará com sucesso?” Caso não, indique o erro e sua
de programação, melhor ele conseguirá se expressar no mundo linha. É como se você fosse o programa que gera novos progra-
da programação e mais recursos ele terá para escrever soluções mas e, só olhando o código, conseguisse avaliar qual roda e qual
para problemas computacionais via código. Contudo, só saber a não roda.
linguagem de programação não faz de você um programador. A
linguagem é um instrumento para que a solução escrita possa Linguagens não-estruturadas
ser transformada em um software, mas sem a solução (o que se Mais aprimoradas que as de baixo nível, as linguagens não-
deve escrever com o código) ela de nada adianta. -estruturadas são mais compreensíveis e mais ajustáveis, pois
Imagine que você precisa escrever, em inglês (e sem usar o seus comandos são adaptáveis as diferentes plataformas. Ape-
tradutor), um artigo sobre biogenética, algo que nunca estudou. sar de ter essas características, tornaram-se ultrapassadas com
Adiantará dominar inglês? Evidente que não. Da mesma forma, o surgimento das linguagens estruturadas como as procedurais
se você soubesse tudo sobre o assunto e não soubesse escre- e as funcionais.
ver em inglês, também não adiantaria. Portanto, à medida que
aprende como funciona esse importante instrumento que é a Linguagem COBOL
linguagem de programação, preocupe-se também em aprender COBOL (COmmon Business Oriented Language) foi uma lin-
a tocá-lo que, no caso, é saber programar. guagem criada para aplicações comerciais. Como por exemplo,
em programas para folhas de pagamento, contabilidade, inven-
Algoritmo tário de produtos, etc., manipulando uma quantidade grande de
Um bloco de código que contém uma sequência de instru- dados. Está disponível para computadores e mainframes. Pode
ções do que o software deve fazer é chamado de algoritmo, ter- ser executada em várias máquinas, apenas mudando algumas
mo muito usado na computação. linhas de código. A linguagem foi criada em 1959 pelo Comitê
Um algoritmo pode ser escrito em diferentes linguagens, in- Codasyl.
clusive em algumas conceituais que não funcionam de verdade,
chamadas de pseudocódigo. Linguagem Basic
Imagine que você é um programador e está em uma equipe A linguagem Basic (Beginners All-purpose Symbolic Instruc-
com mais 9 programadores. Considere que cada um programe tion Code) foi criada em 1964 por Thomas E. Kurtz e John G.
em uma linguagem diferente, porém todos tem o mesmo chefe. Kemeny, integrantes do departamento de matemática de Dart-
Certo dia, o chefe manda um e-mail com o assunto: Algoritmo mouth. Uma linguagem criada para facilitar a produção e execu-
da semana para todos. No corpo do e-mail, ele escreveu o algo- ção de programas pelos cientistas da computação.
ritmo em pseudocódigo e disse que todos precisam implemen-
tá-lo na sua respectiva linguagem. Ele escreveu em português Linguagens Estruturadas
mesmo, de propósito, ou seja, o código dele não será trans- É um tipo de programação utilizada para otimizar os progra-
formado em um software da forma como está. No entanto, o mas criados. Assim, esse paradigma mostra ao programador que
algoritmo está escrito conceitualmente para que ele possa ser é possível estruturar programas de maneira simples, através de
traduzido para diferentes linguagens. Portanto, quando ler a pa- sub-rotinas e funções.
lavra algoritmo, pode ser que ele esteja em uma linguagem de
programação ou só escrito conceitualmente, em pseudo código. Linguagens Procedurais
Neste último caso, continuará sendo um algoritmo. Fazem parte dos tipos de linguagem estruturada e são lin-
guagens compostas por algoritmos que definem a sequência de
Rodar o código chamadas de procedimentos que fazem parte de um programa.
Uma pergunta muita interessante é: onde eu escrevo meu Pode-se considerar as linguagens C, Pascal, Fortran, ADA, Modu-
código? Posso escrever no bloco de notas? Quando acabar o có- la-2 e Modula 3 como procedurais.
digo, mando para quem transformá-lo em um software?
Depois do código ser escrito, outro software transforma o Linguagens Funcionais
código em um arquivo executável. Explicaremos sobre ele no As linguagens funcionais possuem um estilo diferente das
quarto post da série, chamado Implementador de linguagens procedurais, em sua sintaxe ela prioriza expressões ao invés de
de programação. Por ora, saiba que durante essa transformação comandos. As mais populares são LISP e Prolog, mas existem ou-
pode dar tudo certo e o software sair bonito do forno (na forma tras como a Scheme, ASpecT, Calm, Haskell, Miranda, Nesl, etc.

41
CONHECIMENTOS DE INFORMÁTICA

Linguagem Prolog Isso acontece porque se trata de um padrão que tem evolu-
Inventada em 1970 na Universidade de Marseille por Alain ído muito, principalmente em questões voltadas para segurança
Colmerauer e outros com a finalidade de fazer a tradução das e reaproveitamento de código, o que é muito importante no de-
linguagens naturais. Com sua evolução, atingiu propósitos espe- senvolvimento de qualquer aplicação moderna.
cíficos sendo usada para projetos de arquitetura, lógica mate-  
mática, análise bioquímica, etc. Características da programação orientada a objetos
Para uma linguagem ser considerada no paradigma do POO,
Linguagem LISP existem quatro características principais que precisam fazer par-
A linguagem foi criada por John McCarthy, em 1958. É muito te de sua aplicação: abstração, encapsulamento, herança e po-
utilizada dentro da Inteligência Artificial. Para utilização dessa limorfismo.
linguagem em vários dialetos foi criado o Common Lisp.  
Abstração
Linguagem Scheme Como estamos lidando com uma representação de um ob-
É uma linguagem simples criada por Guy Lewis Steele Jr. e jeto real, temos que imaginar o que esse objeto irá realizar den-
Gerald Jay Sussman em 1975 no laboratório de Inteligência Ar- tro do sistema. Três pontos que devem ser levados em conside-
tificial do MIT. ração nessa abstração: identidade, característica e ação.
O primeiro passo é darmos uma identidade ao objeto que
Linguagens Orientadas a Objetos iremos criar. Essa identidade deve ser única dentro do sistema
São linguagens de programação utilizadas para expressar para que não haja conflito. Na maior parte das linguagens, há
itens do nosso cotidiano, de uma forma próxima ao mundo real. o conceito de pacotes (ou namespaces). Nessas linguagens, a
Os conceitos mais frequentes dentro da linguagem são objetos, identidade do objeto não pode ser repetida dentro do pacote, e
classes e heranças. Os objetos são unidades encontradas dentro não necessariamente no sistema inteiro.
do programa que passam a trocar mensagens entre outros obje- O segundo passo é definir as características do objeto. Todo
tos e as classes. Exemplos de linguagens são: objeto possui elementos que o definem. Dentro da programa-
A programação orientada a objetos é um paradigma da ção orientada a objetos, essas características são nomeadas pro-
programação que procura entender os problemas a partir de priedades. Por exemplo, as propriedades de um objeto “Chalei-
classes, ações, itens e características que se relacionam entre ra” poderiam ser “Tamanho”, “Peso” e “Cor”.
si. Na sequência de aprendizado da programação, entender este Por fim, a terceira parte é definirmos as ações que o objeto
paradigma de programação é o segundo passo, logo depois da irá executar. Essas ações, ou eventos, são chamados métodos.
programação imperativa. Esses métodos podem ser extremamente variáveis. No exemplo
  da chaleira, poderiam ser “Esquentar()” ou “Apitar()”.
Programação Imperativa  
Programação Orientada a Objetos Encapsulamento
Programação Funcional O encapsulamento é um dos elementos que adicionam
  segurança à aplicação em uma programação orientada a obje-
O que é programação orientada a objetos? tos, por isso é tão importante. O objetivo dessa característica é
É muito comum encontrar programadores que só utilizam esconder as propriedades dos objetos, criando uma espécie de
linguagens de programação orientadas a objetos, mas que não caixa preta.
compreendem verdadeiramente os paradigmas dessa condição. A maior parte das linguagens orientadas a objetos imple-
Quando alguma pessoa está começando a aprender a pro- mentam o encapsulamento baseado em propriedades privadas,
gramar, o mais comum é que seja introduzida a partir da progra- ligadas a métodos especiais chamados getters e setters, que irão
mação imperativa. Nesta, todo aplicativo ou algoritmo é desen- retornar e setar o valor da propriedade, respectivamente. Essa
volvido pensando em uma série de etapas que o software deve atitude evita o acesso direto a propriedade do objeto, adicio-
cumprir para atingir o seu objetivo final. Um exemplo disso é nando uma outra camada de segurança à aplicação.
descrever o passo a passo para trocar uma lâmpada, por exem- Um exemplo disso na vida real, para ficar mais fácil, pode
plo. ser quando clicamos no botão de ligar ou desligar um celular.
Depois desse aprendizado de introdução à lógica de progra- Ao clicarmos, não sabemos exatamente o que está acendendo e
mação e algoritmos, é preciso entender o paradigma orientado rodando internamente, ou seja, os métodos que ligam o celular
a objetos. A diferença do POO é que, ao invés de pensarmos estão encapsulados.  
em passo a passo, primeiro serão definidos os elementos neces-  
sários para realizar o objetivo. A descrição do código será feita Herança
relacionando esses elementos até sua conclusão. Como falamos anteriormente, a possibilidade de reutilizar
códigos de programação orientada a objetos é um dos principais
Por que aprender programação orientada a objetos (POO)? motivos para esse tipo de programação ter sido tão difundido.
Hoje em dia, o mercado de programação é dominado pelo Isso acontece por meio da característica de herança.
paradigma orientado a objetos. A maioria das linguagens de Essa característica otimiza a produção da aplicação em tem-
programação são orientadas a objetos, como: Java, C#, Python e po e linhas de código. O objeto abaixo na hierarquia irá herdar
C++ e, apesar de terem algumas diferenças na implementação, características de todos os objetos acima dele, seus “ancestrais”.
todas seguem os mesmos princípios e conceitos. A herança a partir das características do objeto mais acima é

42
CONHECIMENTOS DE INFORMÁTICA

considerada herança direta, enquanto as demais são consideradas heranças indiretas. Por exemplo, na família, a criança herda direta-
mente do pai e indiretamente do avô e do bisavô.
 
Polimorfismo
O polimorfismo é a capacidade de alterar a forma conforme a necessidade. Na POO, os objetos filhos herdam as características e
ações de seus ancestrais. Entretanto, em alguns casos, é necessário que as ações para um mesmo método seja diferente. Em outras
palavras, o polimorfismo consiste na alteração do funcionamento interno de um método herdado de um objeto pai.
Como um exemplo, temos um objeto genérico “Eletrodoméstico”. Esse objeto possui um método, ou ação, “Ligar()”. Temos dois
objetos, “Televisão” e “Geladeira”, que não irão ser ligados da mesma forma. Assim, precisamos, para cada uma das classes filhas,
reescrever o método “Ligar()”.
Compreender essas quatro características é fundamental para utilizar a programação orientada a objetos com mais consciência
de suas possibilidades. Cada linguagem utiliza essas características de formas diferentes, mas a base é a mesma.

Formas de Representação de Algoritmos


Existem diversas formas de representação de algoritmos, mas não há um consenso com relação à melhor delas.
O critério usado para classificar hierarquicamente estas formas está diretamente ligado ao nível de detalhe ou, inversamente, ao
grau de abstração oferecido.
Algumas formas de representação de algoritmos tratam os problemas apenas em nível lógico, abstraindo-se de detalhes de
implementação muitas vezes relacionados com alguma linguagem de programação específica. Por outro lado, existem formas de
representação de algoritmos que possuem uma maior riqueza de detalhes e muitas vezes acabam por obscurecer as idéias principais
do algoritmo, dificultando seu entendimento.
Dentre as formas de representação de algoritmos mais conhecidas podemos citar:
- Descrição Narrativa;
- Fluxograma Convencional;
- Pseudocódigo, também conhecido como Linguagem Estruturada ou Portugol.

- Descrição Narrativa
Nesta forma de representação os algoritmos são expressos diretamente em linguagem natural. Como exemplo, têm-se os algo-
ritmos seguintes:

Esta representação é pouco usada na prática porque o uso da linguagem natural muitas vezes dá oportunidade a más interpreta-
ções, ambiguidades e imprecisões.
Por exemplo, a instrução “afrouxar ligeiramente as porcas” no algoritmo da troca de pneus está sujeita a interpretações diferentes
por pessoas distintas. Uma instrução mais precisa seria: “afrouxar a porca, girando-a 30º no sentido anti-horário”.

- Fluxograma Convencional
É uma representação gráfica de algoritmos onde formas geométricas diferentes implicam ações (instruções, comandos) distintos.
Tal propriedade facilita o entendimento das idéias contidas nos algoritmos e justifica sua popularidade.
Esta forma é aproximadamente intermediária à descrição narrativa e ao pseudocódigo (subitem seguinte), pois é menos impre-
cisa que a primeira e, no entanto, não se preocupa com detalhes de implementação do programa, como o tipo das variáveis usadas.

43
CONHECIMENTOS DE INFORMÁTICA

Nota-se que os fluxogramas convencionais se preocupam


com detalhes de nível físico da implementação do algoritmo.
Por exemplo, figuras geométricas diferentes são adotadas para
representar operações de saída de dados realizadas em dispo-
sitivos distintos, como uma fita magnética ou um monitor de
vídeo. Como esta apostila não está interessada em detalhes físi-
cos da implementação, mas tão somente com o nível lógico das
instruções do algoritmo, será adotada a notação simplificada da
Figura 2.1 para os fluxogramas. De qualquer modo, o Apêndice
A contém uma tabela com os símbolos mais comuns nos fluxo-
gramas convencionais.

Figura 2.2 Exemplo de um fluxograma convencional.

- Pseudocódigo
Esta forma de representação de algoritmos é rica em deta-
lhes, como a definição dos tipos das variáveis usadas no algorit-
mo. Por assemelhar-se bastante à forma em que os programas
são escritos, encontra muita aceitação.
Na verdade, esta representação é suficientemente geral
Figura 2.1 Principais formas geométricas usadas em fluxogra- para permitir a tradução de um algoritmo nela representado
mas. para uma linguagem de programação específica seja pratica-
mente direta.
De modo geral, um fluxograma se resume a um único sím- A forma geral da representação de um algoritmo na forma
bolo inicial por onde a execução do algoritmo começa, e um ou de pseudocódigo é a seguinte:
mais símbolos finais, que são pontos onde a execução do algorit- Algoritmo <nome_do_algoritmo>
mo se encerra. Partindo do símbolo inicial, há sempre um único <declaração_de_variáveis>
caminho orientado a ser seguido, representando a existência de <subalgoritmos>
uma única seqüência de execução das instruções. Isto pode ser Início
melhor visualizado pelo fato de que, apesar de vários caminhos <corpo do algoritmo>
poderem convergir para uma mesma figura do diagrama, há Fim
sempre um único caminho saindo desta. Exceções a esta regra
são os símbolos finais, dos quais não há nenhum fluxo saindo, e Algoritmo é uma palavra que indica o início da definição de
os símbolos de decisão, de onde pode haver mais de um cami- um algoritmo em forma de pseudocódigo.
nho de saída (usualmente dois caminhos), representando uma <nome_do_algoritmo> é um nome simbólico dado ao algo-
bifurcação no fluxo. ritmo com a finalidade de distingui-los dos demais.
A Figura 2.2 mostra a representação do algoritmo de cálculo <declaração_de_variáveis> consiste em uma porção opcio-
da média de um aluno sob a forma de um fluxograma. nal onde são declaradas as variáveis globais usadas no algoritmo
principal e, eventualmente, nos subalgoritmos.
<subalgoritmos> consiste de uma porção opcional do pseu-
docódigo onde são definidos os subalgoritmos.

44
CONHECIMENTOS DE INFORMÁTICA

Início e Fim são respectivamente as palavras que delimitam teres nele contido. Portanto, para guardar um dado do tipo lite-
o início e o término do conjunto de instruções do corpo do al- ral devemos alocar (reservar) um espaço contíguo de memória
goritmo. igual ao comprimento do mesmo, destinando um byte para cada
Como exemplo, a Figura 2.3 mostra a representação do caractere da informação.
algoritmo do cálculo da média de um aluno, na forma de um Exemplificando, a informação do tipo literal “banana” pos-
pseudocódigo. sui seis caracteres e, portanto, seis bytes são necessários para
reter a referida informação na memória. A princípio, estes bytes
podem estar em qualquer lugar da memória, mas é convenien-
te que estejam juntos (posições contíguas). A primeira posição
deste conjunto de bytes é absolutamente arbitrária e sua esco-
lha geralmente é feita automaticamente pelo compilador (isto é,
pelo programa que traduz um outro escrito em alguma lingua-
gem de programação para outra geral, a linguagem de máquina
do computador com que se trabalha).
A Figura mostra o caso em que se armazena a literal “bana-
na” no conjunto de seis bytes contíguos de memória iniciando
pela posição de memória 0. Na verdade, ao invés dos caracteres
da literal, os códigos correspondentes aos mesmos é que são
guardados na memória.
Figura 2.3 Exemplo de um pseudocódigo.

Variáveis
A todo momento durante a execução de qualquer tipo de
programa os computadores estão manipulando informações
representadas pelos diferentes tipos de dados descritos no ca-
pítulo anterior. Para que não se “esqueça” das informações, o
computador precisa guardá-las em sua memória.

Armazenamento de Dados na Memória


Cada um dos diversos tipos de dados apresentados no ca-
pítulo anterior necessita de uma certa quantidade de memória Armazenamento da literal “banana” na memória de um
para armazenar a informação representada por eles. computador.
Esta quantidade é função do tipo de dado considerado, do
tipo da máquina (computador) e do tipo de linguagem de pro- Armazenamento de Dados do Tipo Lógico
gramação. Por isso, o que será exposto nos subitens seguintes Uma informação do tipo lógico só possui dois valores pos-
não deve ser tomado como padrão, apenas como exemplo. síveis: .V. ou .F.. Assim, a princípio, um único bit seria suficiente
para armazenar uma informação deste tipo. Contudo, deve-se
Armazenamento de Dados do Tipo Literal lembrar que a menor porção de memória que se pode acessar é
Devemos sempre ter em mente que um byte consegue re- o byte. Portanto, uma informação do tipo lógico é armazenada
presentar 256 (28) possibilidades diferentes. em um byte de memória. De certa forma, se por um lado isto
Uma informação do tipo literal nada mais é do que um con- pode ser como um “desperdício” de memória, por outro simpli-
junto de caracteres que podem ser letras, dígitos ou símbolos fica bastante a arquitetura de memória dos computadores (por
especiais. motivos que fogem ao contexto desta apostila). Além do mais,
A união de todos os caracteres existentes nos computado- isto não é tão relevante, uma vez que na prática o número de
res resulta num conjunto com um número de elementos menor ocorrências de dados do tipo lógico é bastante inferior ao de
que 256. Deste resultado surgiu a idéia de associar a cada carac-
ocorrências de dados do tipo literal ou numérico.
tere um número (código) variando de 0 a 255 (256 possibilida-
des). No princípio, cada fabricante de computador adotava uma
Armazenamento de Dados do Tipo Inteiro
convenção diferente para este código. Mais recentemente, esta
convenção foi padronizada a fim de facilitar a portabilidade (mi- O conjunto dos números inteiros (Z) contém um número in-
gração) de programas entre máquinas diferentes. Esta conven- finito de elementos:
ção é representada na forma de uma tabela de mapeamento de Z = { -∞, ..., -3, -2, -1, 0, 1, 2, 3, ..., +∞}
caracteres em números. O padrão mais universalmente aceito é Obviamente é inviável o armazenamento de todos os nú-
o ASCII, cuja tabela é mostrada no Apêndice B. meros deste conjunto num computador. Faz-se necessário reali-
Assim, cada célula de memória (byte) pode conter um ca- zar um estudo para que se limite o número de elementos repre-
ractere, representado pelo seu código ASCII. sentáveis deste conjunto.
Retornando à questão do armazenamento de informações Se apenas um byte fosse utilizado para armazenar os dados
do tipo literal na memória, deve-se lembrar que um dado deste do tipo inteiro, existiriam apenas 256 números diferentes neste
tipo possui um certo comprimento dado pelo número de carac- conjunto:

45
CONHECIMENTOS DE INFORMÁTICA

{-127, -126, ..., -2, -1, 0, 1, 2, ..., 127, 128)


Esta restrição é bastante forte, uma vez que boa parte das aplicações práticas necessitam de números inteiros maiores que estes.
Se forem utilizados dois bytes para armazenar um número inteiro, o universo de números representáveis cresce para 28 x 28 =
216 = 65.536 possibilidades:
{-32767, -32766, ..., -2, -1, 0, 1, 2, ..., 32767, 32768}
Este conjunto satisfaz à grande maioria das necessidades práticas. Assim, em geral utilizam-se dois bytes para representar os
números inteiros em computadores. Contudo, restam algumas aplicações muito específicas em que se precisa de um conjunto ainda
maior. Para estes casos, algumas linguagens de programação fornecem mecanismos para trabalhar números inteiros com quatro by-
tes. Nestes casos os dados são ditos inteiros longos ou estendidos.

Armazenamento de Dados do Tipo Real


O conjunto dos números reais (R) contém um número infinito de elementos e, pelas mesmas razões que o conjunto dos números
inteiros, precisa ser limitado.
Para dados deste tipo julgou-se apropriado adotar quatro bytes para sua representação interna nos computadores.
São muito comuns situações como as aplicações científicas em que é necessária uma maior precisão de cálculo, intimamente
ligada ao número de casas decimais dos dados. Para este caso, em analogia com o que acontece com os dados do tipo inteiro, algumas
linguagens de programação decidiram criar dados do tipo real estendido (com oito bytes).

Conceito e Utilidade de Variáveis


Como visto anteriormente, informações correspondentes a diversos tipos de dados são armazenadas na memória dos computa-
dores. Para acessar individualmente cada uma destas informações, a princípio, seria necessário saber o tipo de dado desta informação
(ou seja, o número de bytes de memória por ela ocupados) e a posição inicial deste conjunto de bytes na memória.
Percebe-se que esta sistemática de acesso a informações na memória é bastante ilegível e difícil de se trabalhar. Para contornar
esta situação criou-se o conceito de variável, que é uma entidade destinada a guardar uma informação.
Basicamente, uma variável possui três atributos: um nome, um tipo de dado associado à mesma e a informação por ela guardada.

Atributos de uma variável.

Toda variável possui um nome que tem a função de diferenciá-la das demais. Cada linguagem de programação estabelece suas
próprias regras de formação de nomes de variáveis. Adotaremos nesta apostila as seguintes regras:
- um nome de variável deve necessariamente começar com uma letra;
- um nome de variável não deve conter nenhum símbolo especial exceto a sublinha
(_).

Exemplos:

Definição de Variáveis em Algoritmos


Todas as variáveis utilizadas em algoritmos devem ser definidas antes de serem utilizadas. Isto se faz necessário para permitir que
o compilador reserve um espaço na memória para as mesmas.

46
CONHECIMENTOS DE INFORMÁTICA

Nos algoritmos apresentados nesta apostila será adotada a Operações mais comuns:
seguinte convenção: 1. Inicializar a estrutura de dados.
- todas as variáveis utilizadas em algoritmos serão definidas 2. Pesquisar um ou mais registros com determinada chave.
no início do mesmo, por meio de um comando de uma das for- 3. Inserir um novo registro.
mas seguintes: 4. Retirar um registro específico.
VAR <nome_da_variável> : <tipo_da_variável>
VAR <lista_de_variáveis> : <tipo_das_variáveis> Dicionário
- a palavra-chave VAR deverá estar presente sempre e será Dicionário é um TAD com as operações:
utilizada uma única vez na definição de um conjunto de uma ou 1. Inicializa
mais variáveis; 2. Pesquisa
- numa mesma linha poderão ser definidas uma ou mais va- 3. Insere
riáveis do mesmo tipo. Para tal, deve-se separar os nomes das 4. Retira
mesmas por vírgulas;
- variáveis de tipos diferentes devem ser declaradas em li- Analogia com um dicionário da língua portuguesa:
nhas diferentes. • Chaves ⇔ palavras
A forma de utilização deste comando ficará mais clara quan- • Registros ⇔ entradas associadas com *pronúncia, defini-
do da utilização da representação de algoritmos em linguagem ção, sinônimos, outras informações
estruturada (pseudocódigo).
Esta convenção é válida para a representação de algoritmos Pesquisa Sequencial
na forma de pseudocódigo. Em termos de fluxograma, não é Método de pesquisa mais simples: a partir do primeiro re-
usual adotar-se qualquer forma de definição de variáveis. gistro, pesquise sequencialmente até encontrar a chave procu-
Exemplo de definição de variáveis: rada; então pare.
Armazenamento de um conjunto de registros por meio de
um array.

A Busca (find):
• Pesquisa retorna o índice do registro que contém a chave
x;
• Caso não esteja presente, o valor retornado é -1.
No exemplo acima foram declaradas quatro variáveis:
• A implementação não suporta mais de um registro com
- a variável NOME, capaz de armazenar dados literais de
comprimento 10 (dez caracteres); uma mesma chave, pois retorna o primeiro encontrado.
- a variável IDADE, capaz de armazenar um número inteiro;
- a variável SALARIO, capaz de armazenar um número real;
- a variável TEM_FILHOS, capaz de armazenar uma informa-
ção lógica.

Fonte:
https://www.devmedia.com.br/introducao-as-linguagens-
-de-programacao/25111
https://universidadedatecnologia.com.br/o-que-e-lingua-
gem-de-programacao/
https://www.dca.ufrn.br/~affonso/DCA800/pdf/algorit-
mos_parte1.pdf
https://blog.mastertech.com.br/tecnologia/programacao-
-orientada-objetos-o-que-isso-significa/

Busca sequencial e busca binária sobre arrays


• Estudo de como recuperar informação a partir de uma
grande massa de informação previamente armazenada.
• A informação é dividida em registros.
• Cada registro possui uma chave para ser usada na pes-
quisa.
• Objetivo da pesquisa: Encontrar uma ou mais ocorrências
de registros com chaves iguais à chave de pesquisa

Algoritmos de Pesquisa - TADs


É importante considerar os algoritmos de pesquisa como
tipos abstratos de dados (TADs), de tal forma que haja uma in-
dependência de implementação para as operações.

47
CONHECIMENTOS DE INFORMÁTICA

Análise:
• Pesquisa com sucesso:
- melhor caso : C(n) = 1
- pior caso : C(n) = n
- caso médio: C(n) = (n + 1) / 2

• Pesquisa sem sucesso:


> C (n) = n + 1.

O algoritmo de pesquisa sequencial é a melhor escolha para o problema de pesquisa com n < 25.

Pesquisa Binária
Pesquisa em tabela pode ser mais eficiente se registros forem mantidos em ordem
Para saber se uma chave está presente na tabela
1. Compare a chave com o registro que está na posição do meio da tabela.
2. Se a chave é menor então o registro procurado está na primeira metade da tabela
3. Se a chave é maior então o registro procurado está na segunda metade da tabela.
4. Repita até que a chave seja encontrada ou que se constate que a chave não existe na tabela.

48
CONHECIMENTOS DE INFORMÁTICA

49
CONHECIMENTOS DE INFORMÁTICA

Análise Número de comparações entre chaves e movimentações de


A cada iteração do algoritmo, o tamanho da tabela é dividi- registros, pior caso:
do ao meio.
Logo: o número de vezes que o tamanho da tabela é dividi-
do ao meio é cerca de log n.
Ressalva: o custo para manter a tabela ordenada é alto: a
cada inserção na posição p da tabela implica no deslocamento
dos registros a partir da posição p para as posições seguintes.
Consequentemente, a pesquisa binária não deve ser usada
em aplicações muito dinâmicas.

Fonte:
htt p : / / w w w. d e co m . u fo p . b r / to ffo l o /s i te _ m e d i a / • Método muito simples, mas custo alto
uploads/2013-1/bcc202/slides/20._pesquisa_(parte_1).pdf - Adequado apenas se arquivo pequeno
- Ruim se registros muito grandes
Ordenação pelo Método da Bolha - Bubblesort • Número de operações não se altera se vetor já está (par-
cialmente) ordenado
Um dos algoritmos mais simples que existem - Como melhorar?
Algoritmo: • Método da Bolha Melhorado: Termina execução quando
- Percorra o vetor inteiro comparando elementos adjacen- nenhuma troca é realizada após uma passada pelo vetor
tes (dois a dois)
- Troque as posições dos elements se eles estiverem fora
de ordem
- Repita os dois passos acima com os primeiros n-1 itens,
depois com os primeiros n-2 itens, até que reste apenas um item

O método ilustrado:

As chaves em negrito foram empurradas para o fim do vetor


a cada passada : bolhas
• Método da Bolha (Bubblesort):
void Bolha (Vetor A; Indice n) {
Indice i, j;
Item temp;

for (i:= n-1; i >= 1; i--) {


for (j= 0; j < i ;j++) { if (A[j].chave
< A[j+1].chave) { Ordenação de Vetores por Seleção
temp = A[j].chave; a) Ideia: Criar, passo a passo, uma lista ordenada, a partir
A[j].chave = A[j+1].chave; de um conjunto de dados, retirando do conjunto, a cada passo,
A[j+1].chave = temp; o menor elemento presente, até esvaziá-lo. Para implementar
} essa idéia num vetor, ele é dividido em dois subvetores, o pri-
}} meiro inicialmente nulo, tal que se retire dados do segundo e
} transfira para o primeiro. A transferência de dados é feita “in
place”, através de um “loop” de (n -1) passos.

50
CONHECIMENTOS DE INFORMÁTICA

b) Algoritmo Selecao;

c) Exemplo , mostrando os elementos envolvidos em comparações e trocas (estas em vermelho):

d) Análise do Algoritmo:
Para sabermos como varia o tempo de execução do algoritmo de acordo com o número e o conteúdo dos dados do vetor, vamos
contar o número de instruções executadas e calcular o tempo de execução, considerando que:
tp = tempo das instruções de controle do “loop” para;
ta = tempo da instrução de atribuição;
ts = tempo do teste da instrução se;
De início vemos que a atribuição interna ao comando “Se” pode ser executada ou não. As demais instruções serão sempre exe-
cutadas. Então temos duas situações, que chamaremos o pior e o melhor caso. O pior caso acontece quando, para cada interação, as
instruções internas ao “Se” são executadas e o melhor, quando não são nunca executadas. Desta forma, temos:

Tep(n) = pior tempo possível para ordenar uma entrada com n elementos =

Note que na expressão acima separamos as instruções em duas parcelas. Na primeira estão as instruções sempre executadas e,
na segunda, as instruções do “loop” mais interno. Calculando, obtemos:

51
CONHECIMENTOS DE INFORMÁTICA

Como, para um dado computador os tempos de execução dos tipos de instrução são fixos, podemos escrever a expressão acima
como um polinômio de 2° grau:

Se calcularmos, de forma análoga, o tempo de execução no melhor caso, quando a instrução interna ao “Se” nunca é executada,
obteremos:

, que pode ser escrito como:

Vemos, então que, em qualquer caso, o tempo de execução é um polinômio de 2° grau em n. Devemos ressaltar que há uma pe-
quena imprecisão no cálculo acima, pois ele está desconsiderando o último teste de controle de cada “loop”. Neste caso, deveríamos
acrescentar n.tp a cada um dos tempos calculados. Há , também uma simplificação, supondo-se que as instruções envolvendo vetor
e variáveis simples levam o mesmo tempo, o que não é verdade. Mas nada disso muda o tipo de polinômio obtido. Notar também
que, se contássemos apenas o número de comparações de chaves durante o processo, obteríamos também polinômios do 2° grau.
d.2) Estabilidade: Algoritmo não estável
d.3) Situações Especiais: O algoritmo é utilizável para ordenação de um volume razoável de registros (alguns milhares), cujas cha-
ves sejam pequenas, pois o número de movimentações de registros é baixo ( = n).
d.4) Memória utilizada: nenhuma memória adicional necessária.
e) Observações:
e.1) Número de comparações feitas: 66
Número de trocas: 11
e.2) Notar que, algumas vezes, o elemento é trocado com ele mesmo. Entretanto, a tentativa de evitar isso pode piorar o algo-
ritmo.
e.3) Este algoritmo foi apresentado mais para efeito didático embora, pela sua simplicidade de compreensão, possa ser utilizado
para ordenação de pequenos vetores.

Ordenação de Vetores por Inserção


a) Idéia: Criar, passo a passo, uma lista ordenada, a partir de um conjunto de dados, retirando do conjunto, a cada passo, o primei-
ro elemento encontrado. Para implementar essa idéia num vetor, ele é dividido em dois subvetores. O primeiro inicialmente contém
uma chave, sendo a transferência de dados feita “in place”, com um “loop” de (n -1) passos onde, a cada passo, o elemento inserido
pode ter que deslocar para a direita elementos maiores.

b) Algoritmo Insercao;

52
CONHECIMENTOS DE INFORMÁTICA

c) Exemplo, mostrando os elementos envolvidos em comparações e trocas (estas em vermelho):

Análise do Algoritmo:
d.1) Complexidade:
Vamos fazer uma análise análoga à do algoritmo anterior. Teremos:

Tep(n) = pior tempo possível para ordenar uma entrada com n elementos =

Note que na expressão acima separamos as instruções em duas parcelas. Na primeira estão as instruções sempre executadas e,
na segunda, as instruções do “loop” mais interno. No início deste “loop” há sempre um uma subtração (tsu) e um teste (ts) e, em seu
interior, 2 atribuições e duas subtrações. Calculando, obtemos:

Podemos escrever a expressão acima como um polinômio de 2° grau:

Se calcularmos, de forma análoga, o tempo de execução no melhor caso, quando as instruções internas ao segundo “loop” nunca
são executadas, obteremos:

, que pode ser escrito como:

Vemos, então que os dois casos têm polinômios de grau diferente; no pior caso o tempo de execução é descrito por um polinômio
de 2° grau e, no melhor caso, por um polinômio de 1° grau! Portanto, dependendo da entrada, o comportamento do tempo de exe-
cução é variável. O melhor caso ocorre quando o vetor já está ordenado e, o pior, quando o vetor está inversamente ordenado. Uma
pergunta natural é: e no caso médio? Bem, no caso médio, o “loop” é executado um número de vezes igual à metade da variável “i” e
este tempo também é expresso por um polinômio de 2° grau. Notar mais uma vez que se contarmos as comparações no processo de
ordenação obteremos polinômios como os mencionados.
d.2) Estabilidade: Algoritmo estável
d.3) Situações Especiais: O algoritmo é adequado para situação de vetor quase ordenado (situação em que se fazem pequenas
adições a um vetor já previamente ordenado).

53
CONHECIMENTOS DE INFORMÁTICA

d.4) Memória utilizada: nenhuma memória adicional.

e) Observações:
e.1) Número de comparações: 49 (inclui comparação com sentinela) Número de trocas: 49
e.2) Notar que o vetor usa o índice 0 para guardar um “sentinela”, no caso a própria chave que está sendo inserida. Esse procedi-
mento simplifica e torna mais rápido o algoritmo. Essa é uma técnica bastante utilizada na construção de bons algoritmos.

LISTAS
São estruturas formadas por um conjunto de dados de forma a preservar a relação de ordem linear entre eles. Uma lista é com-
posta por nós, os quais podem conter, cada um deles, um dado primitivo ou composto.

Representação:

Sendo:
L1 - 1º elemento da lista
L2 - Sucessor de L1
Ln-1 - Antecessor de Ln-1
Ln - Último elemento da lista.

Exemplos de Lista:
- Lista Telefônica
- Lista de clientes de uma agência bancária
- Lista de setores de disco a serem acessados por um sistema operacional
- Lista de pacotes a serem transmitidos em um nó de uma rede de computação de pacotes.

Operações Realizadas com Listas:


- Criar uma lista vazia
- Verificar se uma lista está vazia
- Obter o tamanho da uma lista
- Obter/modificar o valor do elemento de uma determinada posição na lista
- Obter a posição de elemento cujo valor é dado
- Inserir um novo elemento após (ou antes) de uma determinada posição na lista
- Remover um elemento de uma determinada posição na lista
- Exibir os elementos de uma lista
- Concatenar duas listas

FORMAS DE REPRESENTAÇÃO:
a) Sequencial:
Explora a sequencialidade da memória do computador, de tal forma que os nós de uma lista sejam armazenados em endereços
sequenciais, ou igualmente distanciados um do outro. Pode ser representado por um vetor na memória principal ou um arquivo se-
quencial em disco.

b) Encadeada:
Esta estrutura é tida como uma sequência de elementos encadeados por ponteiros, ou seja, cada elemento deve conter, além do
dado propriamente dito, uma referência para o próximo elemento da lista.

Ex: L = pato, cabra, rato, anta, macaco

54
CONHECIMENTOS DE INFORMÁTICA

2.1 – LISTA SEQUENCIAL


Uma lista representada de forma sequencial é um conjunto de registros onde estão estabelecidas regras de precedência entre
seus elementos. O sucessor de um elemento ocupa posição física subsequente.
A implementação de operações pode ser feita utilizando array e registro, associando o elemento a(i) com o índice i (mapeamento
sequencial).

CARACTERÍSTICAS
• os elementos na lista estão armazenados fisicamente em posições consecutivas;
• a inserção de um elemento na posição a(i) causa o deslocamento a direita do elemento de a(i) ao último;
• a eliminação do elemento a(i) requer o deslocamento à esquerda do a(i+1) ao último;

Mas, absolutamente, uma lista sequencial ou é vazia ou pode ser escrita como (a(1), a(2), a(3), ... a(n)) onde a(i) são átomos de
um mesmo conjunto A.
Além disso, a(1) é o primeiro elemento, a(i) precede a(i+1), e a(n) é o último elemento.

Assim as propriedades estruturadas da lista permitem responder a questões tais como:


• se uma lista está vazia
• se uma lista está cheia
• quantos elementos existem na lista
• qual é o elemento de uma determinada posição
• qual a posição de um determinado elemento
• inserir um elemento na lista
• eliminar um elemento da lista

Consequência:
As quatro primeiras operações são feitas em tempo constante. As demais, porém, requererão mais cuidados.

Vantagem:
• acesso direto indexado a qualquer elemento da lista
• tempo constante para acessar o elemento i - dependerá somente do índice.

Desvantagem:
• movimentação quando eliminado/inserido elemento
• tamanho máximo pré-estimado

Quando usar:
• listas pequenas
• inserção/remoção no fim da lista
• tamanho máximo bem definido

Vamos tentar evitar as desvantagens anteriores ao usar endereços não consecutivos (Lista Encadeada).

OPERAÇÕES BÁSICAS
A seguir, apresentaremos a estrutura de dados e as operações básicas sobre listas, implementadas na linguagem C.

55
CONHECIMENTOS DE INFORMÁTICA

Definição da ED:

Operações simples utilizando lista sequencial:

1) Criar uma lista vazia


void criar (tlista *L) {
L->n = 0;
}

2) Verificar se uma lista está vazia


int vazia (tlista L) { return (L.n == 0);
}

3) Verificar se uma lista está cheia


int cheia (tlista L) { return (L.n == MAX);
}

4) Obter o tamanho de uma lista


int tamanho (tlista L) { return (L.n);
}

5) Obter o i-ésimo elemento de uma lista


int elemento (tlista L, int pos, telem *dado) {

/* O parâmetro dado irá receber o elemento encontrado */


/* Retorna 0 se a posição for inválida. Caso contrário, retorna 1 */

if ( (pos > L.n) || (pos <= 0) ) return (0);

*dado = L.v[pos-1];
return (1);
}

56
CONHECIMENTOS DE INFORMÁTICA

6) Pesquisar um dado elemento, retornando a sua posição

7) Inserção de um elemento em uma determinada posição


Requer o deslocamento à direita dos elementos v(i+1)...v(n)

8) Remoção do elemento de uma determinada posição


Requer o deslocamento à esquerda dos elementos v(p+1)...v(n)

LISTA ENCADEADA
Os elementos da lista são registros com um dos componentes destinado a guardar o endereço do registro sucessor.
Ex: L = pato, cabra, rato, anta, macaco

57
CONHECIMENTOS DE INFORMÁTICA

Há duas alternativas para implementação de operações de listas encadeadas: utilizando arrays estáticos ou variáveis dinâmicas.
Entretanto, não há vantagem na implementação da lista encadeada com array, uma vez que permanece o problema do tamanho má-
ximo da lista predefinido e necessita de mais espaço para armazenar os endereços dos elementos sucessores. Portanto, vamos utilizar
variáveis dinâmicas como forma de implementação para as nossas listas encadeadas.
Antes, é importante explicarmos o conceito e utilização de variáveis dinâmicas e de ponteiros (apontadores).

Variáveis Dinâmicas e Ponteiros


As linguagens de programação modernas tornaram possível explicitar não apenas o acesso aos dados, mas também aos endere-
ços desses dados.
Isso significa que ficou possível a utilização de ponteiros explicitamente implicando que uma distinção notacional deve existir
entre os dados e as referências (endereços) desses dados.
A linguagem C utiliza a seguinte notação para a manipulação de ponteiros:

tp *P

Essa declaração expressa que a variável P é um ponteiro para uma variável do tipo tp.
Valores para ponteiros são gerados quando dados correspondentes a seus tipos são alocados/desalocados dinamicamente.
Em C, a função malloc é utilizada para alocar um novo espaço de memória e a função free é utilizada para liberar um espaço alo-
cado. Estão disponíveis na biblioteca <alloc.h>.
Portanto, deixa-se a cargo do programa (via linguagem de programação), e não do programador, prover e devolver espaço para
inserções e eliminações em tempo de execução.
Um ponteiro como P pode assumir o conjunto de valores que correspondem a endereços reais de memória. Por exemplo, sendo
tp um registro contendo os campos dado e prox, e sendo P do tipo tp, podemos ter:

onde o conteúdo de P corresponderia ao endereço do objeto. Esses endereços serão as ligações das listas encadeadas dinâmicas.

Para designar ponteiro, objeto e campos, a notação utilizada é:

Endereço nulo (terra)


A linguagem C utiliza o valor NULL, disponível em <alloc.h>, para denotar o endereço nulo. Podemos utilizá-lo para atribuições e
testes, como nos exemplos abaixo:
1) L = NULL;
2) if (P = NULL) ...

Ponteiro x Objeto Apontado


Nos exemplos abaixo, é ilustrada a diferença entre as operações de atribuição entre ponteiros (por exemplo, P = Q) e a atribuição
entre o conteúdo das variáveis apontadas pelos ponteiros (isto é: *P = *Q).
Dada a situação abaixo, chamada de (a):

58
CONHECIMENTOS DE INFORMÁTICA

Dada a situação (a), após a atribuição P = Q temos a representação abaixo (b).

Dada a situação (a), após a atribuição *P = *Q temos a representação abaixo (c), onde o conteúdo é atribuído.
(Lembre-se que *P = *Q equivale às atribuições P->dado = Q->dado e P->prox = Q->prox)

Operações Básicas com Ponteiros

1) Declaração de Variável

tp *P;

A variável do tipo apontador P é alocada na memória, com valor indefinido.

2) Criação de um registro

p = (tp *) malloc(sizeof (tp));

a) aloca uma nova variável do tipo tp (registro)


b) atribui o endereço da nova variável ao ponteiro P

3) Atribuição de conteúdo ao registro:

P->dado = valor;

4) Atribuição do valor nulo ao campo ponteiro do registro

P->prox = NULL;

59
CONHECIMENTOS DE INFORMÁTICA

5) Liberação de um registro

free(P);
Libera o espaço apontado por P.
É conveniente atribuir NULL à P para evitar uma utilização indevida ao endereço apontado por P.

DEFINIÇÃO DA ED

OPERAÇÕES SOBRE LISTAS ENCADEADAS

1) Criação da lista vazia

2) Verificar se a lista está vazia

60
CONHECIMENTOS DE INFORMÁTICA

3) Obter o tamanho da lista

4) Obter o valor do elemento de uma posição dada

5) Obter a posição de elemento cujo valor é dado

61
CONHECIMENTOS DE INFORMÁTICA

PILHAS Exemplo do Uso de Pilhas


Chamadas de procedimentos
Pilhas são listas onde a inserção de um novo item ou a re- Suponha a seguinte situação:
moção de um item já existente se dá em uma única extremida-
de, no topo.

Quando o procedimento A1 é executado, ele efetua uma


chamada a A2, que deve carregar consigo o endereço de retorno
e1. Ao término de A2, o processamento deve retornar ao A1, no
devido endereço. Situação idêntica ocorre em A2 e A3.
Assim, quando um procedimento termina, é o seu endereço
de retorno que deve ser consultado. Portanto, há uma lista implí-
cita de endereços (e0, e1, e2, e3) que deve ser manipulada como
uma pilha pelo sistema, onde e0 é o endereço de retorno de A1.
No caso de processamento recursivo - por exemplo uma
chamada a A2 dentro de A4 - o gerenciamento da lista como
uma pilha resolve automaticamente a obtenção dos endereços
de retorno na ordem apropriada (e0, e1, e2, e3, e4).

ALOCAÇÃO SEQÜENCIAL DE PILHAS


Definição da Estrutura de Dados:

Definição:

Dada uma pilha P = ( a(1), a(2), ..., a(n) ), dizemos que a(1) é
o elemento da base da pilha; a(n) é o elemento topo da pilha; e
a(i+1) está acima de a(i).
Pilhas são também conhecidas como listas LIFO (last in first
out).

Operações Associadas:
1. Criar uma pilha P vazia
2. Testar se P está vazia OPERAÇÕES:
3. Obter o elemento do topo da pilha (sem eliminar) 1) Criar uma pilha vazia
4. Inserir um novo elemento no topo de P (empilhar)
5. Remover o elemento do topo de P (desempilhar)

Implementação de Pilhas
Como lista Sequencial ou Encadeada?
No caso geral de listas ordenadas, a maior vantagem da
alocação encadeada sobre a seqüencial - se a memória não for
problema - é a eliminação de deslocamentos na inserção ou eli- 2) Testar se a pilha está vazia
minação dos elementos. No caso das pilhas, essas operações de
deslocamento não ocorrem.
Portanto, podemos dizer que a alocação sequencial é mais
vantajosa na maioria das vezes.

62
CONHECIMENTOS DE INFORMÁTICA

3) Obter o elemento do topo da pilha (sem eliminar) 2) Testar se a pilha está vazia

int vazia (tpilha p)


{
return (p == NULL);
}

3) Obter o elemento do topo da pilha (sem eliminar)

4) Inserir um novo elemento no topo da pilha (empilhar) int elemtopo (tpilha p, telem *elem)
{
if (vazia(p)) return 0; /* erro: pilha vazia */

*elem = p->dado; return 1;


}

4) Inserir um novo elemento no topo da pilha (empilhar)

int push (tpilha *p, telem valor)


5) Remove o elemento do topo da pilha (desempilhar), re- {
tornando o elemento removido tpilha novo;

novo = (tno *) malloc(sizeof(tno));

if (novo == NULL) return 0; /* erro: mem¢ria insuficiente


*/

novo->dado = valor; novo->prox = *p; *p = novo; re-


turn 1;
}
ALOCAÇÃO DINÂMICA ENCADEADA DE PILHAS
5) Remove o elemento do topo da pilha (desempilhar), re-
Definição da Estrutura de Dados: tornando o elemento removido

int pop (tpilha *p, telem *valor)


{
tpilha aux;

if (vazia(*p)) return 0; /* erro: lista vazia */

aux = *p; *valor = (*p)->dado; *p = aux->prox; free(aux);


return 1;
}

Fonte:
https://www.ime.uerj.br/~pauloedp/ESTD/Download/
OPERAÇÕES: EDAP2006.pdf

1) Criar uma pilha vazia

void criar (tpilha *p)


{
*p = NULL;
}

63
CONHECIMENTOS DE INFORMÁTICA

FILAS
É uma lista linear em que a inserção é feita numa extremidade e a eliminação na outra. Conhecida com estrutura FIFO (First In,
First Out).

Exemplos:
- Escalonamento de “Jobs”: fila de processos aguardando os recursos do sistema operacional.
- Fila de pacotes a serem transmitidos numa rede de comutação de pacotes.
- Simulação: fila de caixa em banco.

Operações associadas:
1. Criar - cria uma fila vazia
2. Vazia - testa se um fila está vazia
3. Primeiro - obtém o elemento do início de uma fila
4. Inserir - insere um elemento no fim de uma fila
5. Remover - remove o elemento do início de uma fila, retornando o elemento removido.

Implementação de Filas

Como lista Sequencial ou Encadeada ?


Pelas suas características, as filas têm as eliminações feitas no seu início e as inserções feitas no seu final. A implementação en-
cadeada dinâmica torna mais simples as operações (usando uma lista de duas cabeças). Já a implementação sequencial é um pouco
mais complexa (teremos que usar o conceito de fila circular), mas pode ser usada quando há previsão do tamanho máximo da fila.

IMPLEMENTAÇÃO SEQUENCIAL DE FILA


Definição da Estrutura de Dados:

Devido a sua estrutura, será necessária a utilização de dois campos que armazenarão os índices do início e do final da fila e um
vetor de elementos (onde serão armazenados os dados) com tamanho pré-estabelecido.

OPERAÇÕES COM FILAS:


1. Criar - cria uma fila vazia

void criar (tfila *F)


{
F->inicio = 0;
F->final = -1;
}

2. Vazia - testa se uma fila está vazia


int vazia (tfila F)
{
return (F.inicio > F.final);
}

64
CONHECIMENTOS DE INFORMÁTICA

3. Primeiro - obtém o elemento do início da fila


int primeiro (tfila F, telem *dado)
{
if (vazia(F)) return 0; /* Erro: fila vazia */

*dado = F.v[F.inicio];
return (1);
}

5. Insere - insere um elemento no fim de uma fila

int inserir (tfila *F, telem valor)


{
if (F->final == MAX-1) return 0;

(F->final)++;
F->v[F->final] = valor;

return(1);
}

6. Remove - remove o elemento do início de uma fila, retornando o elemento removido

int remover (tfila *F, telem *valor)


{
if (vazia(*F)) return 0; /* Erro: fila vazia */

primeiro(*F,valor);
(F->inicio)++;

return(1);
}

Problema na implementação sequencial

O que acontece com a fila considerando a seguinte sequência de operações sobre um fila:

I E I E I E I E I E ...

(I - inserção e E - eliminação)

Note que a fila vai se deslocando da esquerda para a direita do vetor. Chegará a condição de “overflow” (cheia), porém estando
vazia, ou seja, sem nenhum elemento.

Alternativa:

No algoritmo de remoção, após a atualização de inicio, verificar se a fila ficou vazia. Se este for o caso, reinicializar inicio = 0 e
final = -1

65
CONHECIMENTOS DE INFORMÁTICA

Portanto, ficaria:

O que aconteceria se a sequência fosse:

I I E I E I E I E I ...

A lista estaria com no máximo dois elementos, mas ainda ocorreria overflow com a lista quase vazia.

Alternativa:

Forçar final a usar o espaço liberado por inicio (Fila Circular)

FILA CIRCULAR
Para permitir a reutilização das posições já ocupadas, usa-se o conceito de “Fila Circular”. Precisamos de um novo componente
para indicar quantos elementos existem na fila, no momento.
A estrutura de dados com o novo componente ficaria assim representada:

As operações são agora executadas assim:


1. Criar - cria uma fila vazia
void criar (tfila *F)
{
F->inicio = 0;
F->final = -1;
F->tam = 0;
}

2. Vazia - testa se uma fila está vazia


int vazia (tfila F)
{
return (F.tam == 0);
}

66
CONHECIMENTOS DE INFORMÁTICA

3. Primeiro - obtém o elemento do início da fila


int primeiro (tfila F, telem *dado)
{
if (vazia(F)) return 0; /* Erro: fila vazia */

*dado = F.v[F.inicio];

return (1);
}

5. Inserir - insere um elemento no fim de uma fila


int inserir (tfila *F, telem valor)
{
if (F->tam == MAX) return 0;

(F->tam)++;
F->final = (F->final + 1) % MAX;
F->v[F->final] = valor;

return(1);
}

6. Remover - remove o elemento do início de uma fila, retornando o elemento removido


int remover (tfila *F, telem *valor)
{
if (vazia(*F)) return 0; /* Erro: fila vazia */

primeiro(*F,valor);
(F->tam)--;
F->inicio = (F->inicio + 1) % MAX;
return(1);
}

IMPLEMENTAÇÃO ENCADEADA DE FILA


Definição da Estrutura de Dados:

67
CONHECIMENTOS DE INFORMÁTICA

Operações: ÁRVORE BINÁRIA


1.Criar - cria uma fila vazia Uma Árvore Binária T é um conjunto finito de elementos
void criar (tfila *F) denominados nós, tal que:
{ • se T = φ, a árvore é dita vazia ou
F->inicio = F->final = NULL; • existe um nó especial r, chamado raiz de T; os restantes
} podem ser divididos em dois subconjuntos disjuntos, Te e Td,
que são as subárvores esquerda e direita de r, respectivamente
2. Vazia - testa se uma fila está vazia e as quais, por sua vez, também são árvores binárias.
int vazia (tfila F)
{ Definição da Estrutura de Dados:
return (F.inicio == NULL && F.final == NULL);
}

3. Primeiro - obtém o elemento do início de uma fila


int primeiro (tfila F, telem *elem)
{
if (vazia(F)) return 0; /* erro: fila vazia */

*elem = (F.inicio)->dado;

return 1;
}

4. Inserir - insere um elemento no fim de uma fila


int inserir (tfila *F, telem valor) Operações associadas ao TAD árvore binária padrão:
{ 1) Criar uma árvore vazia
tno *novo; 2) Verificar se árvore está vazia ou não
3) Buscar um elemento na árvore
novo = (tno*) malloc(sizeof(tno)); 4) Inserir um nó raiz
if (novo == NULL) return 0; /* Erro: mem¢ria insuficiente 5) Inserir um filho à direita de um nó 6) Inserir um filho à
*/ esquerda de um nó
7) Esvaziar uma árvore
novo->dado = valor; novo->prox = NULL; 8) Exibir a árvore

if (vazia(*F)) F->inicio = novo; else 1) Criar uma árvore vazia


(F->final)->prox = novo; Define uma árvore vazia e deve ser utilizado antes de qual-
quer outro.
F->final = novo; void criar(tarvbin *T)
{
return 1; *T = NULL;
} }

5. Remover - remove o elemento do início de uma fila, re- 2) Verifica se árvore vazia ou não
tornando o elemento removido Retorna 1 se árvore estiver vazia, 0 caso contrário.
int remover (tfila *F, telem *valor) int vazia(tarvbin T)
{ tno *aux; {
return (T == NULL);
if (vazia(*F)) return 0; /* Erro: fila vazia */ }

primeiro(*F,valor); 3) Buscar um elemento na árvore


Busca um elemento na árvore, retornando o seu endereço,
if (F->inicio == F->final) caso o encontre. Se o elemento não for encontrado, retorna o
F->final = NULL; endereço nulo (NULL).

aux = F->inicio; tarvbin busca(tarvbin T, telem dado)


F->inicio = (F->inicio)->prox; free(aux); {
tarvbin achou;
return 1; }
if (T == NULL) return NULL;

68
CONHECIMENTOS DE INFORMÁTICA

if (T->info == dado) return T;

achou = busca(T->esq, dado);


if (achou == NULL) achou = busca(T->dir, dado); return achou; }

4) Inserir um nó raiz
Insere um nó raiz numa árvore vazia. Retorna 1 se a inserção for bem sucedida, ou 0 caso contrário.

int ins_raiz(tarvbin *T, telem dado)


{
tarvbin novo;

if (*T != NULL) return 0; /* erro: já existe raiz */

novo = (tno*) malloc(sizeof(tno));


if (novo == NULL) return 0; /* erro: memória insuficiente */

novo->info = dado;
novo->esq = novo->dir = NULL;
*T = novo; return 1;
}

5) Inserir um filho à direita de um dado nó


int ins_dir(tarvbin T, telem pai, telem filho)
{
tarvbin f, p, novo;

/* verifica se o elemento já não existe */ f = busca(T,filho);


if (f != NULL) return 0; /* erro: dado já existente */

/* busca o endereço do pai e verifica se já não possui filho direito */ p = busca(T,pai);


if (p == NULL) return 0; /* erro: pai não encontrado */
if (p->dir != NULL) return 0; /* erro: já existe filho direito */

novo = (tno*) malloc(sizeof(tno));


if (novo == NULL) return 0; /* erro: memória insuficiente */

novo->info = filho; novo->esq = novo->dir = NULL; p->dir = novo; return 1;


}

PERCURSO

Percorrer uma árvore visitando cada nó uma única vez gera uma seqüência linear de nós, e então passa a ter sentido falar em
sucessor e predecessor de um nó segundo um determinado percurso. Há três maneiras recursivas de se percorrer árvores binárias.

Travessia em Pré-Ordem
6. se árvore vazia; fim
7. visitar o nó raiz
8. percorrer em pré-ordem a subárvore esquerda
9. percorrer em pré-ordem a subárvore direita

69
CONHECIMENTOS DE INFORMÁTICA

ABDCEGFHI
• visita o nó quando passar a sua esquerda
• notação pré-fix

Travessia em In-Ordem
1. se árvore vazia, fim
2. percorrer em in-ordem a subárvore esquerda
3. visitar o nó raiz
4. percorrer em in-ordem a subárvore direita

• DBAEGCHFI
• visita o nó quando passar embaixo do nó
• notação in-fix

Travessia em Pós-Ordem
1. se árvore vazia, fim
2. percorrer em Pós-Ordem a subárvore esquerda
3. percorrer em Pós-Ordem a subárvore direita
4. visitar o nó raiz

70
CONHECIMENTOS DE INFORMÁTICA

• DBGEHIFCA • O filho direito de um nó B(v) em B(T) corresponde ao ir-


• visita o nó quando passar a sua direita mão de v em T, localizado imediatamente a sua direita, caso exis-
• notação pós-fix ta. Se não existir, a subárvore direita de B(v) é vazia.

7) Esvaziar uma árvore


Desaloca todo o espaço de memória da árvore e retorna a
árvore ao estado equivalente ao define, isto é, nula. Utiliza o
algoritmo de Pós-Ordem para percurso.
void esvaziar(tarvbin *T)
{
if (*T == NULL) return;
esvaziar(&(*T)->esq); esvaziar(&(*T)->dir); free(*T);
*T = NULL;
}

8) Exibir a árvore
Um procedimento recursivo para exibir a árvore, usando
um percurso pré-ordem, poderia ser o seguinte: Aprendizagem de Maquina: Supervisionada ou Não Super-
visionada?
void exibir(tarvbin T, int col, int lin, int desloc) O uso aprendizagem de máquina abrangem desde jogos pas-
{ sando pela detecção de fraudes até a análise estatísticas da bolsa
// col e lin são as coordenadas da tela onde a árvore irá de valores. É utilizada para construir sistemas como os do Netflix
iniciar, e Spotify que recomendam músicas e/ou vídeos aos usuários com
// ou seja, a posição da raiz, e desloc representa o deslo- base no seu histórico de acesso, seus favoritos e outros dados, ou
camento na tela // (em colunas) de um nó em relação ao nó
sistemas que encontram todos os artigos de notícias similares em
anterior.
um determinado dia. Também pode ser usada para categorizar
páginas de Web automaticamente conforme o gênero (esportes,
if (T == NULL) return; /* condição de parada do procedi-
economia, política, bem-estar e daí por diante) ou marcar mensa-
mento recursivo */
gens de e-mail como spam. Os usos da aprendizagem de máquina
são mais numerosos do que eu posso abordar neste post e diver-
gotoxy(col,lin); printf(“%d”,T->info);
sas abordagens de aprendizagem por máquina são utilizadas para
if (T->esq != NULL) solucionar os mais diversos problemas. Nesse post me concentra-
exibir(T->esq,col-desloc,lin+2,desloc/2+1); rei nas duas mais utilizadas comumente — aprendizagem supervi-
sionada e não supervisionada.
if (T->dir != NULL) Para contextualização do assunto iremos começar pela defi-
exibir(T->dir,col+desloc,lin+2,desloc/2+1); } nição de Aprendizado de máquinas:
Implementação de uma árvore qualquer Arthur Samuel descreveu-a como: “campo de estudos que
dá aos computadores a capacidade de aprender, sem ser expli-
Como seria a implementação de uma árvore de grau qual- citamente programados”, que é uma definição informal mais
quer? velha.
Numa árvore qualquer, cada nó pode conter um número di- Já Tom Mitchell fornece uma definição mais moderna: “Um
ferente de subárvores. Utilizando alocação encadeada dinâmica, programa de computador é dito para aprender com a experi-
uma solução imediata seria fazer com que o tipo de dado dos ência E com a relação a alguma classe de tarefas T e medida de
nós tenha tantas referências (ponteiros) quanto o maior número desempenho P, se o seu desempenho em tarefas em T, medida
de subárvores que um nó possa ter (grau da árvore). pelo P, melhora com a experiência E”
Com esta organização há, geralmente, uma grande quan- Exemplo: Jogando damas
tidade de referências não usadas naqueles nós de grau muito E = A experiência de jogar muitos jogos de damas
menor do que o máximo previsto. T = A tarefa de jogar damas.
A solução alternativa mais econômica para este caso é P = A probabilidade de que o programa irá ganhar o próximo
transformar a árvore a ser representada em uma árvore binária. jogo.

Conversão em árvore binária APRENDIZAGEM SUPERVISIONADA


Seja T uma árvore qualquer. T é convertida em uma árvore Nos é dado um conjunto de dados rotulados que já sabe-
binária B(T) da seguinte maneira: mos qual é a nossa saída correta e que deve ser semelhante ao
• B(T) possui um nó B(v) para cada nó v de T. conjunto, tendo a ideia de que existe uma relação entre a entra-
• As raízes de T e B(T) coincidem. da e a saída.
• O filho esquerdo de um nó B(v) em B(T) corresponde ao Problemas de aprendizagem supervisionados são classifica-
primeiro filho de v em T, caso exista. Se não existir, a subárvore dos em problemas de “regressão” e “classificação”. Em um pro-
esquerda de B(v) é vazia. blema de regressão, estamos tentando prever os resultados em

71
CONHECIMENTOS DE INFORMÁTICA

uma saída contínua, o que significa que estamos a tentando mapear variáveis ​​de entrada para alguma função contínua. Em um pro-
blema de classificação, estamos tentando prever os resultados em uma saída discreta. Em outras palavras, estamos tentando mapear
variáveis ​​de entrada em categorias distintas.
Exemplo 1:
Dado um conjunto de dados sobre o tamanho de casas no mercado imobiliário, tentar prever o seu preço. Preço em função do
tamanho é uma saída contínua, de modo que este é um problema de regressão.
Poderíamos também transformar esse exemplo em um problema de classificação, e em vez de fazer a nossa produção sobre se
a casa “é vendida por mais ou menos do que o preço pedido.” Aqui estamos classificando as casas com base no preço em duas cate-
gorias distintas.
Exemplo 2:
(A) Regressão — Dada uma imagem de homem/mulher, temos de prever sua idade com base em dados da imagem.
(B) Classificação — Dada um exemplo de tumor cancerígeno, temos de prever se ele é benigno ou maligno através do seu tama-
nho e idade do paciente.

Exemplo de Classificação e Regressão.


Outro exemplo de Classificação muito utilizado pelos bancos é a decisão do aceite do empréstimo para algum cliente com base
no seu histórico de crédito.
Muitos algoritmos são utilizados para criar aprendizes supervisionadas, sendo os mais comuns as Redes Neurais, Máquinas de
Vetor de Suporte (SVMs), e Classificadores Naive Bayes.

APRENDIZAGEM NÃO SUPERVISIONADA


A Aprendizagem não supervisionada, por outro lado, nos permite abordar problemas com pouca ou nenhuma idéia do que nossos
resultados deve ser aparentar. Podemos derivar estrutura de dados onde nós não necessariamente saberiamos o efeito das variáveis.
Podemos derivar essa estrutura, agrupando os dados com base em relações entre as variáveis ​​nos dados. Também pode ser usada
para reduzir o número de dimensões em um conjunto de dados para concentrar somente nos atributos mais úteis, ou para detectar
tendências.
Com aprendizagem não supervisionada não há feedback com base nos resultados da previsão, ou seja, não há professor para
corrigi-la.
Exemplo 1:
Clustering: Dada uma coleção de 1000 pesquisas de uma universidade encontrar uma maneira de agrupar automaticamente estas
pesquisas em um grupos que são de alguma forma semelhantes ou relacionadas por diferentes variáveis, tais como a frequência das
palavras, frases, contagem de páginas, etc.
Exemplo 2:
Outro, exemplo não Clustering, é o “Algoritmo Cocktail Party”, que pode encontrar em uma estrutura de dados desorganizada
como identificar as vozes individuais e música.
Abordagens comuns de aprendizagem não supervisionada incluem armazenamento em Cluster K-Médio, Hierárquico, e Mapas
Auto organizadores.

72
CONHECIMENTOS DE INFORMÁTICA

Exemplo das diferentes abordagens de aprendizado.


Um exemplo de projeto que implementa aprendizado de máquina de uma maneira simplista é o Apache Mahout que tem por
objetivo a construção de um ambiente para a criação rápida de aplicações escaláveis de aprendizado de máquina de alta performance.
Para fechar esse post com chave de ouro deixo a seguinte frase do Daniel Chaves Moran:
“Você pode ter os dados sem informações, mas você não pode ter informações sem dados”.

Fonte:
https://www.ime.uerj.br/~pauloedp/ESTD/Download/EDAP2006.pdf
Apostila de estrutura de dados - Centro federal de educação tecnológica da paraíba coordenação do curso de tecnologia em te-
lemática - prof. Cândido Egypto
https://medium.com/opensanca/aprendizagem-de-maquina-supervisionada-ou-n%C3%A3o-supervisionada-7d01f78cd80a

BANCO DE DADOS: CONCEITOS DE BANCO DE DADOS E SISTEMAS GERENCIADORES DE


BANCOS DE DADOS (SGBD), MODELAGEM CONCEITUAL DE DADOS (A ABORDAGEM ENTIDA-
DERELACIONAMENTO), MODELO RELACIONAL DE DADOS (CONCEITOS BÁSICOS, NORMA-
LIZAÇÃO), BANCO DE DADOS SQL (LINGUAGEM SQL (SQL2008), LINGUAGEM HIVEQL (HIVE
2.2.0)), BANCO DE DADOS NOSQL (CONCEITOS BÁSICOS, BANCOS ORIENTADOS A GRAFOS,
COLUNAS, CHAVE/VALOR E DOCUMENTOS), DATA WAREHOUSE (MODELAGEM CONCEITUAL
PARA DATA WAREHOUSES, DADOS MULTIDIMENSIONAIS)

Esse é o tipo de pergunta que parece desnecessária, pois o próprio nome do conceito revela a resposta: um banco de dados é
simplesmente um conjunto de dados. Sob esse ponto de vista, uma planilha com uma lista de clientes ou o caderno que o dono do
mercadinho da esquina mantém para saber quem está devendo podem ser tratados como bancos de dados.
A gente precisa de uma abordagem mais ampla: para ser considerado como tal, um banco de dados deve reunir informações de
maneira organizada, consistente, protegida e acessível em tempo hábil. É neste ponto que entra em cena o conceito de Sistema de
Gerenciamento de Banco de Dados (SGBD) ou, para quem preferir o nome em inglês, Data Base Management System (DBMS).
Basicamente, um SGBD é uma estrutura de software que permite que dados sejam armazenados, organizados, protegidos, atua-
lizados, acrescentados, excluídos e acessados sempre que necessário, devendo corresponder à demanda que a aplicação que o utiliza
exige. Por questões de praticidade, convencionou-se chamar os SGBDs simplesmente de… bancos de dados. E há várias opções dispo-
níveis para aplicações de todos os tamanhos.

Tipos de bancos de dados


Os bancos de dados atendem a praticamente qualquer tipo de aplicação. É por esse motivo que não existe só um tipo de banco
de dados. O padrão mais conhecido é chamado de banco de dados relacional.
Esse tipo é muito utilizado em sistemas de ERP (gestão de empresas), CRM (relacionamento com o cliente), controle financeiro e
tantas outras aplicações porque os dados são estruturados em tabelas cujas colunas e linhas se relacionam. Uma loja, por exemplo,
pode ter uma tabela de clientes, outra para controle de estoque, uma terceira para fluxo de caixa e assim por diante.

73
CONHECIMENTOS DE INFORMÁTICA

Via de regra, bancos de dados relacionais são baseados na Conversão e mapeamento da diferença semântica entre os
linguagem SQL. Mas a gente também vai encontrar bancos de paradigmas utilizados no desenvolvimento de interfaces (Impe-
dados não relacionais que, como tal, são frequentemente cha- rativo (ou procedural), Orientado a Objeto, Orientado a evento),
mados de noSQL. Eles possuem estruturas que diferem do SQL servidores de dados (Relacional) e programação dos aplicativos
e, portanto, são direcionados a aplicações que não podem ter os (Imperativo, Orientado a Objetos).
dados completamente organizados em tabelas, como serviços
que armazenam imagens na web, por exemplo. Arquiteturas
Não pense que termina aí. Há outras soluções no mercado, As primeiras arquiteturas usavam mainframes para execu-
inclusive dotadas de muita tecnologia. É o caso da Oracle, que tar o processamento principal e de todas as funções do sistema,
lançou, no ano passado, o primeiro banco de dados autônomo incluindo os programas aplicativos, programas de interface com
nas nuvens. Essa solução é capaz de ajustar, reparar e atualizar o usuário, bem como a funcionalidade dos SGBDs. Esta é a razão
o banco de dados de modo automatizado, dispensando interfe- pela qual a maioria dos usuários fazia acesso aos sistemas via
rência humana. Sensacional, não? terminais que não possuíam poder de processamento, apenas a
capacidade de visualização. Todos os processamentos eram fei-
Bancos de dados: praticamente onipresentes tos remotamente, apenas as informações a serem visualizadas
A razão para termos tantos tipos de bancos de dados está e os controles eram enviados do mainframe para os terminais
no fato de que eles armazenam e dão acesso a uma enorme de visualização, conectados a ele por redes de comunicação.
variedade de informações. Sem eles, quase nada funciona de Como os preços do hardware foram decrescendo, muitos usuá-
modo eficiente. Dos sistemas mais simples aos mais complexos, rios trocaram seus terminais por computadores pessoais (PC) e
praticamente todos dependem de bancos de dados. estações de trabalho. No começo os SGBDs usavam esses com-
Parece até uma constatação óbvia, mas, frequentemente, putadores da mesma maneira que usavam os terminais, ou seja,
não nos damos conta disso. Tem que ser assim mesmo: do ponto o SGBD era centralizado e toda sua funcionalidade, execução de
de vista do usuário, o banco de dados em si deve ser invisível no programas aplicativos e processamento da interface do usuário
sentido de não se distinguir da aplicação que o acessa. eram executados em apenas uma máquina. Gradualmente,
Mas basta pensarmos um pouquinho que vamos perceber os SGBDs começaram a explorar a disponibilidade do poder de
que os bancos de dados estão em todos os lugares e a gente os processamento no lado do usuário, o que levou à arquitetura
acessa constantemente: no caixa eletrônico do banco, na com- cliente-servidor.
pra de uma passagem aérea, no serviço de email, em cada ação A arquitetura cliente-servidor foi desenvolvida para dividir
que realizamos nas redes sociais, na aquisição de um produto ambientes de computação onde um grande número de PCs,
pela internet, nas centrais telefônicas, ao declarar imposto de estações de trabalho, servidores de arquivos, impressoras, ser-
renda, ao baixarmos um aplicativo no celular e por aí vai. vidores de banco de dados e outros equipamentos são conecta-
dos juntos por uma rede. A idéia é definir servidores especiali-
Arquiteturas de Banco Dados zados, tais como servidor de arquivos, que mantém os arquivos
Atualmente, devem-se considerar alguns aspectos rele- de máquinas clientes, ou servidores de impressão que podem
vantes para atingir a eficiência e a eficácia dos sistemas infor- estar conectados a várias impressoras; assim, quando se desejar
matizados desenvolvidos, a fim de atender seus usuários nos imprimir algo, todas as requisições de impressão são enviadas a
mais variados domínios de aplicação: automação de escritórios, este servidor. As máquinas clientes disponibilizam para o usuá-
sistemas de apoio a decisões, controle de reserva de recursos, rio as interfaces apropriadas para utilizar esses servidores, bem
controle e planejamento de produção, alocação e estoque de como poder de processamento para executar aplicações locais.
recursos, entre outros. Tais aspectos são: Esta arquitetura se tornou muito popular por algumas razões.
Os projetos Lógico e Funcional do Banco de Dados devem Primeiro, a facilidade de implementação dada à clara separação
ser capazes de prever o volume de informações armazenadas a das funcionalidades e dos servidores. Segundo, um servidor é
curto, médio e longo prazo. Os projetos devem ter uma grande inteligentemente utilizado porque as tarefas mais simples são
capacidade de adaptação para os três casos mencionados; delegadas às máquinas clientes mais baratas. Terceiro, o usuário
Deve-se ter generalidade e alto grau de abstração de dados, pode executar uma interface gráfica que lhe é familiar, ao in-
possibilitando confiabilidade e eficiência no armazenamento vés de usar a interface do servidor. Desta maneira, a arquitetura
dos dados e permitindo a utilização de diferentes tipos de ge- cliente-servidor foi incorporada aos SGBDs comerciais. Diferen-
renciadores de dados através de linguagens de consultas padro- tes técnicas foram propostas para se implementar essa arquite-
nizadas; tura, sendo que a mais adotada pelos Sistemas Gerenciadores
Projeto de uma interface ágil e com uma “rampa ascenden- de Banco de Dados Relacionais (SGBDRs) comerciais é a inclusão
te” para propiciar aprendizado suave ao usuário, no intuito de da funcionalidade de um SGBD centralizado no lado do servidor.
minimizar o esforço cognitivo; As consultas e a funcionalidade transacional permanecem no
Implementação de um projeto de interface compatível com servidor, sendo que este é chamado de servidor de consulta ou
múltiplas plataformas (UNIX, Windows NT, Windows Work- servidor de transação. É assim que um servidor SQL é fornecido
group, etc); aos clientes. Cada cliente tem que formular suas consultas SQL,
Independência de Implementação da Interface em relação prover a interface do usuário e as funções de interface usando
aos SGBDs que darão condições às operações de armazenamen- uma linguagem de programação. O cliente pode também se re-
to de informações (ORACLE, SYSBASE, INFORMIX, PADRÃO XBA- ferir a um dicionário de dados o qual inclui informações sobre
SE, etc). a distribuição dos dados em vários servidores SQL, bem como

74
CONHECIMENTOS DE INFORMÁTICA

os módulos para a decomposição de uma consulta global em um número de consultas locais que podem ser executadas em vários
sítios. Comumente o servidor SQL também é chamado de back-end machine e o cliente de front-end machine. Como SQL provê uma
linguagem padrão para o SGBDRs, esta criou o ponto de divisão lógica entre o cliente e o servidor.
Atualmente, existem várias tendências para arquitetura de Banco de Dados, nas mais diversas direções.

Resumo das arquiteturas de SGBDs


Plataformas centralizadas: Na arquitetura centralizada, existe um computador com grande capacidade de processamento, o qual
é o hospedeiro do SGBD e emuladores para os vários aplicativos. Esta arquitetura tem como principal vantagem a de permitir que
muitos usuários manipulem grande volume de dados. Sua principal desvantagem está no seu alto custo, pois exige ambiente especial
para mainframes e soluções centralizadas.
Sistemas de Computador Pessoal - PC: Os computadores pessoais trabalham em sistema stand-alone, ou seja, fazem seus pro-
cessamentos sozinhos. No começo esse processamento era bastante limitado, porém, com a evolução do hardware, tem-se hoje PCs
com grande capacidade de processamento. Eles utilizam o padrão Xbase e quando se trata de SGBDs, funcionam como hospedeiros
e terminais. Desta maneira, possuem um único aplicativo a ser executado na máquina. A principal vantagem desta arquitetura é a
simplicidade.
Banco de Dados Cliente-Servidor: Na arquitetura Cliente-Servidor, o cliente (front_end) executa as tarefas do aplicativo, ou seja,
fornece a interface do usuário (tela, e processamento de entrada e saída). O servidor (back_end) executa as consultas no DBMS e
retorna os resultados ao cliente. Apesar de ser uma arquitetura bastante popular, são necessárias soluções sofisticadas de software
que possibilitem: o tratamento de transações, as confirmações de transações (commits), desfazer transações (rollbacks), linguagens
de consultas (stored procedures) e gatilhos (triggers). A principal vantagem desta arquitetura é a divisão do processamento entre dois
sistemas, o que reduz o tráfego de dados na rede.
Banco de Dados Distribuídos (N camadas): Nesta arquitetura, a informação está distribuída em diversos servidores. Como exem-
plo, observe a abaixo. Cada servidor atua como no sistema cliente-servidor, porém as consultas oriundas dos aplicativos são feitas para
qualquer servidor indistintamente. Caso a informação solicitada seja mantida por outro servidor ou servidores, o sistema encarrega-se
de obter a informação necessária, de maneira transparente para o aplicativo, que passa a atuar consultando a rede, independente
de conhecer seus servidores. Exemplos típicos são as bases de dados corporativas, em que o volume de informação é muito grande
e, por isso, deve ser distribuído em diversos servidores. Porém, não é dependente de aspectos lógicos de carga de acesso aos dados,
ou base de dados fracamente acopladas, em que uma informação solicitada vai sendo coletada numa propagação da consulta numa
cadeia de servidores. A característica básica é a existência de diversos programas aplicativos consultando a rede para acessar os dados
necessários, porém, sem o conhecimento explícito de quais servidores dispõem desses dados.

 
Arquitetura Distribuída N camadas
 
Abstração de dados
Um SGBD é composto de uma coleção de arquivos inter-relacionados e de um conjunto de programas que permitem aos usuários
fazer o acesso a estes arquivos e modificar os mesmos. O grande objetivo de um sistema de banco de dados é prover os usuários com
uma visão abstrata dos dados. Isto é, o sistema omite certos detalhes de como os dados são armazenados e mantidos. Entretanto,
para que o sistema possa ser utilizado, os dados devem ser buscados de forma eficiente. Este conceito tem direcionado o projeto de
estrutura de dados complexas para a representação de dados em um banco de dados. Uma vez que muitos dos usuários de banco de
dados não são treinados para computação, a complexidade está escondida deles através de diversos níveis de abstração que simplifi-
cam a interação do usuário com o sistema.

75
CONHECIMENTOS DE INFORMÁTICA

Nível físico:  o nível mais baixo de abstração descre- end;


ve como os dados estão realmente armazenados. No nível físico, Isto define um novo registro chamado cliente com três cam-
complexas estruturas de dados de baixo nível são descritas em pos. Cada campo tem um nome e um tipo associado a ele. Um
detalhes; banco privado pode ter diversos tipos de registros incluindo:
Nível conceitual:  o próximo nível de abstração descre- - contas, com campos número e saldo;
ve quais dados estão armazenados de fato no banco de dados e - funcionário, com campos nome e salário.
as relações que existem entre eles. Aqui o banco de dados intei- No nível físico, um registro  cliente,  conta  ou  funcioná-
ro é descrito em termos de um pequeno número de estruturas rio pode ser descrito como um bloco de posições de armazena-
relativamente simples. Embora as implementações de estrutu- mento consecutivas (por exemplo, palavras ou bytes). No nível
ras simples no nível conceitual possa envolver complexas estru- conceitual, cada registro destes é descrito por uma definição de
turas de nível físico, o usuário do nível conceitual não precisa tipo, ilustrado anteriormente e o inter-relacionamento entre es-
preocupar-se com isso. O nível conceitual de abstração é usa- ses tipos de registros é definido. Finalmente, no nível de visões,
do por administradores de banco de dados, que podem decidir diversas visões do banco de dados são definidas, por exemplo:
quais informações devem ser mantidas no BD; os contadores de um banco vêem apenas a parte do banco de
Nível de visões: o mais alto nível de abstração descreve ape- dados que possui informações sobre contas dos clientes. Eles
nas parte do banco de dados. Apesar do uso de estruturas mais não podem ter acesso a informações que se referem a salários
simples do que no nível conceitual, alguma complexidade per- dos funcionários.
dura devido ao grande tamanho do banco de dados. Muitos usu-  
ários do sistema de banco de dados não estarão interessados Independência de dados
em todas as informações. Em vez disso precisam de apenas uma Vimos três níveis de abstração pelos quais o banco de da-
parte do banco de dados. O nível de abstração das visões de dos pode ser visto. A habilidade de modificar a definição de um
dados é definido para simplificar esta interação com o sistema, esquema em um nível sem afetar a definição de esquema num
que pode fornecer muitas visões para o mesmo banco de dados. nível mais alto é chamada de independência de dados. Existem
Segue ilustração da arquitetura e referente abstração de da- dois níveis de independência dos dados:
dos envolvida. - Independência física de dados: é a habilidade de modificar
o esquema físico sem a necessidade de reescrever os programas
aplicativos. As modificações no nível físico são ocasionalmente
necessárias para melhorar o desempenho;
- Independência lógica de dados: é a habilidade ded modi-
ficar o esquema conceitual sem a necessidade de reescrever os
programas aplicativos. As modificações no nível conceitual são
necessárias quando a estrutura lógica do banco de dados é al-
terada (por exemplo, a adição de contas de bolsas de mercado
num sistema bancário).
A independência lógica dos dados é mais difícil de ser al-
cançada do que a independência física, porém os programas são
bastante dependentes da estrutura lógica dos dados que eles
acessam.
O conceito de independência dos dados é similar em muitos
aspectos ao conceito de tipos abstratos de dados em modernas
linguagens de programação. Ambos escondem detalhes de im-
plementação do usuário. Isto permite ao usuário concentrar-se
na estrutura geral em vez de detalhes de baixo nível de imple-
mentação.

O MODELO RELACIONAL
O Modelo Relacional (MR) é um modelo de dados represen-
tativo (ou de implementação) que foi proposto por Ted Codd,
em 1970. O modelo fundamenta-se em conceitos da matemá-
Uma analogia com o conceito de tipos de dados em lingua- tica – teoria dos conjuntos e lógica de predicado. Os primeiros
gens de programação pode esclarecer a distinção entre os ní- sistemas comerciais baseados no MR foram disponibilizados em
veis de abstração. A maioria das linguagens de programação de 1980 e desde então ele vem sendo implementado em muitos
alto nível tem suporte para a noção de um tipo de registro. Por sistemas, tais como Access, Oracle, MySql, entre outros (ELMAS-
exemplo, numa linguagem como  Pascal  podemos declarar um RI; NAVATHE, 2011, p. 38).
registro assim: Para DATE (2004, p. 67), o modelo relacional refere-se a
type cliente = record “três aspectos principais dos dados: a estrutura de dados, a in-
nome: string; tegridade de dados e a manipulação de dados”.
rua: string;
cidade: string;

76
CONHECIMENTOS DE INFORMÁTICA

O ASPECTO ESTRUTURAL

No Modelo Relacional o banco de dados é representado como um conjunto de relações. Considerando que uma relação é, de
certo modo, similar a uma tabela de valores e aplicando a terminologia do MR diz-se que as linhas denominam-se tuplas; as colunas,
atributos; e a tabela em si, relação (ELMASRI; NAVATHE, 2011, p. 39).

O conjunto de valores que cada atributo pode assumir chama-se domínio (SILBERSCHATZ; KORTH; SUDARSHAN, 1999, p. 62).
Seja Dn, onde D é o domínio de determinado atributo e n a posição do atributo na relação e considerando a relação Cargos (figura
13), tem-se que D1 é domínio do atributo Codigo, pois representa o conjunto de todos os possíveis códigos de cargo. D2 é o domínio
de Denominacao, porque denota o conjunto de todas as nomenclaturas de cargo. D3 é domínio de Classe, visto que representa o
conjunto de todas as classes de cargo, e assim por diante.
Ainda segundo SILBERSCHATZ, KORTH e SUDARSHAN (1999, p. 62), uma relação é definida matematicamente como um subcon-
junto do produto cartesiano de uma lista de domínios. Desta forma, a relação Cargos é denotada por D1xD2xD3xD4, ou seja, Cargos é
um subconjunto do conjunto de todas as combinações possíveis de valores.
Um esquema de relação (ou scheme de relação) é utilizado para descrever uma relação. Um esquema é indicado por R(A1, A2,-
c,An), onde R é o nome da relação e An são seus atributos (ELMASRI; NAVATHE, 2011, p. 40). Por exemplo, Cargos(Codigo, Denomi-
nacao, Classe, Categoria) representa o esquema da relação Cargos.
O número de atributos de um esquema de relação é denominado grau ou aridade (ELMASRI; NAVATHE, 2011, p. 40). Cargos, por
exemplo, é uma relação de grau três.
Uma instância de relação (ou estado de relação) é um conjunto de tuplas – seus valores num dado momento. O estado r do es-
quema R, denotado por r(R), é um conjunto de tuplas r={t1, t2,c, tn}, onde cada tupla t é formada por uma lista de valores t=(v1, v2,
c, vn), em que cada valor vi está no domínio do respectivo atributo Ai (ELMASRI; NAVATHE, 2011, p. 40). Exemplificando, a instância
do esquema da relação Cargos (figura 13) é composta de cinco tuplas, cada tupla é uma lista de quatro valores (por exemplo, na pri-
meira tupla temos os seguintes valores: 701001, Administrador, E, Técnico-Administrativo), sendo cada valor elemento do domínio
do atributo correspondente (701001 está no domínio do atributo Código, Administrador está no domínio de Denominacao, E está no
domínio de Classe e TécnicoAdministrativo está no domínio de Categoria).

O ASPECTO DE INTEGRIDADE
Discutiremos nesta seção os conceitos de: superchave, chave, chave candidata, chave primaria, chave única (ou chave alternati-
va), chave estrangeira e integridade referencial.
“Uma superchave é um conjunto de um ou mais atributos que, tomados coletivamente, nos permitem identificar de maneira
unívoca uma entidade em um conjunto de entidades” (SILBERSCHATZ; KORTH; SUDARSHAN, 1999, p. 32).
Na relação Cargos (Figura 13), os conjuntos {Codigo, Categoria} e {Denominacao, Classe}, por exemplo, são superchaves. Porém,
{Classe, Categoria} não é, visto que há para esse conjunto de atributos tuplas que tem as mesmas combinações de valores.
Na definição de DATE (2004, p. 233), um conjunto de atributos é dito chave se satisfazer as condições de:
1) Unicidade: esta é a propriedade atendida pelas superchaves, conforme especificado anteriormente. Ou seja, para um dado
conjunto de atributos não há na relação tuplas com valores iguais.
2) Irredutibilidade: estabelece que não deve existir no conjunto de atributos chamado chave um subconjunto que tenha a pro-
priedade de unicidade. Em outras palavras, além de seguir a primeira regra, a chave deve ser um conjunto mínimo de atributos. Por
exemplo, o conjunto {Codigo, Denominacao} não é uma chave, porque embora satisfaça a primeira regra acaba quebrando a segunda
– {Codigo} e {Denominação}, tomados separadamente, já identificam exclusivamente cada tupla na relação Cargos. O conjunto {Codi-
go} é um exemplo de chave, pois atende simultaneamente as duas condições acima.
Uma relação pode possuir mais de uma chave, sendo cada uma delas chamada de chave candidata (ELMASRI; NAVATHE, 2011, p.
45). {Codigo} e {Denominacao}, por exemplo, são chaves candidatas.

77
CONHECIMENTOS DE INFORMÁTICA

A chave candidata usada para identificar tuplas em uma dada relação denomina-se chave primária. As demais chaves candidatas
dessa relação são ditas chaves únicas. Indica-se uma chave primária sublinhando no esquema da relação os atributos que a compõem
(ELMASRI; NAVATHE, 2011, p. 45).
Ilustrando, o esquema da relação Cargos ficaria assim: Cargos(Codigo, Denominacao, Classe, Categoria).
Tendo por base o exposto por SETZER e CORRÊA DA SILVA (2005, p. 124), discutiremos os conceitos de chave estrangeira e inte-
gridade referencial por meio de um exemplo.

Considerando a representação acima, interpretamos do Diagrama EntidadeRelacionamento (figura 14a) que cada ente do conjun-
to de entidades Servidores ocupa no mínimo e no máximo um cargo. Entretanto, um cargo pode ser ocupado por nenhum ou muitos
servidores. Mapeando essa situação para o Modelo Relacional, obtem-se os seguintes esquemas de relação: Cargos(Codigo, Denomi-
nacao, Classe, Categoria) e Servidores(Prontuario, Nome, Admissao, Codigo). Consequentemente, existirão duas relações conforme
figura 14b.
Observe que o relacionamento Ocupação entre os conjuntos de entidades Servidores e Cargos, ocorre no Modelo Relacional
(figura 14b) através da transposição do atributo Codigo de Cargos para Servidores. Esse atributo transposto em Servidores (tem como
origem a relação Cargos e como destino a relação Servidores) denomina-se chave estrangeira. Uma tupla em Servidores faz referência
a uma tupla de Cargos, sendo que essa referência é realizada através do valor contido no atributo Codigo.
Chama-se integridade referencial a regra de que o valor contido na chave estrangeira de Servidores deve corresponder a um valor
de chave primária em Cargos. Em outras palavras, a integridade referencial é a restrição de que “o banco de dados não pode conter
quaisquer valores de chaves estrangeiras não correspondentes” (DATE, 2004, p. 237).

O ASPECTO MANIPULATIVO
“Uma linguagem de consulta é a linguagem por meio da qual os usuários obtêm informações do banco de dados” (SILBERSCHATZ;
KORTH; SUDARSHAN, 1999, p. 68).
De acordo com SETZER e CORRÊA DA SILVA (2005, p. 172), foram definidas duas linguagens de acesso ao modelo relacional: a
Álgebra Relacional e o Cálculo Relacional.
Segundo SILBERSCHATZ, KORTH e SUDARSHAN (1999, p. 68), as linguagens de consulta podem ser classificadas em procedurais
ou não-procedurais, sendo a Álgebra Relacional um exemplar da primeira modalidade e o Cálculo Relacional um exemplo da segunda.
Em uma linguagem de consulta procedural é necessário especificar todas as operações a serem realizados sobre o banco de dados
para a obtenção da informação desejada. Ao contrário, em uma linguagem não-procedural, descreve-se a informação desejada sem
especificar o procedimento para obtê-la.
A abordagem das linguagens de Álgebra e Cálculo Relacional está fora do escopo deste trabalho, porém, para fixar a definição
dada acima utilizaremos o seguinte exemplo: considerando o esquema da relação Cargos, digamos que seja necessário saber a deno-
minação e a categoria dos cargos cuja classe seja “C”.
Para cumprir a tarefa proposta utilizando a Álgebra Relacional, devemos saber quais operadores usar e em que ordem eles serão
aplicados. Obrigatoriamente, temos que saber: a) que serão necessários dois operadores (o de Seleção, indicado por σ
(sigma), e o operador Projeção, indicado por π (pi)) e b) que primeiro deve ser executada a seleção, e depois a projeção. Assim,
a expressão final teria a seguinte forma:

78
CONHECIMENTOS DE INFORMÁTICA

Já utilizando o Cálculo Relacional, é necessário especificar apenas o que desejamos. Desta forma, especificarmos quais os atribu-
tos desejados para cada tupla, informamos que essas tuplas estão na relação Cargos e que devem ser listadas somente aquelas cujo
valor do atributo Classe seja “C”. A instrução em Cálculo Relacional teria a seguinte sintaxe:
{ t.Denominacao, t.Categoria | Cargos(t) and t.Classe = “C”}

O MODELO ENTIDADE-RELACIONAMENTO (E-R)


A abordagem de Entidade-Relacionamento é baseada no Modelo EntidadeRelacionamento que foi introduzido por Peter Pin-Shan
Chen, em 1976. É um aprimoramento do modelo originalmente proposto, sendo uma das técnicas de modelagem semântica mais
conhecidas e, possivelmente, uma das mais utilizadas.
DATE (2004, p. 355).
Uma das principais vantagens – talvez seja o motivo maior para sua popularidade – é que além de conceitos o modelo ainda conta
com uma técnica de diagramação. Isto permite registrar e comunicar de forma simplificada os principais aspectos do projeto de banco
de dados DATE (2004, p. 358).
“O modelo ER descreve os dados como entidades, relacionamentos e atributos” (ELMASRI; NAVATHE, 2011, p. 132).

ENTIDADES E CONJUNTO DE ENTIDADES


“Uma entidade é uma ‘coisa’ ou um ‘objeto’ no mundo real que pode ser identificada de forma unívoca em relação a todos os
outros objetos” (SILBERSCHATZ; KORTH; SUDARSHAN, 1999, p. 21).
Por exemplo, cada servidor de uma instituição pública de ensino é uma entidade.
Cada unidade de ensino (campus) desse órgão também.
As entidades classificam-se em: entidades regulares ou fortes e entidades fracas. Para DATE (2004, p. 355), uma entidade fraca
é “uma entidade cuja existência depende de alguma outra entidade, no sentido de que ela não pode existir se essa outra entidade
também não existir”. Os dependentes de um servidor são exemplos clássicos de entidades fracas, pois existirão se, e somente se,
existir a entidade servidor.
Já uma entidade regular ou forte, pode ser definida como uma entidade não fraca.
Por exemplo, um servidor é uma entidade forte.
Segundo SETZER e CORRÊA DA SILVA (2005, p. 22), um conjunto de entidades é “uma coleção de entidades que têm características
semelhantes, isto é, de entes de uma mesma categoria”.
Assim, o conjunto de entidades Servidores representa a coleção de todos os servidores que trabalham naquela instituição. E o
conjunto de entidades Campi refere-se ao conjunto de todas as unidades de ensino daquele órgão.
Um conjunto de entidades é representado no modelo E-R por um retângulo.

ATRIBUTOS E DOMÍNIO DE VALORES

“Uma entidade é representada por um conjunto de atributos. Atributos são propriedades descritivas de cada membro de um
conjunto de entidades” (SILBERSCHATZ; KORTH; SUDARSHAN, 1999, p. 22).
Em outras palavras, atributos são os dados que se deseja guardar sobre cada entidade (SETZER; CORRÊA DA SILVA, 2005, p. 23).
Desta forma, o nome, o prontuário e a data de nomeação são possíveis atributos para cada entidade do conjunto de entidades
Servidores. Endereço e sigla comporiam os atributos de cada ente do conjunto de entidades Campi.
Os atributos podem ser classificados como:
- Simples ou Compostos
De acordo com ELMASRI e NAVATHE (2011, p. 153), “atributos não divisíveis são chamados atributos simples ou atômicos”.
Por outro lado, atributos compostos não possuem valor elementar e podem ser decompostos em outros atributos simples e/ou
compostos (SETZER; CORRÊA DA SILVA, 2005, p. 24).
Por exemplo, o endereço de cada servidor é um atributo composto, pois pode ser dividido em alguns atributos simples, como:
Logradouro, Número, Complemento, Bairro, Cidade e Estado.
- Monovalorados ou Multivalorados

79
CONHECIMENTOS DE INFORMÁTICA

Um atributo monovalorado é aquele que assume um único valor para uma dada entidade. Ao passo que, um atributo multivalo-
rado pode ter n valores considerando uma mesma entidade (SETZER; CORRÊA DA SILVA, 2005, p. 27).
Exemplificando, o atributo Sexo do conjunto de entidades Servidores é um atributo monovalorado, pois assume um único valor
– masculino ou feminino – para cada entidade. Ao contrário, o atributo Telefone é considerado multivalorado, visto que um servidor
pode ter vários telefones para contato e, consequentemente, esse atributo assumirá n valores.
- Armazenados ou Derivados
Quanto ao atributo derivado SILBERSCHATZ, KORTH e SUDARSHAN (1999, p. 24), definem que “o valor desse tipo de atributo pode
ser derivado de outros atributos ou entidades a ele relacionados”.
O atributo Data_Exercicio que representa a data de entrada em efetivo exercício de cada servidor é um exemplo de atributo ar-
mazenado. Já o atributo
Tempo_Contribuição que simboliza o tempo total de serviços prestados à instituição é um atributo derivado, porque pode ser
obtido pelo valor de Data_Exercício e pela data atual.
- Nulos
“Um atributo nulo é usado quando uma entidade não possui valor para determinado atributo” (SILBERSCHATZ; KORTH; SUDAR-
SHAN, 1999, p. 24).
O atributo Número_Reservista do conjuntos de entidades Servidores é um atributo nulo, pois não se aplica a todas entidades
(servidoras não possuem Carteira de Reservista).
- Chaves ou Determinantes
SETZER e CORRÊA DA SILVA (2005, p. 31), definem que “dado um conjunto de entidades, não há duas entidades desse conjunto
com o mesmo valor para aquele atributo. Em outras palavras, dado um valor para esse atributo, esse valor determina a qual entidade
ele está associado”.
Por exemplo, Prontuário é um atributo chave, pelo motivo de identificar de forma unívoca cada ente no conjunto de entidades
Servidores. Não há dois servidores com um mesmo número de prontuário.
Ainda sobre atributos, outro ponto importante é o que se denomina domínio de valores. Um domínio de valores diz respeito ao
conjunto de valores que determinado atributo pode assumir para cada entidade. Ou seja, conforme esclarece DATE (2004, p. 356), um
atributo “tira seus valores de um conjunto de valores correspondente (isto é, domínio, em outras palavras)”.
Por exemplo, em determinada instituição pública o servidor pode, conforme o cargo ocupado, cumprir uma jornada de trabalho
de 20, 30 ou 40 horas semanais. Considerando que Carga_Horária seja um dos atributos de Servidores, o conjunto formado pelos va-
lores 20, 30 e 40 compõem o domínio dessa propriedade, uma vez que Carga_Horária tem, obrigatoriamente, que assumir um desses
três valores.
No modelo E-R atributos são representados por elipses, conforme notação abaixo:

RELACIONAMENTOS E CONJUNTOS DE RELACIONAMENTOS


“Um relacionamento é uma associação entre uma ou várias entidades” (SILBERSCHATZ; KORTH; SUDARSHAN, 1999, p. 24).
Ilustrando, quando nos referimos ao local onde cada servidor desempenha suas atividades – sua lotação – este dado não se refere
somente à Servidores e nem unicamente à Campi, mas sim a ambos. Esse elemento dependente de uma e outra entidade é represen-
tado no MER pelo que se denomina relacionamento. Então, em nosso exemplo, dizemos que os entes em Servidores estão associados
aos entes em Campi através do relacionamento Lotação.
“Um conjunto de relacionamentos é um conjunto de relacionamentos do mesmo tipo (SILBERSCHATZ; KORTH; SUDARSHAN,
1999, p. 25). No modelo E-R conjuntos de relacionamentos são representados por losangos.

80
CONHECIMENTOS DE INFORMÁTICA

para grupos de trabalhos menores. Então, tem-se o seguinte ce-


nário: uma comissão coordena comissões menores, sendo essas
últimas subordinadas àquela primeira. Isso pode ser modelado
através de um auto relacionamento, onde o conjunto de enti-
dades Comissão associa-se a ele mesmo através do relaciona-
mento Supervisão, de maneira que Comissão ora desempenha o
papel de supervisora, ora de supervisionada.
Devemos ler o diagrama anterior da seguinte maneira: Ser-
vidores têm como lotação Campi, da esquerda para a direita; e
Campi é lotação de Servidores, da direta para a esquerda.
“As entidades envolvidas em determinado relacionamen-
to são ditas participantes desse relacionamento. O número de
participantes em determinado relacionamento é chamado grau
desse relacionamento” (DATE, 2004, p. 357).
Assim, no exemplo anterior tem-se um relacionamento de
grau dois (também conhecido como relacionamento binário),
pois há dois conjuntos de entidades participantes: Servidores e
Campi.
Relacionamentos, da mesma forma que entidades, podem
ter atributos descritivos (SILBERSCHATZ; KORTH; SUDARSHAN,
1999, p. 25). Por exemplo, suponhamos que os servidores pos-
sam, a interesse da administração pública, ser removidos de um
pólo de trabalho a outro e que seja necessário armazenar em
banco de dados o histórico das remoções efetuadas. Então, ao
relacionamento Lotação, que associa Servidores e Campi, agre- RESTRIÇÕES SOBRE TIPOS DE RELACIONAMENTO
ga-se o atributo Data_Início que representará a data de admis- De acordo com ELMASRI e NAVATHE (2011, p. 142), “os ti-
são do funcionário em um dado campus. Desta maneira, regis- pos de relacionamentos costumam ter certas restrições que li-
traremos a movimentação do servidor em cada um dos campi mitam as combinações de entidades que podem participar no
nos quais ele venha a trabalhar. conjunto de relacionamentos correspondente”. Ainda segundo
os autores, essas restrições que são estabelecidas de acordo
com realidade que se é modelada, dividem-se em dois grupos:
razão de cardinalidade e participação.

RAZÃO DE CARDINALIDADE OU CARDINALIDADE


Na definição de ELMASRI e NAVATHE (2011, p. 142), a razão
de cardinalidade “especifica o número máximo de instâncias de
relacionamento em que uma entidade pode participar”.
Em outras palavras, a cardinalidade “expressa o número de
entidades às quais outra entidade pode estar associada via um
conjunto de relacionamentos” (SILBERSCHATZ; KORTH; SUDAR-
AUTO-RELACIONAMENTOS SHAN, 1999, p. 28). Conforme exemplificam esses autores, dado
Relacionamentos entre entidades de mesma categoria de- um conjunto de entidades A, um conjunto de entidades B e um
nominam-se auto relacionamentos (SETZER; CORRÊA DA SILVA, conjunto de relacionamentos R (associação entre A e B), com
2005, p. 47). relação à cardinalidade, tem-se uma das situações abaixo:
Mas, como compreender um relacionamento entre entida- UM PARA UM (1:1): cada entidade do conjunto de entida-
des de tipo? des A está associada a no máximo uma entidade do conjunto de
Segundo ELMASRI e NAVATHE (2011, p. 141), “cada tipo de entidades B, e cada entidade em B está associada a no máximo
entidade que participa de um tipo de relacionamento desem- uma entidade em A.
penha nele uma função em particular”. SILBERSCHATZ, KORTH e UM PARA MUITOS (1:N): uma entidade em A está associada
SUDARSHAN (1999, p. 25), complementam dizendo que “a fun- a diversas entidades em B, mas cada entidade em B está associa-
ção que uma entidade desempenha em um relacionamento é da a no máximo a uma entidade de A.
chamada papel”. Então, em um auto-relacionamento (também MUITOS PARA MUITOS ( M:N): uma entidade em A está
denominado relacionamento recursivo) as entidades são do associada a várias entidades em B, e uma entidade de B está
mesmo tipo, porém elas têm papéis diferentes. associada a diversas entidades em A.
Por exemplo, determinada autarquia federal precisa reali-
zar concurso público para preencher vagas de emprego. Então, a
autoridade máxima do órgão – o Reitor – designa uma comissão
que será responsável por todos os trabalhos referentes ao pro-
cesso seletivo. Essa comissão, por sua vez, pode delegar tarefas

81
CONHECIMENTOS DE INFORMÁTICA

RESTRIÇÕES DE PARTICIPAÇÃO E DEPENDÊNCIA DE EXISTÊNCIA

Para ELMASRI e NAVATHE (2011, p. 143), a restrição de participação “especifica o número mínimo de instâncias de relacionamen-
to em que cada entidade pode participar”. Ainda segundo os autores, as restrições de participação classificam-se em total e parcial.
Considerando ainda os conjuntos de entidades A, entidades B e relacionamentos R, temos que a participação de A em R é dita
total de todos os elementos em A participam de pelo menos um relacionamento R. Caso contrário, se apenas uma parte dos entes em
A associam-se aos elementos em B através de R, a participação de A em R é chamada de parcial.
Outra questão importante, mas que está fortemente ligada à restrição de participação do tipo total, é a dependência de existên-
cia. Vamos explicá-la por meio do seguinte exemplo: se a participação de A em R é total, isto significa que a existência das entidades
em A dependem da existência das entidades em B. Então, A é dito dependente de B.
No modelo E-R, a participação total (no mínimo um) é representada por linha dupla ligando o conjunto de entidades ao relacio-
namento correspondente. Já a participação parcial (nenhum mínimo) é exibida por linha simples.

O diagrama acima significa que um servidor tem como dependente no mínimo nenhum e no máximo muitos dependentes. Por
outro lado, um dependente é dependente de no mínimo um e no máximo um servidor. Ou seja, poderão existir funcionários que não
possuem dependentes, porém todo dependente deve estar associado a um servidor.

O PADRÃO-SQL
A Structured Query Language (SQL) ou Linguagem de Consulta Estruturada foi criada pela IBM Research, no início da década de
1970, para o protótipo de um sistema de banco de dados chamado System R (DATE, 2004, p. 71).
Baseada nas linguagens de Álgebra e Cálculo Relacional, e inicialmente denominada SEQUEL (Structured English QUEry Langua-
ge), SQL hoje é a linguagem padrão para Sistemas Gerenciadores de Bancos de Dados Relacionais (SGBDR), sendo mais intelegível do
que suas linguagens maternas – consideradas técnicas demais para o usuário (ELMASRI; NAVATHE, 2011, p. 57).
A SQL é padronizada pelo American National Standards Institute (ANSI) e pela International Standards Organization (ISO), con-
juntamente. A primeira versãopadrão, chamada de SQL-86 (ou SQL1), foi lançada em 1986 e desde então ela vem sendo atualizada
– SQL-92 (ou SQL2), SQL:1999 (ou SQL3), SQL:2003, SQL:2006 e, ainda, uma outra atualização ocorreu em 2008 (ELMASRI; NAVATHE,
2011, p. 57).
Apesar de conhecida como uma “linguagem de consulta”, a SQL oferece também recursos para definir a estrutura dos dados,
atualizar – incluir, excluir e alterar – dados, especificar restrições de integridade e outros recursos mais (SILBERSCHATZ; KORTH; SU-
DARSHAN, 1999, p. 109).
De acordo com DATE (2004, p. 85), a SQL possui, entre outros, os seguintes componentes: Data Definition Language (DDL) ou
Linguagem de Definição de Dados e Data Manipulation Language (DML) ou Linguagem de Manipulação de Dados.

LINGUAGEM DE DEFINIÇÃO DE DADOS


A DDL é usada para especificar relações, domínios, regras de integridade, entre outros. O comando create, que na visão de EL-
MASRI e NAVATHE (2011, p. 58) é a principal instrução para a definição de dados, é utilizado para criar tabelas, assertions, domínios,
triggers e mais. A DDL também inclui as intruções alter e drop.

INSTRUÇÃO CREATE TABLE


Os termos relação, tupla e atributo do Modelo Relacional correspondem à tabela, linha e coluna, respectivamente, na SQL (DATE,
2004, p. 72).
A instrução create table é usada para criar uma tabela. Na visão de SETZER e CORRÊA DA SILVA (2005, p. 174), “a declaração de
uma tabela resume-se à descrição do seu esquema, dos domínios, de integridades referenciais e certas restrições de integridade”
Antes de seguirmos adiante, discutiremos os conceitos de tipo de dado (domínio) e restrições (de atributo, chave e integridade
referencial).

82
CONHECIMENTOS DE INFORMÁTICA

Domínios e tipos de dados - unique: aplicada na especificação da chave única de uma


“Um método comum de especificação de um domínio é de- relação.
finir um tipo de dado do qual são retirado os valores de dados - foreign key: utilizada para especificar a chave estrangeira
que formam o domínio” (ELMASRI; NAVATHE, 2011, p. 39). de uma relação. Essa cláusula também impõe integridade refe-
Os tipos de dados podem ser definidos pelo sistema (tam- rencial ao banco de dados.
bém conhecidos como internos ou embutidos) ou definidos pelo - constraint: opcionalmente utilizada para nomear uma res-
usuário (DATE, 2004, p. 96). trição. Restrições com um nome são passíveis de exclusão ou
De acordo com SILBERSCHATZ, KORTH e SUDARSHAN (1999, substituição, caso necessário.
p. 138), os principais tipos disponibilizados pelo padrão SQL (ti- As três primeiras cláusulas – not null, default e check – são
pos embutidos) são: ditas restrições de atributo. Primary key e Unique são restrições
- char(n): para sequência de caracteres de tamanho fixo, em de chave. Foreign key é uma restrição de integridade referencial.
que o tamanho n é definido pelo usuário; A sintaxe de cada cláusula será exposta por meio de exemplo,
- varchar(n): para sequência de caracteres de tamanho vari- conforme veremos adiante.
ável, em que o tamanho máximo n é definido pelo usuário; Retomando o ponto onde paramos, segundo SILBERS-
- int: para números inteiros; CHATZ, KORTH e SUDARSHAN (1999, p. 139), a instrução create
- smallint: para números inteiros pequenos (é um subcon- table possui a seguinte forma:
junto de int);
- numeric(p,d): para números de ponto fixo, em que p é a
quantidade total de dígitos que compõe o número e d especifica
quantos desses dígitos estão à direita (após o ponto decimal).
Um numeric(5,2) permite armazenar um número com cinco dí-
gitos, sendo que dois deles estão após o ponto decimal, ou seja,
o número armazenado deve possuir o seguinte formato 999.99.
- real e double precision: para números de ponto flutuante
e ponto flutuante de precisão dupla, em que a precisão depende
do equipamento utilizado.
- float(n): para números de ponto flutuante, em que a preci-
onde r é o nome da relação, Ai é o nome do atributo no es-
são n é definida pelo usuário. Assim, float(2) armazena números
quema da relação r e Di é o domínio do atributo Ai. As regras de
com duas casas decimais.
integridade incluem restrições de atributo, chave e integridade
- date: para datas, inclui ano, mês e dia; e
referencial.
- time: para horários, inclui hora, minuto e segundo.
Para exemplificar o comando create table, considere os se-
“Um domínio pode ser declarado e seu nome usado com
a especificação do atributo” (ELMASRI; NAVATHE, 2011, p. 61). guintes esquemas de relação:
São os tipos de dados definidos pelo usuário. Cargos(Codigo, Denominacao, Classe, Categoria)
Para isso usamos a instrução create domain, conforme abai- Campi(Sigla, Cidade)
xo: Servidores(Prontuario, SIAPE, Nome, Admissao, Salario,
create domain <nome do domínio> as <tipo de dado> CodCargos, CodCampi) Aplicando os conceitos discutidos, po-
Por exemplo, vamos declarar o domínio Moeda e utilizá-lo demos especificar esses esquemas através das instruções SQL
mais adiante na especificação do atributo Salario. abaixo:
create domain Moeda as numeric(9,2)
create table Cargos
Restrições de atributo, chave e integridade referencial (Codigo char(6) not null,
De acordo com ELMASRI e NAVATHE (2011, p. 61), podemos Denominacao varchar(50) not null,
especificar restrições de atributo, chave e integridade referen- Classe char(1) default ‘E’,
cial como parte da criação de tabelas através do acréscimo de Categoria varchar(22) check(Categoria in (‘Tecnico-Admi-
algumas cláusulas: nistrativo’, ‘Docente’),
- not null: usada para especificar atributos cujo valor não constraint ChPCargos primary key (Codigo))
possa ser vazio, ou seja, estabelece que a coluna da tabela não
conterá valores nulos. create table Campi
- default: define um valor padrão para dado atributo. Des- (Sigla char(8) not null,
te modo, ao se criar uma nova linha na tabela, esse valor será Cidade varchar(25),
automaticamente atribuído à coluna caso nenhum valor seja constraint ChPCampi primary key (Sigla))
explicitamente informado. Se a cláusula default for omitida, o
valor padrão é null para aqueles atributos que não contenham create table Servidores
a restrição not null. (Prontuario char(6) not null,
- check: empregada para limitar os valores de um atributo. SIAPE char(7) not null,
Assim, toda linha da tabela deve satisfazer a condição especifi- Nome varchar(70), Admissao date,
cada na cláusula check. Salario Moeda,
- primary key: usada para especificar a chave primária de CodCargos char(6) not null,
uma relação. CodCampi char(6) not null,

83
CONHECIMENTOS DE INFORMÁTICA

constraint ChPServidores primary key (Prontuario), alter table <nome da tabela> drop constraint <nome da
constraint ChAServidores unique (SIAPE), restrição>, para excluir uma restrição de uma tabela.
constraint ChEServCargo foreign key (CodCargos) referen-
ces Cargos (Codigo), LINGUAGEM DE MANIPULAÇÃO DE DADOS
constraint ChEServCampi foreign key (CodCampi) referen- Uma vez definido o banco de dados é possível operar sobre
ces Campi (Sigla)) ele através das operações de manipulação: select, insert, update
e delete (DATE, 2004, p. 73).
Aqui, criamos uma tabela denominada Cargos que possui Select é usada para realizar consultas ao banco de dados,
quatro colunas. Dissemos que a segunda coluna (Denominacao) enquanto insert, update e delete são aplicadas na inserção, atu-
não aceita valores nulos. A primeira coluna (Codigo) é a cha- alização e exclusão de dados, respectivamente.
ve primária (primary key) da tabela Cargos e por esse motivo
também não permite valores nulos. Especificamos que o valor INSTRUÇÃO SELECT
padrão (default) para Classe é “E”. Através da cláusula check De acordo com ELMASRI e NAVATHE (2011, p. 86), um co-
determinamos que Categoria deve assumir o valor “Técnico-Ad- mando select pode incluir até seis cláusulas:
ministrativo” ou “Docente”. E, ainda, definimos uma restrição select <lista de atributos e funções>
(constraint) de chave primária chamada ChPCargos. from <lista de tabelas>
Criamos também uma tabela Campi com duas colunas – Si- where <condição>
gla (que é chave primária) e Cidade – e também uma restrição group by <atributo de agrupamento>
de chave primária denominada ChPCampi. having <condição de grupo>
A última tabela (Servidores) é composta por sete colunas, order by <lista de atributos>,
sendo: Prontuario, uma chave primária; SIAPE, uma chave única devendo a instrução seguir essa ordem e sendo obrigatórias
(ou alternativa); CodCargos, uma chave estrangeira que referen- apenas as duas primeiras cláusulas – select e from.
cia a tabela Cargos; CodCampi; uma chave estrangeira que refe-
rencia a tabela Campi; e mais três colunas, Nome, Admissao e Cláusulas select e from
Salario (note que para especificar esse atributo usamos o nome A cláusula select é usada para elencar os atributos deseja-
do domínio que foi definido anteriormente). Além disso, exis- dos no resultado da consulta, e from, para especificar em qual
tem quatro restrições: duas de chave estrangeira (ChEServCargo ou quais tabelas eles são encontrados.
e ChEServCampi), uma de chave única (ChAServidores) e outra Considerando a tabela Cargos, podemos, por exemplo, criar
de chave primária (ChPServidores). a instrução:
Abordaremos agora outros dois importantes comandos select Codigo, Denominacao
pertencentes à DDL – drop e alter. from Cargos
para listar somente as colunas (atributos) Codigo e Deno-
INSTRUÇÃO DROP minacao da tabela Cargos. Agora considere a seguinte consulta:
“apresente todas as classes da tabela cargos”.
“O comando DROP pode ser usado para remover elementos select Classe
nomeados do esquema, como tabelas, domínios ou restrições” from Cargos
(ELMASRI; NAVATHE, 2011, p. 91). Ele possui a seguinte sintaxe: O resultado da consulta é uma tabela com apenas uma colu-
drop <tipo do elemento> <nome do elemento> na onde aparecem os valores de classe. Contudo, alguns desses
Suponha, por exemplo, a necessidade de excluir a tabela valores podem aparecer duplicados caso tenhamos na tabela
Servidores, assim como o domínio Moeda. As respectivas instru- dois ou mais cargos que possuam a mesma classe (o que é bem
ções seriam definidas assim: provável). Para forçar a eliminação dos valores duplicados no re-
drop table Servidores sultado dessa consulta devemos acrescentar a palavra reservada
drop domain Moeda distinct.
select distinct Classe
INSTRUÇÃO ALTER from Cargos
A instrução alter permite modificar a estrutura de uma ta- Assim, asseguramos que cada valor “D”, por exemplo, apa-
bela, bem como alterar a definição de outros elementos nome- reça uma única vez no resultado da consulta. Entretanto, se de-
ados de um esquema. Considerando uma tabela, tem-se a opor- sejarmos que de fato apareçam todos os valores podemos de-
tunidade de adicionar e excluir colunas, modificar a definição clará-lo de forma explícita por meio da palavra-chave all.
de colunas, e ainda, acrescentar ou eliminar restrições para a select all Classe
tabela (ELMASRI; NAVATHE, 2011, p. 61). from Cargos
Entre outras, podemos utilizar o comando alter das seguin- O comando select sem distinct ou all, todavia, é correspon-
tes formas: dente a select all (ELMASRI; NAVATHE, 2011, p. 68)
alter table <nome da tabela> add column <nome da colu- Caso seja necessário listar na consulta todas as colunas de
na> <tipo de dado>, para acrescentar uma coluna a uma tabela; uma tabela, podemos utilizar o sinal de asterisco (*) ao invés de
alter table <nome da tabela> drop column <nome da colu- especificar os atributos na cláusula select. Desse modo,
na>, para remover uma coluna de uma tabela; select *
alter table <nome da tabela> add constraint <nome da res- from Cargos
trição>, para adicionar uma restrição a uma tabela; e é equivalente a

84
CONHECIMENTOS DE INFORMÁTICA

select Codigo, Denominacao, Classe, Categoria De acordo com SETZER e CORRÊA DA SILVA (2005, p. 179),
from Cargos. “para fazer uma consulta envolvendo duas tabelas ligadas, é
A cláusula select pode ainda conter expressões aritméticas sempre necessário colocar no predicado a condição de junção.
envolvendo constantes ou atributos e operadores de +, -, * e Essa condição é justamente a igualdade das duas colunas”.
/ (SILBERSCHATZ; KORTH; SUDARSHAN, 1999, p. 112). Conside- Ora, a chave primária de Cargos (Codigo) foi transposta em
rando a tabela Servidores, a instrução Servidores (CodCargos). Logo, CodCargos e Codigo são corres-
select Nome, Salario * 12 pondentes. Assim, para solucionar a questão anterior teríamos
from Servidores a consulta:
lista o nome e o salário bruto anual de cada servidor, sendo select Nome, Denominacao
essa última coluna obtida pela multiplicação do salário percebi- from Servidores, Cargos
do pela quantidade de meses no ano. Tabelas (relações) e colu- where CodCargos = Codigo
nas (atributos) podem ser renomeadas através da cláusula as
(SILBERSCHATZ; KORTH; SUDARSHAN, 1999, p. 114). Tomemos
Cláusulas group by
como ilustração o resultado da consulta realizada acima. Nela a
Antes de tratarmos da cláusula group by discutiremos fun-
coluna onde aparecerá o salário bruto anual não terá um nome.
ções agregadas.
Então, podemos atribuí-lo por meio da cláusula as, conforme
segue: São ditas funções agregadas as funções que recebem como
select Nome, Salario * 12 as Sal_Bruto_Anual entrada um conjuntos de valores, produzindo como saída um
from Servidores único valor. Compreendem as funções avg, min, max, sum e cou-
nt, empregadas no cálculo de média, mínimo, máximo, totaliza-
Cláusula where ção de valores e totalização de quantidades, respectivamente
A cláusula where é denotada por where<condição>, onde (SILBERSCHATZ; KORTH; SUDARSHAN, 1999, p. 120).
“<condição> é uma expressão condicional (booleana) que iden- Suponha a consulta “encontre a quantidade total de servi-
tifica as tuplas a serem recuperadas pela consulta” (ELMASRI; dores da instituição”. Para obter esse quantitativo podemos, por
NAVATHE, 2011, p. 64). Em outras palavras, todas as tuplas re- exemplo, totalizar a quantidade de prontuários existentes na ta-
sultantes de uma consulta onde where esteja presente devem bela Servidores, conforme segue:
satisfazer a condição especificada nessa cláusula. select count (Prontuario)
Por exemplo, a consulta “encontre o nome de todos os ser- from Servidores
vidores que percebem salário acima de R$1.000,00” é especifi- Essa consulta tem como resultado uma tabela formada por
cada em SQL da seguinte forma: uma única linha e coluna onde consta a quantidade total de ser-
select Nome vidores do órgão.
from Servidores Agora, sofisticando um pouco a consulta anterior, imagine
where Salario > 1000 que devamos “encontrar a quantidade total de servidores em
Assim, a consulta seleciona em Servidores as linhas que cada campus da instituição”. Primeiro é necessário dividir os ser-
atendam a condição de where (Salario>1000) e então projeta o vidores em grupos de acordo com o seu local de trabalho e de-
resultado no atributo Nome. pois efetuar a contagem dos respectivos prontuários por meio
Para montar condições na cláusula where é possível utilizar de count.
operadores de comparação (>, <, =, >=, <=, <> e between) e co- A cláusula SQL group by é utilizada justamente quando
nectores lógicos (and, or e not) (SILBERSCHATZ; KORTH; SUDAR- precisamos aplicar funções agregradas à subgrupos do total de
SHAN, 1999, p. 113). Para ilustrar, veja como fica a sintaxe da linhas, sendo que esses grupos serão formados a partir dos atri-
consulta “selecione o prontuário e o nome dos servidores que
butos constantes na cláusula group by (SILBERSCHATZ; KORTH;
foram admitidos entre 02/04/2010 e 07/09/2011”.
SUDARSHAN, 1999, p. 120). Enquanto “as funções de agregação
select Prontuario, Nome
from Servidores são usadas para resumir informações de várias tuplas em uma
where Admissao between ‘02/04/2010’ and ‘07/09/2011’ síntese de tupla única. O agrupamento é usado para criar sub-
Na cláusula where é possível estabelecer condições que en- grupos de tuplas antes do resumo” (ELMASRI; NAVATHE, 2011,
volvam a comparação de substrings por meio do operador like p. 82).
associado ao caracter reservado % (porcentagem) ou _ (subli- A instrução correspondente ao exemplo adotado ficaria as-
nhado), onde % representa uma cadeia de caracteres e _ denota sim:
um único caracter (SILBERSCHATZ; KORTH; SUDARSHAN, 1999, select Denominacao, count (Prontuario)
p. 115). Por exemplo, suponhamos que deva ser montada uma from Servidores, Campi
lista de todos os servidores cujos nomes iniciam-se com a letra where CodCampi = Sigla
“A”. Para atender a essa solicitação seria necessária a seguinte group by Denominacao
consulta:
select Nome Cláusula having
from Servidores Imagine que para a consulta anterior seja necessário “en-
where Nome like ‘A%’ contrar apenas os campi que possuem trinta ou mais servidores”.
Consideremos agora uma consulta que envolva colunas de Para atender essa demanda empregaremos a cláusula having.
duas tabelas, como “para os cargos que possuem ao menos um Uma cláusula having possibilita selecionar somente grupos
servidor, relacione o nome do servidor e o cargo por ele ocupa- cujos componentes atendam a uma determinada condição (SET-
do”. ZER; CORRÊA DA SILVA, 2005, p. 184). No entanto, é importante

85
CONHECIMENTOS DE INFORMÁTICA

ressaltar que having e where desempenham funções diferentes. Entretanto, também é possível determinar a ordem em que
“A cláusula HAVING está para grupos como a cláusula WHERE os valores serão acréscidos à tabela especificando seus respecti-
esta para linhas; em outras palavras, HAVING é usada para elimi- vos atributos na instrução insert. Considerando a tabela Cargos,
nar grupos, da mesma maneira que WHERE é usada para elimi- para inclusão dos mesmos valores acima informados, mas em
nar linhas” (DATE, 2004, p. 204). uma ordem diferente, escreveríamos:
A tabela resultante pode ser obtida da seguinte forma: insert into Cargos (Denominacao, Categoria, Codigo, Classe)
select Denominacao, count (Prontuario) values (“Auxiliar em Enfermagem”, “Tecnico-Administrati-
from Servidores, Campi vo”, “701711”, “C”)
where CodCampi = Sigla
group by Denominacao INSTRUÇÃO DELETE
having count (Prontuario) >= 30 A instrução delete é usada para eliminar linhas em tabela. O
comando possui a seguinte sintaxe:
delete from <nome da tabela>
Cláusula order by where <condição>,
O último possível componente de um comando select é or- onde <nome da tabela> é a tabela de onde serão excluídas
der by. Uma cláusula order by é usada para indicar que se deseja as linhas e <condição> é um “filtro” que selecionará as linhas
um ordenamento – ascendente (asc) ou descendente (desc) – que serão eliminadas.
para as linhas que compõe a tabela resultante, sendo a classifi- Por exemplo, imagine que devamos excluir da tabela Cargos
cação ascendente o padrão, caso não seja explicitamente espe- todos os cargos cuja classe seja “A”. Isso pode ser realizado com:
cificada uma ordem. delete from Cargos
Para a ordenação descendente da coluna Denominacao no where Classe = “A”
resultado da consulta anterior, teríamos:
select Denominacao, count (Prontuario) INSTRUÇÃO UPDATE
from Servidores, Campi O comando update é usado para alterar o valor de determi-
where CodCampi = Sigla nado atributo de uma ou várias linhas em uma tabela.
group by Denominacao Para ilustrar, considere que seja necessário conceder um
aumento de 10% a todos os servidores. Faríamos isso através da
having count (Prontuario) >= 30
instrução update abaixo:
order by Denominacao desc
update Servidores
SETZER e CORRÊA DA SILVA (2005, p. 185), sintetizam de for-
set Salario = Salario + Salario * 0,01
ma muito clara o funcionamento de comando select (com todas
Agora, suponha que o aumento deva ser concedido apenas
as suas possíveis cláusulas), da seguinte forma:
aos servidores que percebem salário inferior a R$ 1.500, 00. Isso
Conceitualmente, a execução de cada select segue a seguin-
pode ser feito com:
te ordem. 1. A cláusula where é testada produzindo com isso
update Servidores
junção e/ou seleção de linhas. 2. É feito o agrupamento das li-
set Salario = Salario + Salario * 0,01
nhas resultantes usando-se os valores das colunas do group by.
where Salario < 1500
3. São escolhidos apenas os grupos que satisfazem a cláusula
having, que é sempre aplicada a cada grupo como um todo e HIVEQL (HIVE 2.2.0)
não individualmente às suas linhas. 4. As linhas assim resultan- Apache Hive é um sistema de data warehouse para Apache
tes são ordenadas pelas colunas indicadas no order by. 5. É feita Hadoop. O Hive permite o resumo de dados, consultas e análise
a projeção na lista de colunas do select, eventualmente com cál- de dados. Consultas de hive são escritas em HiveQL, que é uma
culo de funções de agregação que são aplicadas a todas as linhas linguagem de consulta semelhante ao SQL.
resultantes de cada grupo. O Hive permite que você projete estrutura em grandes volu-
mes de dados sem estrutura. Depois de definir a estrutura, você
INSTRUÇÃO INSERT pode usar o HiveQL para consultar os dados sem conhecimento
O comando insert é usado para inserir dados em uma tabe- de Java ou do MapReduce.
la, mais especificamente inserir linhas na tabela. O HDInsight fornece vários tipos de cluster, que são ajusta-
No comando de inserção podemos informar somente os dos para cargas de trabalho específicas. Os seguintes tipos de
valores a serem incluídos, porém devemos fazê-lo na mesma cluster geralmente são usados para consultas de Hive:
ordem em que as colunas (atributos) aparecem na tabela. As- Consulta Interativa: Um cluster Hadoop que fornece funcio-
sim, para acrescentar novos dados à tabela Cargos temos que nalidade LLAP (Processamento Analítico de Baixa Latência) para
apresentar valores, obrigatoriamente, na seguinte ordem: em melhorar os tempos de resposta de consultas interativas. Para
primeiro lugar o código do cargo; em segundo, sua nomencla- obter mais informações, confira o documento Introdução à Con-
tura; em terceiro, a classe a qual ele pertence; e por último, a sulta Interativa no HDInsight.
categoria na qual ele se enquadra. Hadoop: Um cluster Hadoop que está ajustado para cargas
insert into de trabalho de processamento em lotes. Para obter mais infor-
Cargos values (“701711”, “Auxiliar em Enfermagem”, “C”, mações, confira o documento Introdução ao Apache Hadoop no
“Tecnico-Administrativo”) HDInsight.

86
CONHECIMENTOS DE INFORMÁTICA

Spark: O Apache Spark tem funcionalidade interna para tra- UDF (Funções definidas pelo usuário)
balhar com o Hive. Para obter mais informações, confira o docu- O Hive também pode ser estendido por meio de UDF (fun-
mento Introdução ao Apache Spark no HDInsight. ções definidas pelo usuário). As UDF permitem que você imple-
HBase: O HiveQL pode ser usado para consultar dados ar- mente funcionalidade ou lógica que não é facilmente modelada
mazenados no Apache HBase. Para obter mais informações, em HiveQL. Para obter um exemplo de uso de UDFs com o Hive,
confira o documento Introdução ao Apache HBase no HDInsight. confira os seguinte documentos:
- Usar uma função definida pelo usuário do Java com o Apa-
Hive e estrutura de dados che Hive
O Hive sabe como trabalhar com dados estruturados e semi- - Usar uma função definida pelo usuário do Python com o
-estruturados. Por exemplo, arquivos de texto onde os campos Apache Hive
são delimitados por caracteres específicos. A seguinte instrução - Usar uma função definida C# pelo usuário do Java com o
do HiveQL cria uma tabela com dados delimitados por espaços: Apache Hive
CREATE EXTERNAL TABLE log4jLogs ( - Como adicionar uma função definida pelo usuário perso-
t1 string, nalizado de Apache Hive no HDInsight
t2 string, - Um exemplo de função definida pelo usuário do Apache
t3 string, Hive para converter formatos de data/hora para carimbo de
t4 string, data/hora do Hive
t5 string,
t6 string, Dados de exemplo
t7 string) O Hive no HDInsight vem pré-carregado com uma tabela in-
ROW FORMAT DELIMITED FIELDS TERMINATED BY ‘ ‘ terna chamada hivesampletable. O HDInsight também fornece
STORED AS TEXTFILE LOCATION ‘/example/data/’; conjuntos de dados de exemplo que podem ser usados com o
O Hive também dá suporte a serializador/desserializadores Hive. Esses conjuntos de dados são armazenados nos diretórios
(SerDe) personalizados para dados complexos ou com estrutura /example/data e /HdiSamples. Esses diretórios estão no armaze-
irregular. Para saber mais, consulte o documento Como usar Ser-
namento padrão do cluster.
De JSON personalizado com o HDInsight.
Para obter mais informações sobre formatos de arquivo
Exemplo de consulta do Hive
compatíveis com o Hive, consulte o Manual de linguagem (ht-
As seguintes instruções HiveQL projetam colunas para o ar-
tps://cwiki.apache.org/confluence/display/Hive/LanguageMa-
quivo /example/data/sample.log:
nual)
set hive.execution.engine=tez;
DROP TABLE log4jLogs;
Tabelas internas Hive vs. tabelas externas
CREATE EXTERNAL TABLE log4jLogs (
Há dois tipos de tabelas que você pode criar com o Hive:
- Interna: Os dados são armazenados no data warehouse do t1 string,
Hive. O data warehouse está localizado no /hive/warehouse/ no t2 string,
armazenamento padrão para o cluster. t3 string,
Use tabelas internas quando uma das condições a seguir se t4 string,
aplicar: t5 string,
>Os dados são temporários. t6 string,
>Você quer que o Hive gerencie o ciclo de vida da tabela e t7 string)
dos dados. ROW FORMAT DELIMITED FIELDS TERMINATED BY ‘ ‘
- Externa: Os dados são armazenados fora do data warehou- STORED AS TEXTFILE LOCATION ‘/example/data/’;
se. Os dados podem ser armazenados em qualquer armazena- SELECT t4 AS sev, COUNT(*) AS count FROM log4jLogs
mento acessível pelo cluster. WHERE t4 = ‘[ERROR]’ AND INPUT__FILE__NAME LIKE
Use tabelas externas quando uma das condições a seguir ‘%.log’
se aplicar: GROUP BY t4;
>Os dados também são usados fora do Hive. Por exemplo, No exemplo anterior, as instruções HiveQL executam as se-
os arquivos de dados são atualizados por outro processo (que guintes ações:
não bloqueia os arquivos.) - set hive.execution.engine=tez;: Define o mecanismo de
>Os dados devem permanecer no local anterior, mesmo de- execução para usar o Apache Tez. Usar o Tez pode fornecer um
pois de descartar a tabela. aumento no desempenho da consulta.
>Você precisa de um local personalizado, como uma conta Observação:
de armazenamento não padrão. Essa instrução só é necessária ao usar um cluster HDInsight
>Um programa que não seja o hive gerencia o formato de baseado em Windows. O Tez é o mecanismo padrão de execu-
dados, local etc. ção para HDInsight baseados em Linux.
Para obter mais informações, confira a publicação do blog DROP TABLE: Se a tabela já existir, exclua-a.
Introdução às tabelas internas e externas do Hive. CREATE EXTERNAL TABLE: Cria uma nova tabela externa no
Hive. Tabelas externas só armazenam a definição da tabela no
Hive. Os dados são mantidos no local e no formato originais.

87
CONHECIMENTOS DE INFORMÁTICA

ROW FORMAT: Informa ao Hive como os dados são forma- Fábrica de dados do Azure
tados. Nesse caso, os campos em cada log são separados por O Azure Data Factory permite que você use o HDInsight
um espaço. como parte de um pipeline do Data Factory.
STORED AS TEXTFILE LOCATION: Informa ao Hive o local em
que os dados são armazenados (o diretório example/data) e se Trabalhos do Hive e SQL Server Integration Services
são armazenados como texto. Os dados podem estar em um Também é possível usar o SSIS (SQL Server Integration Servi-
arquivo ou distribuídos em vários arquivos dentro do diretório. ces) para executar um trabalho do Hive. O Feature Pack do Azu-
SELECT: Seleciona uma contagem de todas as linhas nas re para SSIS fornece os seguintes componentes que funcionam
quais a coluna t4 contém o valor [ERROR]. Essa instrução retor- com trabalhos do Hive no HDInsight.
na um valor de 3, já que há três linhas que contêm esse valor. - Tarefa do Hive do Azure HDInsight
INPUT__FILE__NAME LIKE ‘%.log’- O Hive tenta aplicar o - Gerenciador de Conexões de Assinatura do Azure
esquema a todos os arquivos no diretório. Nesse caso, o diretó-
rio contém arquivos que não correspondem ao esquema. Para Apache Oozie
evitar dados incorretos nos resultados, essa instrução informa O Apache Oozie é um sistema de fluxo de trabalho e coorde-
ao Hive que devemos retornar apenas dados de arquivos que nação que gerencia trabalhos do Hadoop.
terminam em .log.
Observação: Banco de dados NoSQL (conceitos básicos, bancos orienta-
As tabelas externas devem ser usadas quando você espera dos a grafos, colunas, chave/valor e documentos)
que os dados subjacentes sejam atualizados por uma fonte ex- O QUE É NOSQL?
terna. Por exemplo, um processo de upload de dados automati-
zado ou uma operação MapReduce. O constante crescimento da tecnologia em geral, tem feito
Descartar uma tabela externa não exclui os dados, apenas a os desenvolvedores reavaliarem como eles armazenam e man-
definição da tabela. tém esses dados. Os bancos de dados precisam prover escalabi-
Para criar uma tabela interna em vez de externa, use o Hi- lidade, flexibilidades, segurança e eficiência para o massivo fluxo
veQL a seguir:
de dados que vivemos.
Desenvolvedores especialistas analisam a dificuldade, às
set hive.execution.engine=tez;
vezes a impossibilidade, de utilizar modelos relacionais para
CREATE TABLE IF NOT EXISTS errorLogs (
armazenar todos esses dados mantendo uma escalabilidade di-
t1 string,
nâmica e a performance necessária com o aumento dos dados.
t2 string,
O NoSQL, que a propósito significa Not Only SQL (Não ape-
t3 string,
t4 string, nas SQL), nasceu com o propósito de ser o banco de dados para
t5 string, os super-dados do boom da internet. Devido à flexibilidade ofe-
t6 string, recida por esse modelo muitos estão optando pelo NoSQL. Não
t7 string) é a toa que o mercado global NoSQL tem previsão de chegar a
STORED AS ORC; US \$ 3,4 bilhões em 2020, uma taxa de crescimento anual de
INSERT OVERWRITE TABLE errorLogs 21% para o período 2015-2020.
SELECT t1, t2, t3, t4, t5, t6, t7 O termo NoSQL é usado simplesmente para descrever uma
FROM log4jLogs WHERE t4 = ‘[ERROR]’; família de bancos de dados que não são relacionais, podendo
variar em vários pontos entre eles. No geral, existem 4 tipos de
Essas instruções executam as seguintes ações: bancos de dados NoSQL, são eles:
CREATE TABLE IF NOT EXISTS: Se a tabela não existir, crie Chave-Valor: Armazena dados no padrão chave-valor, como
uma. Uma vez que a palavra-chave EXTERNA não é usada, essa tabelas hash. Ex. MemcacheD, Riak, REDIS;
instrução cria uma tabela interna. Uma tabela interna é arma- Grafos: Armazena dados na forma de grafo (vértices e ares-
zenada no data warehouse do Hive e é totalmente gerenciada tas). Ex. Sesame, Neo4j;
pelo Hive. Colunas: Armazena dados em linhas particulares de tabela
STORED AS ORC: Armazena os dados no formato OCR (Opti- no disco. Ex. Cassandra, Hbase;
mized Row Columnar). Esse é um formato altamente otimizado Documento: Armazena os dados como “documentos”, onde
e eficiente para o armazenamento de dados do Hive. um documento pode ser um dado aninhado em formato chave-
INSERT OVERWRITE ... SELECT: Seleciona as linhas na tabela -valor (por exemplo o padrão JSON). Ex. MongoDB, CouchDB.
log4jLogs que contém [ERROR] e insere os dados na tabela er- mbora os diferentes tipos de bancos de dados NoSQL te-
rorLogs. nham diferenças entre si, todos eles têm as mesmas premissas.
Observação: Abaixo descrevo 6 motivos para usar NoSQL que se aplicam a
Diferentemente de tabelas externas, o descarte de uma ta- qualquer tipo de banco de dados NoSQL.
bela interna excluirá também os dados subjacentes.
1. FLEXIBILIDADE
Programação de consultas de Hive Estruturas de dados intuitivas e flexíveis são funcionalida-
Há vários serviços que podem ser usados para executar con- des que mais atraem desenvolvedores que trabalham em times
sultas de Hive como parte de um fluxo de trabalho programado de desenvolvimento ágil. A maioria dos bancos de dados NoSQL
ou sob demanda. tem essas qualidades.

88
CONHECIMENTOS DE INFORMÁTICA

A grande flexibilidade dos bancos de dados NoSQL é muito língua — resumindo, é a única forma que os moradores enten-
popular por suportar as práticas de desenvolvimento ágil, pois dem e interagem com o mundo ao redor deles. Mudar essa lín-
elimina a complexidade de mudanças dos bancos de dados ge- gua em um lugar seria confuso e disruptivo para todos.
rando um bom suporte para adaptações rápidas. Agora pense em outra cidade, a Cidade B, onde cada casa
pode falar uma língua diferente. Todos interagem com o mundo
2. ESCALABILIDADE de forma diferente e não há um entendimento “universal” ou
A maioria dos bancos de dados NoSQL são construídos para uma organização definida. Se uma casa é diferente, ela não afeta
escalar horizontalmente, distribuindo os dados por clusters mais ninguém de forma alguma.
melhor que os SGBDs relacionais, que sofrem muito em per- Isso ajuda a ilustrar uma das diferenças fundamentais entre
formance quando executa consultas com “joins” em ambientes as bases de dados relacionais e não-relacionais, e essa diferença
clusterizados. Como o NoSQL evita “joins” naturalmente, a per- tem grandes implicações. Vamos explicar:
formance das consultas permanece alta. As bases de dados SQL são estruturadas em linguagem de
A escalabilidade NoSQL aplica-se tanto ao crescimento dos consulta (SQL) para definição e manipulação de dados. Por um
dados quanto ao número de usuários agindo simultaneamente lado, isso é extremamente poderoso: o SQL é uma das opções
sobre os dados. mais versáveis e mais utilizadas, sendo uma escolha segura e es-
pecialmente ótima para consultas complexas.
3. DISPONIBILIDADE Por outro lado, ele pode ser restritivo. O SQL exige que você
A indisponibilidade de um banco de dados pode causar sé- use esquemas (arquiteturas visuais e lógicas de uma base de da-
rios prejuízos, incluindo perda de clientes. A maioria dos bancos dos) pré-definidos para determinar a estrutura dos seus dados
de dados NoSQL oferecem eficientes arquiteturas de replicação antes de trabalhar com eles.
de dados que proporciona aos NoSQLs maior disponibilidade. Além disso, todos os seus dados devem seguir a mesma es-
Ou seja, se um ou mais servidores (ou nós) cai um outro nó do trutura. Isso pode requerer uma preparação inicial significante
cluster está apto a continuar o trabalho automaticamente sem e, assim como na Cidade A, pode ser que uma mudança na es-
perda de dados. trutura seja tanto difícil quanto disruptiva para todo o seu sis-
tema.
4. RAÍZES OPEN SOURCE
Uma base de dados NoSQL, por outro lado, tem um esque-
Muitos bancos de dados NoSQL tem raízes na comunidade
ma dinâmico para dados não estruturados, e o dado é armaze-
open source. Talvez isso tenha sido fundamental para o rápido
nado em várias formas: pode ser orientado a coluna, orientado
crescimento do seu uso e popularidade. Nota-se que as com-
a documento, baseado em grafos ou organizado como chave-va-
panhias que oferecem versões comerciais de bancos NoSQL
lor. Essa flexibilidade permite que:
com uma forte estrutura de suporte e serviços, estão ao mesmo
tempo participando direta ou indiretamente de comunidades de · Você crie documentos sem ter que definir sua estrutura
bancos de dados NoSQL open source. Exemplos são Apache->- primeiro;
Cassandra, IBM->CouchDB, MongoDB->MongoDB open source, · Cada documento tenha sua própria estrutura única;
entre outros. · A sintaxe varie de base de dados para base de dados;
· Você adicione campos sempre que precisar.
5. BAIXO CUSTO OPERACIONAL
Devido ao peso do open source no NoSQL, o custo para ini- Escalabilidade
ciar a utilização desses bancos de dados também se torna muito Na maioria das situações, as bases de dados SQL são ver-
baixo ou zero. É comum ouvir dizerem que a transição relacional ticalmente escaláveis, o que significa que você pode aumentar
-> NoSQL diminuiu muito os custos enquanto obteve um desem- o carregamento em um servidor melhorando coisas como CPU,
penho melhor ou igual ao anterior. RAM ou SSD.
Grandes bancos de dados relacionais requerem computa- As bases de dados NoSQL, por sua vez, são horizontalmente
dores ou mainframes caros. Com o NoSQL, esse custo também escaláveis. Isso quer dizer que você suporta muito mais tráfego
diminui, pois este foi desenvolvido para trabalhar em ambientes por sharding (particionamento de dados), ou seja, adicionando
distribuídos. mais servidores na sua base de dados NoSQL. É como se compa-
rássemos entre adicionar mais andares no mesmo prédio e adi-
6. FUNCIONALIDADES ESPECIAIS cionar mais prédios na vizinhança. O segundo pode ficar maior e
Também com o peso do open source sobre o NoSQL, mui- mais poderoso, tornando as bases de dados NoSQL a escolha de
tos distribuidores de bancos de dados NoSQL oferecem algumas preferência para conjuntos de dados maiores ou em mudança
funcionalidades especiais para incentivar e atrair mais usuários. constante.
Índices específicos, capacidade de consulta de dados geoes-
paciais, replicação automática de dados, funcionalidades para Estrutura
sincronização, APIs RESTful são exemplos de funcionalidades As bases de dados SQL são baseadas em tabelas, enquanto
especiais oferecidas pelos diferentes distribuidores NoSQL. que as bases de dados NoSQL podem ser baseadas em docu-
mentos, pares de chave-valor, grafos ou orientados a colunas.
Diferenças gerais SQL e NoSQL Isso torna as bases de dados SQL relacionais opções melhores
Pense em uma cidade — vamos chamá-la de Cidade para aplicações que requerem transações retornando várias co-
A — onde todos falam a mesma língua. Todas as empresas são lunas — como um sistema de contabilidade — ou para sistemas
criadas em torno dela, toda forma de comunicação a utiliza essa legados que foram criados em uma estrutura relacional.

89
CONHECIMENTOS DE INFORMÁTICA

Alguns exemplos de bases de dados SQL incluem o MySQL, Caso ainda não tenha feito isso, acesse o site oficial do Mongo-
Oracle, PostgreSQL e Microsoft SQL Server. Exemplos de bases DB e baixe gratuitamente a versão mais recente para o seu sistema
de dados NoSQL incluem MongoDB, BigTable, Rediz, RavenDB, operacional, que é a versão 3.4 na data em que escrevo este artigo.
Cassandra, HBase, Neo4j e CouchDB. Baixe o arquivo compactado e, no caso do Windows, rode o
executável que extrairá os arquivos na sua pasta de Arquivos de
SQL x NoSQL: MySQL x MongoDB Programas (não há uma instalação de verdade, apenas extração de
Agora que deixamos claras as principais diferenças estrutu- arquivos), seguido de uma pasta server/versão, o que é está ok para
rais entre as bases de dados SQL e NoSQL, vamos mergulhar nas a maioria dos casos, mas que eu prefiro colocar em C:\Mongo ou
principais diferenças funcionais entre às duas, usando especifi- dentro de Applications no caso do Mac.
camente o MySQL e o MongoDB como exemplos. Dentro dessa pasta do Mongo podem existir outras pastas,
mas a que nos interessa é a pasta bin. Nessa pasta estão uma cole-
MySQL: O banco de dados SQL relacional ção de utilitários de linha de comando que são o coração do Mon-
Os benefícios e pontos fortes do MySQL são: goDB (no caso do Windows, todos terminam com .exe):
· Maturidade. O MySQL é uma base de dados extremamente mongod: inicializa o servidor de banco de dados;
estabelecida, o que significa que há uma grande comunidade mongo: inicializa o cliente de banco de dados;
por trás, testes extensos e muita estabilidade. mongodump: realiza dump do banco (backup binário);
· Compatibilidade. O MySQL está disponível para todas as mongorestore: restaura dumps do banco (restore binário);
plataformas mais utilizadas, inclusive Linux, Windows, Mac, BSD mongoimport: importa documentos JSON ou CSV pro seu ban-
e Solaris. Ele também tem conectores para linguagens como co;
Node.js, Ruby, C#, C++, Java, Perl, Python e PHP, então não está mongoexport: exporta documentos JSON ou CSV do seu ban-
limitado à linguagem de consulta SQL. co;
· Custo-benefício. A base de dados é open source e gratuita. entre outros.
· Replicável. A base de dados MySQL pode ser replicada Para subir um servidor de MongoDB na sua máquina é muito
através de vários nós, significando que a carga de trabalho pode fácil: execute o utilitário mongod via linha de comando como abai-
xo, onde dbpath é o caminho onde seus dados serão salvos (esta
ser reduzida e a escalabilidade e disponibilidade da aplicação
pasta já deve estar criada).
podem ser aumentadas.
C:\mongo\bin> mongod --dbpath C:\mongo\data
· Sharding. Apesar do sharding (termo comum das bases de
Isso irá iniciar o servidor do Mongo. Uma vez que apareça no
dados não-relacionais que significa divisão de dados entre vários
prompt “[initandlisten] waiting for connections on port 27017”,
servidores) não poder ser feito na maioria das bases de dados
está pronto, o servidor está executando corretamente e você já
SQL, ele pode ser feito em servidores MySQL. Isso é tanto eco-
pode utilizá-lo, sem segurança alguma e na porta padrão 27017.
nomicamente viável quanto bom para a empresa.
Nota: se já existir dados de um banco MongoDB na pasta data,
o mesmo banco que está salvo lá ficará ativo novamente, o que é
MongoDB: O banco de dados NoSQL não-relacional muito útil para os nossos testes.
Os benefícios e pontos fortes do MongoDB são: Agora abra outro prompt de comando (o outro ficará executan-
· Esquema dinâmico. Como mencionado, isso te dá do o servidor) e novamente dentro da pasta bin do Mongo, digite:
flexibilidade para mudar seu esquema de dados sem modificar c:\mongo\bin> mongo
nenhum outro dado existente. Após a conexão funcionar, se você olhar no prompt onde o
· Escalabilidade. O MongoDB é horizontamente escalável, o servidor do Mongo está rodando, verá que uma conexão foi esta-
que ajuda a reduzir a carga de trabalho e escalar seu negócio belecida e um sinal de “>” indicará que você já pode digitar os seus
com facilidade. comandos e queries para enviar à essa conexão.
· Gerenciamento. A base de dados não requer um Ao contrário dos bancos relacionais, no MongoDB você não
administrador. Isso facilita o uso do sistema, já que ele pode ser precisa construir a estrutura do seu banco previamente antes de
usado tanto pelos desenvolvedores quanto administradores. sair utilizando ele. Tudo é criado conforme você for usando, o que
· Velocidade. Tem performance alta para consultas simples. não impede, é claro, que você planeje um pouco o que pretende
· Flexibilidade. Você pode adicionar novas colunas e campos fazer com o Mongo.
no MongoDB sem afetar as colunas existentes nem a performan- O comando abaixo no terminal cliente mostra os bancos exis-
ce da aplicação. tentes nesse servidor:
> show databases
Instalação e Testes Se é sua primeira execução ele deve listar as bases admin e lo-
Diversos players de cloud computing fornecem versões de cal. Não usaremos nenhuma delas. Agora digite o seguinte coman-
Mongo hospedadas e prontas para uso como Umbler e mLab, do para “usar” o banco de dados “workshop” (um banco que você
no entanto é muito importante um conhecimento básico de sabe que não existe ainda):
administração local de MongoDB para entender melhor como > use workshop
tudo funciona. Não focaremos aqui em nenhum aspecto de O terminal vai lhe avisar que o contexto da variável “db” mu-
segurança, de alta disponibilidade, de escala ou sequer de ad- dou para o banco workshop, que nem mesmo existe ainda (mas
ministração avançada de MongoDB. Deixo todas estas questões não se preocupe com isso!). Essa variável “db” representa agora
para você ver junto à documentação oficial no site oficial, onde o banco workshop e podemos verificar quais coleções existem
inclusive você pode estudar e tirar as certificações. atualmente neste banco usando o comando abaixo:

90
CONHECIMENTOS DE INFORMÁTICA

> show collections não existe um schema pré-definido compartilhado entre todos
Isso também não deve listar nada, mas não se importe com os documentos, cada um é independente. Obviamente conside-
isso também. Assim como fazemos com objetos JS que quere- rando que eles compartilham a mesma coleção, é interessante
mos chamar funções, usaremos o db para listar os documentos que eles possuam coisas em comum, caso contrário não faz sen-
de uma coleção de customers (clientes) da seguinte forma: tido guardar eles em uma mesma coleção.
Mas como fica isso nas consultas? E se eu quiser filtrar por
> db.customers.find() “uf”? Não tem problema!
find é a função para fazer consultas no MongoDB e, quando Essa é uma boa deixa para eu mostrar como filtrar um find()
usada sem parâmetros, retorna todos os documentos da cole- por um campo do documento:
ção. Obviamente não listará nada pois não inserimos nenhum > db.customers.find({uf: “RS”})
documento ainda, o que vamos fazer agora com a função insert: Note que a função find pode receber um documento por
> db.customers.insert({ nome: “Luiz”, idade: 29 }) parâmetro representando o filtro a ser aplicado sobre a coleção
A função insert espera um documento JSON por parâmetro para retornar documentos. Nesse caso, disse ao find que retor-
com as informações que queremos inserir, sendo que além des- nasse todos os documentos que possuam o campo uf definido
sas informações o MongoDB vai inserir um campo _id automáti- como “RS”. O resultado no seu terminal deve ser somente o cus-
co como chave primária desta coleção. tomer de nome “Teste” (não vou falar do _id dele aqui pois o va-
Como sabemos se funcionou? Além da resposta ao coman- lor muda completamente de um servidor MongoDB para outro).
do insert (nInserted indica quantos documentos foram inseridos Atenção: MongoDB é case-sensitive ao contrário dos ban-
com o comando), você pode executar o find novamente para ver cos relacionais, então cuidado!
que agora sim temos customers no nosso banco de dados. Além Experimente digitar outros valores ao invés de “RS” e verá
disso se executar o “show collections” e o “show databases” que eles não retornam nada, afinal, não basta ter o campo uf,
verá que agora sim possuímos uma coleção customers e uma ele deve ser exatamente igual a “RS”.
base workshop nesse servidor. Além de campos com valores específicos, esse parâmetro
Tudo foi criado a partir do primeiro insert e isso mostra que do find permite usar uma infinidade de operadores como por
está tudo funcionando bem no seu servidor MongoDB!
exemplo, trazer todos documentos que possuam a letra ‘a’ no
nome:
#1 – Insert “Avançado”
> db.customers.find({nome: { $regex: /a/ }})
Na seção anterior aprendemos a fazer um find() que retorna
Se você já mexeu com expressões regulares (regex) em JS
todos os documentos de uma coleção e um insert que insere um
antes, sabe exatamente como usar e o poder desse recurso jun-
novo documento em uma coleção, além de outros comandos
to a um banco de dados, sendo um equivalente muito mais po-
menores. Agora vamos adicionar mais alguns registros no seu
deroso ao LIKE dos bancos relacionais.
terminal cliente mongo:
> custArray = [{ nome : “Fernando”, idade : 29 }, { nome :
“Teste”, “uf” : “RS” }] Mas e se eu quiser trazer todos os customers maiores de
> db.customers.insert(custArray) idade?
Atenção: para o nome dos campos dos seus documentos > db.customers.find({idade: {$gte: 18}})
e até mesmo para o nome das coleções do seu banco, use o O operador $gte (Greater Than or Equal) retorna todos os
padrão de nomes de variáveis JS (camel-case, sem acentos, sem documentos que possuam o campo idade e que o valor do mes-
espaços, etc). mo seja igual ou superior à 18. E podemos facilmente combinar
Nota: no exemplo acima a variável custArray passa a existir filtros usando vírgulas dentro do documento passado por parâ-
durante toda a sessão do terminal a partir do comando seguinte. metro, assim como fazemos quando queremos inserir campos
Nesse exemplo passei um array com vários documentos em um documento:
para nossa função insert inserir na coleção customers e isso nos > db.customers.find({nome: “Luiz”, idade: {$gte: 18}})
trás algumas coisas interessantes para serem debatidas. Primei- O que a expressão acima irá retornar?
ro, sim, você pode passar um array de documentos por parâme- Se você disse customers cujo nome sejam Luiz e que sejam
tro para o insert. Segundo, você notou que o segundo documen- maiores de idade, você acertou!
to não possui “idade”? E que ele possui um campo “uf”? E a expressão abaixo:
> db.customers.find({nome: { $regex: /a/ }, idade: {$gte:
#2 – Find “avançado” 18}})
Para se certificar que todos documentos foram realmente Customers cujo nome contenham a letra ‘a’ e que sejam
inseridos na coleção, use o seguinte comando: maiores de idade, é claro!
> db.customers.find().pretty() Outros operadores que você pode usar junto ao filtro do
É o mesmo comando find() que usamos anteriormente, mas find são:
com a função pretty() no final para identar o resultado da fun-
ção no terminal, ficando mais fácil de ler. Use e você vai notar a $eq: exatamente igual (=)
diferença, principalmente em consultas com vários resultados. $ne: diferente (<> ou !=)
Mas voltando à questão do “uf”, ao contrário dos bancos $gt: maior do que (>)
relacionais, o MongoDB possui schema variável, ou seja, se so- $lt: menor do que (<)
mente um customer tiver “uf”, somente ele terá esse campo, $lte: menor ou igual a (<=)

91
CONHECIMENTOS DE INFORMÁTICA

$in: o valor está contido em um array de possibilidades, todo o documento do respectivo customer com o nome altera-
como em um OU. Ex: {idade: {$in: [10,12] }} do, mas sim apenas a expressão de alteração do nome, como
$all: MongoDB permite campos com arrays. Ex: { tags: [“No- abaixo (já usando o _id como filtro, que é mais seguro):
deJS”, “MongoDB”] }. Com esse operador, você compara se seu > db.customers.updateOne({_id: ObjectI-
campo multivalorado possui todos os valores de um array espe- d(“59ab46e433959e2724be2cbd”)}, {$set: {idade: 28}})
cífico. Ex: {tags: {$all: [“NodeJS”, “Android”]}} Nota: para saber o _id correto do seu update, faça um find
Entre outros! primeiro e não tente copiar o meu pois não vai repetir.
Esta função vai alterar (operador $set) a idade para o valor
Você também pode usar findOne ao invés de find para re- 28 do documento cujo _id seja “59ab46e433959e2724be2cbd”
tornar apenas o primeiro documento, ou ainda as funções limit (note que usamos uma função ObjectId para converter, pois
e skip para limitar o número de documentos retornados e para esse valor não é uma string).
ignorar alguns documentos, especificamente, da seguinte ma- Nota: você pode usar null se quiser “limpar” um campo.
neira:
O operador $set recebe um documento contendo todos
> db.customers.find().skip(1).limit(10)
os campos que devem ser alterados e seus respectivos novos
No exemplo acima retornaremos 10 customers ignorando o
valores. Qualquer campo do documento original que não seja
primeiro existente na coleção.
E para ordenar? Usamos a função sort no final de todas as indicado no set continuará com os valores originais.
outras, com um documento indicando quais campos e se a or- Atenção: se o campo a ser alterado não existir no documen-
denação por aquele campo é crescente (1) ou descrescente (-1), to, ele será criado.
como abaixo em que retorno todos os customers ordenados Não importa o valor que ela tenha antes, o operador $set
pela idade: vai sobrescrevê-lo. Agora, se o valor anterior importa, como
> db.customers.find().sort({idade: 1}) quando queremos incrementar o valor de um campo, não se usa
Nota: assim como nos bancos relacionais, os métodos de o operador $set, mas sim outros operadores. A lista dos mais
consulta retornam em ordem de chave primária por padrão, o úteis operadores de update estão abaixo:
que neste caso é o _id.
$unset: remove o respectivo campo do documento;
#3 – Update $inc: incrementa o valor original do campo com o valor es-
Além do insert que vimos antes, também podemos atuali- pecificado;
zar documentos já existentes, por exemplo usando o comando $mul: multiplica o valor original do campo com o valor es-
update e derivados. O jeito mais simples (e mais burro) de atua- pecificado;
lizar um documento é chamando a função update na coleção $rename: muda o nome do campo para o nome especifi-
com 2 parâmetros: cado;
- documento de filtro para saber qual(is) documento(s) se-
rá(ão) atualizado(s); Além disso, existe um terceiro parâmetro oculto no update
- novo documento que substituirá o antigo; que são as opções de update. Dentre elas, existe uma muito in-
Como em: teressante do MongoDB: upsert, como abaixo:
> db.customers.update({nome: “Luiz”}, {nome: “Luiz”, ida- > db.customers.updateOne({nome: “LuizTools”}, {$set: {uf:
de: 29, uf: “RS”}) “RS”}}, {upsert: true})
Como resultado você deve ter um nModified maior do que Um upsert é um update como qualquer outro, ou seja,
1, mostrando quantos documentos foram atualizados. vai atualizar o documento que atender ao filtro passado como
Por que essa é a maneira mais burra de fazer um update?
primeiro parâmetro, porém, se não existir nenhum documen-
Porque além de perigosa ela exige que você passe o documento
to com o respectivo filtro, ele será inserido, como se fosse um
completo a ser atualizado no segundo parâmetro, pois ele subs-
insert.
tituirá o original!
upsert = update + insert
Primeira regra do update inteligente: se você quer atualizar
um documento apenas, comece usando updateOne ao invés de
update. O updateOne vai te obrigar a usar operadores ao invés #4 – Delete
de um documento inteiro para a atualização, o que é muito mais Pra encerrar o nosso conjunto de comandos mais elementa-
seguro. res do MongoDB falta o delete, ops, deleteOne e deleteMany na
Segunda regra do update inteligente: sempre que possível, verdade. Tem também o remove, que possui mais opções, mas
use a chave primária (_id) como filtro da atualização, pois ela é é pouco usado.
sempre única dentro da coleção. Existe uma função deleteOne e uma deleteMany, o que a
Terceira regra do update inteligente: sempre use operado- essa altura do campeonato você já deve saber a diferença. Além
res ao invés de documentos inteiros no segundo parâmetro, in- disso, assim como o find e o update, o primeiro parâmetro do re-
dependente do número de documentos que serão atualizados. move é o filtro que vai definir quais documentos serão deletados
e todos os operadores normais do find são aplicáveis.
Mas que operadores são esses? Sendo assim, de maneira bem direta:
Assim como o find possui operadores de filtro, o update > db.customers.deleteOne({nome: “Luiz”})
possui operadores de atualização. Se eu quero, por exemplo, Vai excluir todos os clientes cujo nome seja igual a “Luiz”.
mudar apenas o nome de um customer, eu não preciso enviar

92
CONHECIMENTOS DE INFORMÁTICA

Data Warehouse (modelagem conceitual para data warehouses, dados multidimensionais)


O Data Warehouse (DW) se trata, sem sombras de dúvidas, da mais importante tecnologia existente no desenvolvimento de so-
luções de Business Intelligence (BI). Ela é a base para o armazenamento das informações necessárias para a utilização por gestores e
analistas na tomada de decisão.
O DW possui estrutura e características que suportam análise de grandes volumes de dados. Para entender melhor essa poderosa
tecnologia, precisamos compreender melhor sua arquitetura através dos seus componentes.

Fonte de dados: abrange todos os dados de origem que irão compor as informações do DW. Compreende os sistemas OLTP, arqui-
vos em diversos formatos (XLS, TXT, etc), sistemas de CRM, ERP, entre vários outros.
ETL: o ETL, do inglês Extract, Transform and Load, é o principal processo de condução dos dados até o armazenamento definitivo
no DW. É responsável por todas as tarefas de extração, tratamento e limpeza dos dados, e inserção na base do DW.
Staging Area: a Staging Area é uma área de armazenamento intermediário situada dentro do processo de ETL. Auxilia a transição
dos dados das origens para o destino final no DW.
Data Warehouse: essa é a estrutura propriamente dita de armazenamento das informações decisivas. Apenas os dados com valor
para a gestão corporativa estarão reunidos no DW.
Data Mart: o Data Mart é uma estrutura similar ao do DW, porém com uma proporção menor de informações. Trata-se de um
subconjunto de informações do DW que podem ser identificados por assuntos ou departamentos específicos. O conjunto de Data
Marts em conformidade dentro da organização compõe o DW.
OLAP: o OLAP, do inglês On-line Analytical Processing, na arquitetura de um DW se refere as ferramentas com capacidade de
análise em múltiplas perspectivas das informações armazenadas.
Data Mining: Data Mining ou Mineração de Dados, se refere as ferramentas com capacidade de descoberta de conhecimento
relevante dentro do DW. Encontram correlações e padrões dentro dos dados armazenados.
O fluxo das atividades nessa arquitetura se inicia com a extração dos dados das origens. Esses dados são então armazenados
temporariamente na Staging Area, onde são tratados com as regras e padrões predeterminados para então prosseguir para a etapa
de carga (Load), em que os dados são carregados no DW. Por fim, essas informações são normalmente consultadas através de ferra-
mentas de análises (OLAP) ou ferramentas de mineração (Data Mining) para encontrar, assim, as respostas e insights necessários para
a tomada de decisão.
Portanto, com essa visão geral da arquitetura do DW, é possível conceber e entender melhor o funcionamento dessa tecnologia
que há anos vem se destacando no mercado como uma das mais importantes estruturas de armazenamento de informações estra-
tégicas. Cabe as empresas perceberem o valor agregado ao DW e antecipar a concorrência no que tange a gestão das informações
que fornecem competitividade e inteligência no mercado, além de favorecerem o crescimento e alcance de resultados positivos na
organização.

Qualidade na Modelagem dos Dados de um Data Warehouse


O contexto no qual as empresas estão inseridas atualmente demanda das organizações uma capacidade de analisar, planejar e
reagir rápido para poder acompanhar ou superar as exigências dos clientes e à ameaça da concorrência. Para que isto seja possível, é
necessário que a organização tenha disponível, quando necessários, as informações que constituem a base para obtenção de vanta-
gens competitivas e maior fidelidade dos clientes.
A todo o momento uma grande quantidade de informações sobre os mais variados aspectos dos negócios da empresa é gerada e
armazenada, passando a fazer parte da sua base de conhecimento.
É importante ter um padrão e fazer a escolha correta da modelagem a ser usada. Serão abordadas nesse artigo: Modelagem
Entidade-Relacionamento, Modelagem Multidimensional e Modelagem de Dados Corporativos.

Questões que devem ser observadas na Modelagem de Dados


Para KIMBALL (1998), deve-se observar alguns aspectos durante a fase de elaboração da modelagem dos dados de um DW para
que as consultas não produzam resultados incorretos, pois estas consultas servirão de base para as tomadas de decisões das empre-

93
CONHECIMENTOS DE INFORMÁTICA

sas. Deve-se tomar cuidado para que o processamento analítico não se torne muito lento ou até mesmo impossível de ser executado.
Algumas questões a serem observadas na visão de KIMBALL (1998):
atributos semi-aditivos e não aditivos. O primeiro refere-se àqueles que só podem ser adicionados ao longo de algumas dimen-
sões, o que restringe o número de consultas apenas àquelas dimensões em que o fato pode ser adicionado. Já os não aditivos são
aqueles que não podem ser adicionados a qualquer dimensão: para este tipo só pode resumir registros através de contagens ou então
consultar um a um.
É a tabela que fica no centro da estrela rodeada pelas tabelas auxiliares chamadas de tabelas dimensões. Na tabela de fatos são
armazenadas as chaves primárias das tabelas dimensões e sempre é guardado um histórico nesta tabela).
Não se deve adicionar o atributo semi-aditivo ao longo das dimensões da tabela fatos: deve-se limitar assim as operações válidas.
- dimensões descaracterizadas: normalmente correspondem a números de pedidos, números de fatura, etc., ou seja, chaves de
dimensão sem uma tabela correspondente em tabelas de fatos em que o registro da mesma é o documento propriamente dito ou
uma linha de item do documento.
- dimensões derivadas que suportam agregações: é de fundamental importância que seja construída a tabela de fatos derivados
em vários níveis superiores de detalhe para melhorar o desempenho das consultas. De acordo com, KRATZ (2007) existem diversas
formas de agregações no DW, sendo as mais comuns:
a) cumulativa simples: as transações diárias são transportadas do ambiente operacional e resumidas em forma de registros no
DW. O resumo pode ser feito por qualquer área de interesse, segundo a qual o DW esteja organizado;
b) resumo rotativo: os dados passam do ambiente operacional para o DW, como mencionado anteriormente. A diferença está na
forma como é realizada a agregação;
c) dimensões grandes: não se deve desmembrar as dimensões, mesmo que elas sejam extensas, pois poderá causar um desem-
penho limitado;
d) dimensões de modificações lentas: o DW deve representar de forma concreta o histórico passado, por isso não se pode consi-
derar que as entidades não se modificam ao longo do tempo;
e) tabela de fatos sem fatos: alguns processos que são representados no DW produzem tabelas de fatos semelhantes às tabelas
que foram construídas, mas que não contém fatos mensuráveis.
Modelagem de Dados Entidade-Relacionamento
O modelo entidade-relacionamento (Figura 1) é uma ferramenta de modelagem usada para definir informações que serão neces-
sárias a um modelo de dados baseado em entidades e relacionamentos (LOBO, 2007).
O modelo de entidade-relacionamento é representado por um diagrama ER (Entidade-Relacionamento) e utiliza três símbolos
gráficos:
- entidade representa as coisas importantes em uma organização;
- atributos, que são as propriedades das entidades; e relacionamento, que é quando uma entidade está relacionada a uma ou
mais entidades (MACHADO,2006).
exemplo de modelo entidade-relacionamento

94
CONHECIMENTOS DE INFORMÁTICA

A abordagem ER é composta de uma técnica de diagrama- O nome de um atributo deve ser único em uma entidade.
ção e de um conjunto de conceitos que devem ser entendidos e Por exemplo, denominando um atributo de data_1 ou data_2
respeitados. A técnica de diagramação utilizada é bastante sim- não está clara sua semântica, ou seja, o que este atributo repre-
ples e serve como meio de representação dos próprios conceitos senta. Por outro lado, colocar data_do_pedido fica claro, referin-
por ela manipulados. É utilizado um retângulo para representar do- se à emissão de um pedido (MACHADO, 2004).
as entidades, um losango para representar os relacionamentos e
balões para indicar e alocar atributos (COUGO, 1997). Agregação
O modelo de ER é bastante simples e objetivo, por isso, a A modelagem de sistemas usa o termo agregação com os
abordagem ER possui muita flexibilidade e adaptabilidade. Mas mais variados significados. Porém, o conceito lançado pela mo-
ao contrário do que possa parecer essa é a maior qualidade do delagem de dados refere-se à visão de um par de entidades rela-
modelo (COUGO,1997). cionadas com cardinalidade de muitos para muitos (MACHADO,
2004).
Entidades MACHADO (2004) chama a atenção para a existência de de-
A entidade é definida como aquele objeto existente no pendências entre os fatos, onde um fato somente acontece após
mundo real, com uma identificação diferente e que possui signi- a existência do outro fato, mas isso não é possível demonstrar
ficado próprio (MACHADO,2006). em um diagrama de ER.
Segundo MACHADO (2006), uma pessoa, um lugar ou um
evento podem ser definidos como entidades, pois representam Modelagem de Dados Multidimensional
classes de objetos, que são coisas do mundo real e podem ser Para MACHADO (2004), a modelagem de dados multidi-
observadas e classificadas por suas propriedades e característi- mensional é mais fácil e mais simples de ser entendida do que
cas. a modelagem de dados de entidade-relacionamento. Mas ele
deixa claro que é um conceito novo e ainda não tem a firmeza
Para identificar e reconhecer um objeto como uma entida- em seus detalhes de técnicas de desenvolvimento para sistemas
de pode-se observar cinco grupos de elementos: as coisas tan- analíticos como o modelo de entidade-relacionamento.
gíveis, as funções exercidas por elementos, eventos ou ocorrên- Modelagem multidimensional é uma técnica de concepção
cias, interações e especificações (COUGO, 1997). e visualização de um modelo de dados de um conjunto de medi-
É de extrema importância o nome que é dado a uma das que descrevem aspectos comuns de negócio. Sua utilização
entidade para facilitar o seu entendimento e a comunicação ajuda na sumarização e reestruturação dos dados e apresenta
na modelagem. A nomenclatura semântica que representa as visões que suportam a análise dos valores destes dados (MA-
características e o escopo da entidade é o critério a ser utilizado CHADO,2004).
para uma entidade (MACHADO, 2004). De acordo com OLIVEIRA (2002), um banco de dados multi-
dimensional não armazena os dados como registros em tabelas,
Relacionamentos mas sim em arrays multidimensionais, possuindo um número
O relacionamento é representado através de linhas que li- fixo de dimensões.
gam duas entidades em um diagrama ER (MACHADO, 2004). Três elementos básicos compõem o modelo multidimensio-
Uma entidade pode se relacionar com diversas outras en- nal: (MACHADO, 2004)
tidades, independente do seu relacionamento ser entre instân- Fatos: é uma coleção de itens de dados composta de medi-
cias de objetos de diferentes tipos, como, por exemplo, relacio- das utilizada para analisar o processo de negócio de uma empre-
nar Pessoa com Carro, ou entre instâncias de um mesmo tipo sa, refletindo assim a evolução dos negócios do dia a dia. Esse
de objeto, por exemplo, um auto relacionamento de Vigilante conceito é implementado em tabelas denominadas tabelas de
(COUGO, 1997). fato (fact tables) e representado por valores numéricos;
Dimensões: são os elementos que participam de um fato
Atributos e que determinam o contexto de um assunto de negócios. As
Os atributos descrevem as características de propriedades dimensões podem ser compostas por membros que podem con-
de uma entidade (MACHADO, 2004). Para COUGO (1997), ao se ter hierarquias. Membros são as possíveis divisões ou classifica-
observar um objeto em um ambiente, na verdade, estão sendo ções de uma dimensão. Por exemplo, a dimensão tempo pode
reconhecidos os elementos identificados através de suas carac- ser dividida nos seguintes membros: ano, trimestre e mês; e a
terísticas próprias. Estas características, inerentes a cada um dimensão localização em: cidade, estado e país;
desses objetos serão, em princípio, comuns a todos os objetos, Medidas (variáveis): são os atributos numéricos que repre-
ou elementos individualizados, pertencentes a um mesmo con- sentam um fato, ou seja, o desempenho de um indicador de
junto. negócios relativo às dimensões que participam desse fato. Uma
Desta forma, ao observar um objeto que passa pela rua a medida é determinada pela combinação dessas dimensões e es-
nossa frente, seremos capazes de, em um primeiro momento, tão localizados como atributos de um fato. Por exemplo, o valor
definir que o objeto visto é um “carro” e não uma “pessoa”. Este em reais das vendas, o número vendido de unidades de produ-
tipo de reconhecimento é realizado a partir da verificação de tos e a quantidade em estoque.
uma série de características para as quais atenderemos e julga- Os modelos multidimensionais tiram proveito de relações
remos. É através das características particulares de cada objeto inerentes aos dados, para gerar estes em matrizes multidimen-
é que conseguimos identificar cada um (COUGO, 1997). sionais chamadas cubos de dados. Porém, o número de dimen-

95
CONHECIMENTOS DE INFORMÁTICA

sões, quando maior que três, sugere um hipercubo. Como a vi- - transformação de relacionamentos entre dados em artefa-
sualização gráfica de um hipercubo é difícil, a literatura utiliza tos dos dados: os relacionamento encontrados nas modelagens
geralmente como referência apenas o cubo. clássicas assumem que há um e somente um valor de negócio
O modelo de dados multidimensional é caracterizado por no relacionamento. O DW tem característica de armazenar da-
valores, geralmente contínuos, distribuídos em uma ou mais di- dos históricos, possuindo muitos valores para um dado relacio-
mensões, como por exemplo, o total de vendas de um produto namento entre duas tabelas. Sendo assim, a melhor maneira de
agrupado por mês e por loja. Para um produto, em um deter- representar o relacionamento entre duas tabelas no DW é atra-
minado mês e uma loja específica existe apenas um total de vés dos artefatos;
vendas. Pode-se imaginar estes dados através de um cubo tridi- - acomodação dos diferentes níveis de granularidade: o ní-
mensional onde uma dimensão representa os produtos, a outra vel de granularidade do sistema transacional pode ser o mesmo
representa as lojas e a terceira representa o mês/ano. do DW ou não. Alterando o nível de granularidade o modelo de
DW também sofre alteração na sua representação;
- união dos dados comuns de diferentes tabelas: considera
a possibilidade de combinar duas ou mais tabelas do modelo
corporativo em uma única tabela do modelo de DW;
- criação de arrays de dados: o modelo corporativo nor-
malmente é normalizado e existem grupos repetitivos que não
é permitido, mas há situação no ambiente de DW que podem
haver grupos repetidos de dados. As condições para a existência
destes são: quando o número de ocorrências do dado é previsí-
vel, quando a ocorrência do dado é relativamente pequena (em
termos de tamanho fixo), quando as ocorrências do dado geral-
mente são usadas juntas e por fim quando o padrão de inserção
e remoção dos dados é estável.
Há várias vantagens em se utilizar esta abordagem. Uma
delas, é que não tendo registros individuais para cada mês, uma
certa quantidade de espaço é economizada. Além disso, o índice
no modelo corporativo requer 12 entradas para cada entrada no
modelo do DW. Outra vantagem é a possibilidade de organizar
Modelagem de Dados Corporativos todas as ocorrências anuais dos dados em uma única localização
INMON (1997) recomenda a utilização do modelo de dados física, criando a possibilidade de um aumento de performance.
corporativo para construir um DW, pois este modelo possui to- Obviamente, esta melhoria de performance está condicionada
dos os atributos necessários para registrar as informações dos ao SGBD em questão, a organização física dos registros dentro
sistemas operacionais da empresa. deste, e outros (GOMES, SILVA, ALBUQUERQUE, 2007).
De acordo com INMON (1997), para utilizar o modelo de
dados corporativo tem-se que fazer um considerável número A Importância da Modelagem de Dados para Garantir a
de alterações dos dados. Para tal, INMON (1997) fornece alguns Qualidade
passos que podem ser seguidos, não se esquecendo de que o A modelagem de dados é um modo eficiente de entender
fundamental é que as decisões de transformação devem ser to- os dados. O seu propósito é prover um registro apurado de al-
madas levando-se em consideração os requisitos específicos da guns aspectos do mundo real para um contexto particular. Atra-
empresa (GOMES, SILVA e ALBUQUERQUE, 2007): vés da modelagem, o projetista do banco de dados pode elimi-
- remoção dos dados puramente operacionais: consiste na nar redundâncias, que representam algumas das fontes de in-
remoção dos dados usados apenas em ambientes operacionais formações inconsistentes e podem levar a sistemas ineficientes
como, mensagem, descrição e status, pois estes normalmente (COUGO, 1997).
não são utilizados no processo de tomada de decisão. Também Um modelo de dados é uma coleção de conceitos que po-
se deve levar em conta o custo para gerenciar grandes volumes dem ser utilizados para descrever um conjunto de dados e as
de dados. operações para a sua manipulação (BATINE, CERI, NAVATHE,
- adição de um elemento de tempo na estrutura da chave: 1992). A não utilização de um modelo implica em um cresci-
deve-se adicionar um elemento de tempo as chaves das tabelas, mento desorganizado das aplicações, promovendo altos custos,
se estas não tiverem. Como por exemplo, a chave é a identifi- esforços para a manutenção e dificuldades no crescimento de
cação do consumidor, pois mais tarde os dados do consumidor uma aplicação. O modelo permite ao usuário um melhor enten-
podem sofrer alterações e assim ficará fácil descobrir qual con- dimento do negócio, com a vantagem de facilitar a visualização
sumidor teve os dados alterados; das consequências de qualquer ação dentro do ambiente e o
- introdução de dados derivados: adiciona-se dados deriva- impacto de qualquer mudança sobre o mesmo (DEVLIN, 1997).
dos que serão usados habitualmente mas de forma que estes Ele representa a definição, caracterização e relacionamento dos
dados só sejam calculados uma única vez. Assim ocorre uma dados em um determinado ambiente. Um dos diagramas mais
redução no processamento que deve ser feito para acessar os empregados na modelagem de dados é o Diagrama de Entidade
dados derivados ou sumarizados; e Relacionamento (DER).

96
CONHECIMENTOS DE INFORMÁTICA

A modelagem deve sempre que possível levar em consi- Um documento estruturado pode ser apresentado ao usu-
deração a possibilidade de futuras implementações nas orga- ário de diferentes formas, por exemplo, numa impressão em
nizações. A capacidade de reconhecer antecipadamente estas papel, na tela de um navegador com janelas gráficas (Windows,
necessidades dependerá em grande parte da experiência e XWindows, etc), na tela simplificada de um notebook ou de
conhecimento da equipe de desenvolvimento em relação às um telefone celular ou até em algum equipamento multimídia.
necessidades da organização. A modelagem deve levar em con- Pode também ser enviado para processamento por algum sof-
sideração aspectos como: aquisição dos dados; arquivamentos tware especializado como um Gerenciador de Banco de Dados.
dos registros de dados; padronização dos dados; comunicação Os requisitos para estruturação de um documento são or-
e integração; armazenamento e recuperação das informações e togonais aos requisitos necessários para sua apresentação. Este
análise dos dados para levantamento (WEN, 2007). é um dos principais problemas da linguagem HTML onde ambos
estão misturados e que recentemente foi atacado em duas fren-
Fonte: tes:
https://tecnoblog.net/245120/banco-de-dados-importan- - introdução de “Folhas de Estilo” (“Cascading Style Sheets”)
cia/ permitindo especificar a apresentação desejada para cada ele-
https://www.ime.usp.br/~andrers/aulas/bd2005-1/aula4. mento de um documento, separadamente da sua marcação
html HTML,
http://www.fatecsp.br/dti/tcc/tcc0025.pdf - especificação da linguagem XHTML, sucessora de HTML
http://www.macoratti.net/14/02/sql_tsql1.htm 4.01, seguindo o padrão da nova meta-linguagem de marcação
https://medium.com/@alexjosesilva/pl-sql-do-b%C3%A- XML da www.org. XML é voltada para o intercâmbio de docu-
1sico-ao-avan%C3%A7ado-aad4e4a04dba mentos via Web de forma independente da sua apresentação
https://docs.microsoft.com/pt-br/azure/hdinsight/ha- final e é um subconjunto restrito da linguagem pioneira de mar-
doop/hdinsight-use-hive cação, SGML.
https://dicasdeprogramacao.com.br/6-motivos-para-usar- É importante lembrar que HTML, XHTML, XML e SGML são
-bancos-de-dados-nosql/ padrões internacionais originados na www.org, sancionados
pelas organizações ANSI e ISO, e, portanto, independentes de
https://medium.com/devtranslate/diferencas-entre-sql-e-
fabricantes de hardware ou software.
-nosql-51311f9069bd
http://www.luiztools.com.br/post/tutorial-mongodb-para-
Estrutura de documentos HTML
-iniciantes-em-nosql-2/
Um documento HTML é um conjunto (mais precisamente
https://canaltech.com.br/business-intelligence/conhecen-
uma hierarquia) de elementos :
do-a-arquitetura-de-data-warehouse-19266/
Um elemento é demarcado (usualmente) por 2 tags:
https://www.devmedia.com.br/qualidade-na-modelagem-
“tag inicial”, no formato: <nome-do-elemento atribu-
-dos-dados-de-um-data-warehouse/6978 tos(opcional) >
“tag final”, no formato: </nome-do-elemento>

Conteúdo de um elemento:
TECNOLOGIAS WEB: HTML 5, CSS 3, XML 1.1, JSON - usualmente texto entre o tag inicial e o tag final,
(ECMA-404), ANGULAR.JS 1.6.X, NODE.JS 6.11.3, REST - também pode conter outros elementos, de forma que a
hierarquia dos elementos é uma árvore
- a raiz do documento é sempre o elemento <html>
HTML (Hypertext Markup Language) é uma Linguagem de Elementos sem conteúdo e sem tag final são ditos “elemen-
Marcação (“Markup Language”) voltada para: tos vazios”. Por exemplo: <br>, <hr>, <img>
- estruturação de documentos, Tais elementos tornam complexa a análise sintática de um
- apresentação visual de documentos em um navegador documento HTML por parte do browser. Por esta razão em XHT-
(“browser”) ML eles devem conter o tag final seja na forma compacta: <br />
HTML é derivada da linguagem pioneira de marcação ou explicitamente: <br></br>.
SGML (Standard Generalized Markup Language) e foi criada por Atributo: um atributo define uma característica ou proprie-
Tim Berners Lee (o idealizador da WWW) especificamente para dade de um elemento; é sempre incluído no tag inicial de um
a composição e apresentação de documentos na Web. A evolu- elemento, usando a sintaxe: nome_do_ atributo=”valor”.
ção cronológica dessas linguagens foi a seguinte: Um elemento pode ter vários atributos, separados por es-
SGML → HTML 1.0 → HTML xx → XML → HTML 4.01 → paço(s) em branco. Ao contrário de HTML, em XHTML todo atri-
XHTML. buto deve ter um valor, mesmo que seja vazio (“”) e o valor deve
Um documento estruturado é composto por conteúdo ser sempre delimitado por aspas duplas. Por exemplo:
(texto, figuras, etc) e informação sobre o papel do conteúdo no <img src=”sun.jpg” alt=”sunburst graphic” width=”32” hei-
documento, ou seja, como êle está estruturado. Por exemplo: ght=”21” align=”left”>
um artigo técnico é usualmente composto por um “título”, “au- Entidade: uma entidade é um nome associado a alguma
tores”, “resumo”, diversas “seções” e uma “bibliografia”, nesta parte do documento (ou de um outro documento).
ordem. Cada um dos componentes (ou “elementos”) indicados Uma entidade tem papel semelhante a uma macro que
entre aspas acima, representa uma parte estrutural do docu- quando “referenciada” tem o seu nome substituído pelo texto
mento. que a define.

97
CONHECIMENTOS DE INFORMÁTICA

A “referência a uma entidade” (“entity reference”) obedece <p>Aqui vai o texto do parágrafo.
à notação: &nome-da-entidade; Geralmente parágrafos tem muitas palavras, letras meno-
Entidades podem ser “internas” ou “externas” ao documen- res que as do título</p>
to. HTML só suporta entidades internas predefinidas. Elas ser- </body>
vem para nomear caracteres especiais, geralmente usados para </html>
marcação no texto HTML como:
“<”, “>”, “&”, “ Criando seu primeiro HTML
e que são inseridos como conteúdo respectivamente, pelas Para criar seu HTML é muito simples. Primeiro, abra e crie
referências: um arquivo vazio, sem texto, com o nome index.html. Utilize o
&lt; &gt; &amp; &quot; Notepad (se estiver no windows) ou o TextEdit (se estiver no
Mac).
A estrutura básica Perceba que a extensão do seu arquivo é .html e não .txt
Todo HTML começa do mesmo jeito. Não há segredos aqui. Feito isso, copie o código utilizado no exemplo acima e cole
Você pode simplesmente copiar em algum lugar para usar esse neste documento. Salve e abra no seu navegador. Voilá! Você fez
código toda vez iniciar um novo HTML. seu primeiro arquivo HTML

<!DOCTYPE html> Principais Tags de HTML

<html lang=”pt-br”> Tags estruturais


<head> <!– –>
<meta charset=”utf-8”> Cria um comentário
<title>Título da página</title>
</head> <html> </html>
<body> Envolve todo um documento html
... aqui vai todo o codigo HTML que faz seu site...
</body> <head> </head>
</html> Envolve o cabeçalho de um documento html
A primeira linha se chamada DOCTYPE. O Doctype avisa
aos browsers, robôs de busca, leitores de tela e outras coisas <meta >
que tipo de documento e aquele que eles estao prestes a car- Fornece informações gerais sobre o documento
regar. Existem outros códigos que podemos carregar, por exem-
plo XML. Por isso o Doctype avisa o browser para que ele saiba <style> </style>
como se comportar ao ler o código. Informações de estilo
Depois começamos com a Tag HTML. Isso quer dizer que
todo o que estiver entre as tags é escrito em HTML. Ao lado da <script> </script>
palavra HTML tem um atributo (explico o que são atributos mais Linguagem script
pra frente) chamado lang, onde indicamos qual o idioma do tex-
to que escreveremos. <noscript> </noscript>
Logo após a tag html temos a tag . Na tag Head nós indica- Conteúdo alternativo para quando a linguagem script não
mos o título do documento e indicamos a tabela de caractéres for suportada
que o browser deve usar para renderizar seu texto. Também não
se preocupe com isso agora. <title> </title>
A tag &lttitle> é muito importante. É com ela que você indi- O título do documento
ca o título do documento. O Google e outros sistemas de busca
utilizam essa tag para indicar em suas buscas o título da págin. <body> </body>
Isso é muito importante para que você apareça bem nas buscas. Envolve o corpo (texto e tags) do documento html
Logo depois da tag de fechamento começamos a tag . Den-
tro deste elemento é que vamos escrever todo o código HTML bgcolor – Cor de fundo #RRGGBB
do resto do site. background – Imagem como plano de fundo
text – Cor do texto principal
<!DOCTYPE html> link – Cor dos links existentes na página
vlink – Cor do link já visitado
<html lang=”pt-br”> alink – Cor do link que foi ativado
<head> marginheight – Elimina a margem esquerda apenas no
<meta charset=”utf-8”> Netscape
<title>Título da página</title> marginwidth – Elimina a margem no topo da página apenas
</head> no Netscape
<body> topmargin – Elimina a margem no topo da página apenas no
<h1>Aqui vai o texto do título</h1> Internet Explorer

98
CONHECIMENTOS DE INFORMÁTICA

leftmargin – Elimina a margem esquerda apenas no Internet <dd> </dd>


Explorer Especifica o texto referente a um termo criado pela tag <dt>
Cabeçalhos dentro de uma lista de definição
<hn> </hn>
Cabeçalho nível n para n de 1 a 6 Formatação de caracteres
<em> </em>
Parágrafos Maior ênfase em itálico
<p> </p>
Um simples páragrafo <strong> </strong>
Maior ênfase em negrito
align – Alinhamento do parágrafo: left, right, center e justify
Links <code> </code>
<a> </a> Amostra de código
Cria um link e inclui atributos em comum
<kbd> </kbd>
href – O URL do documento que será vinculado a este. Para Texto a ser digitado
e-mail: mailto e link externo: http
name – O nome da âncora <var> </var>
target – Identifica a janela ou local em que o link deverá ser Uma variável ou espaço reservado para um outro valor
aberto: blank, self, top, parent
rel – Define os tipos de link que avançam <samp> </samp>
rev – Define os tipos de link que revertem a ação Texto de amostra
acesskey – Atribui uma tecla de atalho para este elemento
shape – Para uso com formas de objeto <dfn> </dfn>
coords – Para uso com formas de objeto Aplica um formatação no texto definido como termo de um
tabindex – Determina a ordem das guias glossário
onclick – É um evento JavaScript
onmouseover – É um evento JavaScript <cite> </cite>
onmouseout – É um evento JavaScript Uma citação
Listas
<ol> </ol> <b> </b>
Uma lista ordenada Texto em negrito

start – Define a partir de qual número a listagem começa <i> </i>


type – Tipos de caracteres ordenados: A, a, I, i, 1 Texto em itálico
<ul> </ul>
Uma lista não ordenada <u> </u>
Texto sublinhado
type – Tipos de caracteres não ordenados: disk, square, cir-
cle <tt> </tt>
<li> </li> Fonte monoespaçada (texto semelhante à maquina de es-
Um item da lista crever)

value – Numeração individual do item da lista <pre> </pre>


type – Tipos de caracteres ordenados: A, a, I, i e 1 para lista- Texto pré-formatado
gem ordenada e disk, square e circle para não ordenada
<menu> </menu> <strike> </strike>
Um menu com uma lista de itens Texto riscado

<dir> </dir> <s> </s>


Uma listagem de diretórios Texto tachado

<dl> </dl> <sub> </sub>


Uma lista de definições ou glossário Texto subscrito

<dt> </dt> <sup> </sup>


Marca o texto especificado como um termo de definição de Texto sobrescrito
um glossário

99
CONHECIMENTOS DE INFORMÁTICA

<big> </big> height – É a altura sugerida em pixels


Texto em fonte maior do que o padrão width – É a extensão sugerida em pixels
vspace – O espaço entre a imagem e o texto acima e abaixo
<small> </small> dela
Texto em fonte menor do que o padrão hspace – O espaço entre a imagem e o texto à esquerda e
à direita dela
<blink> </blink> border – Largura da borda
Texto piscando somente no Nestcape Frames
<frameset> </frameset>
<marquee> </marquee> Define um frameset
Texto animado no Internet Explorer
rows – Número de linhas no frame
Outros elementos cols – Número de colunas no frame
<hr> frameborder – Borda do frame
Uma régua horizontal framespacing – Espaçamento
onload – É um evento intrínseco
size – Espessura da linha em pixels onunload – É um evento intrínseco
width – Largura da linha em pixels ou porcentagem <frame> </frame>
align – Alinhamento da linha em center, left, right Define um frameset
color – Cor da linha em #RRGGBB
noshade – Linha sólida name – É o nome do frame-alvo
<br> src – Chama a fonte de conteúdo do frame
Uma quebra de linha frameborder – Determina a borda do frame
marginheight – Determina a largura das margens
<center> </center> noresize – Determina a capacidade de redimensionar fra-
mes
Centralizar
scrolling – Determina a capacidade de rolagem dentro dos
frames: auto, yes e no
<div> </div>
<iframe> </iframe>
Conteúdo
Define um frame in-line
align – Alinhamento: left, center e right
<noframes> </noframes>
<blockquote> </blockquote> Alterna o conteúdo quando os frames não são suportados
Texto com mais margem
Tabelas
<address> </address> <table> </table>
Assinaturas ou informações gerais sobre o autor de um do- Cria uma tabela
cumento
background – Imagem de plano de fundo
<font> </font> bgcolor – Cor de plano de fundo
Alterna tamanho , cor e tipo de fonte exibida border – Largura da borda em pixels
cols – Número de colunas
size – O tamanho da fonte varia de 1 a 7 cellpadding – Espaçamento nas células
color – A cor da fonte #RRGGBB cellspacing – Espaçamento entre as células
face – O tipo da fonte width – Largura da tabela
<basefonte> align – Alinhamento da tabela: left, center, right
Define o tamanho padrão para a fonte na página atual bordercolor – Cor na borda da tabela
<caption> </caption>
size – O tamanho da fonte varia de 1 a 7 A legenda para a tabela
Imagens
<img> <tr> </tr>
Insere uma imagem in-line no documento e inclui atributos Uma linha na tabela
comuns
align – O alinhamento horizontal do conteúdo das células
usemap – Um mapa de imagens do lado cliente dentro dessa linha com os valores possíveis left, right, center,
src – O URL da imagem justify e char
alt – Uma string de texto que será exibida em navegadores bgcolor – Cor de fundo
que não possam suportar imagens valign – o alinhamento vertical do conteúdo das células
align – Determina o alinhamento de uma determinada ima- dentro dessa linha com os valores possíveis top, middle, bottom
gem: top, middle, bottom, left e right e baseline

100
CONHECIMENTOS DE INFORMÁTICA

background – Figura como plano de fundo O que é CSS?


<th> </th> CSS é chamado de linguagem Cascading Style Sheet e é usa-
Um cabeçalho de célula da tabela do para estilizar elementos escritos em uma linguagem de mar-
cação como HTML. O CSS separa o conteúdo da representação
align – Alinhamento horizontal visual do site. Pense  na decoração da sua página. Utilizando o
valign – Alinhamento vertical CSS é possível alterar a cor do texto e do fundo, fonte e espaça-
bgcolor – Cor de plano de fundo mento entre parágrafos. Também pode criar tabelas, usar varia-
rowspan – O número de linhas pelo qual essa célula se ex- ções de layouts, ajustar imagens para suas respectivas telas e
pandirá assim por diante.
colspan – O número de colunas pelo qual essa célula se ex- CSS foi desenvolvido pelo W3C (World Wide Web Consor-
pandirá tium) em 1996, por uma razão bem simples. O HTML não foi
nowrap – Desliga o enquadramento de texto em uma célula projetado para ter tags que ajudariam a formatar a página. Você
<td> </td> deveria apenas escrever a marcação para o site.
Define uma célula de dados da tabela Tags como  <font>  foram introduzidas na versão 3.2 do
HTML e causaram muitos problemas para os desenvolvedores.
align – Alinhamento horizontal Como os sites tinham diferentes fontes, cores e estilos, era um
valign – Alinhamento vertical processo longo, doloroso e caro para reescrever o código. Assim,
bgcolor – Cor de plano de fundo o CSS foi criado pelo W3C para resolver este problema.
rowspan – O número de linhas pelo qual essa célula se ex- A relação entre HTML e CSS é bem forte. Como o HTML é
pandirá uma linguagem de marcação (o alicerce de um site) e o CSS é
colspan – O número de colunas pelo qual essa célula se ex- focado no estilo (toda a estética de um site), eles andam juntos.
pandirá CSS não é tecnicamente uma necessidade, mas provavel-
nowrap – Desliga o enquadramento de texto em uma célula mente você não gostaria de olhar para um site que usa apenas
width – Largura da célula HTML, pois isso pareceria completamente abandonado.
height – Altura da célula Vantagens do CSS
Formulários A diferença entre um site que implementa CSS e outro que
<form> </form> não o usa é gigantesca e notável.
Define um formulário Você já deve ter visto um site que não carrega completa-
mente ou tem um plano de fundo branco com texto azul e preto.
action – Responsável por determinar o exato local para onde Isso significa que a parte CSS do site não foi carregada correta-
as informações coletadas no formulário deverão ser enviadas mente ou não existe.
method – Método de empacotamento dos dados do formu- E é assim que um site somente com HTML se parece. Acre-
lário: get, post e enctype=”multipart/form-data” dito que você vai concordar comigo de que isso não é muito bo-
name – Nome do objeto nito, certo?
<input> Antes de usar CSS, toda a estilização tinha que ser incluí-
Caixa de texto da na marcação HTML. Isso significa que você deve descrever
separadamente todo o plano de fundo, as cores das fontes, os
type – Tipo de dado: text, file, radio, checkbox, hidden, pas- alinhamentos, etc.
sword, submit, reset, button, image Antes de usar CSS, toda a estilização tinha que ser incluída
name – Identificação do campo na marcação HTML. Isso significa que você deveria descrever
size – Largura separadamente todo o plano de fundo, as cores das fontes, os
maxlength – Número máximo de caracteres permitidos alinhamentos, etc.
value – Texto que aparece dentro da caixa ou nome do botão Mas o CSS permite que você estilize tudo em um arquivo
checked value – Valor assumido quando este campo for se- diferente, criando assim o estilo separadamente. E, mais tarde,
lecionado faça integração do arquivo CSS na parte superior da marcação
<textarea> </textarea> HTML. Isso mantém a marcação HTML limpa e fácil de manter.
Permite criar elementos de entrada com características de Resumindo, com o CSS você não precisa mais escrever re-
texto petidamente como os elementos individuais se parecem. Isso
economiza tempo, encurta o código e diminui a chance de erros.
rows – Tamanho da linha da caixa de texto O CSS permite que você tenha vários estilos em uma página
cols – Tamanho da coluna da caixa de texto HTML, tornando as possibilidades de personalização quase infi-
name – Identificação do campo nitas. Hoje em dia, isso está se tornando mais uma necessidade
wrap – Quebra de linha da caixa de texto: off, virtual, physical do que um simples recurso.
<select> </select>
Seleção Como CSS Funciona
O CSS é uma ferramenta muito potente que possibilita criar
name – Identificador diversas funcionalidades ao invés de usar JavaScript ou outra
<option> </option> linguagem mais pesada. Se usado com moderação, CSS pode
Opção viabilizar uma ótima experiência ao desenvolvedor e usuários
value – Valor do campo das páginas web.

101
CONHECIMENTOS DE INFORMÁTICA

Com o  Cascading Style Sheets  é possível criar animações Vamos simular um exemplo. Digamos que o objetivo é mu-
complexas, criar efeitos com uso de  parallax, que faz parecer dar a fonte de uma tag h1. Para isso podemos usar h1 {font-size:
que a imagem de fundo tem uma profundidade diferente um 20px;}
dos outros, criar sites interativos e também jogos com HTML5 h1 – é o seletor. Neste caso selecionamos o h1.
e CSS3. font-size – é a declaração que contém  a propriedade (font-
O CSS usa uma sintaxe simples baseada em inglês com um -size) e o valor é (20px).
conjunto de regras que o governam. Como mencionamos ante- Lista de comandos básicos CSS
riormente, o HTML nunca teve a intenção de usar elementos de São tantas opções entre seletores, propriedades e valores
estilo, apenas a marcação da página. Foi criado para descrever que pode ser muito difícil para um desenvolvedor lembrar de to-
apenas o conteúdo. Por exemplo: <p>Este é um parágrafo.</p>. dos eles apenas confiando na memória. Por isso decidimos criar
Mas como você estiliza o parágrafo? A estrutura da sintaxe uma Lista de Comandos Básicos CSS (CSS3 Incluso) que servirá
CSS é bem simples. Tem um seletor e um bloco de declaração. de ajuda para você que está aprendendo sobre o que é CSS.
Você seleciona um elemento e depois declara o que deseja fazer
com ele. Bastante simples, certo? Estilos CSS Interno, Externo e Inline
Mas tem algumas regras que você precisa saber. Isso tam- Analisaremos cada estilo de forma rápida! Para uma expli-
bém é simples, não se preocupe. cação detalhada, acesse o link que vamos disponibilizar logo
O seletor aponta para o elemento HTML que você deseja abaixo.
estilizar. O bloco de declaração contém uma ou mais declarações Vamos começar com o estilo interno. Estilos CSS feitos des-
separadas por ponto e vírgula. ta forma são carregados cada vez que um site é atualizado, o
Cada declaração inclui um nome de propriedade CSS e um que pode aumentar o tempo de carregamento. Além disso, você
valor, separados por dois pontos. Uma declaração CSS sempre não poderá usar o mesmo estilo CSS em várias páginas, pois está
termina com um ponto-e-vírgula e os blocos de declaração são contido em uma única página. Mas a vantagem disso é que ter
cercados por chaves. tudo em uma página facilita o compartilhamento do modelo
Vamos ver um exemplo: para uma visualização.
O método  externo  pode ser o mais conveniente. Tudo é
Todos os elementos <p> serão estilizados e serão coloridos
feito externamente em um arquivo .css. Isso significa que você
de azul e negrito.
pode fazer todo o estilo em um arquivo separado e aplicar o
<style>
CSS a qualquer página desejada. O estilo externo também pode
melhorar o tempo de carregamento.
p{
Por fim, tem também o estilo  Inline  do CSS. Inline traba-
color: blue;
lha com elementos específicos que possuem a tag <style>. Cada
text-weight: bold;
componente deve ser estilizado, por isso talvez não seja o me-
}
lhor ou o mais rápido para lidar com CSS. Mas pode ser útil, por
exemplo, para alterar um único elemento, visualizar rapidamen-
<style> te as alterações ou se não tiver acesso aos arquivos CSS.
Em outro exemplo, todos os elementos <p> serão centrali-
zados, com tamanho 16x e de cor pink. Como Criar uma Folha de Estilo
<style> Para criar uma folha de estilos é bem simples. Basta abrir
p{ seu editor de códigos, como o Sublime, e criar um documento
novo.
text-align: center; Depois de criado, salve como estilo.css, mesmo sem ainda
font-size: 16px; ter escrito nada (este .css é o que define um arquivo ser reco-
color: pink; nhecido pelo navegador como a folha de estilo).

}
</style>

Anatomia de um comando CSS


O CSS estipula regras para o arquivo em html. Com cada re-
gra é possível estilizar o conteúdo todo ou somente determina-
dos elementos. Por isso entenda, um comando básico é compos-
to por seletor e declarações, que contém propriedade e valor.
SELETOR {PROPRIEDADE: VALOR}
A sintaxe do CSS é muito simples de aprender.  O seletor
seleciona quais elementos em html receberão a propriedade.
Pode ser  p  (parágrafo) ou o  body  (corpo da sua página). Já a
propriedade pode ser a cor ou algo mais específico como cor do
fundo (background). E por último o valor, que determina o valor
da propriedade.

102
CONHECIMENTOS DE INFORMÁTICA

Assim que for salvo, o editor de texto vai conseguir ler o arquivo com mais facilidade, até mesmo com sugestões de auto comple-
te enquanto digita os códigos da folha de estilo, como mostra o print abaixo:
Como integrar o CSS no HTML?
Após salvar como estilo.css precisamos colocar o arquivo em nosso arquivo HTML, porque é ele quem vai carregar o CSS, o CSS
sozinho não faz site! E é com tags de referência que você avisa ao HTML que existe um arquivo de estilo para ele, veja:
<link rel=”stylesheet” type=”text/css” href=”estilo.css”>
Esta tag vai indicar ao HTML que tem um arquivo CSS para ser adicionado à  página. Isto deve ser adicionado dentro da tag <head>
</head> do seu HTML, como pode ver nesse print abaixo.

103
CONHECIMENTOS DE INFORMÁTICA

Agora abra o documento estilo .css com o Sublime, que provavelmente está na mesma pasta do nosso HTML.

A partir desta última imagem, vamos entender como o CSS funciona com três parâmetros básicos:
Elementos Básicos do CSS
Os elementos são tags do HTML, #id e .classe.
1. Tags HTML
body
h1
h2
h3
h4
h5
h6
span
p
2. Classes CSS
Criar e usar uma classe CSS é simples. No documento CSS basta colocar .nome-da-classe-que-deseja . Abaixo criamos a classe
título:

104
CONHECIMENTOS DE INFORMÁTICA

Note que existe um ponto (.) antes do nome da classe. Isso faz com que o CSS entenda que se está criando uma classe para ser
usada no HTML.
Para se adicionar essa classe que criamos dentro do CSS, basta que na tag HTML tenha o parâmetro class=””.
Observação: dentro das aspas, não precisa usar o ponto (.) antes da classe pois o nome class no HTML já avisa para o CSS que é
para ele buscar pelo nome da classe com “.”

Lembrando que uma tag HTML, como h1 ou qualquer outra, pode ter mais de uma classe, basta separá-las com espaço como
mostra no exemplo abaixo:
<h1 class=”titulo fonte-grande sublinhado”>Melhor site</h1>
Nesta tag foram usadas três classes: “titulo”, “fonte-grande” e “sublinhado”.
Mas para que todas estas classes tenham efeito épreciso criá-las no CSS. Veja como criamos estas classes:

Quando abrirmos nosso HTML o título deverá ficar assim:

3- Criando ID’s CSS:


O uso dos ID’s em CSS é parecido com as classes, mas as principais diferenças são que os id’s são identificados com # e só podem
ser usados um id por tag html. Para adicionar um ID ao HTML, adicione como parâmetro id=””.
Veja que a quando usamos no HTML, também excluímos o #  do id da mesma forma que excluímos o . da classe.

105
CONHECIMENTOS DE INFORMÁTICA

Dessa forma, o botão deverá ficar assim:

DICA: Este parâmetro de ID’s não é o mais apropriado para se usar em uma página para muitos botões pois pode causar conflitos
com a linguagem de programação JavaScript, que utiliza normalmente dos ID’s no HTML para realizar ações mais complexas.
Como adicionar CSS no HTML sem a tag <link>?
Existem duas outras maneiras de se adicionar CSS no HTML, apesar de não serem recomendadas devido a um padrão adotado
mundialmente, é nosso dever te mostrar como faz.
1- Adicionar CSS no HTML sem uso do arquivo externo
Você pode adicionar o CSS colocando o estilo dentro do próprio HTML, sem usar um arquivo CSS externo como mostra o exemplo
abaixo:

106
CONHECIMENTOS DE INFORMÁTICA

Neste exemplo, o estilo fica dentro do HTML mesmo com o uso da tag <style> dentro da tag <head>. Isso faz com que tudo fique
centralizado em um único documento.
E por que não é recomendado? Quando há muitas linhas de estilo isso pode causar uma demora ao abrir a página uma vez que
o navegador lê o seu documento de cima para baixo, linha por linha. Então se tiver muitas linhas de estilo para ler, vai demorar mais
para o conteúdo da página ser mostrado.
Por isso, o ideal é usar a tag <link> para que, ao invés de ler muitas linhas de estilo, o navegador leia somente uma referência para
outro arquivo e assim fazer com que seu conteúdo seja carregado mais rapidamente.
2- Adicionar CSS no HTML utilizando o parâmetro style
Você pode adicionar CSS no HTML utilizando o parâmetro style em uma tag html específica. Mas isso afetará somente aque-
la tag e não todas as demais tags com o mesmo nome. Então, ao invés de usarmos os parâmetros id=”” ou  class=””, utilizaremos o
parâmetro style=””:
<h1 style=”font-size: 3rem;color: #333;text-align: center;”>
Veja como fica:

E por que não é recomendado? Este tipo de uso de estilos se torna um problema caso outros elementos tenham as mesmas ca-
racterísticas do seu título, por exemplo. Com isso, você teria que copiar todo o parâmetro style da tag h1.
Diante de disso, concluímos também que o mais recomendado é o uso de classes através de um arquivo de estilo externo ao
CSS. Assim, conseguimos usar os estilos de forma mais limpa e rápida e é possível reutilizar essas classes em outras tags sempre que
desejar, sem afetar o tempo de carregamento da página.

Recursos do CSS 3
Criar páginas visualmente ricas ficou muito mais fácil com as novidades trazidas pelo CSS 3. A principal função do CSS 3 é agregar
recursos visuais como transparência, transições e efeitos para criar animações de vários tipos. Por exemplo, é possível criar um relógio
de ponteiros, usando somente recursos do CSS 3.
Bordas arredondadas com CSS
Para deixar a aparência das páginas mais agradável, é muito comum o uso de bordas redondas nas várias divs que usualmente
dispõem o conteúdo do site. Atualmente, programadores utilizam de vários artifícios para obter esse efeito gráfico. Alguns utilizam
imagens, outros utilizam scripts, mas com o CSS 3 isto não será mais necessário, já que foi incluída uma propriedade para criação de
bordas arredondadas.
A  Listagem 7  apresenta o código HTML do exemplo. Estudando o código, podemos perceber na tag  <body>  a definição de
uma <div> com id mydiv contendo um pequeno texto, e no início da página temos a importação do arquivo CSS, feita com a tag <link>.
Listagem 7. Código HTML do exemplo com a propriedade de bordas arredondadas.

<html>
  <head>
  <title>Exemplo com Bordas Arredondadas</title>
  <link rel=”stylesheet” type=”text/css” href=”style.css” />
  </head>
  <body>
         <div id=”mydiv”>
               Exemplo de div com bordas arredondadas.
         </div>
  </body>
  </html>

A Listagem 8 exibe o código CSS deste exemplo. Salve este código em um arquivo com o nome style.css e coloque-o na mesma
pasta que o arquivo criado anteriormente. Veja no código CSS que algumas propriedades são configuradas para mydiv. Entre essas
configurações, setamos que o texto presente neste elemento terá um alinhamento centralizado (text-align: center), aplicamos um
fundo azul (background: blue) para facilitar a visualização das bordas, configuramos uma largura de 200 pixels (width: 200px) e, por
fim, com a propriedade border-radius, definimos que o raio da borda arredondada será de 10 pixels.
A Figura 5 ilustra este exemplo em funcionamento.
Listagem 8. Código CSS do exemplo com a propriedade de bordas arredondadas.

107
CONHECIMENTOS DE INFORMÁTICA

#mydiv {
         text-align: center;
         background: blue;
         width: 200px;
         border-radius: 10px;
  }

Figura 5. Exemplo da div com bordas redondas em funcionamento.

Também é possível arredondar a borda de cada canto separadamente, através das seguintes propriedades CSS 3:
border-radius-topleft – para o canto superior esquerdo;
border-radius-topright – para o canto superior direito;
border-radius-bottomright – para o canto inferior direito;
border-radius-bottomleft – para o canto inferior esquerdo.
Ou ainda podemos passar todos os valores numa única declaração, assim como outras propriedades CSS permitem:

border-radius: 10px 20px 30px 40px;

Efeito de sombra de caixa


Outro efeito gráfico que pode ajudar a enriquecer o visual de uma aplicação web é o efeito de sombra de caixa. Este efeito exibe
uma sombra para o elemento ao qual foi adicionado, como mostra a Figura 6. Para demonstrar seu funcionamento, este recurso foi
aplicado em um elemento div. O código apresentado na Listagem 9 pode ser usado para testar esta funcionalidade.

Figura 6. Exemplo de div com efeito de sombra.

Observando o código, veja que na tag <body> da página é criada uma <div> e na tag <style>definimos a propriedade box-shadow,
responsável por aplicar o efeito de sombra. Os argumentos passados à propriedade são respectivamente: a distância horizontal da
sombra, a distância vertical, o nível de desfocagem e a cor da sombra.
Listagem 9. Código da página usando a propriedade box-shadow.

108
CONHECIMENTOS DE INFORMÁTICA

<html>
  <head>
  <style type=”text/css”>
  div {
         width: 300px;
         height: 100px;
         background-color: yellow;
         box-shadow: 10px 10px 5px #888888;
  }
  </style>
  </head>
  <body>
  <div></div>
  </body>
  </html>
Efeito de sombra de texto

O CSS 3 também tem algumas novidades com relação a efeitos em textos, suprindo necessidades há muito tempo conhecidas por
programadores web que, comumente, fazem uso de imagens e até mesmo plug-ins externos quando é necessário a criação de textos
com um visual mais elaborado.
Com a finalidade de apresentar um dos novos recursos, na Listagem 10 temos o código para a demonstração do efeito de sombra
de texto. Ao executar o exemplo, vamos obter o resultado demonstrado pela Figura 7.
Listagem 10. Código do exemplo com efeito de sombra de texto.

<html>
  <head>
  <title>Efeitos de texto com CSS 3</title>
  <style type=”text/css”>
  h1 {
         text-shadow: 5px 5px 5px #FF0000;
  }
  </style>
  </head>
  <body>
         <h1>Efeito de Sombra</h1>
  </body>
  </html>

No código, foi criado um título (elemento <h1>) dentro do <body> da página, e no início da mesma foi definida a tag <style> na
qual atribuímos a propriedade CSS text-shadow para o elemento <h1> citado anteriormente.
text-shadow é a propriedade responsável por aplicar o efeito de sombra de texto. Neste caso, utilizamos a propriedade para apli-
car este efeito ao título. Veja que é possível definir uma cor para a sombra e também a sua distância em relação ao texto.
Observando o código CSS, note que os argumentos passados depois da propriedade são exatamente os mesmos do exemplo
anterior.

Figura 7. Página do exemplo com efeito de sombra de texto.

109
CONHECIMENTOS DE INFORMÁTICA

Quebra de linha para palavras grandes em espaços curtos


Em uma página web, às vezes, uma palavra pode ser muito grande para uma determinada área e, em consequência, se expandir
para fora dos limites do elemento HTML ao qual está inserida. Uma situação que muitas vezes presenciamos ao utilizar a internet no
nosso dia-a-dia. Para entendermos melhor esse problema, execute o código da Listagem 11.
Listagem 11. Código com palavra muito longa.

<html>
  <head>
  <style type=”text/css”>
  #test {
         width: 150px;
         border: 1px solid #000000;
  }
  </style>
  </head>
  <body>
         <p id=”test”> Este parágrafo contém uma palavra muito
longa:
         estaéumapalavramuitomuitomuitolonga. Esta palavra
longa
         deve quebrar para a linha seguinte.</p>
  </body>
  </html>

Ao abrir a página no navegador (veja a Figura 8), note que uma palavra ultrapassou os limites do elemento <p>. Isto porque a
palavra toda ocupa uma extensão maior do que a largura do componente, que neste caso é de 150px.

Figura 8. Exemplo de palavra longa excedendo o limite do componente.

Para evitar que este tipo de situação indesejada aconteça, o CSS 3 traz a propriedade word-wrap. Com o seu uso podemos garantir
que todo o texto esteja envolvido pelo elemento HTML, mesmo que, às vezes, isso signifique que a palavra seja quebrada ao meio.
Para vermos o uso desta propriedade, substitua o conteúdo da tag <style> pelo código da Listagem 12.
Listagem 12. Código usando propriedade word-wrap.

<style type=”text/css”>
  #test {
         width: 150px;
         border: 1px solid #000000;
         word-wrap: break-word;    
  }
  </style>

110
CONHECIMENTOS DE INFORMÁTICA

Ao executar novamente a página, vamos ter o resultado mostrado na Figura 9. Agora sem o problema de a palavra exceder os
limites do componente, pois ao utilizar a propriedade word-wraprecebendo break-word como argumento, se a palavra for longa de tal
forma a ultrapassar a região da tag, esta palavra é quebrada (break-word), continuando na próxima linha.

Figura 9. Exemplo de palavra longa sendo envolvida dentro do elemento.

Alterando tamanho, forma e posição de elementos HTML


Um novo recurso também foi adicionado com o objetivo de permitir alterar a posição, forma e tamanho de elementos HTML.
Essas mudanças são feitas através do atributo CSS transform, que além de permitir a criação de aplicações com um visual mais rico,
pode ser usado em conjunto com scripts para a criação de efeitos animados.
No Google Chrome, navegador que está sendo usado para as demonstrações deste artigo, para o uso da propriedade transform é
necessário acrescentar o prefixo -webkit-.
Com o objetivo de ilustrar o uso dessa funcionalidade, vamos executar um exemplo que rotaciona a posição de uma div. O código
é apresentado na Listagem 13.
Listagem 13. Exemplo rotacionando uma div.

<html>
  <head>
  <style type=”text/css”>
  div
  {
         width:100px;
         height:75px;
         background-color:red;
         border:1px solid black;
  }
  #div2
  {
         -webkit-transform:rotate(30deg);
  }
  </style>
  </head>
  <body>
         <div>Este é um elemento div.</div>
         <div id=”div2”>Este é um segundo elemento div.</div>
  </body>
  </html>

Observe no código que duas divs foram criadas no corpo da página. Na tag <style> foram definidas configurações CSS gerais para
estes dois elementos. No entanto, somente para a div2 temos a definição da propriedade -webkit-transform recebendo como parâme-
tro rotate(30deg), que indica que a div2 deverá ser rotacionada em 30 graus. O resultado desta configuração é exibido na Figura 10.

111
CONHECIMENTOS DE INFORMÁTICA

Figura 10. Rotacionando div com CSS 3.

O atributo transform possui muitos outros recursos que não serão abordados, como por exemplo: scale – responsável por redi-
mensionar o elemento; translate – responsável por alterar a posição; skew – que faz uma transformação alterando os ângulos do ele-
mento; e matrix – que altera a posição, ângulos e rotaciona o elemento (usando uma mesma propriedade). Caso tenha se interessado
pelo assunto, visite o tutorial sobre CSS 3 que se encontra na seção Links.

Efeitos de transição
A última funcionalidade CSS 3 que será demonstrada são os efeitos de transição (transition). Esta propriedade permite alterar
gradualmente valores de outros atributos CSS. Assim como no exemplo anterior, é necessária a inclusão do prefixo -webkit- para que
este recurso funcione no Google Chrome. Na Listagem 14 encontra-se o código do exemplo.
Listagem 14. Código do exemplo com efeito de transição.

<html>
  <head>
  <style type=”text/css”>
  div {
  width: 100px;
  height: 100px;
  background: red;
  -webkit-transition: width 2s, height 2s, -webkit-transform
2s;
  }
  div:hover {
  width: 200px;
  height: 200px;
  -webkit-transform: rotate(180deg);
  }
  </style>
  </head>
  <body>
         <div>Passe o mouse sobre esta área para ver o efeito de
transição!</div>
  </body>
  </html>

Na tag <style> do exemplo especificamos através do div:hover que, ao ser sobreposta pelo cursor, a div irá alterar sua largura de
100px para 200px (atributo width), sua altura de 100px para 200px(atributo height) e sua rotação em 180 graus (-webkit-transform:
rotate). Ainda na tag <style>, em div setamos na propriedade -webkit-transition um tempo de dois segundos para a transição dos
valores de cada propriedade.

112
CONHECIMENTOS DE INFORMÁTICA

Desta forma, ao rodar o exemplo e sobrepormos o cursor do mouse sobre a div, vai demorar dois segundos para esta rotacionar e
redimensionar sua largura e altura. A transição dos valores das propriedades acontecerá de maneira gradativa dentro deste intervalo
de tempo. Veja na Figura 11uma imagem da div no decorrer do processo de transição.

Figura 11. Efeitos de transição com CSS3.

XML (Extensible Markup Language)


XML (Extensible Markup Language) é uma meta-linguagem de marcação criada a partir de SGML (é uma forma restrita de SGML),
com os seguintes objetivos básicos:
- prover o intercâmbio de documentos através da Web de forma independente de sistemas operacionais ou formatos de arquivos,
- suportar uma grande gama de aplicações, permitindo a definição de elementos pelo usuário (ou aplicação) para estruturar o
documento,
- facilitar a análise de documentos XML por programas,
- documentos XML devem ser legíveis por humanos,
- economia de tags de marcação não é importante,
- ter uma especificação formal para a marcação de documentos
XML não possui um conjunto pré-definido de tags ou elementos. Por isto, como SGML, XML é uma metalinguagem para descrição
de linguagens de marcação: num documento XML, tags (mais precisamente elementos), para definir o significado dos dados, podem
ser definidos livremente de acordo com o domínio dos dados e da aplicação.
XML não provê mecanismos para apresentação de dados nem para ligação entre documentos. Tais recursos são disponibilizados
por outras especificações de linguagens como, por exemplo, XSL (Extensible Style Language) para estilos, e Xlink para especificação
de links entre documentos.
XML tornou-se um padrão internacional em 1998. Desde então várias linguagens de marcação seguindo o padrão XML foram
criadas e estão sendo padronizadas no âmbito da w3.org. Recentemente, pequenas adaptações a HTML 4.01 para seguir os requisitos
de XML, deram origem à linguagem XHTML.
Ao contrário de SGML, XML não requer um DTD para cada documento (embora seja altamente desejável, já que o DTD define
uma gramática para os elementos e atributos do documento). A análise sintática para validação de documentos SGML pode ser muito
complexa e foi uma das principais razões para XML adotar e exigir a forma mais simples e verbosa de aninhamento completo e explíci-
to de todos os elementos de um documento XML, além de requisitos rígidos para definição de valores de atributos, etc. Nesse caso o
documento é dito “bem formado” (well formed) e requisitos para isto estão detalhados na especificação XML 1.0 e um resumo pode
ser visto no documento anexo sobre XHTML.
Se o documento XML possui um DTD associado (ou incluído no próprio documento, conforme veremos) e segue a gramática espe-
cificada pelo DTD, então êle é dito válido. A validação de um documento garante que os dados esejam completos, colocados na ordem
correta no documento e com os valores apropriados dos atributos. Vários pacotes de software livres estão sendo disponibilizados para
verificar a boa formação e a “validação” de documentos XML.

Composição de um documento XML


Um documento XML é composto pelos seguintes tipos de marcação (a maioria deles também é suportada por HTML e XHTML):
- elementos,
- atributos,

113
CONHECIMENTOS DE INFORMÁTICA

- Comentários, no mesmo formato de HTML e XHTML: <person gender=”female”>


<!-- isto é um comentário --> <name>
- Entidades: em XML são utilizadas para representar carac- <family>Tuttle</family> <given>Claire</given>
teres especiais de marcação (<, &, >, “ ), para texto usado com </name>
frequência no documento e também para incluir conteúdo pro- <email>ctuttle@megacorp.com</email>
veniente de arquivos externos. HTML, como vimos, só suporta </person>
o primeiro tipo de entidade. Entidades são declaradas no DTD. </addressBook>
- Instruções para processamento (Processing Instructions, A parte XML do documento é autoexplicativa e mostra o
ou PI) com o formato: aninhamento apropriado dos elementos. Observe que a in-
<?nome dados ?> dentação aumenta a legibilidade do documento. Vamos expli-
. As informações em dados devem ser passadas a uma apli- car agora o DTD correspondente (maiores detalhes podem ser
cação identificada por nome. A primeira marcação de um docu- vistos no tutorial recomendado. V. pode inclusive validar seus
mento XML é justamente uma PI que identifica a versão de XML documentos XML nesse “site”).
e o conjunto de caracteres do documento como em : linha 2:
<?xml version=”1.0” encoding=”iso-8859-1”?> o nome após DOCTYPE deve ser o nome do elemento raiz,
- Seções CDATA: delimitam conteúdo que deve ser ignorado no caso, addressBook.
pelo analisador sintático do documento (caracteres especiais de linha 3:
marcação não são interpretados como tais).A sintaxe é: o elemento addressBook deve conter um ou mais suble-
<![CDATA[ texto qualquer finalizado por: ]]> mentos person (indicado pelo símbolo +)
Exceto pela sequencia ]]> quaisquer caracteres podem apa- linha 4:
recer em texto. o elemento person deve ter um subelemento name e zero
ou mais subelementos email (indicado pelo *), nesta ordem.
Um exemplo de documento XML com seu DTD embutido linha 5:
Este exemplo foi adaptado deste tutorial XML da IBM e o atributo gender do elemento person deve ter um dos dois
descreve um documento para um “livro de endereços” (Addres-
valores male ou female. #IMPLIED significa que o atributo é op-
sBook) que contém um ou mais elementos “pessoa” (person),
cional. Se fosse obrigatório deveriamos colocar: #REQUIRED. É
onde cada pessoa possui um nome (name) e um endereço de
possivel especificar também que o atributo tem um valor fixo:
correio eletrônico (email). Por sua vez o nome da pessoa é com-
#FIXED ‘valor’ ou um valor default.
posto do sobrenome (family) e do pre-nome (given).
linha 6:
Observe que o DTD do documento começa com a marcação
o elemento name deve ter os dois atributos family e given,
<!DOCTYPE e termina com a marcação ]>. Este DTD poderia es-
nesta ordem;
tar num arquivo externo, digamos,”ab.dtd” (pode inclusive ser
linhas 7,8 e 9:
referenciado através de uma URL) e neste caso o DOCTYPE seria
incluído logo após a primeira linha com o formato: os elementos family, given e email são cadeias de caracteres
<!DOCTYPE addressBook SYSTEM “ab.dtd” > ou, por exem- do conjunto de caracteres especificados para o documento.
plo: linha 10:
<!DOCTYPE addressBook SYSTEM “http://www.networking. marcação para fim do DTD.
ibm.com/xml/ab.dtd”>
A raiz do documento é o elemento: <addressBook> Comparações entre HTML e XML
As linhas iniciais estão numeradas apenas para facilitar a HTML e XML são primos. Eles derivam da mesma inspira-
explicação a seguir. ção, o SGML. Ambos identificam elementos em uma página e
ambos utilizam sintaxes similares. Se você é familiar com HTML,
1.<?xml version=”1.0” encoding=”iso-8859-1”?> também o será com o XML. A grande diferença entre HTML e
2.<!DOCTYPE addressBook [ XML é que o HTML descreve a aparência e a ações em uma pá-
3.<!ELEMENT addressBook (person)+> gina na rede enquanto o XML não descreve nem aparência e
4.<!ELEMENT person (name,email*)> ações, mas sim o que cada trecho de dados é ou representa !
5.<!ATTLIST person gender (male|female) #IMPLIED> Em outras palavras, o XML descreve o conteúdo do documento !
6.<!ELEMENT name (family,given)> Como o HTML, o XML também faz uso de tags (palavras
7.<!ELEMENT family (#PCDATA)> encapsuladas por sinais ‘<’ e ‘>’) e atributos (definidos com
8.<!ELEMENT given (#PCDATA)> name=”value”), mas enquanto o HTML especifica cada senti-
9.<!ELEMENT email (#PCDATA)> do para as tags e atributos (e frequentemente a maneira pela
10.]> qual o texto entre eles será exibido em um navegador), o XML
<addressBook> usa as tags somente para delimitar trechos de dados, e deixa
<person gender=”male”> a interpretação do dado a ser realizada completamente para a
<name> aplicação que o está lendo. Resumindo, enquanto em um docu-
<family>Wallace</family> <given>Bob</given> mento HTML uma tag <p> indica um parágrafo, no XML essa tag
</name> pode indicar um preço, um parâmetro, uma pessoa, ou qualquer
<email>bwallace@megacorp.com</email> outra coisa que se possa imaginar (inclusive algo que não tenha
</person> nada a ver com um p como por exemplo autores de livros).

114
CONHECIMENTOS DE INFORMÁTICA

Os arquivos XML são arquivos texto, mas não são tão des- A partir dos tipos básicos, é possível construir tipos com-
tinados à leitura por um ser humano como o HTML é. Os docu- plexos: array e objeto. Os arrays são delimitados por colchetes,
mentos XML são arquivos texto porque facilitam que os progra- com seus elementos separados entre vírgulas. As listagens 6 e 7
madores ou desenvolvedores “debuguem” mais facilmente as mostram exemplos.
aplicações, de forma que um simples editor de textos pode ser Listagem 6: Array de Strings
usado para corrigir um erro em um arquivo XML. Mas as regras [“RJ”, “SP”, “MG”, “ES”]
de formatação para documentos XML são muito mais rígidas do Listagem 7: Matriz de Inteiros
que para documentos HTML. Uma tag esquecida ou um atribu- [
to sem aspas torna o documento inutilizável, enquanto que no [1,5],
HTML isso é tolerado. As especificações oficiais do XML determi- [-1,9],
nam que as aplicações não podem tentar adivinhar o que está [1000,0]
errado em um arquivo (no HTML isso acontece), mas sim devem ]
parar de interpretá-lo e reportar o erro. Os objetos são especificados entre chaves e podem ser com-
postos por múltiplos pares nome/valor, por arrays e também
JSON por outros objetos. Desta forma, um objeto JSON pode repre-
JSON (JavaScript Object Notation) é um modelo para  ar- sentar, virtualmente, qualquer tipo de informação! O exemplo
mazenamento e transmissão de informações no formato texto. da Listagem 8 mostra a representação dos dados de um filme.
Apesar de muito simples, tem sido bastante utilizado por apli- Listagem 8: Objeto
cações Web devido a sua capacidade de estruturar informações {
de uma forma bem mais  compacta  do que a conseguida pelo “titulo”: “JSON x XML”,
modelo XML, tornando mais rápido o parsing dessas informa- “resumo”: “o duelo de dois modelos de representação de
ções. Isto explica o fato de o JSON ter sido adotado por empre- informações”,
sas como Google e Yahoo, cujas aplicações precisam transmitir “ano”: 2012,
grandes volumes de dados. “genero”: [“aventura”, “ação”, “ficção”]
Este artigo apresenta uma introdução ao formato JSON e }
está dividido da seguinte forma. A Seção 2 descreve a sintaxe da É possível representar mais de um objeto ou registro de
linguagem. Em seguida, na Seção 3 realiza-se uma comparação uma só vez. Um exemplo é apresentado na Listagem 9, onde
entre os modelos JSON e XML. A Seção 4 apresenta um exemplo dois filmes são representados em um array.
de utilização prática do JSON em um programa Java - com o uso Listagem 9: Array de objetos
da biblioteca gson criada pelo Google. Por fim, na Seção 5 são [
apresentadas as conclusões e comentários finais. {
“titulo”: “JSON x XML”,
Sintaxe no JSON “resumo”: “o duelo de dois modelos de representação
A ideia utilizada pelo JSON para representar informações é de informações”,
tremendamente simples: para cada valor representado, atribui- “ano”: 2012,
-se um nome (ou rótulo) que descreve o seu significado. Esta “genero”: [“aventura”, “ação”, “ficção”]
sintaxe é derivada da forma utilizada pelo JavaScript para re- },
presentar informações. Por exemplo, para representar o ano de {
2012, utiliza-se a seguinte sintaxe: “titulo”: “JSON James”,
Listagem 1: Representando o ano de 2012 “resumo”: “a história de uma lenda do velho oeste”,
“ano”: 2012,
“ano”: 2012 “genero”: [“western”]
}
Um par nome/valor deve ser representado pelo nome en- ]
tre aspas duplas, seguido de dois pontos, seguido do valor. Os Por fim, é importante citar que a palavra-chave “null” deve
valores podem possuir apenas 3 tipos básicos: numérico (inteiro ser utilizada para a representação de valores nulos (Listagem 10).
ou real), booleano e string. As Listagens 2, 3, 4 e 5 apresentam Listagem 10: Representando um valor nulo
exemplos. Observe que os valores do tipo string devem ser re- “site”:null
presentados entre aspas.
Listagem 2: Representando um número real JSON x XML
“altura”: 1.72 Podemos entender o JSON como uma espécie de “concor-
Listagem 3: Representando uma string rente” da XML na área de troca de informações. Nesta seção,
“site”: “www.devmedia.com.br” apresentamos algumas das principais semelhanças e diferenças
Listagem 4: Representando um número negativo entre os dois modelos para a representação de informações.
“temperatura”: -2 Semelhanças:
Listagem 5: Representando Os dois modelos representam informações no formato texto.
um valor booleano Ambos possuem natureza auto-descritiva (ou seja, basta
“casado”: true “bater o olho” em um arquivo JSON ou em um arquivo XML para
entender o seu significado).

115
CONHECIMENTOS DE INFORMÁTICA

Ambos são capazes de representar informação complexa, difícil de representar no formato tabular. Alguns exemplos: objetos
compostos (objetos dentro de objetos), relações de hierarquia, atributos multivalorados, arrays, dados ausentes, etc.
Ambos podem ser utilizados para transportar informações em aplicações AJAX.
Ambos podem ser considerados padrões para representação de dados. XML é um padrão W3C, enquanto JSON foi formalizado
na RFC 4627.
Ambos são independentes de linguagem. Dados representados em XML e JSON podem ser acessados por qualquer linguagem de
programação, através de API’s específicas.
Diferenças:
JSON não é uma linguagem de marcação. Não possui tag de abertura e muito menos de fechamento!
JSON representa as informações de forma mais compacta.
JSON não permite a execução de instruções de processamento, algo possível em XML.
JSON é tipicamente destinado para a troca de informações, enquanto XML possui mais aplicações. Por exemplo: nos dias atuais
existem bancos de dados inteiros armazenados em XML e estruturados em SGBD’s XML nativo.JSON no Java
Ao acessar a home page oficial do JSON (www.json.org) você verá que existem parsers disponíveis para quase todas as lingua-
gens: Delphi, PHP, Java, Matlab, C++, C#, etc. Uma coisa que me chamou a atenção quando acessei esta página é que, para a maioria
das linguagens, estão disponibilizados vários parsers distintos. Por exemplo, para Java, existem nada mais de 20 parsers JSON diferen-
tes!!!
Essa quantidade toda pode até intimidar os iniciantes em JSON. No universo XML a coisa é bem mais fácil, pois existem duas API’s
básicas para o parsing de informações: SAX e DOM. Ambas já são instaladas junto com o Java e, daí, basta utilizá-las. Adicionalmente, o
princípio de funcionamento das API’s SAX e DOM é bastante conhecido pelos desenvolvedores: DOM importa o documento todo para
a memória, criando uma árvore, enquanto o SAX percorre o arquivo sequencialmente disparando eventos, sem realizar a importação
de informações para a memória.
O JSON parece ainda não ter atingido esse grau maturidade. Várias pessoas/empresas implementaram os seus próprios parsers,
com diferentes princípios de funcionamento. Como ainda não há um padrão, fica difícil decidir qual utilizar! Porém, como achei que
seria interessante mostrar um exemplo prático de JSON dentro de um programa Java, optei por montar esse exemplo com o uso da
biblioteca gson, que foi desenvolvida pelo Google, é bem documentada e simples de utilizar em seu “modo básico”. Para obter esta
biblioteca, você deve acessar o site do projeto, http://code.google.com/p/google-gson/ e fazer o download do ZIP que contém os
arquivos “.jar” que compõem do gson. Para o teste descrito neste artigo, a versão utilizada foi a 2.2.2.
Após a instalação da biblioteca, você poderá utilizá-la de uma forma tão simples que vai ficar assustado! Inicialmente, você deverá
instanciar um objeto da classe Gson, do pacote com.google.gson.Gson. Para converter um objeto Java para JSON, utiliza-se o méto-
do toJson.E para fazer ao contrário, ou seja, atribuir o conteúdo de um objeto Java a partir de uma string Json, utiliza-se fromJson.
A Listagem 11 mostra um exemplo de uso do método “toJson”. Neste exemplo, o conteúdo de um objeto da classe Filme é con-
vertido para o formato JSON, armazenado na variável string “aux” e depois exibido na tela. Veja que a classe Gson é inteligente o
suficiente para entender a estrutura do objeto e modelar as suas informações no formato JSON.
Listagem 11: Método toJson
import java.util.ArrayList;

import com.google.gson.Gson;

class Filme {
public String titulo;
public int ano;
public ArrayList generos;
}

//classe com exemplo de uso do JSON


//converte objeto Filme para uma string JSON
public class GravandoJSON {

public static void main(String[] args) {

//instancia um filme e preenche suas propriedades


Filme f = new Filme();
f.titulo = “JSON x XML”;
f.ano = 2012;
f.generos = new ArrayList();
f.generos.add(“Aventura”);
f.generos.add(“Ação”);
f.generos.add(“Ficção”);

116
CONHECIMENTOS DE INFORMÁTICA

//instancia um objeto da classe Gson


Gson gson = new Gson();

//pega os dados do filme, converte para JSON e armazena em string


String aux = gson.toJson(f);

//imprime os resultados
System.out.println(aux);
}
}
O resultado é apresentado na Figura 1:

Figura 1: Resultado da execução do programa GravandoJSON

A seguir, na Listagem 12, apresenta-se um exemplo de uso do método “fromJson”. Desta vez, o conteúdo da String “aux” contém
os dados do filme modelados no formato JSON. Esse conteúdo é transportado automaticamente para um objeto do tipo Filme, bas-
tando realizar uma chamada ao método “fromJson”.
Listagem 12: Método fromJson
import java.util.ArrayList;

import com.google.gson.Gson;

class Filme {
public String titulo;
public int ano;
public ArrayList generos;
}

//classe com exemplo de uso do JSON


//converte objeto Filme para uma string JSON
public class LendoJSON {

public static void main(String[] args) {

//string com informação representada em JSON


String aux = “{\”titulo\”:\”JSON James\”,\”ano\”:2012,\”generos\”:[\”Western\”]}”;

//instancia um objeto da classe Gson


Gson gson = new Gson();

//instancia um filme e preenche seus dados com a informação vinda


//da string JSON
Filme f = gson.fromJson(aux, Filme.class);

//imprime os resultados
System.out.println(f.titulo);
System.out.println(f.ano);
System.out.println(f.generos.toString());
}
}

117
CONHECIMENTOS DE INFORMÁTICA

Observe que o método fromJson requisita os seguintes parâmetros: a string JSON e a classe do objeto que receberá os resultados.
A Figura 2 mostra o resultado da execução do programa.

Figura 2: Resultado da execução do programa LendoJSON


OBS: nos exemplos apresentados nesta seção, utilizamos strings para armazenar as informações JSON. No entanto, elas poderiam
ter sido obtidas a partir de arquivos texto sem qualquer problema. Os arquivos com dados representados em JSON costumam ter a
extensão “.json”.

O que é AngularJS?
AngularJS é um framework em javascript, de código aberto e que é mantido pelo Google. Seu objetivo é aumentar aplicativos que
podem ser acessados por um navegador web e tem como padrão o MVVM (Model-View-View-Model), em um esforço para facilitar
tanto o desenvolvimento quanto o teste dos aplicativos.
O framework AngularJS funciona através da leitura de páginas HTML, que tem embutido nelas atributos adicionais personalizados
em suas tags. Angular interpreta esses atributos como as diretivas para ligar partes de entrada ou saída de página para um modelo
que é representado por variáveis em padrão ​​javaScript. Os valores dessas variáveis ​​javaScript podem ser configurados manualmente
no código ou recuperado a partir de recursos JSON estáticos ou dinâmicos.
O Angular JS disponibiliza recursos cmpletos para facilitar a criação de um aplicativo CRUD:
- vinculação de dados,
- diretrizes básicas de modelos,
- validação de formulários,
- roteamento,
- componentes reutilizáveis
- injeção de dependência.
Angular segue o padrão MVC da engenharia de Software e encoraja o baixo acoplamento entre apresentação, dados e compo-
nentes lógicos.

Como Usar o Angular


AngularJS é distribuído como um arquivo JavaScript e pode ser adicionado a uma página da web com uma tag de script:

<script src=”https://ajax.googleapis.com/ajax/libs/angularjs/1.6.4/angular.min.js”></script>

Motivação do AngularJS
O AngularJS surgiu a partir da necessidade de evolução dos frameworks de Javascript. O Javascript é uma linguagem de progra-
mação web frontend, isso é, programação ligada à interface com o usuário.
Não é o primeiro framework popular que surgiu neste sentido. Muitos outros são utilizados por desenvolvedores, a exemplo do
jQuery, que é uma biblioteca que facilita o controle de elementos de uma página HTML, também chamado de DOM. Outros exemplos
de frameworks de Javascript: Javascript MVC, Backbone.js, Knockout.
Com o passar dos anos, tornou-se tendência que linguagem que é executada no lado do cliente (navegador) pudesse também ser
executada no lado do servidor, gerando a plataforma NODE.JS (um interpretador de código JavaScript), hoje em dia mundialmente
conhecida e utilizada.

Principais Características e Recursos do AngularJS


- Utiliza Padrão MVC (Model View Controller)
- É Baseado no Conceito SPA: Single Page Application
- Utiliza Recurso Two-Way Data Binding
- Utiliza o Conceito de Injeção de Dependência
- Utiliza Recurso de Diretivas

118
CONHECIMENTOS DE INFORMÁTICA

-> Padrão MVC ->O AngularJS Utiliza Recurso Two-Way Data Binding
Aplicações tradicionais vinculam dados em em uma úni-
ca direção, que passam pelo modelo até serem disponibiliza-
das na view (camada do usuário). O desenvolvedor precisa es-
crever um código que faça uma sincronia de maneira constante
através do modelo para que a view esteja sempre atualizada.

O AngularJS segue as melhores práticas do padrão MVC. 


MVC é uma arquitetura padrão de software, que divide
a aplicação em três camadas: a visão (view), o modelo  (mo-
del),  e o controlador (controller).
As camadas do Modelo MVC
A camada de interface com usuário (view), também co-
nhecida como cliente-side. Faz a exibição dos dados, utilizan-
do-se de #HTML e/ou XML.
A camada de manipulação dos dados (model). Responsável
pela leitura e escrita de dados, e também de suas validações. 
A camada de controle (controller). Exerce o controle de
model deverá ser aplicado e qual view será mostrado ao usu-
ário.
O AngularJS utiliza da seguinte forma estas camadas:
- A camada de interação (view) é o próprio DOM ( Docu-
ment Object Model)
- A camada de manipulação (model) é formada por dados
armazenados em formato de objetos
- A camada de controle (controllers) é concebida por clas-
ses Java script O AngularJs, fornece um recurso de Data Binding que per-
mite esta sincronização de dados de forma automática, entre os
->O AngularJS é Baseado no Conceito SPA: Single Page componentes do model e da view. O que é exibido na interface
Application do usuário é uma projeção do model, atualizado a todo instante.
As práticas baseadas em SPA envolvem codificar menos no Quando o modelo muda, a visão reflete esta mudança, e vice-
server-side e mais no client-side, proporcionando ao usuário -versa.
uma aplicação dinâmica, que carrega recursos conforme ne- Esta facilidade é possível através da adição de alguns con-
cessário. Quando um usuário acessa um site construído den- troles ( atributos ) diretamente no HTML, de forma que seja
tro do conceito de SPA, a aplicação e seus componentes são possível identificar e controlar os atributos a serem atualizados.
armazenados no lado cliente, diferente da forma tradicional,
->O AngularJS Utiliza o Conceito de Injeção de Dependência
quando o usuário precisa vistar várias páginas diferentes e re-
Injeção de Dependência é um padrão de design de software
carregá-las para visualizar atualizações.
que lida com a forma como os componentes adotam suas de-
A ideia de uma página SPA é desenvolver uma em sua to-
pendências. Com o AngularJ as dependências dos componente
talidade (ou quase totalidade) no cliente-side. É praticamente
ficam explícitas, facilitando o gerenciamento. Você pode ma-
uma aplicação Desktop rodando no navegador / App. O server-
nipular explicitamente as dependências conforme necessida-
-side muitas vezes se encarrega apenas das funções de comu-
de. Desta forma, a Injeção de dependência tornar o código mais
nicação com o banco de dados.
flexível, testável e organizado.

119
CONHECIMENTOS DE INFORMÁTICA

O AngularJS reconhece os parâmetros dos controllers e in- Ao carregarmos esse HTML no navegador e digitarmos qual-
jeta as respectivas dependências. Existem 3 formas de declarar quer coisa no input, o parágrafo é atualizado automagicamente.
dependências: Arrays, $inject ou usando diretamente os parâ- Perceberam que até agora não escrevemos nenhum código Ja-
metros de uma função. vaScript?

->O AngularJS Utiliza Recurso de Diretivas A propriedade ng-model funciona como um canal entre a
Diretivas são extensões da linguagem HTML, que fornecem nossa view e o form. Ela pode ser utilizada em inputs do tipo
a possibilidade de estender/ampliar o comportamento de ele- texto, selects, textareas, checkboxes e radio buttons.
mentos HTML. Este recurso permite a implementação de novos
comportamentos de forma declarativa.  O model, seus dados e suas validações ficam automatica-
mente disponíveis no escopo da nossa aplicação, como veremos
Principais diretivas do AngulaRJS a seguir.
Segue abaixo a lista de diretivas que permitem o desenvol-
vedor especificar tags HTML personalizadas: A associação de dados é feita através do famoso “bigode-bi-
gode” ({{ }}), passando nomes presentes no escopo (no exemplo
Estrutura inicial acima, o model nome).
Assim como qualquer aplicação web, nosso ponta-pé inicial
acontece com a criação de um página básica. A diferença aqui Enfim, JavaScript!
é que vamos informar um nova propriedade na tag do nosso Chegou a hora de escrevermos nosso primeiro trecho de có-
arquivo: ng-app. digo JavaScript. Vamos criar um controller para nossa aplicação
que carrega uma lista inicial de ítens. Os ítens são armazenados
<html ng-app> no escopo da aplicação ($scope).
<head>
<title>Lista de compras</title> function ListaComprasController($scope) {
<script src=”https://code.angularjs.org/1.0.1/angular- $scope.itens = [
-1.0.1.min.js”></script> {produto: ‘Leite’, quantidade: 2, comprado: false},
</head> {produto: ‘Cerveja’, quantidade: 12, comprado: false}
<body> ];
</body> }
</html>
Essa é a grande sacada do AngularJS. Ao declarar a proprie- O que é Node.js?
dade ng-app, estamos inicializando a nossa aplicação. É a pri- Node.js é uma plataforma construída sobre o motor JavaS-
meira de algumas novas propriedades que iremos utilizar. Todo cript do Google Chrome para facilmente construir aplicações de
o funcionamento do framework gira em torno dessas novas de- rede rápidas e escaláveis. Node.js usa um modelo de I/O dire-
clarações. cionada a evento não bloqueante que o torna leve e eficiente,
ideal para aplicações em tempo real com troca intensa de dados
O atributo ng-app na tag informa que o nosso DOM, além através de dispositivos distribuídos.
de HTML, é também um documento AngularJS. Esta proprieda- Na JSConf 2009 Européia, um programador jovem chamado
de pode ser utilizada em qualquer elemento do DOM — em al- Ryan Dahl, apresentou um projeto em que estava trabalhando.
guns casos, apenas uma parte do seu HTML será uma aplicação Este projeto era uma plataforma que combinava a máquina vir-
Angular. Por baixo dos panos, o framework define o elemento tual JavaScript V8 da Google e um laço de eventos. O projeto
com o atributo ng-app como a raiz da aplicação. apontava para uma direção diferente das outras plataformas
em JavaScript que rodam no servidor: todos I/O primitivos são
Olá, Tableless! orientado a evento. Aproveitando o poder e a simplicidade do
Para provar que o foco do Angular está no HTML e não no Javascript, isso tornou tarefas difíceis de escrever aplicações as-
JavaScript, vamos implementar um exemplo simples em nossa síncronas em tarefas fáceis. Desde quando foi aplaudido de pé
estrutura: no final do seu discurso, o projeto de Dahl tem recebido uma
popularidade e uma aprovação sem precedentes.
<html ng-app>
<head> Que problema o Node pode resolver?
<title>AngularJS - Tableless</title> Node estabeleceu o objetivo número um que é “fornecer
<script src=”https://code.angularjs.org/1.0.1/angular- uma maneira fácil para construir programas de rede escaláveis”.
-1.0.1.min.js”></script> Qual é o problema com os programas servidores atuais? Vamos
</head> fazer os cálculos. Em linguagens como Java™ e PHP, cada cone-
<body> xão cria uma nova thread que potencialmente tem anexado 2
<input type=”text” ng-model=”nome”> MB de memória com ela. Em um sistema que tenha 8 GB de
<p>Olá, Tableless! Meu nome é: {{ nome }}</p> RAM, isso põe o número máximo teórico de conexões concor-
</body> rentes a cerca de 4.000 usuários. E quando o número de usu-
</html> ários aumenta, se você quer que sua aplicação web suporte

120
CONHECIMENTOS DE INFORMÁTICA

mais usuários, você tem que adicionar mais e mais servidores. Programação orientada a Evento
Somado a estes custos também podem haver possíveis proble- Muitos programadores foram ensinados a acreditar que a
mas técnicos: um usuário pode usar diferentes servidores para programação orientada a objetos é um modelo de programação
cada requisição, então cada recurso compartilhado deve ser perfeito e a não usarem nada mais. Node utiliza o que é chama-
compartilhado para todos os servidores. Por todas estas rações, do modelo de programação orientada a evento.
o gargalho em toda a arquitetura de aplicações web (incluindo
velocidade de tráfego, velocidade do processador e velocidade Programação orientada a evento no lado do cliente com
da memória) é o número de conexões concorrentes que o servi- jQuery:
dor pode manipular.
Node resolve esta questão trocando a maneira como a cone- // jQuery code on the client-side showing how Event-Driven
xão é tratada no servidor. Ao invés de criar uma nova OS thread programming works
a cada conexão (e alocar a memória anexa a ela), cada conexão // When a button is pressed, an Event occurs - deal with it
dispara um evento executado dentro da engine de processos do // directly right here in an anonymous function, where all
Node. Node afirma que nunca vai dar deadlock, já que não há the
bloqueios permitidos, e ele não bloqueia diretamente para cha- // necessary variables are present and can be referenced
madas de I/O. Node também alega que um servidor rodando ele directly
pode suportar dezenas de milhares de conexões simultâneas. $(“#myButton”).click(function(){
Então, agora que você tem um programa que pode mani- if ($(“#myTextField”).val() != $(this).val())
pular dezenas de milhares de conexões simultâneas, o que você alert(“Field must match button text”);
pode realmente fazer com o Node? Seria incrível se você tivesse });
uma aplicação web que necessitasse desta quantidade de cone- O lado do servidor na verdade não é diferente do lado do
xões. Este é um daqueles tipos de problema: “se você tem um cliente. Claro que não há botões sendo pressionados e não há
problema, não é mais um problema”. campos de texto sendo escritos, mas em um nível mais alto, os
eventos estão ocorrendo. Uma conexão é feita – evento! Dado
O que Node definitivamente não é? é recebido através da conexão – evento! Data parou de chegar
Sim, Node é um servidor de programas. Entretanto o pro- através da conexão – evento!
duto base do Node definitivamente não é como o Apache ou Por que é que este tipo de configuração é ideal para o
o Tomcat. Estes servidores são basicamente servidores ready- Node? JavaScript é uma excelente linguagem para programa-
-to-install e estão prontos para instalar aplicativos instantâne- ção orientada a evento, porque ela permite funções anônimas
amente. Você pode subir e rodar um servidor em um minuto e encerramentos, e o mais importante, a sintaxe é familiar para
com estes produtos. Node definitivamente não é isso. Pareci- quase todos que já programaram na vida. As funções de call-
do com como o Apache pode adicionar um módulo PHP para back que são chamadas quando um evento ocorre podem ser
permitir desenvolvedores criarem páginas da web dinâmicas, e escritas no mesmo lugar onde você captura o evento. Fácil para
um módulo SSL para conexões seguras, Node tem o conceito de desenvolver, fácil para manter. Sem frameworks complicados
módulos que podem ser adicionados no núcleo do Node. Há li- de Orientação a Objeto, sem interfaces, nenhum potencial para
teralmente centenas de módulos para rodarem com o Node, e o excesso de arquitetura de qualquer coisa. Basta escutar um
a comunidade é bastante ativa em produzir, publicar e atualizar evento, escrever uma função de callback, e o Node toma conta
dezenas de módulos por dia. de tudo.

Como o Node funciona Instalando o Node.js


O Node roda em uma JavaScript V8 VM. Mas espere, JavaS- A instalação do Node.js é extremamente simples graças ao
cript no servidor? Isso, você leu certo. JavaScript no lado do ser- fato de o V8 JavaScript Engine ser completamente multi-plata-
vidor pode ser um conceito novo para todos que trabalharam forma, tudo que você precisa fazer é visitar a página oficial do
exclusivamente com o JavaScript no lado do cliente, mas a idéia Node.js, clicar em “INSTALL” e seguir as instruções.
em sí não é tão absurda – porque não usar a mesma linguagem
de programação no cliente que você usa no servidor?

O que é V8? O motor JavaScript V8 é o motor que a Google


usa com seu navegador Chrome. Poucas pessoas pensam sobre
o que realmente acontece com o JavaScript no lado do clien-
te. Bem, a engine JavaScript realmente interpreta o código e o
executa. Com o V8 a Google criou um ultra-rápido interpretador
escrito em C++, com um outro aspecto único: você pode baixar a
engine e incorporá-la em qualquer aplicação desejada. Isso não
está restrito em rodar em um navegador. Então Node atualmen-
te usa o motor JavaScript V8 escrito pela Google e propõe que
seja usado no servidor. Perfeito! Para que criar uma nova lingua-
gem quando há uma boa solução já disponível?

121
CONHECIMENTOS DE INFORMÁTICA

Após a instalação, basta executar o seguinte comando no seu terminal para verificar se foi instalado corretamente:

$ node -v
> v0.10.26
deve retornar a versão do node que foi instalada, como por exemplo v0.10.26.

O web server ‘Olá mundo!’


Ok, então vamos construir alguma coisa.
Nosso primeiro exemplo é um servidor que retorna a string ‘Olá mundo’ para qualquer requisição. Para fazer isso utilizando Node
você vai precisar de criar um arquivo JavaScript que pode ser chamado olanode.js e de três minutos do seu tempo.

Escreva o seguinte código no seu arquivo:


var http = require(‘http’);
http.createServer(function(req,res) {
res.writeHead(200, { ‘Content-Type’: ‘text/plain; charset=utf-8’ });
res.end(‘Olá mundo!’);
}).listen(3000);
console.log(‘Servidor iniciado em localhost:3000. Ctrl+C para encerrar…’);
Para executar o seu programa Node basta o seguinte comando no seu terminal:

$ node olanode.js
Para testar seu servidor você pode acessar localhost:3000 no seu navegador ou utilizar linha de comando com o comando curl
(em uma nova instância do terminal) como mostrado a seguir:

$ curl https://0.0.0.0:3000/
> Olá mundo!
Caso você prefira retornar algum html válido para o navegador, basta alterar ‘text/plain’ para ‘text/html’ no código acima e utilizar
uma tag html legal como <h2>, como foi feito a seguir:

var http = require(‘http’);

http.createServer(function(req,res) {

res.writeHead(200, { ‘Content-Type’: ‘text/html; charset=utf-8’ });
res.end(‘<h2> Olá mundo! </h2>’);
}).listen(3000);

console.log(‘Servidor iniciado em localhost:3000. Ctrl+C para encerrar…’);


img node 1

122
CONHECIMENTOS DE INFORMÁTICA

Agora basta voltar ao seu navegador e ver o resultado.

Orientado a eventos e não obstrutivo

Orientado a eventos
Vamos aproveitar este momento de euforia após a construção do seu primeiro servidor para aprender um pouco mais sobre
Node.js.
Quando estamos desenvolvendo com Node.js devemos utilizar uma abordagem orientada a eventos, isso quer dizer que o desen-
volvedor precisa conhecer os eventos que serão emitidos em diferentes momentos da execução e também saber como ouvi-los para
executar as operações necessárias.
Um bom exemplo de orientação a eventos está na construção de interfaces de usuário. Muitas vezes utilizamos elementos como
por exemplo os botões que ao serem clicados emitem um evento do tipo click ao qual podemos ouvir e executar alguma operação.
No nosso exemplo anterior utilizamos esse conceito quando chamamos método listen do objeto do tipo web server e passamos
como parâmetro a porta 3000, com isso fizemos que a nossa aplicação ouvisse ao evento que é emitido sempre que alguém faz uma
requisição no localhost:3000 e a nossa resposta foi servir a string ou a página html. Este evento é chamado request.
Para ilustrar estes conceitos, podemos escrever o nosso exemplo anterior em uma sintaxe alternativa da seguinte forma:

var http = require(‘http’);

var server = http.createServer();

server.on(‘request’, function(req,res) {

res.writeHead(200, { ‘Content-Type’: ‘text/html; charset=utf-8’ });
res.end(‘<h2> Olá mundo! </h2>’);
});

server.listen(3000);

console.log(‘Servidor iniciado em localhost:3000. Ctrl+C para encerrar…’);


Dessa forma podemos ver claramente a maneira em que o Node.js opera para servir a sua página. Utilizamos o método on do
nosso objeto server para ouvir ao evento request e fazer as operações. E definimos que estamos servindo na porta 3000.

123
CONHECIMENTOS DE INFORMÁTICA

Não obstrutivo Muitos desenvolvedores perceberam que também po-


Todos os recursos presentes no Node.js e também a maio- deriam utilizar o modelo REST para a implementação de Web
ria das bibliotecas feitas para ele adotaram um padrão não obs- Services, com o objetivo de se integrar aplicações pela Web, e
trutivo de escrever código, isso quer dizer que em Node.js você passaram a utilizá-lo como uma alternativa ao SOAP.
geralmente vai conseguir estruturar seu código de uma maneira REST na verdade pode ser considerado como um conjunto
que operações que não dependem de nada que está sendo exe- de princípios, que quando aplicados de maneira correta em uma
cutado possam ser executadas de forma independente. aplicação, a beneficia com a arquitetura e padrões da própria
Para mostrar um pouco como isso funciona, vamos um pro- Web.
grama que escreve duas frases no terminal, porém uma dessas Vejamos agora esses princípios e como utilizá-los de manei-
frases precisa ser carregada da memória antes de ser impressa. ra correta.

var frase; Identificação dos Recursos


Toda aplicação gerencia algumas informações. Uma aplica-
carregaFrase = function (callback) { ção de um E-commerce, por exemplo, gerencia seus produtos,
setTimeout(function() { clientes, vendas, etc. Essas coisas que uma aplicação gerencia
//Simula leitura da frase no banco de dados. são chamadas de Recursos no modelo REST.
frase = “Minha frase obstrutiva”; Um recurso nada mais é do que uma abstração sobre um
callback(); determinado tipo de informação que uma aplicação gerencia,
}, 3000) sendo que um dos princípios do REST diz que todo recurso deve
} possuir uma identificação única. Essa identificação serve para
que a aplicação consiga diferenciar qual dos recursos deve ser
imprimeFrase = function () { manipulado em uma determinada solicitação.
console.log(frase); Imagine a seguinte situação: Você desenvolveu um Web
} Service REST que gerencia seis tipos de recursos. Os clientes des-
se Web Service manipulam esses recursos via requisições HTTP.
carregaFrase(imprimeFrase); Ao chegar uma requisição para o Web Service, como ele saberá
qual dos recursos deve ser manipulado? É justamente por isso
console.log(“Olá”); que os recursos devem possuir uma identificação única, que
Nesse exemplo foi criada uma função chamada carregaFra- deve ser informada nas requisições.
se cujo objetivo é ler uma determinada frase de uma fonte de A identificação do recurso deve ser feita utilizando-se o con-
dados, e uma outra função chamada imprimeFrase que imprime ceito de URI (Uniform Resource Identifier), que é um dos pa-
o valor de uma determinada variável no console. Como depen- drões utilizados pela Web. Alguns exemplos de URI’s:
demos da leitura da frase na fonte de dados para imprimir o http://servicorest.com.br/produtos;
valor, passamos a função que imprime como parâmetro para http://servicorest.com.br/clientes;
a função de leitura para que possamos executar essa função http://servicorest.com.br/clientes/57;
quando a leitura for concluída. Esse tipo de função que é passa- http://servicorest.com.br/vendas.
da como parâmetro dessa maneira é chamada de callback. As URI’s são a interface de utilização dos seus serviços e
Ao executar este exemplo com Node.js ou qualquer meca- funcionam como um contrato que será utilizado pelos clientes
nismo JavaScript você vai perceber que a frase “Olá” será im- para acessá-los. Vejamos agora algumas boas práticas no uso de
pressa antes da outra frase mesmo estando posicionada depois URI’s.
no código, isso se deve ao fato de sua execução não depender
de nada enquanto a execução da outra frase depende de uma Utilize URI’s legíveis
operação que leva 3 segundos. Ao definir uma URI, utilize nomes legíveis por humanos,
Este é um exemplo extremamente simples de como criar que sejam de fácil dedução e que estejam relacionados com o
um código não obstrutivo, portanto use sua imaginação para domínio da aplicação. Isso facilita a vida dos clientes que utiliza-
imaginar cenários em que isso pode ser útil. rão o serviço, além de reduzir a necessidade de documentações
Observe que no nosso primeiro exemplo com Node.js tanto extensas.
a função on quanto a função createServer podem receber uma
função de callback. Utilize o mesmo padrão de URI na identificação dos recur-
sos
REST: Princípios e boas práticas Mantenha a consistência na definição das URI’s. Crie um pa-
Representational State Transfer, abreviado como REST, não drão de nomenclatura para as URI’s dos recursos e utilize sem-
é uma tecnologia, uma biblioteca, e nem tampouco uma arqui- pre esse mesmo padrão. Evite situações como:
tetura, mas sim um modelo a ser utilizado para se projetar ar-
quiteturas de software distribuído, baseadas em comunicação http://servicorest.com.br/produto (Singular);
via rede. http://servicorest.com.br/clientes (Plural);
REST é um dos modelos de arquitetura que foi descrito por http://servicorest.com.br/processosAdministrativos (Camel
Roy Fielding, um dos principais criadores do protocolo HTTP, em Case);
sua tese de doutorado e que foi adotado como o modelo a ser http://servicorest.com.br/processos_judidicais (Snake
utilizado na evolução da arquitetura do protocolo HTTP. Case).

124
CONHECIMENTOS DE INFORMÁTICA

Evite adicionar na URI a operação a ser realizada no recurso


Os recursos que uma aplicação gerencia podem ser manipulados de diversas maneiras, sendo para isso disponibilizada algumas
operações para manipula-los, tais como: criar, listar, excluir, atualizar, etc.
A manipulação dos recursos deve ser feita utilizando-se os métodos do protocolo HTTP, que inclusive é um dos princípios do REST
que será discutido mais adiante.
Portanto, evite definir URI’s que contenham a operação a ser realizada em um recurso, tais como:
http://servicorest.com.br/produtos/cadastrar;
http://servicorest.com.br/clientes/10/excluir;
http://servicorest.com.br/vendas/34/atualizar.
Evite adicionar na URI o formato desejado da representação do recurso
É comum que um serviço REST suporte múltiplos formatos para representar seus recursos, tais como XML, JSON e HTML. A infor-
mação sobre qual o formato desejado por um cliente ao consultar um serviço REST deve ser feita via Content Negotiation, conforme
será mostrado mais adiante.
Portanto, evite definir URI’s que contenham o formato desejado de um recurso, tais como:
http://servicorest.com.br/produtos/xml;
http://servicorest.com.br/clientes/112?formato=json.

Evite alterações nas URI’s


A URI é a porta de entrada de um serviço. Se você a altera, isso certamente causará impacto nos clientes que estavam a utilizando,
pois você alterou a forma de acesso a ele. Após definir uma URI e disponibilizar a manipulação de um recurso por ela, evite ao máximo
sua alteração.
Nos casos mais críticos, no qual realmente uma URI precisará ser alterada, notifique os clientes desse serviço previamente. Veri-
fique também a possibilidade de se manter a URI antiga, fazendo um redirecionamento para a nova URI.

Utilização dos métodos HTTP para manipulação dos recursos


Os recursos gerenciados por uma aplicação, e identificados unicamente por meio de sua URI, geralmente podem ser manipulados
de diversas maneiras. É possível criá-los, atualizá-los, excluí-los, dentre outras operações.
Quando um cliente dispara uma requisição HTTP para um serviço, além da URI que identifica quais recursos ele pretende manipu-
lar, é necessário que ele também informe o tipo de manipulação que deseja realizar no recurso. É justamente aí que entra um outro
conceito da Web, que são os métodos do protocolo HTTP.
O protocolo HTTP possui diversos métodos, sendo que cada um possui uma semântica distinta, e devem ser utilizados para indicar
o tipo de manipulação a ser realizada em um determinado recurso.
Vejamos agora os principais métodos do protocolo HTTP e o cenário de utilização de cada um deles:
GET - Obter os dados de um recurso.
POST - Criar um novo recurso.
PUT - Substituir os dados de um determinado recurso.
PATCH - Atualizar parcialmente um determinado recurso.
DELETE - Excluir um determinado recurso.
HEAD - Similar ao GET, mas utilizado apenas para se obter os cabeçalhos de resposta, sem os dados em si.
OPTIONS - Obter quais manipulações podem ser realizadas em um determinado recurso.
Geralmente as aplicações apenas utilizam os métodos GET, POST, PUT e DELETE, mas se fizer sentido em sua aplicação utilizar
algum dos outros métodos, não há nenhum problema nisso.
Veja a seguir o padrão de utilização dos métodos HTTP em um serviço REST, que é utilizado pela maioria das aplicações e pode ser
considerado uma boa prática. Como exemplo será utilizado um recurso chamado Cliente.

125
CONHECIMENTOS DE INFORMÁTICA

Como boa prática, em relação aos métodos do protocolo Comunicação Stateless


HTTP, evite utilizar apenas o método POST nas requisições que A Web é o principal sistema que utiliza o modelo REST. Hoje
alteram o estado no servidor, tais como: cadastro, alteração e ela suporta bilhões de clientes conectados e trocando informa-
exclusão, e principalmente, evite utilizar o método GET nesses ções. Mas, como é possível a Web ter uma escalabilidade e per-
tipos de operações, pois é comum os navegadores fazerem ca- formance tão boas, a ponto de conseguir suportar tamanho nú-
che de requisições GET, as disparando antes mesmo do usuário mero de clientes sem problemas?
clicar em botões e links em uma pagina HTML. A resposta: Comunicação Stateless!
Requisições feitas por um cliente a um serviço REST devem
Representações dos recursos conter todas as informações necessárias para que o servidor as
Os recursos ficam armazenados pela aplicação que os ge- interprete e as execute corretamente. Clientes não devem depen-
rencia. Quando são solicitados pelas aplicações clientes, por der de dados previamente armazenados no servidor para pro-
exemplo em uma requisição do tipo GET, eles não “abandonam” cessar uma requisição. Qualquer informação de estado deve ser
o servidor, como se tivessem sido transferidos para os clientes.
mantida pelo cliente e não pelo servidor. Isso reduz a necessidade
Na verdade, o que é transferido para a aplicação cliente é ape-
de grandes quantidades de recursos físicos, como memória e dis-
nas uma representação do recurso.
co, e também melhora a escalabilidade de um serviço REST.
Um recurso pode ser representado de diversas maneiras,
utilizando-se formatos específicos, tais como XML, JSON, HTML, É justamente por essa característica que a Web consegue
CSV, dentre outros. Exemplo de representação de um recurso no ter uma escalabilidade praticamente infinita, pois ela não precisa
formato XML. manter as informações de estado de cada um dos clientes.
Esse é um dos princípios mais difíceis de ser aplicado em um
<cliente> serviço REST, pois é muito comum que aplicações mantenham
<nome>Rodrigo</nome> estado entre requisições de clientes. Um exemplo dessa situação
<email>rodrigo@email.com.br</email> acontece quando precisamos armazenar os dados dos usuários
<sexo>Masculino</sexo> que estão autenticados na aplicação.
<endereco>
<cidade>Brasilia</cidade> Evite manter dados de autenticação/autorização em sessão
<uf>DF</uf> A principal dificuldade em criar um serviço REST totalmente
</endereco> Stateless ocorre quando precisamos lidar com os dados de auten-
</cliente> ticação/autorização dos clientes. A dificuldade ocorre porque é
A comunicação entre as aplicações é feita via transferência natural para os desenvolvedores armazenarem tais informações
de representações dos recursos a serem manipulados. Uma re- em sessão, pois essa é a solução comum ao se desenvolver uma
presentação pode ser também considerada como a indicação do aplicação Web tradicional.
estado atual de determinado recurso. A principal solução utilizada para resolver esse problema é a
Essa comunicação feita via transferência de representações utilização de Tokens de acesso, que são gerados pelo serviço REST
dos recursos gera um desacoplamento entre o cliente e o ser- e devem ser armazenados pelos clientes, via cookies ou HTML 5
vidor, algo que facilita bastante a manutenção das aplicações. Web Storage, devendo também ser enviados pelos clientes a cada
nova requisição ao serviço.
Suporte diferentes representações
É considerada uma boa prática o suporte a múltiplas repre- Já existem diversas tecnologias e padrões para se trabalhar
sentações em um serviço REST, pois isso facilita a inclusão de no- com Tokens, dentre elas:
vos clientes. Ao suportar apenas um tipo de formato, um serviço
REST limita seus clientes, que deverão se adaptar para conseguir
OAUTH;
se comunicar com ele.
Os três principais formatos suportados pela maioria dos JWT (JSON Web Token);
serviços REST são: Keycloack.
HTML; HATEOAS (Hypermedia As The Engine Of Application State)
XML; Para entendermos melhor o conceito de HATEOAS, vamos a
JSON. um exemplo comum quando utilizamos a Web.
Utilize Content Negotiation para o suporte de múltiplas re- Imagine que você quer comprar um produto pela Web, em
presentações algum site de E-commerce. Você entra no site, navega pelas ca-
Quando um serviço REST suporta mais de um formato para tegorias de produtos via menu do site, encontra o seu produto e
as representações de seus recursos, é comum que ele espere chega até a tela de detalhes dele, que possui as informações de
que o cliente forneça a informação de qual o formato desejado. preço, frete e o botão para realizar a compra.
No REST, essa negociação do formato da representação dos re- Mas nem sempre o produto está disponível em estoque, por
cursos é chamada de Content Negotiation e no mundo Web ela isso o site costuma fazer um tratamento nessa situação, escon-
deve ser feita via um cabeçalho HTTP, conhecido como accept. dendo o botão de realizar a compra e exibindo um botão para
notificação quando o produto voltar a estar disponível.
Ao fazer uma chamada ao serviço REST, um cliente pode No exemplo anterior, o conceito de HATEOAS foi aplicado
adicionar na requisição o cabeçalho accept, para indicar ao ser- duas vezes. Primeiro, quando o cliente entrou no site de E-com-
vidor o formato desejado da representação do recurso. Claro, merce, como ele fez para chegar até a página de detalhes do
deve ser um formato que seja suportado pelo serviço REST. produto? Navegando via links.

126
CONHECIMENTOS DE INFORMÁTICA

Normalmente todo site ou aplicação Web possui diversas <uri>http://servicorest.com.br/pedidos/1459</uri>


funcionalidades, sendo que a navegação entre elas costuma ser <method>DELETE</method>
feita via links. Um cliente até pode saber a URI de determinada </acao>
página ou recurso, mas se ele não souber precisamos guiá-lo de </acoes>
alguma maneira para que ele encontre as informações que pro- </pedido>
cura. Perceba como agora ficou muito mais simples explorar as
O segundo uso do HATEOAS ocorreu quando o cliente aces- informações e descobrir quais caminhos seguir. HATEOAS é um
sou a página de detalhes do produto. Se o produto estivesse em dos princípios que dificilmente vemos sendo aplicados em servi-
estoque, o site apresentaria o botão de comprar, e o cliente po- ços REST no mercado, quase sempre por falta de conhecimento
deria finalizar seu pedido. Caso contrário, ele apenas poderia re- dos desenvolvedores.
gistrar-se para ser notificado. Tudo isso é feito, principalmente,
para garantir a consistência das informações. Utilização correta dos códigos HTTP
Perceba que os links foram utilizados como mecanismo para Na verdade, esse não é um princípio do REST, mas sim uma
conduzir o cliente quanto à navegação e ao estado dos recursos. boa prática.
Esse é o conceito que foi chamado de HATEOAS, que nada mais
é do que a utilização de Hypermedia, com o uso de links, como No protocolo HTTP, toda requisição feita por um cliente a
o motor para guiar os clientes quanto ao estado atual dos recur- um servidor deve resultar em uma resposta, sendo que nela
sos, e também quanto as transições de estado que são possíveis existe um código HTTP, utilizado para informar o resultado da
no momento. requisição, tenha ela sido processada com sucesso ou não.
Veja um exemplo de uma representação de um recurso sem Existem dezenas de códigos HTTP, cada um tendo sua se-
a utilização do conceito de HATEOAS: mântica especifica e devendo ser utilizado quando fizer sentido.
<pedido> Os códigos HTTP são agrupados em classes, conforme demons-
<id>1459</id> trado a seguir:
<data>2017-01-20</data>
<status>PENDENTE</status>
Classe/Semântica
<cliente>
2xx Indica que a requisição foi processada com sucesso.
<nome>Rodrigo</nome>
3xx Indica ao cliente uma ação a ser tomada para que a re-
</cliente>
quisição possa ser concluída.
</pedido>
4xx Indica erro(s) na requisição causado(s) pelo cliente.
No exemplo anterior foi apresentado a representação do
5xx Indica que a requisição não foi concluída devido a er-
recurso “Pedido” no formato XML, contendo suas informações,
ro(s) ocorrido(s) no servidor.
mas sem o uso do HATEOAS. Isso certamente pode gerar al-
gumas dúvidas para os clientes desse serviço REST, como por A boa prática consiste em conhecer os principais códigos
exemplo: HTTP e utilizá-los de maneira correta. Veja os principais códigos
HTTP e quando os utilizar:
É possível solicitar o cancelamento do pedido? Como?
Quais são os outros estados do pedido e como transitar en- Código – Descrição - Quando utilizar
tre eles? 200 – OK - Em requisições GET, PUT e DELETE executadas
Como obter mais informações sobre o cliente desse pedi- com sucesso.
do? 201 – Created - Em requisições POST, quando um novo re-
Essas dúvidas poderiam ser respondidas facilmente se o curso é criado com sucesso.
conceito HATEOAS fosse utilizado, facilitando assim a vida dos 206 - Partial Content - Em requisições GET que devolvem
clientes do serviço REST. Vejamos agora a mesma representa- apenas uma parte do conteúdo de um recurso.
ção, porém com a utilização do HATEOAS: 302 - Found - Em requisições feitas à URI’s antigas, que fo-
ram alteradas.
<pedido self=”http://servicorest.com.br/pedidos/1459”> 400 - Bad Request - Em requisições cujas informações en-
<id>1459</id> viadas pelo cliente sejam invalidas.
<data>2017-01-20</data> 401 - Unauthorized - Em requisições que exigem autentica-
<status>PENDENTE</status> ção, mas seus dados não foram fornecidos.
<cliente ref=”http://servicorest.com.br/clientes/784” /> 403 - Forbidden - Em requisições que o cliente não tem per-
<acoes> missão de acesso ao recurso solicitado.
<acao> 404 - Not Found - Em requisições cuja URI de um determina-
<rel>self</rel> do recurso seja inválida.
<uri>http://servicorest.com.br/pedidos/1459</uri> 405 - Method Not Allowed - Em requisições cujo método
<method>GET</method> HTTP indicado pelo cliente não seja suportado.
</acao> 406 - Not Acceptable - Em requisições cujo formato da re-
<acao> presentação do recurso requisitado pelo cliente não seja supor-
<rel>cancelar</rel> tado.

127
CONHECIMENTOS DE INFORMÁTICA

415 - Unsupported Media Type - Em requisições cujo for- R é também altamente expansível com o uso dos pacotes,
mato da representação do recurso enviado pelo cliente não seja que são bibliotecas para funções específicas ou áreas de estudo
suportado. específicas.
429 - Too Many Requests No caso do serviço ter um limite Um conjunto de pacotes é incluído com a instalação de R,
de requisições que pode ser feita por um cliente, e ele já tiver com muito outros disponíveis na rede de distribuição do R (em
sido atingido. inglês CRAN).
500 - Internal Server Error - Em requisições onde um erro A linguagem R é largamente usada entre estatísticos e data
tenha ocorrido no servidor. miners para desenvolver software de estatística e análise de da-
503 - Service Unavailable Em requisições feitas a um serviço dos. Inquéritos e levantamentos de data miners mostram que
que esta fora do ar, para manutenção ou sobrecarga. a popularidade do R aumentou substancialmente nos últimos
Utilize o código correto para cada tipo de situação. Evite a anos.
má prática de sempre utilizar um mesmo código genérico para
todas as situações, como por exemplo o código 200 para qual- Ferramentas de produtividade
quer tipo de requisição bem-sucedida ou o código 500 para Existem diversas GUI para R, incluindo JGR, RKWard, Sci-
qualquer requisição malsucedida. Views-R, Rcmdr e, mais recentemente, RStudio. Muitos edito-
res oferecem recursos que facilitam o trabalho com o R: Emacs,
Fonte: Vim, jEdit, Kate, Tinn-R GUI/Editor, entre outros. Existem plug-
http://www.ic.unicamp.br/~celio/inf533/docs/markup. -ins para uso com a IDE Eclipse e Vim.
html Software construído de modo colaborativo, com novos pa-
https://tableless.com.br/o-que-html-basico/ cotes e GUIs incluídos a cada intervalo de tempo, antecipando-
https://www.codigofonte.com.br/artigos/principais-tags- -se até a alguns outros pacotes proprietários, como o comple-
-de-html mento com o teste de Scott-Knott para a Análise de Variâncias
https://www.gta.ufrj.br/grad ANOVA.
https://www.devmedia.com.br/primeiros-passos-no-html-
5-javascript-e-css3/25647 Recursos estatísticos
https://www.hostinger.com.br/tutoriais/o-que-e-css-guia- A R disponibiliza uma ampla variedade de técnicas estatís-
-basico-de-css/ ticas e gráficas, incluindo modelação linear e não linear, testes
https://www.devmedia.com.br/json-tutorial/25275 estatísticos clássicos, análise de séries temporais (time-series
https://www.portalgsti.com.br/2017/08/principais-carac- analysis), classificação, agrupamento e outras. A R é facilmente
teristicas-do-angularjs.html extensível através de funções e extensões, e a comunidade R é
https://tableless.com.br/criando-uma-aplicacao-simples- reconhecida pelos seus contributos ativos em termos de paco-
-com-angularjs/ tes. Existem diferenças importantes, mas muito código escrito
https://tableless.com.br/o-que-nodejs-primeiros-passos- para S corre inalterado. Muitas das funções padrão do R são es-
-com-node-js/ critas no próprio R, o que torna fácil para os usuários seguir as
http://blog.caelum.com.br/rest-principios-e-boas-praticas/ escolhas algorítmicas feitas. Para tarefas computacionais inten-
sivas, os códigos C, C++, e Fortran podem ser ligados e chama-
dos durante a execução. Usuários experientes podem escrever
código C ou Java para manipular diretamente objetos R.
MANIPULAÇÃO E VISUALIZAÇÃO DE DADOS: LIN- O R é fortemente extensível através do uso de pacotes en-
GUAGEM R 3.4.2 E R STUDIO 5.1, OLAP, MS EXCEL 2013 viados pelo utilizador para funções específicas ou áreas espe-
cíficas de estudo. Devido à sua herança do S, o R possui fortes
recursos de programação orientada por objetos, mais que a
R é uma linguagem e um ambiente de desenvolvimento in- maioria das linguagens de computação estatística. Ampliar o R
tegrado, para cálculos estatísticos e gráficos. também é facilitado pelas suas regras de contexto lexical.
Foi criada originalmente por Ross Ihaka e por Robert Outra força do R são os gráficos estáticos, que podem pro-
Gentleman no departamento de Estatística da universidade de duzir imagens com qualidade para publicação, incluindo símbo-
Auckland, Nova Zelândia, e foi desenvolvido por um esforço co- los matemáticos. Gráficos dinâmicos e interativos estão disponí-
laborativo de pessoas em vários locais do mundo. veis através de pacotes adicionais.
O nome R provêm em parte das iniciais dos criadores e tam- O R tem a sua própria documentação em formato LaTeX, a
bém de um jogo figurado com a linguagem S (da Bell Laborato- qual é usada para fornecer documentação de fácil compreen-
ries, antiga AT&T). são, simultaneamente on-line em diversos formatos e em papel.
R é uma linguagem e ambiente similar ao S – pode ser con-
siderado uma implementação distinta do S; embora com impor- Recursos de programação
tantes diferenças, muitos códigos escritos para o S rodam inalte- A R é uma linguagem interpretada tipicamente utilizada
rados no R. A implementação comercial de S é S-PLUS. através de um Interpretador de comandos. Se um usuário escre-
O código fonte do R está disponível sob a licença GNU4 5 ve “2+2” no comando de inserção e pressiona enter, o computa-
GPL e as versões binárias pré-compiladas são fornecidas para dor responde com “4”, conforme se mostra abaixo:
Windows, Macintosh, e muitos sistemas operacionais Unix/ > 2+2
Linux. [1] 4

128
CONHECIMENTOS DE INFORMÁTICA

Como muitas outras linguagens, a R suporta matrizes aritméticas. A estrutura de dados da R inclui escalares, vetores, matrizes,
quadros de dados (similares a tabelas numa base de dados relacional) e listas. O sistema de objetos da R é extensível e inclui objectos
para, entre outros, modelos de regressão, séries temporais e coordenadas geoespaciais.
A R suporta programação processual com funções e, para algumas funções, programação orientada a objetos com funções gené-
ricas. Uma função genérica atua de forma diferente dependendo do tipo de argumentos que é passado. Por outras palavras a função
genérica determina (dispatches) a função (método) específica para aquele tipo de objeto. Por exemplo, a R tem uma função genérica
print() que pode imprimir quase qualquer tipo de objeto em R com uma simples sintaxe “print(nomedoobjeto)”.
Enquanto a R é maioritariamente usada por estatísticos e outros utilizadores que requerem um ambiente para computação es-
tatística e desenvolvimento de software, pode ser igualmente usada como uma caixa de ferramentas para cálculo matricial geral com
benchmarks de desempenho comparáveis ao GNU Octave ou ao MATLAB.15

Exemplos
Exemplo 1
Os seguintes exemplos ilustram a sintaxe básica da língua e o uso da interface de linha de comando.
Na R, o largamente preferido operador de atribuição é uma seta formada por dois carateres “<-“, embora “=” possa ser usado em
sua vez.20
> x <- c(1,2,3,4,5,6) # Create ordered collection (vector)
> y <- x^2 # Square the elements of x
> print(y) # print (vector) y
[1] 1 4 9 16 25 36
> mean(y) # Calculate average (arithmetic mean) of (vector) y; result is scalar
[1] 15.16667
> var(y) # Calculate sample variance
[1] 178.9667
> lm_1 <- lm(y ~ x) # Fit a linear regression model “y = f(x)” or “y = B0 + (B1 * x)”
# store the results as lm_1
> print(lm_1) # Print the model from the (linear model object) lm_1

Call:
lm(formula = y ~ x)

Coefficients:
(Intercept) x
-9.333 7.000

> summary(lm_1) # Compute and print statistics for the fit


# of the (linear model object) lm_1

Call:
lm(formula = y ~ x)

Residuals:
1 2 3 4 5 6
3.3333 -0.6667 -2.6667 -2.6667 -0.6667 3.3333

Coefficients:
Estimate Std. Error t value Pr(>|t|)
(Intercept) -9.3333 2.8441 -3.282 0.030453 *
x 7.0000 0.7303 9.585 0.000662 ***
---
Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1

Residual standard error: 3.055 on 4 degrees of freedom


Multiple R-squared: 0.9583, Adjusted R-squared: 0.9478
F-statistic: 91.88 on 1 and 4 DF, p-value: 0.000662

> par(mfrow=c(2, 2)) # Request 2x2 plot layout


> plot(lm_1) # Diagnostic plot of regression model

129
CONHECIMENTOS DE INFORMÁTICA

Exemplo 2
Código R curto calcula o modelo de Mandelbrot (Mandelbrot set) através das primeiras 20 iterações da equação z = z² + c mapea-
dos para diferentes constantes complexas c. Este exemplo demonstra:
O uso de livrarias externas (chamadas pacotes) desenvolvidas pela comunidade, neste caso, o pacote caTools
Manipulação de número complexo.
Matrizes multidimensionais de números usados como tipos de dados básicos, ver variáveis C, Z e X.
library(caTools) # external package providing write.gif function
jet.colors <- colorRampPalette(c(“#00007F”, “blue”, “#007FFF”, “cyan”, “#7FFF7F”,
“yellow”, “#FF7F00”, “red”, “#7F0000”))
m <- 1200 # define size
C <- complex( real=rep(seq(-1.8,0.6, length.out=m), each=m ),
imag=rep(seq(-1.2,1.2, length.out=m), m ) )
C <- matrix(C,m,m) # reshape as square matrix of complex numbers
Z <- 0 # initialize Z to zero
X <- array(0, c(m,m,20)) # initialize output 3D array
for (k in 1:20) { # loop with 20 iterations
Z <- Z^2+C # the central difference equation
X[,,k] <- exp(-abs(Z)) # capture results
}
write.gif(X, “Mandelbrot.gif”, col=jet.colors, delay=100)
“Mandelbrot.gif” – Graphics created in R with 14 lines of code in Example 2

Exemplo 3
## Leitura do conjunto de dados. Também pode-se usar read.csv() quando os dados estiverem em arquivos .csv
dados <- read.table(“escreva a localização do arquivo...”, header=TRUE) %colunas com tratamentos (tratam c/ titulo) e n-linhas
(repet).

130
CONHECIMENTOS DE INFORMÁTICA

## Preparação de dados O pacote ff economiza memória arquivando dados no disco.


dados.vetor <- c(dados$trat1, dados$trat2, dados$trat3, As estruturas de dados comportam-se como se estivessem na
dados$trat4) %pode ser com qualquer quantidade de tratamen- RAM. O pacote ffbase disponibiliza funções estatísticas básicas
tos. para o ‘ff’.
N <- gl(trat, repeticoes) %escreva o número de tratamentos
e o tratamento com maior número de repetições. Marcos
dados.vert <- data.frame(N, dados.vetor) A lista completa de alterações é mantida no ficheiro NEWS.
fator <- factor(Loc) % fatores são variáveis tratadas como Alguns destaques estão listados abaixo.
variáveis categóricas no R. Versão 0.16 – Esta é a última versão alpha desenvolvida in-
cialmente por Ihaka e Gentleman. Muitas das funcionalidades
## Cáculo da tabela ANOVA básicas do “White Book” (ver S history) foram implementadas.
pre_anova <- aov(dados.vetor~fator) As listas de discussão começaram em 1de april 1 de 1997.
ANOVA <- summary(pre_anova) Versão 0.49 – 23 de abril 23 de 1997 – Esta é a mais antiga
versão da fonte disponível, e compila num número limitado de
## Fazendo teste de Tukey, teremos: plataformas Unix. O CRAN começou nesta data, com 3 mirrors
TukeyHSD(pre_anova, ordered=TRUE) que hospedavam inicialmente 12 pacotes. As versões Alpha do
plot(TukeyHSD(bruto.aov, ordered=TRUE)) R para Microsoft Windows e Mac OS ficaram disponíveis pouco
tempo depois desta versão.
sk5 <- SK(x=dados, y=dados.vert$dados.vetor, model=”y~fa- Versão 0.60 – 5 de dezembro de 1997 – O R torna-se ofi-
tor”, which=”fator”,sig.level=0.05) cialmente parte do projeto GNU . O código é alojado e mantido
summary(sk5) no CVS.
Versão 1.0.0 – 29 de fevereiro de 2000 – Foi considerado
Pacotes pelos seus criadores suficientemente estável para utilização pro-
As capacidades da R são estendidas através de pacotes dutiva.[25]
criados pelo usuário, que permitem técnicas estatísticas espe- Versão 1.4.0 – Os métodos S4 são introduzidos e a primeira
cializadas, dispositivos gráficos, capacidades de importação/ex- versão para Mac OS X ficou disponível logo após.
portação, ferramentas de relatórios, etc. Estes pacotes são pri- Versão 2.0.0 – 4 de outubro de 2004 – Foi introduzida a lazy
meiro desenvolvidos em R, e por vezes em Java, C e Fortran. Um loading, que permite o carregamento rápido de dados com um
conjunto básico de pacotes são incluídos com a instalação do R, mínimo de dispêndio de memória do sistema.
com 5300 pacotes adicionais (a partir de abril 2012) disponíveis Versão 2.1.0 – Suporte para codificação UTF-8, e o início da
em Comprehensive R Archive Network (CRAN), Bioconductor, e internacionalização e localização para diferentes linguagens.
outros repositórios. Versão 2.11.0 – 22 de abril de 2010 – Suporte para sistemas
A página “Task Views” (lista de assuntos) no website da Windows de 64 bits.
CRAN lista a vasta gama de aplicações (Finança, genética, apren- Versão 2.13.0 – 14 de abril de 2011 – Adiciona uma nova
dizagem de máquinas, imagiologia médica, ciências sociais e função de compilação que permite acelerar funções converten-
estatísticas espaciais) nos quais R tem sido aplicada e para que do-as em byte-code.
pacotes está disponível. Versão 2.14.0 – 31 de outubro de 2011 – Adicionados na-
Outros recursos do pacote R incluem Crantastic, um site co- mespaces obrigatórios para os pacotes. Adicionado um novo
munitário para avaliação e revisão de todos os pacotes CRAN, pacote paralelo.
e também R-Forge, uma plataforma central para o desenvolvi- Versão 2.15.0 – 30 de março de 2012 – Novas funções de
mento colaborativo de pacotes R, software relacionado com R, e balanceamento de carga. Melhorada a velocidade de seriação
projetos. Tem muitos documentos não publicados, pacotes beta para vetores longos.
e versões de desenvolvimento de pacotes CRAN.
O projeto Bioconductor disponibiliza pacotes R para a aná- Interfaces
lise de dados genómicos, tais como Affymetrix e cDNA de aná- Interfaces de usuário gráficas
lise e manipulação de dados orientadas a objetos, e começou RGUI – vem com uma versão pré-compilada do R para Mi-
disponibilizar ferramentas para a análise de dados da próxima crosoft Windows.
geração de métodos de alto rendimento de sequenciação. Tinn-R– Um ambiente de desenvolvimento em fonte aberta
A pesquisa reprodutível e geração automática de relatórios altamente capaz e integrado com destaque para a sintaxe seme-
pode ser realizada com pacotes que suportam a execução de có- lhante à do MATLAB. Apenas disponível para Windows
digo R incorporado em LaTeX, OpenDocument format e outros Java Gui for R – multi-plataforma independente de termi-
marcadores (markups). nais R e editor baseado em Java (também conhecido como JGR).
Deducer – Interface de usário gráfica para o menu de análi-
Acelerador e eficiência de memória se de dados orientado (similar ao SPSS/JMP/Minitab).
Teste é um pacote jit que disponibiliza compilação JIT, e ou- Rattle GUI – multi-plataforma de interface de usuário gráfi-
tro pacote compilador que oferece um compilador de byte-code ca baseada no RGtk2 e especificamente criada para data mining.
para o R.23 R Commander – multi-plataforma baseada em menus orien-
Existem diversos pacotes (snow, multicore, parallel) que dis- tados sobre interface de usário gráfica baseada no tcltk (vários
ponibilizam paralelismo para o R24 . plug-ins para Rcmdr também estão disponíveis).

131
CONHECIMENTOS DE INFORMÁTICA

RapidMiner25 26
RExcel – usando R e Rcmdr a partir do Microsoft Excel.
RKWard – Interface de usário gráfica extensível e IDE para R.
RStudio – multi-plataforma de fonte aberta IDE (que também pode ser corrida num servidor remoto linux).
A Revolução Analítica disponibiliza um Visual Studio baseado em IDE e tem planos para pontos baseados na web e interfaces de
click.
Weka27 permite a utilização de recursos de mineração de dados em Weka e análise estatística em R.
Existe um número especial do Journal of Statistical Software (de junho de 2012) que discute as interfaces de usuário gráficas para
o R.

Editores e IDEs
Editores de texto e ambientes integrados de desenvolvimento (IDEs) com algum suporte para R incluem: Bluefish, Crimson Editor,
ConTEXT, Eclipse (StatET), Emacs (Emacs Speaks Statistics), LyX (módulos para knitr e Sweave), Vim, Geany, jEdit, Kate, R Productivity
Environment (parte da Revolution R Enterprise), RStudio, TextMate, gedit, SciTE, WinEdt (R Package RWinEdt) e Notepad++.

Linguagens de Script
As funcionalidades do R foram tornadas acessíveis a partir de diversas linguagens de script como a Python (pelo pacote de interfa-
ce do RPy ), Perl(pelo módulo Statistics::R ), e Ruby (com o rsruby rubygem). PL/R pode ser usado juntamente, ou em vez da linguagem
de script PL/pgSQL no sistema de gestão de bases de dados PostgreSQL e Greenplum. Scripts no próprio R são possíveis via littler38
bem como via Rscript.

useR! conferências
“useR!” é o nome dado à reunião anual oficial dos usuários do R. O primeiro destes eventos foi o useR! 2004 em maio de 2004, em
Viena de Áustria. Depois de saltar 2005, a conferência useR tem tido lugar anualmente, alternando habitualmente entre localizações
na Europa e na América do Norte.

Esta é lista das conferências useR!:

useR! 2004, Viena, Áustria


useR! 2006, Viena, Áustria
useR! 2007, Ames, Iowa, Estados Unidos da América
useR! 2008, Dortmund, Alemanha
useR! 2009, Rennes, França
useR! 2010, Gaithersburg, Maryland, Estados Unidos da América
useR! 2011, Coventry, Reino Unido
useR! 2012, Nashville, Tennessee, Estados Unidos da América
useR! 2013, Albacete, Espanha

Comparação com SAS, SPSS e Stata


O consenso geral é que o R se compara bem com outros populares pacotes estatísticos, tais como SAS, SPSS e Stata.41 Em janeiro
de 2009, o New York Times publicou um artigo sobre o aumento de aceitação do R entre os analistas de dados e apresentando uma
potencial ameaça para a quota de mercado ocupada por pacotes estatísticos comerciais, como o SAS.42

R STUDIO
Para facilitar a vida dos interessados em programação, estatística e/ou econometria, resolvi fazer esse post um pouco mais com-
pleto para quem está iniciando no R. Sendo mais específico, no R Studio.
Em outras palavras, R é uma linguagem de programação gratuita que cientistas de dados e estatísticos utilizam para manipular
dados de diversas formas.
O R Studio é uma interface para o R, com diversas utilidades diferentes que a tornam uma ferramenta mais simples em compara-
ção ao R. O R Studio possui diversas ferramentas como seus painéis que o tornam mais prático e, por esse motivo o utilizaremos aqui.

132
CONHECIMENTOS DE INFORMÁTICA

INSTALAÇÃO
Acesse o https://www.rstudio.com/
Na tela inicial você já vai ver DOWNLOAD RSTUDIO, clique no link

Em seguida, vá em DOWNLOAD RSTUDIO DESKTOP

Depois de baixado é simples, é só clicar no instalador e ir clicando em próximo e/ou avançar, como a maioria dos programas, não
tem erro.
Na tela inicial você vai ver que o RStudio tem 4 janelas, diferente do R.

133
CONHECIMENTOS DE INFORMÁTICA

LAYOUT
Com relação às 4 janelas do R Studio:

No topo a esquerda é onde você vai escrever seus códigos. Você pode ter várias janelas de códigos, para abrir mais uma basta ir
no sinal ‘+’ logo abaixo de FILE. Depois que você escrever seu código, você deve selecionar a linha que gostaria de executar e clicar
em RUN.
Assim que você executar seu código você vai ver alterações no CONSOLE, a tela abaixo à esquerda. Você também pode escrever o
código nessa tela, porém, é muito mais complicado manusear e fazer alterações. Seu código ficará mais desorganizado.
Acima a direita você tem duas abas: Environment e History. Environment, eu recomendo que vocês não se preocupem muito.
Basicamente, você vai ter seus objetos nessa aba, seus dados e variáveis criadas. Em History você terá o histórico de seu script, ou seja,
todo o código que você for executando vai aparecer lá. Isso é útil, pois caso você feche o R Studio e escolha salvar seu workplace, ao
abri-lo você não perderá o histórico. Você terá seu script lá, facilitando o entendimento do que você estava executando;
Abaixo a direita uma outra janela que vai facilitar muito sua vida, nela há 5 abas: FILES, PLOTS, PACKAGES, HELP e VIEWER.
Em Files você terá o endereço do seu working directory. Basta executar o código getwd() que você saberá que endereço é aquele
na aba Files. No R Studio você pode mover, renomear e deletar arquivos no seu computador. Esse diretório é onde você salva seus
scripts e output no R.
Plots é onde você irá visualizar seus gráficos.
Packages possui uma lista de pacotes que você pode selecionar e instalar na hora.
Help é a aba de ajuda do R Studio. Se você é daqueles céticos do Help nos softwares, aqui no R Studio você vai mudar de opinião,
realmente ajuda muito.

PACOTES
Os pacotes do R nada mais são do que conjunto de funções, dados e códigos compilados. Os pacotes fornecem funções que algum
usuário já criou e você pode utilizá-las. Ou seja, para cada tema que você queira trabalhar, você pode buscar um pacote com funções
que realizem todas as manipulações que você deseja.
Por exemplo, eu gostaria de trabalhar com séries temporais. Ao buscar “Time Series” dentre os pacotes existentes, eu vou encon-
trar alguns pacotes como AnalyzeTS, arfima, astsa, etc.
Você pode procurar os pacotes existentes através do próprio google, ou então ir direto no CRAN, onde os pacotes são mais con-
fiáveis:
https://cran.r-project.org/web/packages/available_packages_by_name.html
Há mais de 100 pacotes com “Time Series” na descrição, como saber qual utilizar?
Ao clicar no nome de um dos pacotes você abrirá a seguinte página:

134
CONHECIMENTOS DE INFORMÁTICA

A página acima é idêntica para todos os pacotes. Todos os pacotes R terão o Reference Manual, com essa aparência:

135
CONHECIMENTOS DE INFORMÁTICA

Nesse manual você verá todas as funções que o pacote possui e uma breve explicação de cada uma. Com base nisso, você deve
escolher qual pacote é mais apropriado para você. Ou então, o que eu costumo fazer sempre: GOOGLE!

PRIMEIRAS MANIPULAÇÕES
Conforme já disse acima, na primeira janela, no topo a esquerda, escreveremos nosso código. É lá então que vamos começar a
brincar!
A partir daqui, vou tentar ser mais direto. O código que vou postar é exatamente a saída do Console, sendo que em azul teremos
o código que escrevi e em vermelho o output do R. Você notará o símbolo “>” antes de cada linha de código escrita e o [1] antes do
output do R.
Primeiramente, o R, assim como outras tantas linguagens, serve como uma calculadora. Afinal, muitas vezes você precisará ma-
nipular seus dados, fazer algumas alterações nos valores de tabelas, e para isso é importante saber os operadores aritméticos do R,
que são: +, -, * e / para adição, subtração, multiplicação e divisão respectivamente. Veja abaixo exemplos com operações feitas no R:
> 2+2
[1] 4
> 10-2
[1] 8
> 2*5
[1] 10
> 10/2
[1] 5
Ao escrever o código na primeira janela, você precisa separar cada tarefa que você quer que o R execute pulando linhas ou então
utilizando “;”. Eu prefiro pular linhas.
Além dos operadores, o R possui algumas funções básicas como o log, exponencial e raiz quadrada:
> log(100)
[1] 4.60517
> exp(10)
[1] 22026.47
> sqrt(10000)
[1] 100
O R também possui operadores lógicos:
> 10<2
[1] FALSE
> 10>=10
[1] TRUE
Resumo dos operadores:

CRIANDO VARIÁVEIS
Para criar novas variáveis, atribuindo algum valor que você deseja, basta utilizar o símbolo “=” ou “<-“:
> x <- 100
> y = 10
> x*y
[1] 1000

136
CONHECIMENTOS DE INFORMÁTICA

No caso de se atribuir diversos valores, ou seja, criar um vetor, você utiliza a função c(). Veja os exemplos abaixo com o comentário
de cada comando utilizando ‘#’:
> #x recebe os números de 1 a 4
> x=c(1,2,3,4)
>x
[1] 1 2 3 4
Podemos gerar nossas próprias sequências no R, seja uma sequência simples, com intervalo entre os elementos ou com o com-
primento que gostaríamos:
> #y recebe a sequência de 1 a 10
> y=c(1:10)
>y
[1]  1  2  3  4  5  6  7  8  9 10
> #z recebe a sequência de 2 a 11
> z=c(2:11)
>z
[1]  2  3  4  5  6  7  8  9 10 11
> #s recebe a sequência de 1 a 10 com diferença de duas unidades
> s=seq(1,10, by=2)
>s
[1] 1 3 5 7 9
> #r recebe a sequência com 10 números, começando de -10 com diferença de 0.2 unidades
> r=seq(length=10,from=-5,by=.2)
>r
[1] -5.0 -4.8 -4.6 -4.4 -4.2 -4.0 -3.8 -3.6 -3.4 -3.2
Podemos realizar qualquer tipo de operação com os vetores. Se o multiplicarmos um número qualquer pelo vetor, ele irá multi-
plicar cada elemento do vetor por esse número. A mesma lógica vale para divisão, soma e subtração:
> 2*w
[1]  6 10 14 18 22 26 30 34 38 42
> w+1
[1]  4  6  8 10 12 14 16 18 20 22
Ao realizarmos uma soma (ou subtração) entre vetores, os elementos na mesma posição realizam a operação:
> y+z
[1]  3  5  7  9 11 13 15 17 19 21
Visualizando seus gráficos
Em outros sites, você veria muito mais explicações antes de entrar neste tópico. Faz sentido, afinal, ainda há muito o que se
aprender no R. Eu sequer mencionei caracteres, lidar com textos, missing, etc. Entretanto, queria fornecer uma introdução rápida para
o leitor e já deixar o básico para que ele possa dar sequência sozinho no aprendizado. Como postarei constantemente, o leitor aqui
poderá também consultar os posts futuros. Aqui, no entanto, quero ser breve. Vamos aos gráficos!

HISTOGRAMA E GRÁFICO DE DISPERSÃO


Basta utilizar a função hist(). Apenas para deixar mais interessante, vou mostrar como importar um arquivo em .txt utilizando a
função read.table().
O arquivo .txt aqui utilizado é o turma_1 já mencionado acima, dessa vez eu o salvei no meu desktop:
read.table(“C:/Users/Yukio/Desktop/turma_1.txt”,header=TRUE)
Veja que se você simplismente digitar a linha de código acima, o seu software vai demonstrar toda a tabela. Se ela for muito ex-
tensa, é uma péssima ideia. Para isso, eu acho bem mais sensato nós atribuírmos a tabela a um elemento:
turma_1 = read.table(“C:/Users/Yukio/Desktop/turma_1.txt”,header=TRUE)
Se você quiser visualizar sua tabela no R Studio, uma boa idéia é utilizar a função View():
View(turma_1)
Veja que na janela inicial acima a esquerda você terá uma nova aba com sua tabela, isso é bem prático.
Vamos finalmente ao histograma das notas dos alunos:
hist(turma_1$notas)

137
CONHECIMENTOS DE INFORMÁTICA

E o gráfico de dispersão:
plot(turma_1$notas)

Quer um título no gráfico? Incluir algo diferente no eixo x? Alterar as legendas?


Simples, para legenda utilize xlab e ylab, para o título principal utilize o main, e para escolher os eixos, basta pensar que o R está
lendo a função da seguinte forma: plot(eixo x, eixo y). Sendo assim:
plot(turma_1$faltas,turma_1$notas,main=”Gráfico de Dispersão”,xlab=”Faltas”,ylab=”Notas”)

138
CONHECIMENTOS DE INFORMÁTICA

Por fim, e se quisermos comprovar a existência ou não de uma correlação?


> cor(turma_1$faltas,turma_1$notas)
[1] -0.9793377
Pois bem, assim termina os primeiros passos no R Studio. Acredito que passar por tudo isso leve menos de uma hora e acrescenta
uma baita bagagem. Vou continuar postando códigos de R, gráficos mais coloridos, novas funções, pacotes, etc. Como eu disse, esse
daqui é só para ser o começo da sua jornada no R. Qualquer dúvida, é só comentar aí embaixo.

OLAP – On-Line Analytical Processing


OLAP é um software cuja tecnologia de construção permite aos analistas de negócios, gerentes e executivos analisar e visualizar
dados corporativos de forma rápida, consistente e principalmente interativa.
A funcionalidade OLAP é inicialmente caracterizada pela análise dinâmica e multidimensional dos dados consolidados de uma
organização permitindo que as atividades do usuário final sejam tanto analíticas quanto navegacionais.
As ferramentas OLAP (do inglês, Online Analytical Processing) são geralmente desenvolvidas para trabalhar com banco de dados
desnormalizados. Essas ferramentas são capazes de navegar pelos dados de um Data Warehouse, possuindo uma estrutura adequada
tanto para a realização de pesquisas como para a apresentação de informações.
Os Fundamentos de Sistemas Analíticos
Nos últimos anos o termo Business Intelligence (BI) tem sido largamente utilizado no mercado como sinônimo de sistemas analí-
ticos, OLAP, cubos, entre outros. Embora essas denominações possam estar associadas entre si, são conceitualmente distintas.
A rigor, Business Intelligence pode ser obtido por qualquer artefato, seja tecnológico ou não, que permita a extração de conheci-
mento a partir de análises do negócio. Por razões óbvias, a efetividade destas análises será maior se os dados estiverem disponíveis
de modo consistente e, preferencialmente, consolidado. Este é um dos objetivos dos Data Warehouses.
Soluções informatizadas de BI geralmente contém sistemas analíticos, que podem ser de diversos tipos, dependendo do objetivo
das análises e do perfil do usuário, conforme ilustrado na Figura:

139
CONHECIMENTOS DE INFORMÁTICA

Sistemas transacionais, também conhecidos como sintéticos ou ainda OLTP – Online Transactional Processing – são aqueles que,
como o nome sugere, baseiam-se em transações. Alguns exemplos deste tipo de sistemas são:
Sistemas Contábeis;
Aplicações de Cadastro;
Sistemas de Compra, Estoque, Inventário;
ERPs, CRMs.
Os sistemas transacionais se caracterizam pela alta taxa de atualização, grande volumes de dados e acessos pontuais, ou seja,
pesquisas cujo resultado seja de pequeno volume (até milhares de linhas, mas preferencialmente menos).
Já os sistemas analíticos, ou OLAP – Online Analytical Processing – se caracterizam por fornecer subsídio para tomadas de decisão,
a partir de análises realizadas sobre bases de dados históricas, por vezes com milhões de registros a serem totalizados.
A tabela abaixo sintetiza as principais diferenças entre sistemas transacionais e analíticos.

Conforme ilustrado na tabela, o fato dos sistemas transacionais refletirem a situação atual de um determinado tipo de dado con-
duz todas as demais características, como:
A realização de atualizações freqüentemente, mantendo os dados atuais;
Informação detalhada com a maior granularidade possível (consistência microscópica);
Pesquisas pontuais, portanto de baixa complexidade, no tocante ao negócio (do ponto de vista técnico, a pesquisa pode ser bem
elaborada).
Do mesmo modo, o fato das análises serem realizadas sobre dados históricos leva às seguintes características:

140
CONHECIMENTOS DE INFORMÁTICA

Uma vez que os dados são históricos, as atualizações não precisam ser tão freqüentes. Por exemplo, numa comparação entre
a produtividade de três filiais de uma empresa para um determinado produto nos últimos quatro meses, por mês, o dia de hoje ou
mesmo ontem não é, em geral, de grande representatividade;
As análises geralmente agrupam informações, sendo tais agrupamentos mais importantes neste contexto do que os dados de-
talhados. No exemplo do item anterior, o importante é a produção conjunta mensal, e não a produção de uma unidade particular do
produto analisado.
Os diferentes tipos de sistemas também sugerem diferentes abordagens técnicas, seja na forma de armazenamento ou de busca.

Banco de Dados Multidimensional

A finalidade de bases de dados multidimensionais é fornecer subsídio para realização de análises. Para tanto, sua arquitetura e
até mesmo a terminologia empregada são distintas das utilizadas para bancos de dados transacionais.
O fato de existirem diversas informações a serem cruzadas (dimensões) permite a realização de pesquisas tais como a ilustrada
nesta imagem.
As análises sobre dados históricos envolvem uma série de possibilidades de cruzamentos e agrupamentos de informações, com
o uso dos seguintes termos:
Dimensões: estabelecem a organização dos dados, determinando possíveis consultas/cruzamentos.
Por exemplo: região, tempo, canal de venda,… Cada dimensão pode ainda ter seus elementos, chamados membros, organizados
em diferentes níveis hierárquicos. A dimensão tempo, por exemplo, pode possuir duas hierarquias: calendário (com os níveis ano, mês
e dia) e calendário fiscal (com os níveis ano, semana e dia);
Medidas: são os valores a serem analisados, como médias, totais e quantidades;
Fatos: são os dados a serem agrupados, contendo os valores de cada medida para cada combinação das dimensões existentes. O
tamanho da tabela que contém os fatos merece atenção especial do analista;
Agregações: totalizações calculadas nos diversos níveis hierárquicos.

Arquiteturas OLAP
ROLAP (Relational On Line Analytical Processing)
A consulta é enviada ao servidor de banco de dados relacional e processada no mesmo, mantendo o cubo no Servidor.
MOLAP (Multidimensional On Line Analytical Processing)
processamento realizado em um servidor multidimensional.
HOLAP (Hybrid On Line Analytical Processing)
é uma mistura de tecnologias onde há uma combinação entre ROLAP e MOLAP.

Alicerce Relacional
Diversas ferramentas analíticas, também chamadas ferramentas de OLAP, operam sobre bases de dados multidimensionais arma-
zenadas em SGBDRs. Além disso, as agregações são também mantidas em banco de dados relacional.
Esta forma de armazenamento é conhecida como ROLAP. Uma vez que os dados já se encontram em um modelo apropriado,
chamado multidimensional, basta processar as agregações. Com isso obtém-se ganho de espaço de armazenamento, uma vez que os
dados permanecem apenas na base de origem.

141
CONHECIMENTOS DE INFORMÁTICA

Alicerce em Cubos
Outra forma de armazenamento, cujo modelo matemático
denomina-se hipercubos, apresenta a característica de possuir
armazenamento e indexação em estruturas de dados que otimi-
zam consultas ao invés de atualizações.
Quando o modelo multidimensional é processado, nova
base é gerada, desta vez contendo tanto os dados quanto as
agregações em formato próprio, utilizando-se de estruturas
apropriadas para pesquisas. O modo A1, onde os números de linha são localizados por
A Figura ilustra uma representação de um cubo com três números e as colunas por letras. Assim, AA17 designa a célula na
dimensões Produto, Região e Tempo. interseção da 27ª coluna e da 17ª linha: 

Referências a uma célula


Para poder manipular dados que provenham de diferentes
células nos cálculos, é preciso poder fazer referência a elas. Há
várias maneiras de se referir a uma célula: a referência absoluta,
a referência nomeada, a referência mista e a referência relativa.

Referência absoluta
A referência absoluta representa o meio de designar uma
célula de maneira única em uma planilha. De acordo com o
modo de referência (L1C1 ou A1) a referência absoluta será es-
MS EXCEL crita de forma diferente: 
O Excel é uma ferramenta incrivelmente poderosa para tor- Em modo L1C1: a referência absoluta a uma célula é feita
nar significativa uma vasta quantidade de dados. Mas ele tam- precedendo o número de linha pela letra L e o número da coluna
bém funciona muito bem para cálculos simples e para rastrear pela letra C: 
de quase todos os tipos de informações. A chave para desblo- LNúmerodeLinhaCNúmerodeColuna
quear todo esse potencial é a grade de células. As células po- Ex: L12C24 para a célula situada na interseção da linha 12
dem conter números, texto ou fórmulas. Você insere dados nas com a coluna 24. 
células e as agrupa em linhas e colunas. Isso permite que você Em modo A1: neste modo ela é feita precedendo o número
adicione seus dados, classifique-os e filtre-os, insira-os em tabe- de linha e o número da coluna pelo sinal $. 
las e crie gráficos incríveis. Vejamos as etapas básicas para você $LetradaColuna$NúmerodeLinha
começar. Ex:  $AC$34  para a célula situada na interseção da coluna
chamada AC com a linha 34. 
O conceito de célula
Chama-se célula a interseção entre uma linha (horizontal) e Referência relativa
uma coluna (vertical) da planilha. Assim, o nome da linha com- A referência relativa de uma célula é a expressão da sua po-
binado com o nome da coluna resulta nas coordenadas de uma sição em relação a outra célula. Assim, uma
célula (o termo endereço também é utilizado). De um modo ge- referência relativa resulta na diferença (em termos de nú-
ral, podemos distinguir dois tipos de coordenadas (chamadas de mero de linhas e colunas) entre a célula (de referência) e uma
estilos de referência), dependendo das planilhas: célula apontada (célula referenciada). Por convenção, nota-se
O modo L1C1 (Linha 1, Coluna 1), onde a célula é localizada negativamente uma diferença para cima, para o eixo vertical e
pelo número de linha precedido da letra L e o número da coluna uma diferença para a esquerda, para o eixo horizontal.
precedido da letra C.  Em modo L1C1, a referência relativa a uma célula é feita
Assim, L12C34 designará a célula na intersecção da 12ª li- indicando as coordenadas da célula entre parênteses:
nha e da 34ª coluna: L(NúmeroDeLinha)C(NúmeroDeColuna)
Ex: L(3) C(-2) para a célula situada 3 linhas abaixo e 2 colu-
nas à esquerda em relação à célula de referência: 

142
CONHECIMENTOS DE INFORMÁTICA

Ou clique com o botão direito do mouse no topo da coluna


e selecione Inserir ou Excluir.

Inserir ou excluir uma linha


Para inserir uma linha, selecione a linha, selecione Página
inicial > Inserir > Inserir Linhas na Planilha.
Para excluir uma linha, selecione a linha, selecione Página
inicial > Inserir > Excluir Linhas da Planilha.
Ou clique com o botão direito do mouse na linha seleciona-
da e selecione Inserir ou Excluir.

Quando a diferença é nula não é preciso notar um zero en- Inserir uma célula
tre parêntese. Assim L(0)C(12) pode ser chamado LC(12).  Selecione uma ou mais células. Clique com o botão direito
Em modo  A1, a expressão da diferença entre as células é do mouse e selecione Inserir.
oculta. Na verdade, uma referência relativa em modo A1 é implí- Na caixa Inserir, selecione uma linha, coluna ou célula a ser
cita, basta indicar as coordenadas da célula apontada (referen- inserida.
ciada) sem indicar o sinal $: 
Criar uma nova pasta de trabalho
Os documentos do Excel são chamados de pastas de traba-
lho. Cada pasta de trabalho contém folhas que, normalmente,
são chamadas de planilhas. Você pode adicionar quantas plani-
lhas desejar a uma pasta de trabalho ou pode criar novas pastas
de trabalho para guardar seus dados separadamente.
Clique em Arquivo e em Novo.
Em Novo, que em Pasta de trabalho em branco

Referência mista
Chama-se mista a referência na qual a posição horizontal da
célula é expressa de maneira absoluta, e a posição vertical, de
maneira relativa, ou vice-versa. 
No modo L1C1 a referência mista terá a forma L2C(3) ou L(4)
C17. No modo A1, ela terá a forma $C5 ou F$18. 

Referência nomeada
É possível dar um nome a uma célula ou a um grupo de Insira os dados
células.  Clique em uma célula vazia.
Assim, quando uma célula, ou um intervalo de células, tem Por exemplo, a célula A1 em uma nova planilha. As células
um nome (às vezes, usamos o termo etiqueta), é possível re- são referenciadas por sua localização na linha e na coluna da
ferir-se a ela pelo nome. Esta funcionalidade é particularmente planilha, portanto, a célula A1 fica na primeira linha da coluna A.
útil quando certas células contêm dados característicos, porque Inserir texto ou números na célula.
podemos nos referir a elas pelo nome, mesmo que elas tenham Pressione Enter ou Tab para se mover para a célula seguinte.
sido movidas.
Em uma nota fiscal, por exemplo, é importante dar um Usar a AutoSoma para adicionar seus dados
nome tal como total_st para a célula que dá o subtotal, sem im- Ao inserir números em sua planilha, talvez deseje somá-los.
posto, dos pedidos. Você também pode criar uma célula chama- Um modo rápido de fazer isso é usar o AutoSoma.
da Imposto com o índice do mesmo. Assim, quando você quiser Selecione a célula à direita ou abaixo dos números que você
calcular o total com imposto, você só precisará multiplicar o pro- deseja adicionar.
duto da célula total_st pela célula Imposto.  Clique na guia Página Inicial e, em seguida, clique em Auto-
Soma no grupo Edição.
Inserir ou excluir uma coluna
Para inserir uma coluna, selecione a coluna, selecione Pági-
na inicial > Inserir > Inserir Colunas na Planilha.
Para excluir uma coluna, selecione a coluna, selecione Pági-
na inicial > Inserir > Excluir Colunas da Planilha.

143
CONHECIMENTOS DE INFORMÁTICA

A AutoSoma soma os números e mostra o resultado na cé- Se você não vir o formato de número que você está procu-
lula selecionada. rando, clique em Mais formatos de número.

Criar uma fórmula simples Classifique seus dados


Somar números é uma das coisas que você poderá fazer, Para classificar rapidamente seus dados
mas o Excel também pode executar outras operações matemáti- Selecione um intervalo de dados, como A1:L5 (várias linhas
cas. Experimente algumas fórmulas simples para adicionar, sub- e colunas) ou C1:C80 (uma única coluna). O intervalo pode in-
trair, multiplicar ou dividir seus valores. cluir títulos que você criou para identificar colunas ou linhas.
Escolha uma célula e, em seguida, digite um sinal de igual Selecione uma única célula na coluna que você deseja clas-
(=). sificar.
Isso informa ao Excel que essa célula conterá uma fórmula. Clique em   para executar uma classificação crescente (À
Digite uma combinação de números e operadores de cál- Z) ou do número menor para o maior.
culos, como o sinal de mais (+) para adição, o sinal de menos (-) Clique em   para executar uma classificação decrescente
para subtração, o asterisco (*) para multiplicação ou a barra (/) (Z a ou do número maior para o menor).
para divisão. Para classificar por critérios específicos
Por exemplo, insira =2+4, =4-2, =2*4 ou =4/2. Selecione uma única célula em qualquer lugar do intervalo
Pressione Enter. que você deseja classificar.
Isso executa o cálculo. Na guia dados, no grupo Classificar e filtrar, escolha Classi-
Você também pode pressionar Ctrl+Enter (se você deseja ficar.
que o cursor permaneça na célula ativa). A caixa de diálogo Classificar é exibida.
Na lista Classificar por, selecione a primeira coluna que você
Aplicar um formato de número deseja classificar.
Para distinguir entre os diferentes tipos de números, adicio- Na lista Classificar em, selecione Valores, Cor da Célula, Cor
ne um formato, como moeda, porcentagens ou datas. da Fonte ou Ícone de Célula.
Selecione as células que contêm números que você deseja Na lista Ordem, selecione a ordem que deseja aplicar à ope-
formatar. ração de classificação:  crescente ou decrescente, alfabética ou
Clique na guia Página Inicial e, em seguida, clique na seta numericamente (isto é, A a Z ou Z a A para texto ou menor para
na caixa Geral. maior ou maior para menor para números).

Filtrar seus dados


Selecione os dados que você deseja filtrar.
Na guia dados, no grupo Classificar e filtrar, clique em filtro.

Selecione um formato de número

Clique na seta   no cabeçalho da coluna para exibir uma


lista em que você pode fazer escolhas de filtragem.
Para selecionar por valores, na lista, desmarque a caixa de
seleção (Selecionar tudo). Isso remove as marcas de seleção de
todas as caixas de seleção. Em seguida, selecione apenas os va-
lores que você deseja ver e clique em Okey para ver os resulta-
dos.

O que é uma função do Excel?


Uma função é uma fórmula predefinida que realiza cálculos
usando valores específicos adicionados por você. Uma das prin-
cipais vantagens de usar estas funções, é que podemos econo-
mizar bastante nosso tempo pois elas já estão prontas e não é
necessário digitá-las totalmente. 

As partes de uma função


Cada função possui uma estrutura, ou seja, uma ordem es-
pecífica que você deverá seguir para obter um resultado corre-
to. A lógica básica para criar uma fórmula com uma função é a
seguinte:

144
CONHECIMENTOS DE INFORMÁTICA

Inserir o sinal igual (=).


Selecionar uma função (SOMA, por exemplo, é o nome da função usada para a adição).
Incluir os argumentos da fórmula, ou seja, os dados que serão usados para a realização do cálculo.

Para usar estas funções corretamente, é importante saber quais são as partes de uma função e, como criar argumento para cal-
cular valores e as referências de células.

Criar uma fórmula que faz referência a valores em outras células


Selecione uma célula.
Digite o sinal de igual =.
Observação: As fórmulas no Excel começam com o sinal de igual.
Selecione uma célula ou digite o endereço dela na célula selecionada.

Digite um operador. Por exemplo, – para subtração.


Selecione a próxima célula ou digite o endereço dela na célula selecionada.

Pressione Enter. O resultado do cálculo aparece na célula com a fórmula.


Consulte uma fórmula
Quando uma fórmula é inserida em uma célula, ela também aparece na barra de fórmulas.

Para ver uma fórmula, selecione uma célula e ela aparecerá na barra de fórmulas.

Inserir uma fórmula que contém uma função integrada


Selecione uma célula vazia.
Digite um sinal de igual =, depois digite uma função. Por exemplo, =SOMA para obter o total de vendas.
Digite um parêntese de abertura (.
Selecione o intervalo de células, depois digite um parêntese de fechamento ).

145
CONHECIMENTOS DE INFORMÁTICA

Pressione Enter para obter o resultado.

Fórmulas detalhadas
Você pode navegar pelas seções individuais abaixo para saber mais sobre os elementos específicos da fórmula.

As partes de uma fórmula do Excel


Uma fórmula também pode conter qualquer um dos itens a seguir ou todos eles: funções, referências, operadores e constantes.
Partes de uma fórmula   

1. Funções: a função PI() retorna o valor de pi: 3,142...


2. Referências: A2 retorna o valor na célula A2.
3. Constantes: números ou valores de texto inseridos diretamente em uma fórmula, por exemplo, 2.
4. Operadores: o operador ^ (circunflexo) eleva um número a uma potência e o operador * (asterisco) multiplica números.

Usando constantes em fórmulas do Excel


Uma constante é um valor não calculado, sempre permanece o mesmo. Por exemplo, a data 09/10/2008, o número 210 e o texto
“Receitas trimestrais” são todos constantes. Uma expressão ou um valor resultante de uma expressão, não é uma constante. Se você
usar constantes na fórmula em vez de referências a células (por exemplo, =30+70+110), o resultado se alterará apenas se você modi-
ficar a fórmula. Em geral, é melhor colocar constantes em uma célula individual, onde ela pode ser alterada facilmente se necessário,
e só então referenciá-las nas fórmulas.

Usando referências em fórmulas do Excel

Uma referência identifica uma célula ou um intervalo de células em uma planilha e informa ao Excel onde procurar pelos valores
ou dados a serem usados em uma fórmula. Você pode utilizar referências para usar dados contidos em partes diferentes de uma pla-
nilha em uma fórmula ou usar o valor de uma célula em várias fórmulas. Você também pode se referir a células de outras planilhas
na mesma pasta de trabalho e a outras pastas de trabalho. As referências a células em outras pastas de trabalho são chamadas de
vínculos ou referências externas.

O estilo de referência A1
Por padrão, o Excel usa o estilo de referência A1, que se refere a colunas com letras (A até XFD, para um total de 16.384 colunas)
e se refere a linhas com números (1 até 1.048.576). Essas letras e esses números são chamados de títulos de linha e coluna. Para se
referir a uma célula, insira a letra da coluna seguida do número da linha. Por exemplo, B2 se refere à célula na interseção da coluna B
com a linha 2.

146
CONHECIMENTOS DE INFORMÁTICA

Fazendo referência a um intervalo de células em outra pla- =MÍNIMO()


nilha na mesma pasta de trabalho ou em inglês =MIN()
No exemplo a seguir, a função MÉDIA calcula o valor médio
do intervalo B1:B10 na planilha denominada Marketing na mes-
ma pasta de trabalho.

1. Refere-se a uma planilha denominada Marketing Se o utilizador necessitar encontrar o número menor dentro
2. Refere-se ao intervalo de células B1 a B10 de um intervalo de células então a função MÍNIMO pode ajudar.
3. O ponto de exclamação (!) separa a referência de planilha Por exemplo, se usarmos um intervalo de células com a fórmu-
da referência do intervalo de células la =MÍNIMO(M3:M39) será mostrado nesse campo o valor mais
baixo encontrado em todo o conjunto de células.
Funções mais usadas  
=SOMA() =MÁXIMO()
ou em inglês =SUM() ou em inglês =MAX()

Esta é uma das funções mais básicas e ao alcance de todos


Ao contrário da função  MÍNIMO, a função  MÁXIMO  faz
os utilizadores Excel. A sua função é soma de células, por exem-
exactamente o oposto, ou seja, quando aplicada a fórmula =MÁ-
plo, a soma dos números contidos na célula B2 e na célula M2
e serem apresentados na célula D3. Para usar esta função basta XIMO(M3:M39) iremos obter o maior número contido num in-
clicar na célula onde pretendemos ver o resultado, por exemplo tervalo de células por nós definido.
a D3 e escrever =SOMA( e de seguida premir e manter premida
a tecla CTRL para depois clicar com o rato nas células a somar, =CONT.NÚM()
como no exemplo a B2 e a M2. Uma vez seleccionadas as células ou em inglês =COUNT()
carrega-se em  ENTER  e o resultado da soma aparece de ime-
diato. É possível seleccionar células específicas ou um conjunto
seguido de células.

=MÉDIA()
ou em inglês =AVERAGE()

Caso o utilizador necessite saber quantas células num de-


terminado conjunto contêm números então esta função evita
as contagens manuais. Mesmo que existam textos misturados
com números a função  CONT.NÚM  consegue apresentar o re-
sultado correcto. Por exemplo, você pode inserir a seguinte
fórmula para contar os números no intervalo A1:A20:  =CONT.
NÚM(A1:A20) neste exemplo, se cinco das células no intervalo
A função MÉDIA faz nada mais do que a palavra diz: tira a contiverem números, o resultado será 5.
média de valores somados entre eles. A função MÉDIA mede a
tendência central, que corresponde à localização do centro de
um grupo de números numa distribuição estatística. O modo de
funcionamento é igual à função de SOMA anteriormente expli-
cado. Um exemplo: =MÉDIA(número1 [número2] …).

147
CONHECIMENTOS DE INFORMÁTICA

=DIAS()
ou em inglês =DAYS()

Quer saber o número de dias entre duas datas numa folha de cálculo? Se tivesse, por exemplo, a data de 5 de setembro de 2015
na célula A4 e 27 de dezembro de 2015 em A5 ao usar a função =DIAS(A5, A4) poderia obter a resposta imediatamente. Nesta função
devemos ter em conta que ao inverter a ordem das células obteríamos um número positivo.

=ARRED()
ou em inglês =ROUND()

Como a abreviatura da função pode sugerir, esta função permite arredondar números. O =ARRED() exige dois argumentos: um
número ou célula e o número de dígitos para arredondar para. Por exemplo se tivermos o número 231.852645 em A1, por exemplo,
=ARRED(A1, 0) iremos obter o número 232. Por outro lado se escrevermos =ARRED(A1, 1) veremos o número 232,9 ou ainda =AR-
RE(A1,-1) devolverá o valor 230.

=ARRED.PARA.CIMA() e =ARRED.PARA.BAIXO()
ou em inglês = ROUNDUP(), =ROUNDDOWN()

Se procuramos um um controlo mais directo sobre arredondamentos para cima ou para baixo existem estas duas funções tam-
bém. Por um lado o =ARRED.PARA.CIMA() irá arredondar um número para cima afastando-o de zero, por outro =ARRED.PARA.BAI-
XO() que por defeito arredonda um número até zero. Por exemplo =ARRED.PARA.BAIXO(3,2 0) irá arredondar o valor 3,2 por defeito
para nenhuma casa decimal ou seja para o valor de 3.
O exemplo oposto de =ARRED.PARA.CIMA() seria: =ARRED.PARA.CIMA(3,2 0) a função arredondaria o valor de 3,2 para cima até
zero de casas decimais ou seja, reflectindo o valor de 4.

Faixa de Opções
Há três componentes básicos na Faixa de Opções e que é bom saber como cada um se chama para compreender como utilizá-la.
São eles:

- Guias - Há oito guias básicas na parte superior: Arquivo, Página Inicial, Inserir, Layout da Página, Fórmulas, Dados, Revisão e Exi-
bição. Cada uma representa uma área de atividade e apresenta os comandos reunidos por grupos. Por exemplo, a guia Página Inicial
contém todos os comandos utilizados com mais frequência. E os botões Cor do preenchimento, Cor da fonte e Tamanho da fonte estão
no grupo Fonte. Estas opções são provavelmente as mais utilizadas, por iniciantes no Excel, juntamente com as opções do grupo Área
de Transferência.

148
CONHECIMENTOS DE INFORMÁTICA

- Grupos - Cada guia tem vários grupos que mostram os itens de botões de ação. Exemplo: os botões Negrito e Fonte estão no
grupo Fonte, já os botões Mesclar Célula, Centralizar e Alinhar à Direita, estão no grupo Alinhamento.
- Botões de Ação, ou Comandos - Um comando é um botão, ou uma caixa para inserir informações, ou um menu de determinada
ação. Nestes espaços, você começa a aplicar todas as ações de formatação, criação, desenvolvimento de uma planilha. Exemplo: gra-
var macros e inserir gráficos, são algumas das ações.

As Funções dos Componentes da Faixa de Opções.


Não precisa memorizar os grupos, pois basta memorizar as guias e os comandos. Abaixo descrevemos as guias e os respectivos
grupos:
- Guia Arquivo - Acessa a área de gerenciamento de arquivos chamada Backstage. Nela temos as opções: Informações, Novo,
Abrir, Salvar, Salvar Como, Imprimir, Compartilhar, Exportar, Publicar, Fechar, Conta, Comentário e Opções. Algumas opções foram
acrescentadas na últimas versões do Excel
- Página Inicial - É mais utilizada, para aplicar formatações de planilha e alterações de linhas colunas, etc. Encontramos os seguin-
tes grupos: Área de transferência, Fonte, Alinhamento, Número, Estilo, Células e Edição.
- Inserir - Esta guia tem várias funções importantes e avançadas, para desenvolvimento e aplicações da planilha. Os grupos são:
Tabelas, Ilustrações, Gráficos, Tours, Manigráficos e Links. Isso pode variar muito entre as versões do Excel.
- Desenhar - Representa ferramentas para desenhar, escrever e fazer marcações em uma planilha. Temos os grupos: Ferramentas,
Canetas, Converter e Repetição.
- Layout da Página - Esta guia tem funções relacionadas a visualização das planilhas, principalmente para impressão. Temas, Con-
figuração de Página, Dimensionar para Ajustar, Opções de Planilha e Organizar. Estes são os grupos encontrados.
- Fórmulas - Funciona especificamente para quem trabalha com fórmulas na planilha. A verificar pelos grupos: Biblioteca de Fun-
ções, Nomes Definidos, Auditoria de Fórmulas e Cálculo.
- Dados - Para trabalhar com listas, importação de dados e exportação de dados. Veja os grupos: Obter e Transformar Dados,
Consultas e Conexões, Classificar e Filtrar, Ferramentas de Dados e Previsão. Depende de sua versão do Excel, os grupos podem ser
bem diferentes.
- Revisão - A parte mais utilizada dessa guia é o grupo Proteger. Mas não mais importante que: Revisão de Texto, Acessibilidade,
Ideias, Idioma e Comentários.
- Exibir - Tem fator importante na planilha, veja os grupos: Modo de Exibição de Pasta de Trabalho, Mostrar, Zoom, Janela e Ma-
cros.
- Desenvolvedor - esta guia é para quem trabalha com Excel intermediário, ou avançado. Ela não está disponível por padrão, mas
você pode adicionar. Quando adicionar veja os grupos e suas funções.

Navegação básica no Excel


Abrir uma planilha nova: Ctrl + A
Salvar uma planilha: Ctrl + B
Fechar uma planilha: Ctrl + W
Ir para a página inicial: Alt + C
Copiar: Ctrl + C
Recortar: Ctrl + X
Colar: Ctrl + V
Desfazer última ação: Ctrl + Z
Ir para a guia de dados: Alt + S
Ir para a guia Exibir: Alt + K
Ir para a guia Inserir: Alt + T
Ir para a guia de layout: Alt + P
Ir para a guia de fórmulas: Alt + N

149
CONHECIMENTOS DE INFORMÁTICA

Navegação nas células


Ir para células acima, abaixo ou aos lados: teclas de direção
Ir para a próxima célula à direita ou alternar entre células desbloqueadas (no caso de planilhas protegidas): Tab
Ir para a célula anterior (ou para a opção anterior em caixas de diálogo): Shift + Tab
Ir para a borda da área de dados atual: Ctrl + teclas de direção
Ir para a última célula da planilha, no canto inferior direito: Ctrl + End
Expandir a seleção até a última célula: Ctrl + Shift + End
Ir para o começo da planilha: Ctrl + Home
Mover a tela para a direita: Alt + Page Down
Mover a tela para a esquerda: Alt + Page Up
Mover a tela para cima: Page Up
Ir para a planilha anterior dentro da pasta de trabalho: Ctrl + Page Up
Inserir formato de data (dia, mês e ano): Ctrl + Shift + # (sinal numérico)
Inserir formato de hora (hora e minutos): Ctrl + Shift + @ (arroba).

Barra de fórmulas, dados e funções


Expandir ou reduzir a barra de fórmulas: Ctrl + Shift + U
Finalizar uma entrada na barra de fórmulas e selecionar a célula abaixo: Enter
Cancelar uma entrada na barra de fórmulas ou na célula: Esc
Selecionar o texto da barra de fórmulas do local onde está o cursor até o final: Ctrl + Shift + End
Calcular a planilha inteira: Shift + F9
Calcular todas as planilhas em todas as pastas de trabalho abertas: F9
Ativar o preenchimento relâmpago para identificar padrões nas colunas adjacentes e aplicá-los na coluna selecionada automati-
camente: Ctrl + E
Inserir uma função: Shift + F3
Escolher um nome para usar nas referências: Alt + M, depois M, depois D
Criar um gráfico dos dados no intervalo atual: Alt + F1
Criar um gráfico dos dados no intervalo atual, mas em uma folha de gráfico diferente: F11
Criar, editar ou excluir uma macro: Alt + F8
.
Fonte:
https://support.office.com/pt-br
https://edu.gcfglobal.org/pt/microsoft-excel-2010/o-que-e-uma-funcao-do-excel/1/
https://www.tudoexcel.com.br/planilhas/o-que-e-a-faixa-de-opcoes-do-excel-3042.html
https://pplware.sapo.pt/truques-dicas/conheca-15-funcoes-essenciais-do-excel/
https://www.impacta.com.br/blog/2018/08/13/conheca-principais-atalhos-excel-ajudar-dia-a-dia/
www.qconcursos.com
https://www.ufrgs.br/soft-livre-edu/software-educacional-livre-na-wikipedia/r-linguagem-de-programacao/
https://estatsite.com/2016/04/27/primeiros-passos-no-r-studio/
https://vivianeribeiro1.wordpress.com/2011/07/12/o-que-e-olap/

SISTEMA DE ARQUIVOS E INGESTÃO DE DADOS: CONCEITOS DE MAPREDUCE, HDFS/HA-


DOOP/YARN 2.7.4, FERRAMENTAS DE INGESTÃO DE DADOS (SQOOP 1.4.6, FLUME 1.7.0, NIFI
1.3.0 E KAFKA 0.11.0).

A evolução das técnicas de obtenção de dados aumentou a quantidade destes que temos à disposição. Isso significa que, fre-
quentemente, temos de processar mais dados para obtermos as informações que queremos. Para fazer com que isso aconteça em
um tempo razoável, é necessário aumentar a capacidade de processamento das entidades envolvidas. O aumento do poder individual
de processamento pode ser custoso ou até tecnicamente inviável. A figura 1 mostra uma tendência na diminuição do aumento da
frequência dos processadores.

150
CONHECIMENTOS DE INFORMÁTICA

Figura 1 - A frequência dos processadores Intel de acordo com o ano de lançamento

Dessa forma, para obter o resultado de algum processamento em tempo razoável, frequentemente faz-se necessária a paraleliza-
ção ou distribuição da computação dos dados.
O modelo MapReduce é uma abstração criada para oferecer aos implementadores uma interface que seja simples e poderosa,
separando os problemas da paralelização dos problemas a serem resolvidos, buscando uma uniformidade na abordagem dessas
questões de paralelismo.
É necessário frequentemente utilizar diversas unidades de processamento para obter o poder computacional desejado para re-
solver alguns problemas. A fim de atender a essa demanda, foram criados sistemas que possuem essas diversas unidades de proces-
samento, objetivando aumentar a capacidade de computação ao menor custo possível. A um sistema com diversas dessas unidades
se dá o nome de cluster. Cada um dos processadores de um cluster é chamado de nó.
Existem dois tipos básicos de sistemas com diversos processadores dedicados a resolver o mesmo problema: os sistemas parale-
los e os sistemas distribuídos. Nos sistemas paralelos, todos os processadores estão fisicamente na mesma máquina. Isso significa que
existe um compartilhamento de memória e discos, mesmo que ele não seja completo. Nos sistemas distribuídos, os processadores
estão em máquinas diferentes que estão conectadas por alguma rede. Então, apenas os recursos disponíveis na rede são comuns a
todas as máquinas, de forma que cada uma tem sua memória e seu disco próprio.
Paralelizar um processamento de dados é dividir o esforço computacional entre diversos processadores e fazer com que isso ocor-
ra de forma aproximadamente simultânea. A paralelização pode ser implementada através de uma divisão do bloco inicial de dados
em blocos menores que podem ser processados individualmente, simultaneamente e em menos tempo do que o bloco inicial. Ao
final, os dados oriundos dos diversos processamentos devem ser agregados para se obter o resultado final. Uma paralelização pode
ser implementada e executada num sistema paralelo ou em um sistema distribuído. A figura 2 ilustra um exemplo onde os dados de
entrada são fragmentados, processados em diferentes nós e agregados para que se obtenha uma saída final.

Figura 2 - Dados processados de forma paralela.

151
CONHECIMENTOS DE INFORMÁTICA

A paralelização traz diversas complicações que devem ser Implementações


tratadas para que o processamento seja rápido e seus resulta- Existem diversas implementações diferentes para o mode-
dos estejam certos, por exemplo: lo MapReduce. É na implementação que devem ser resolvidas
as questões relativas à paralelização, como a sincronização e a
Como dividir trabalho entre os processadores? exclusão mútua. Uma boa realização depende também do am-
Como garantir que os passos do algoritmo que são inevi- biente onde ela será executada: máquinas muito velozes conec-
tavelmente sequenciais estejam sendo executados sequencial- tadas por uma rede muito lenta requerem uma implementação
mente? diferente de um cluster de máquinas mais lentas conectadas por
Como garantir exclusão mútua no acesso aos recursos? uma rede muito veloz. Nesse trabalho abordaremos três cons-
Qual o melhor jeito de realizar a agregação? truções: a da Google], o Hadoop e a MOON. Da primeira, fala-
A chave para resolver esses problemas é garantir a sincroni- remos de alguns problemas e soluções encontradas pela equipe
zação dos processos envolvidos. Isso porque, em um ambiente Google; da segunda, trataremos do ponto de vista do usuário;
de multiprocessos, o andamento de cada processamento indivi- em último, a motivação por trás do MOON.
dual é imprevisível e, quase sempre, diferente.
Cada problema a ser resolvido através de computação dis- Google
tribuída possui suas peculiaridades. Porém, existem questões Essa implementação foi feita pensando no ambiente de uso
que são comuns a todos os problemas de computação distri- comum da Google: centenas ou milhares de computadores pes-
buída, como abordado anteriormente. Há diversas tentativas soais comuns, (processador dual x86, com 2 a 4 GB de memória)
de uniformizar a abordagem a esses problemas e uma delas é o conectados em rede, com equipamentos de uso doméstico e um
modelo MapReduce. sistema de arquivos distribuído de discos IDE com alto índice de
O modelo MapReduce foi proposto pela Google quando no- falhas.
tou-se a grande quantidade de soluções específicas implemen- De acordo com o modelo, o usuário implementa as funções
tadas em sistemas distribuídos para trabalhar de diferentes ma- map e reduce e a função MapReduce é chamada no programa
neiras com diversos tipos de dados. O modelo procura permitir do usuário. A partir daí, a seguinte sequência acontece:
aos usuários programar apenas o problema que se quer resol- Os dados de entrada são fragmentados em fragmentos de
ver, isolando problemas comuns às implementações distribuídas 64MB de forma automática ou pelo programa do usuário.
e solucionando essas questões em outra camada. Com isso, o O programa do usuário é copiado e inicializado em todas as
MapReduce procura criar uma abstração que melhore a perfor- máquinas.
mance de programas para sistemas distribuídos, utilizando de Uma das máquinas é eleita a máquina mestre e, as outras,
forma implícita a filosofia do “dividir para conquistar”. trabalhadoras. A mestre escolhe trabalhadoras livres e as envia
Para criar a abstração supracitada, o MapReduce utiliza de tarefas.
conceitos da programação funcional. O usuário deve programar Máquinas trabalhadoras que executam tarefas de map
duas funções, map e reduce, que servirão de interface para uma guardam em memória os valores intermediários e as escrevem
implementação no sistema distribuído que poderá paralelizar no disco local periodicamente, informando à máquina mestre
a execução dessas funções com tolerância a falhas, balanço de onde os pares chave/valor intermediários estão.
carga ou qualquer outra propriedade que o implementador do Máquinas trabalhadoras que executam tarefas de reduce
sistema distribuído decidir que é importante. As funções map e recebem da máquina mestre autorização para começar as tare-
reduce funcionam da seguinte forma: fas e também recebem os locais onde estão escritos os valores
map(chave, valor): recebe um par de entrada de chave e relacionados àquela redução.
valor e produz um conjunto intermediário de chaves e valores. A máquina trabalhadora de redução que recebeu os parâ-
reduce(chave, valores): recebe uma entrada chave e um metros de entrada escreve seus valores de saída no final do ar-
conjunto de valores relacionados àquela chave. quivo de saída desssa redução.
Assim, a implementação do MapReduce recebe um conjun- O mestre desbloqueia o programa do usuário.
to inicial de pares chave e valor e invoca a função map para cada Funcionamento da implementação do MapReduce pela
par. Depois, a implementação cria listas, onde cada uma contém Google
todos os valores intermediários (produzidos quando a função
map é invocada) que estão associados à mesma chave interme-
diária e chama a função reduce para cada chave intermediária e
a lista associada àquela chave intermediária.
O modelo MapReduce oferece apenas uma interface entre
a implementação de um sistema distribuído e o usuário desse
sistema. Por isso, o sucesso do modelo depende de uma cons-
trução satisfatória de um sistema distribuído que atenda às ex-
pectativas de oferecer uma execução das funções map e reduce.
Além disso, ainda devem ser adicionadas propriedades e ativi-
dades como tolerância a falhas, sistemas de arquivos, protoco-
los de comunicação entre processos, entre outras.

152
CONHECIMENTOS DE INFORMÁTICA

Figura 3 - Funcionamento da implementação do MapReduce pela Google.

O sistema tolera falhas fazendo com que o mestre envie e receba notificações das máquinas trabalhadoras. Se alguma destas fica
muito tempo sem responder, o mestre para de designar tarefas a ela e designa sua tarefa atual a outra máquina. O mestre também
mantém um arquivo sobre o estado da execução geral do MapReduce. Caso o mestre falhe, outra máquina pode ser eleita o mestre e
começar a execução de onde o anterior falhou.

Hadoop
O Hadoop é uma plataforma capaz de executar tarefas map e reduce com máquinas que são indicadas pelo usuário.
Para utilizar o Hadoop, o usuário escreve a função map implementando o método homônimo de uma interface Java® de nome
Mapper. É possível encontrar um exemplo de código escrito em Java® no tutorial do Hadoop.
Além disso, o usuário precisa indicar para o Hadoop em quais máquinas serão executadas as tarefas, inicializar as máquinas, ge-
renciar falhas. Assim, a plataforma é voltada para usuários com experiência em programação.

MOON
MOON (MapReduce On Opportunistic eNvironments, MapReduce em Ambientes Oportunistas) é uma plataforma de execução
do MapReduce projetada para sistemas distribuídos onde a indisponibilidade de recursos é muito alta. Essa plataforma tem como
objetivo facilitar a chamada “computação voluntária”, onde pessoas doam ciclos ociosos de suas máquinas pessoais para ajudar pro-
jetos científicos.
A MOON utiliza o Hadoop como núcleo e ferramentas de estatística para melhorar suas decisões de designação de tarefas, tole-
rância a falhas e outros problemas desse tipo de sistema distribuído.

HADOOP
O Hadoop é um framework desenvolvido na linguagem Java, que permite utilizar o modelo de programação MapReduce. Ele dis-
ponibiliza APIs (Application Programming Interface) para que os usuários possam escrever as funções Map e Reduce, nas linguagens
Java, C++, Python, Ruby, entre outras, conforme a necessidade do problema (WHITE, 2015).
O Hadoop possui a mesma arquitetura Master/Worker utilizada pelo paradigma MapReduce. Permite também que programado-
res sem experiência com sistemas paralelos e distribuídos o utilizem sem grandes dificuldades, pois oculta toda a complexidade do
sistema. O particionamento dos dados de entrada, agendamento das execuções no conjunto de máquinas, manipulação das falhas e
das comunicações entre as máquinas são tratados pelo próprio sistema (GOLDMAN, 2012).

Arquitetura Geral do Hadoop


A estrutura principal do Hadoop é subdividida em quatro principais módulos, sendo: o Hadoop Common, o Hadoop Distributed
FileSystem (HDFS), o Hadoop MapReduce (HMR) e o Hadoop Yet Another Resource Negotiator (YARN). A partir da versão 2.0, o Ha-
doop tornou-se mais flexível permitindo a execução de aplicações não HMR, como Spark, Storm, entre outros (VAVILAPALLI, 2013).
As máquinas que operam sobre sistemas distribuídos são comumente chamadas de nós. No Hadoop o nó Master é o responsá-
vel pela coordenação dos nós Workers. É ele que mantém os metadados de referência para todos os dados distribuídos no cluster,

153
CONHECIMENTOS DE INFORMÁTICA

recupera o sistema em caso de falhas e faz o gerenciamento dos recursos computacionais. Nós Workers tem como propósito o arma-
zenamento e processamentos dos dados, além de frequentemente informar ao nó Master sobre seu estado atual (processando ou
ocioso) (WHITE, 2015).
Nesta seção serão abordados os módulos do Hadoop MapReduce. A apresentação das funções desses módulos faz-se necessária
pois permite com mais clareza compreender a qual módulo pertence cada configuração de parâmetro tratada no Capítulo 3.

Hadoop common
É no Hadoop Common que se encontram todas as bibliotecas e arquivos comuns e necessários para os outros módulos do Hadoop
(HMR, HDFS e YARN). Bibliotecas para serialização de dados, chamada remota de métodos, manipulação de arquivo, entre outras,
ficam neste subprojeto (KOCAKULAK E TEMIZEL, 2011).

Hadoop distributed file system


Quando o conjunto dos dados supera a capacidade de armazenamento de uma única máquina, se torna necessário particionar
esses dados ao longo de um conjunto de máquinas. O sistema que gerencia o armazenamento distribuído é denominado distributed
file system (COULOURIS, 2005).
O Hadoop utiliza um sistema de arquivos global distribuído chamado Hadoop Distributed File System ou HDFS. O HDFS é otimi-
zado para atuar em dados estruturados e não estruturados de forma distribuída, e foi baseado no Google File System (GHEMAWAT
et al, 2003). O HDFS possui um conjunto de funcionalidades que merecem destaque como: armazenamento, organização, nomeação,
recuperação, compartilhamento, proteção e permissão de acesso aos arquivos (WHITE, 2015). Os arquivos no HDFS são divididos em
blocos de tamanho fixo padrão (128 Megabytes), valor este que pode ser alterado.
O HDFS é o responsável pela persistência e consistência dos dados, possui também transparência à falhas de rede e replicação
de dados. Para assegurar que os dados não estejam corrompidos e nenhuma falha de máquina e disco interrompa o processamento,
cada bloco do HDFS é replicado em um pequeno número de máquinas físicas (tipicamente três). Caso algum bloco não esteja acessível
devido a existência de algum problema, uma cópia pode ser lida de outra localização de modo totalmente transparente ao usuário
(WHITE, 2015).
O nó Master do Hadoop precisa saber quais dados estão em cada nó Worker, para assim atribuir Tasks aos nós de maneira a evitar
ao máximo a ocorrência de tráfego de rede. O HDFS precisa de dois tipos de processos para o seu funcionamento, sendo: um Name-
node contido no nó Master e para os nós Workers o Datanode (GOLDMAN, 2012).
Os Datanodes armazenam e recuperam blocos de dados, e enviam a lista de blocos que estão armazenados para o Namenode,
atualizando a informação periodicamente. O Namenode mantém metadados para todos os arquivos e diretórios do sistema, sabendo
assim a localização de um determinado arquivo em meio a todos os Datanodes (GOLDMAN, 2012). A Figura 3 mostra em alto nível
uma visão geral da estrutura do HDFS.

Figura 3 - Arquitetura do HDFS

154
CONHECIMENTOS DE INFORMÁTICA

O HDFS possui um ponto crítico de falha, no caso do nó • Application Master: Um por aplicação. Responsável pelo
Master que execute o processo NameNode falhar. Porém exis- gerenciamento do ciclo de vida da aplicação, pelas requisições
tem mecanismos de recuperação caso isso ocorra (WHITE, de recursos ao schedular, e pela execução e acompanhamento
2015). Um desses mecanismo é a utilização de um NameNode das Tasks através da comunicação com o Node Manager;
que fica em stand-by, que entra em funcionamento em caso de • Data Node: Um por Worker. Responsável por armazenar e
falha no NomeNode ativo. Ainda havendo um erro no NameNo- recuperar blocos de dados armazenados localmente.
de em stand-by é possível utilizar o Namenode secundário, que A Figura 4 exemplifica a troca de mensagens entre os mó-
entra em funcionamento através de uma cópia dos metadados dulos e nós do cluster ao executar dois Jobs. Os containers que
do Namenode principal. executam as Tasks reportam seu status ao Application Master
que por sua vez reporta ao Resource Manager. O Application
Hadoop MapReduce Master faz as requisições de container para a execução das Tasks
O Hadoop MapReduce ou HMR é responsável pelo proces- ao Resource Manager. O NameNode por sua vez recebe periodi-
samento dos dados armazenados no HDFS ou em outro sistema camente os blocos armazenados em cada DataNode (Kobylinska
de armazenamento. A execução completa de um programa HMR e Martins, 2014).
é chamado de Job e a divisão de um Job entre os nós Workers é
denominado Task.
O gerenciador de recursos YARN (que será explicado adian-
te) no Hadoop utiliza a definição de container para a alocação de
recursos. Um container é uma parcela de recursos (CPU, memó-
ria, etc) de uma máquina do cluster que pode ser reservada para
a execução de uma aplicação, sendo esta aplicação HMR ou não.
Tom White (2015) cita que em alto nível, para a execução de
um Job no HMR existem 5 entidades independentes:
• O cliente: submete o Job MapReduce a ser executado;
• O YARN Resource Manager: coordena a alocação dos re-
cursos computacionais no cluster;
• O YARN Node Manager: carrega e monitora os containers
nas máquinas do cluster;
• O MapReduce Aplication Master: coordena as Tasks que
executam os Jobs MapReduce;
• O HDFS: compartilha os arquivos entre os nós do cluster.
Abaixo é feita uma explicação para melhor compreender os
locais e processos das entidades YARN, Aplication Master e HDFS
no cluster (WHITE, 2015).
O Nó Master possui dois componentes sendo eles: A Figura 5 ilustra em alto nível de abstração o processo de
• Resource Manager Yarn: Um por cluster, e é dividido em execução de um Job MapReduce no Hadoop. Segundo White
dois componentes: (2015) as etapas são:
Schedular: Responsável por fornecer os recursos requisita- • O cliente submete um Job (passo 1);
dos pelo Applications Master, e acompanhar a execução dessa • É solicitado ao Resource Manager um identificador para
aplicação; essa novo Job (passo 2).
Application Manager: Responsável por manter uma coleção • Na sequência os dados de entrada desse novo Job são par-
de submissões de aplicações. Após a submissão de uma apli- ticionados em blocos, e copiados para o HDFS (passo 3).
cação primeiro valida-se suas especificações e rejeita qualquer • Após essa etapa, o Job MapReduce entra em execução
aplicação que solicita recursos insatisfatível (isto é, não há ne- (passo 4).
nhum nó no cluster que tenha recursos suficientes para executar • O schedular YARN aloca um container com a Application
o Application Master). Em seguida, ele garante que nenhuma Master, e então o Resource Manager executa o processamento
outra aplicação já tenha sido apresentada com a mesma iden- da aplicação Master nesse container (passo 5).
tificação. • Application Master MapReduce é que inicializa o proces-
• NameNode: Um por cluster. Contêm metadados de todos samento do Job (passo 6).
os arquivos e diretórios do sistema. • Em seguida são recuperados os blocos da entrada do
A partir da versão 2.0 do Hadoop a coordenação de um Job HDFS (passo 7).
não ocorre no nó Master, mas sim em um container instanciado • Para cada bloco da entrada é criado uma Task Map, e o
em uma máquina Worker. Uma máquina Worker possui geral- número de Tasks Reduce é determinado pela propriedade ma-
mente dois componentes, podendo possuir três no caso da ins- preduce.Job.reduces. Application Master é quem decide como
tância de gerenciamento da aplicação. Esses componentes são: executar o Job. Caso o Job seja pequeno ele pode ser executado
• Node Manager: Um por Worker. Responsável por gerenciar o localmente, do contrário o Application Master requisita contai-
ciclo de vida de um container e monitorar a utilização de cada ners para todas as Task Map e Reduce ao Resource Manager
recurso do container; (passo 8).

155
CONHECIMENTOS DE INFORMÁTICA

• Uma vez que o Resource Manager tenha atribuído um container Task que o Application Master solicitou, o Applicantion Master
inicializa o container se comunicando com o NodeManager (passo 9).
• Antes de executar a Task, são localizados os recursos que ela necessita (passo 10).
• Por fim, a Task é executada (passo 11).

Para processar uma Task é criada uma nova instância da Máquina Virtual Java (JVM) denominada YarnChild. O YarnChild é uma
JVM dedicada a Task, evitando assim que qualquer bug oriundo de funções Map e Reduce mal definidas afete o NodeManager (WHI-
TE, 2015).
Quando a Application Master recebe a notificação que a última Task do Job está completa, seu status é alterado para “successful”.
Então, o JobClient exibe a mensagem para o usuário informando que o processo foi finalizado com sucesso.

Hadoop YARN
Em versões anteriores à adoção do YARN, uma entidade denominada JobTracker contida no nó Master era responsável pela reser-
va e monitoramento de slots para a execução das Tasks. Era também responsabilidade do JobTracker “limpar” os recursos temporários
e tornar os slots reservados disponíveis para outras Tasks. O fato de existir somente uma instância Jobtracker no cluster limitava a
escalabilidade e levava ao problema da execução MapReduce falhar, caso houvesse interrupção do JobTracker.
A ideia de pré-definir os slots Map e Reduce causava problemas de recursos, como no caso de todos os slots Map estarem ocu-
pados enquanto ainda existiam slots Reduce disponíveis e vice-versa. Enfim, não era possível usar a infraestrutura do Hadoop para
outro tipo de processamento.

156
CONHECIMENTOS DE INFORMÁTICA

Com a adoção do YARN no Hadoop como gerenciador de recursos, não mais utiliza-se a definição de slot para gerenciar recursos.
Ao invés disso, tem-se agora recursos computacionais que podem ser alocados pela aplicação. Dessa maneira aplicações MapReduce
podem ser executadas juntamente com aplicações não MapReduces (WHITE, 2015).
Na Figura 6 é possível visualizar que anteriormente no Hadoop versão 1.0 toda a estrutura de gerenciamento de recursos era aco-
plada ao módulo Hadoop MapReduce o que restringia a plataforma a um único modelo de programação. Mas, com a adoção do YARN
outros frameworks de processamento podem fazer uso da infraestrutura do Hadoop já que são executados em uma camada superior
e independente (KOBYLINSKA e MARTINS, 2014).

Exemplificando as Funções Map e Reduce


A demonstração mais clássica do funcionamento do paradigma MapReduce é o programa que realiza a contagem de palavras
(WordCount), o qual é distribuído como parte do pacote de exemplos no Hadoop. O WordCount possui como entrada um conjunto
de arquivos de texto a partir dos quais a frequência de registros da palavra é contada, e para a saída é gerado um arquivo de texto
contendo a quantidade de vezes que cada palavra foi encontrada nos arquivos.
No exemplo demonstrado no Quadro 2, a função Map recebe como chave o nome do documento e um valor contendo o conte-
údo do documento. Para cada palavra presente no documento emite-se um par intermediário, onde a chave representa a palavra e o
valor representa a frequência de aparições dela. A função
Reduce recebe como parâmetro as saídas das funções Map, sendo a chave (palavra) e o valor (frequência). Na sequência, a variá-
vel result recebe o somatório de valores da lista values e então emite o valor total de ocorrência da palavra recebida.

Para essa demonstração, utiliza-se o arquivo de texto contendo a frase:

“O gato não gosta do cão e o cão não gosta do gato”

Segundo PICOLI (2014) o processo de execução do Job WordCount, demonstrado na Figura 7 (pág. 30), é composto pelas seguin-
tes fases:
• Split: Primeiramente seleciona-se os arquivos necessário no HDFS e divide-os em tamanho fixos.
• Map: O nó contendo o Aplication Master é incumbido de criar os containers para que executem as Tasks Map. Esses containers
processam as Tasks e geram pares intermediários de chave/valor, sendo nesse caso palavra/frequência.
• Shuffle: Antes de repassar as saídas Map para que a Application Master são criados os containers que irão executar as funções
Reduces, é feito um agrupamento pela chave. Esse agrupamento tem como propósito facilitar o trabalho na execução da função Re-
duce.
• Reduce: Os containers responsáveis pela execução das funções Reduce buscam por chaves iguais nos pares intermediários, ou
seja, a ocorrência das mesmas palavras, e quando ela ocorre é efetuado a soma dos valores armazenados.
• Output: Após a execução de todas as Tasks, o framework salva no HDFS um arquivo contendo a frequência das palavras.

157
CONHECIMENTOS DE INFORMÁTICA

Verificação do Andamento dos Jobs e Tasks


O andamento e histórico das execuções dos Jobs podem ser consultados no framework Hadoop. Os mecanismos de consultas são:
O terminal de execução do Hadoop e a interface Web do framework (WHITE, 2015).
São disponibilizadas algumas interfaces Web para a consulta do andamento da execução de um Job, sendo elas:
• A interface Resource Manager que contém informações referentes aos Jobs em execução, completos e os que falharam;
• A interface Namenode que contém informações referentes ao HDFS;
• E a interface MapReduce JobHistory Server onde podem ser observadas informações sobre os Jobs já finalizados.
Por meio de um terminal também é possível visualizar os passos de execução de um Job MapReduce. O andamento das Tasks
Map e Reduce, a ocorrência de erros, os resultados intermediários gerados e outras informações podem ser analisadas pelo terminal.
Todas as informações geradas durante a execução de um Job são gravadas em arquivos de registros, que podem ser acessados poste-
riormente. O Quadro 3 apresenta os endereços das interfaces web do Hadoop (WHITE, 2015).

SQOOP
Apache Hadoop é um framework projetado para o processamento massivo de dados de diversos tipos (estruturados, semiestru-
turados e não estruturados), no qual esses são armazenados no HDFS (Hadoop Distributed File System) e manipulados por tarefas

158
CONHECIMENTOS DE INFORMÁTICA

MapReduce. As tarefas MapReduce são responsáveis por fazer o cessamento é então organizado e ordenado pelo framework
processamento, a combinação entre dados e, por fim, a produ- para que seja enviado para as tarefas Reduce, que combinam os
ção de algum resultado a partir desse processamento. dados a fim de obter o resultado final.
Apesar de o Hadoop ser amplamente conhecido por sua Tipicamente, as tarefas de mapeamento são executadas no
capacidade de armazenamento e processamento de grandes mesmo nó do cluster onde estão os dados a serem processados,
quantidades de dados, muita informação ainda hoje está arma- reduzindo assim o tráfego de rede. Escrever tarefas MapReduce
zenada em bancos de dados relacionais. Assim, surgiu o Apache não é uma tarefa trivial. Contudo, uma vez feito, processar os
Sqoop cujo objetivo é executar a transferência eficiente e bidire- dados de forma paralela e distribuída em centenas de nós do
cional de dados entre o Hadoop e diversos serviços de armaze- cluster se torna uma tarefa simples.
namento externo de dados estruturados. Uma das facilidades oferecidas pelo Sqoop é a capacidade
O Apache Sqoop pode ser útil (i) quando se deseja utilizar de importação dos dados direto para o Hive. Hive é um dos pro-
ferramentas de Big Data para o processamento de bases rela- jetos mais famosos do ecossistema Hadoop e foi iniciado pelo
cionais, (ii) para a integração de bases relacionais e mainframes Facebook em 2007, mas atualmente é um projeto top-level da
com dados já presentes no Hadoop ou, ainda, (iii) para o arqui- Apache Software Foundation, assim como o Sqoop, e recebe
vamento dos dados no Hadoop. contribuição de outras grandes empresas.
O Sqoop atualmente possui duas frentes de desenvolvimen- O data warehouse do Facebook havia sido construído inicial-
to. Uma delas, chamada de Sqoop 1, é a evolução natural do mente com soluções comerciais de bancos de dados relacionais.
projeto inicial, encontra-se na versão 1.4.6 e foi a versão utiliza- Contudo, devido à necessidade de processamento e armazena-
da nesse artigo por ser a última versão estável para produção. O mento de grandes volumes de dados exigida pelo Facebook, foi
Sqoop 2 é um projeto totalmente novo e implementa o conheci- decidido utilizar o Hadoop, por permitir aumentar a capacidade
do modelo de cliente e servidor, no qual o servidor é responsá- de armazenamento com baixo custo e sem tempo de inatividade
vel por gerenciar o envio dos dados do banco relacional para o e por possuir um framework de processamento distribuído que
Hadoop e vice-versa. reduziu consideravelmente o tempo de execução das consultas.
Outras melhorias implementadas no Sqoop 2 são a clara de- No entanto, criar tarefas MapReduce não era fácil e consu-
finição das interfaces dos conectores, clientes mais simples de mia muito tempo dos seus funcionários. Assim, eles decidiram
serem utilizados, uma API que permite a execução de funções criar o Hive com os conceitos já familiares dos bancos de dados.
do Sqoop a partir de código em Java, entre outras. Ambos os Hive é um sistema de data warehouse escalável e tolerante
projetos podem ser obtidos por meio de sua página oficial. a falhas, projetado para trabalhar com um grande volume de
Neste artigo veremos como realizar o processo de impor- dados que crescem rapidamente. Ele é um sistema para proces-
tação de um banco relacional para o HDFS. Esse processo será samento em batch e pode fazer consultas sobre um volume de
apoiado pelo Sqoop. Também veremos como realizar a importa- dados na ordem de petabytes. O Hive fornece uma linguagem
ção para o Hive e como o Sqoop apoia a exportação de dados do de consulta simples chamada HiveQL – baseado em SQL –, que
Hadoop para um banco relacional. permite aos usuários familiarizados com o SQL facilmente reali-
Todos os exemplos de comandos Sqoop presentes nes- zar consultas, sumarizações e análise de dados.
te artigo são reproduções ou readaptações – autorizadas pela O Hive não foi projetado para ser um sistema de processa-
O’Reilly Media – dos exemplos presentes no livro Apache Sqoop mento de transações em tempo real. Ele foi construído sobre
Cookbook Unlocking Hadoop for Your Relational Database, de a infraestrutura do Hadoop o que lhe garante vários benefícios
2013, escrito por Kathleen Ting e Jarek Jarcec Cecho. como escalabilidade, tolerância a falhas e excelente taxa de
transferência. Contudo, o framework MapReduce costuma ter
Hadoop e Hive alta latência, causando lentidão no agendamento e execução de
Apache Hadoop surgiu na separação da parte de compu- tarefas. Assim, o tempo para realizar consultas no Hive sobre
tação distribuída da ferramenta chamada Apache Nutch – um um pequeno conjunto de dados é de segundos ou até minutos
famoso web crawler – criado por Mike Cafarella e Doug Cutting, para terminar.
criador também do Lucene e Hadoop. O Hadoop é uma plata-
forma escalável e confiável para armazenamento e análise de Bancos de dados suportados
grande volumes de dados. Ele foi projetado para ser executado Por padrão, o Sqoop utiliza JDBC (Java Database Connectivi-
em clusters compostos por computadores convencionais onde ty) para se conectar aos bancos e, por esse motivo, acredita-se
falhas de disco rígido, memória, comunicação, dentre outras são que ele é compatível com uma grande quantidade de bancos de
acontecimentos comuns. dados, uma vez que os fornecedores implementam essa API. No
Com esta premissa em mente, o sistema de arquivos Dis- entanto, o Sqoop não garante a compatibilidade e a performan-
tribuídos Hadoop (HDFS ou, em inglês, Hadoop Distributed File ce com todos os bancos que possuem conectores JDBC devido
System) armazena grande volume de dados de forma confiável – às formas de implementação dessa API e a ligeiras diferenças
ou seja, sem perdas de informações – por meio da criação cópias que possam existir na sintaxe SQL de cada banco.
destes dados em mais de um nó (computador) do cluster. A Tabela 1 contém uma relação completa dos bancos e suas
Além do HDFS, uma outra parte importante do Hadoop se respectivas versões que foram testadas com o Sqoop. Pode ser
chama MapReduce, um framework que abstrai a complexidade necessário instalar os drivers de conexão mesmo com o banco
do processamento paralelo e distribuído. MapReduce são duas de dados estando presente na lista.
tarefas distintas – Map e Reduce –, em que a primeira processa
os dados de entrada de forma paralela. O resultado deste pro-

159
CONHECIMENTOS DE INFORMÁTICA

Tabela 1. Lista de bancos de dados testados no Sqoop. Fonte: Sqoop User Guide (v1.4.6). Disponível em <http://sqoop.apache.
org/docs/1.4.6/SqoopUserGuide.html>. 21 de dezembro de 2015. Pode ser necessário instalar os drivers de conexão mesmo o banco
de dados estando presente na lista.

Importação de dados
O Sqoop realiza a importação dos dados em arquivos de texto (–as-textfile), arquivos Sequence File (–as-sequencefile), Avro
(–as-avrodatafile) ou Parquet (–as-parquetfile). Na importação para arquivos textuais, cada registro do banco se tornará uma linha
no arquivo de destino onde cada coluna é delimitada por padrão pela vírgula ou outro separador definido pelo usuário por meio do
argumento –fields-terminated-by. A Tabela 2 contém uma relação de outros argumentos que podem ser utilizados na importação para
arquivos texto.

160
CONHECIMENTOS DE INFORMÁTICA

Tabela 2. Argumentos que podem ser utilizados na impor- Dentro do diretório especificado serão criados outros di-
tação dos dados para arquivos texto. Fonte: Sqoop User Guide retórios com o nome da tabela de origem contendo os arqui-
(v1.4.6). Disponível em <http://sqoop.apache.org/docs/1.4.6/ vos com os respectivos dados importados. Uma outra opção é
SqoopUserGuide.html>. 21 de dezembro de 2015. o argumento –target-dir seguido do caminho completo para o
É importante observar os caracteres especiais que podem diretório de destino desejado, como apresentado no exemplo
estar inseridos no conteúdo das tabelas. Por exemplo, o texto da Listagem 2.
“Apache Sqoop, uma abordagem prática para a unificação de da-
dos” pode causar problemas na importação caso o delimitador Listagem 2. Comando Sqoop ilustrando a utilização do ar-
padrão (a vírgula) seja utilizado, porque o caractere vírgula faz gumento –target-dir que define o diretório de destino desejado.
parte do texto. O formato de texto delimitado é ideal quando sqoop import
não estão sendo importados dados binários. Além disso, esse –connect jdbc:mysql://mysql.example.com/DBTeste
tipo de formato é legível por humanos e fácil de manipular.
–username eduardo
Para ilustrar a simplicidade do Sqoop, o exemplo ilustrado
na Listagem 1 detalha o comando Sqoop utilizado na importa- –password 123456
ção de uma tabela MySQL chamada Cidades, representada pela
Tabela 3. –table cidades

–target-dir /etl/input/cidades

No exemplo, a senha é passada por meio do argumento


–password. Apesar de essa ser uma forma muito simples de
autenticação com o banco relacional, ela é também a maneira
menos segura. Outra opção seria por meio do argumento –pas-
sword-file, que recebe como parâmetro um arquivo que contém
a senha. Pode-se ainda restringir as permissões de acesso a esse
arquivo concedendo restrições de leitura apenas para o proprie-
tário do arquivo (chmod 400).
O comando Sqoop da Listagem 1 especifica – por meio do
Uma terceira opção seria por meio do argumento -P, que
comando import – que o Sqoop realize a operação de importa-
solicitará a senha mediante o console a cada execução do Sqo-
ção de dados. Na linha seguinte, o argumento –connect recebe
como parâmetro o endereço do servidor seguido pelo nome do op. Por último, no Hadoop 2.6.0 foi implementada a API Cre-
banco de dados e o número da porta, quando necessário. Em dential Provider, que se propõe a resolver o problema de arma-
seguida, é informado ao Sqoop o nome de usuário e senha para zenamento de senhas em arquivos de texto, arquivos de confi-
acesso ao banco de dados e, por último, o nome da tabela a ser guração ou inseridos em código. A API Credential Provider se
importada. responsabiliza por fazer o armazenamento e recuperação das
senhas, em que para cada senha existe um apelido que pode ser
Listagem 1. Comando Sqoop exemplificando a utilização do utilizado em substituição. Esse apelido pode então ser utilizado
argumento –table para a importação completa da tabela cida- nos arquivos de configuração, o que protege a senha original de
des. ser descoberta.
sqoop import O Sqoop permite a importação de toda uma tabela (con-
–connect jdbc:mysql://mysql.example.com/DBTeste:Porta forme ilustrado anteriormente pela Listagem 1) ou de algumas
colunas específicas, ordenadas a critério do usuário. Para a im-
–username eduardo portação de algumas colunas específicas, basta utilizar o argu-
mento –columns separando o nome das colunas por vírgula –
–password 123456 por exemplo, –columns “id, cidade, pais”. Além disso, o Sqoop
permite restringir as linhas a serem importadas através do argu-
–table cidades mento –where, como ilustrado na Listagem 3.
Listagem 3. Comando Sqoop exemplificando a utilização dos
A seguir, temos o arquivo CSV (Comma-separated values), argumentos –columns e –where, onde serão importados apenas
resultado da importação da tabela MySQL Cidades: registros com id maiores que 100.
sqoop import
1,Estados Unidos,Palo Alto –connect jdbc:mysql://mysql.example.com/BDTeste
2,República Tcheca,Brno
3,Brasil,Belo Horizonte –username eduardo

Por padrão, o Sqoop importará os dados para o HDFS em –password 123456


um diretório de mesmo nome da tabela de origem. Esse diretó-
rio de destino pode ser alterado por meio do argumento –wa- –table cidades
rehouse-dir, tendo como parâmetro um diretório qualquer.

161
CONHECIMENTOS DE INFORMÁTICA

–columns “id,cidade,pais”

–where “id > 100”

Opcionalmente, o usuário pode substituir os três argumentos –table, –columns e –where pelo argumento –query, onde se deve
definir toda a consulta SQL. O exemplo da Listagem 4 importará exatamente os mesmos dados do exemplo da Listagem 3.

Listagem 4. Comando Sqoop exemplificando a utilização do argumento –query em substituição aos argumentos –table, –columns
e –where.
sqoop import
–connect jdbc:mysql://mysql.example.com/BDTeste

–username eduardo

–password 123456

–query “SELECT id, cidade, pais FROM cidades WHERE $CONDITIONS AND id > 100”

–target-dir /etl/input/cidades

–split-by id

No caso de tabelas que possuem colunas do tipo binário, o Sqoop realiza a importação delas de duas formas. Quando esse tipo
de coluna possui tamanho de até 16 MB, ou algum valor distinto, mas definido pelo argumento –inline-lob-limit <número de bytes>,
então esse campo é inserido na mesma linha, junto às demais colunas desse registro. Porém, se o campo ultrapassar o valor padrão
de 16 MB ou o valor definido pelo argumento –inline-lob-limit, o campo será armazenado em um novo arquivo – de até 263 bytes
cada – em uma subpasta _lobs no diretório de destino.

Processo de importação
O processo de importação dos dados é dividido em duas etapas principais. Na primeira delas, o Sqoop faz a leitura dos metada-
dos da tabela de origem (nome das colunas, tipos dos dados etc.) para que sejam convertidos em um tipo de dados Java durante a
criação de uma classe que encapsulará um registro dessa tabela. Essa classe, além de possuir os atributos que representam as colunas
da tabela, também possui métodos para a serialização e desserialização desses dados. Ela tambémé um subproduto do processo de
importação e pode ser utilizada por qualquer outra tarefa de MapReduce.
Por padrão, a classe possui o nome da tabela de origem e é salva no diretório corrente de onde o Sqoop está sendo chamado.
Após a compilação dessa classe, o código compilado é salvo na pasta /tmp. Tanto o nome da classe quanto os diretórios de destino
da classe gerada e da classe compilada podem ser alterados por meio dos seguinte argumentos: –class-name, –outdir e –bindir, res-
pectivamente.
Após a extração dos metadados e criação da classe, o Sqoop dá início ao processo de importação dos dados, que nada mais é que
uma simples consulta SQL. Veja o código a seguir:

SELECT coluna1, coluna2, coluna3, … FROM tabela


O Sqoop, por padrão, utiliza o nível de isolamento de transação chamado read committed, que assegura a não ocorrência de lei-
turas sujas – ou seja, que uma transação TA leia dados modificados mas ainda não confirmados por uma transação TB.
No entanto, enquanto o Sqoop faz a leitura dos registros, os dados podem ser modificados e confirmados por outras transações.
É importante ter ciência deste fato no processo de importação dos dados. Caso isso seja um obstáculo para o projeto, uma opção é
não fazer modificações no banco até que todo o processo de importação seja finalizado.
Uma das grandes vantagens do Sqoop é a capacidade de paralelizar o processo de importação, distribuindo a consulta SQL por
meio dos nós do seu cluster, conforme exemplificado na Figura 1. Para isso, ele precisa saber qual coluna da tabela a ser importada
deve ser utilizada para dividir os dados de origem e quantos processos deverão ser utilizados em paralelo.

O mais adequado é a utilização de uma coluna que possua valores uniformemente distribuídos e que possa ser passada para o
Sqoop por meio do argumento –split-by. Quando não informada a coluna, o Sqoop tenta escolher por si só; e por padrão ele escolhe
geralmente a chave primária da tabela.

162
CONHECIMENTOS DE INFORMÁTICA

Figura 1. Exemplo do processo de importação. A figura exemplifica o processo de importação em que o Sqoop faz inicialmente a
leitura dos metadados da tabela de origem, que serão utilizados na criação de uma classe Java usada na serialização e desserialização
dos dados, para em seguida paralelizar em quatro tarefas MapReduce a consulta na tabela e transferir os dados para o HDFS.
Outro parâmetro importante é o número de tarefas de mapeamento utilizado no paralelismo, que pode ser parametrizado por
meio do argumento -m ou –num-mappers. Por padrão, o Sqoop paraleliza o processo de importação dos dados em quatro tarefas. Em
seguida, ele obtém o maior e menor valor da coluna escolhida, para então fazer uma divisão simples, conforme apresenta a Figura 2.

Figura 2. Fórmula utilizada.


Considere uma coluna id hipotética em que o menor valor é 0, o maior valor é 1000 e a importação dos dados será paralelizada
em quatro tarefas, assim como a Figura 1. Desse modo, o Sqoop dividirá em partes iguais ((1000 – 0 ÷ 4) = 250) a coluna especificada,
dando para cada tarefa de mapeamento uma consulta SQL com um intervalo diferente, como exemplificado na Listagem 5.

Listagem 5. Exemplo de divisão de uma consulta SQL.


SELECT * FROM Tabela WHERE (id>= 0) AND (id < 250)
SELECT * FROM Tabela WHERE (id>= 250) AND (id < 500)
SELECT * FROM Tabela WHERE (id>= 500) AND (id < 750)
SELECT * FROM Tabela WHERE (id>= 750) AND (id <= 1000)

Se a coluna utilizada na divisão não for uniformemente distribuída, isso pode prejudicar a performance do processo de impor-
tação, visto que algumas tarefas podem ficar sobrecarregadas e outras com pouco ou nenhum trabalho. Suponha que a coluna id do
exemplo anterior possua apenas um valor 0 e todos os demais valores estão entre 500 e 1000.
Dessa forma, uma das tarefas não terá nenhum dado para importar, já que não existem registros no intervalo entre 250 e 500.
Uma segunda tarefa terá apenas um registro para importar, pois existe apenas um registro (id = 0) entre o intervalo 0 e 250. As duas
tarefas restantes dividirão todos os demais registros.

163
CONHECIMENTOS DE INFORMÁTICA

Para o MySQL, PostgreSQL, Netezza e Oracle, o Sqoop ofere- Atendendo a esses requisitos, os mesmos argumentos –
ce o argumento –direct, que utiliza ferramentas específicas des- check-column e –last-value devem ser utilizados, em que o ar-
ses bancos e que oferecem melhor performance, comparados gumento –check-column recebe como parâmetro o nome da co-
ao conector JDBC. Por exemplo, o MySQL possui as ferramen- luna do tipo data, enquanto o argumento –last-value receberá o
tas mysqldump para realização de backup lógico (em arquivo) último valor da coluna tipo data que já foi importado. Além dis-
e mysqlimport, que faz o processo inverso – leitura dos dados a so, deve-se utilizar o argumento –merge-key, que recebe como
partir de um arquivo. parâmetro a coluna de valores únicos para serem utilizados na
Entretanto, o argumento –direct possui algumas limitações, junção dos dados.
como exportar os dados apenas para arquivos texto (–as-textfi- No modo lastmodified, o Sqoop faz a importação para um
le), não realizar importação de views e não tratar colunas do tipo diretório temporário apenas dos novos registros – isto é, regis-
BLOB, CLOB e LONGVARBINARY. tros que, baseados na coluna do tipo data definida em –check-
-column, sejam mais recentes que o valor informado por meio
Importação incremental do atributo –last-value. Para finalizar o processo de importa-
Em um trabalho de análise de dados, é importante man- ção, o Sqoop fará a junção dos dados previamente importados
ter toda a informação que será utilizada sempre atualizada com (Dprev) com os novos dados que estão sendo considerados (D∆).
relação à sua base relacional. E, para isso, o Sqoop oferece o Se o registro presente em D∆ também existir em Dprev, en-
argumento –incremental para importação apenas dos novos tão trata-se de um caso de atualização (UPDATE) desse registro
dados presentes na tabela. Esse argumento possui dois modos na base de origem, e o registro presente em Dprev será substi-
(append e lastmodified), que permitem ao Sqoop saber qual tuído pelo registro presente em D∆ utilizando a coluna com valo-
tipo de importação incremental deverá ser utilizada. res únicos definida por meio do argumento –merge-key. Caso o
O modo append é adequado quando os seus dados de ori- registro em D∆ não exista em Dprev, então trata-se de um novo
gem não sofrem atualização (UPDATE) e apenas novos dados registro na base de origem e ele será apenas inserido no conjun-
são inseridos. Em conjunto com o argumento e parâmetro –in- to de dados de destino Dprev. A Listagem 7 ilustra a importação
cremental append, deve-se informar os argumentos –check-co- incremental no modo lastmodified, em que serão importados
lumn e –last-value, em que o primeiro define qual coluna será
apenas os registros que foram inseridos ou atualizados após 02
utilizada no filtro e o último informa para essa coluna específica
de Fevereiro de 1987.
qual é o último valor já importado.
Listagem 7. Comando Sqoop exemplificando a importação
Ou seja, os registros que possuírem, para a coluna especi-
incremental.
ficada, valores maiores que o informado por meio do argumen-
sqoop import
to –last-value são novos registros e devem ser importados. No
–connect jdbc:mysql://mysql.example.com/BDTeste
modo append, a coluna escolhida deve ser incremental para que
não haja perda de valores na importação dos dados. O exemplo
da Listagem 6 realiza a importação apenas dos registros que pos- –username eduardo
suírem id maior que 3.
–password 123456
Listagem 6. Comando Sqoop exemplificando a importação
incremental no modo append apenas dos registros que possuí- –table visits
rem id maior que 3.
sqoop import –incremental lastmodified
–connect jdbc:mysql://mysql.example.com/BDTeste
–check-column last_update_date
–username eduardo
–last-value “1987-02-02”
–password 123456
–merge-key id
–table cidades
É importante notar que a coluna definida pelo argumento
–incremental append –check-column não deve ser do tipo CHAR, NCHAR, VARCHAR,
VARNCHAR, LONGVARCHAR ou LONGNVARCHAR. Caso contrá-
–check-column id rio, os operadores de comparação maior (>) e menor (<) não po-
deriam ser utilizados na cláusula WHERE da consulta, que obtém
–last-value 3 apenas os registros atualizados ou novos.
A Listagem 8 ilustra um trecho da saída após a execução
O modo lastmodified é apropriado para os casos em que de uma importação incremental, em que o Sqoop imprime no
os dados de origem sofrem atualização. Entretanto, a sua tabe- console o último valor importado ao final de cada execução in-
la deve (i) possuir uma coluna do tipo data (DATE, TIME, DATE- cremental. Isso é útil para futuras execuções da importação in-
TIME ou TIMESTAMP), que é atualizada sempre que um novo cremental, quando o usuário faz o controle manual do último
registro é adicionado ou um dado existente é modificado; (ii) valor importado.
possuir uma coluna composta por valores únicos, como a chave
primária.

164
CONHECIMENTOS DE INFORMÁTICA

Listagem 8. Exemplo de saída no console após a execução –hive-import


de uma importação incremental.
13/03/18 08:16:36 INFO tool.ImportTool: Incremental im- –hive-table BancoDados.novoNomeTabela
port complete! …
13/03/18 08:16:36 INFO tool.ImportTool: –incremental last- –hive-overwrite
modified
13/03/18 08:16:36 INFO tool.ImportTool: –check-column –hive-drop-import-delims
update_date
13/03/18 08:16:36 INFO tool.ImportTool: –last-value ‘1987- –m 32
05-22 02:02:02’
O exemplo da Listagem 9 realiza a importação de uma ta-
O controle do valor do argumento –last-value pode ser feito bela inteira direto para o Hive. Por padrão, o nome da tabela de
por meio do Sqoop metastore, serviço que faz a armazenagem, destino no Hive é o mesmo nome da tabela de origem. No en-
tanto, essa definição pode ser alterada utilizando-se o argumen-
de forma não segura, (i) de senhas, (ii) da definição das tarefas
to –hive-table, que define o nome da tabela de destino no Hive.
de importação e exportação com seus respectivos argumentos
Alguns caracteres especiais podem estar presentes nos da-
e parâmetros e (iii) também do parâmetro para o argumento dos de origem, o que pode causar divergências no resultado da
–last-value. importação. Existe um outro argumento, –hive-drop-import-de-
Ao final da execução das tarefas de importação incremental lims, que remove os caracteres n, r e 1, que são delimitadores
que estão armazenadas no Sqoop metastore, o Sqoop automa- especiais utilizados pelo Hive.
ticamente faz a atualização e armazenagem do último valor im- Caso a remoção desses caracteres não seja uma opção, po-
portado para que ele seja utilizado na próxima execução dessa de-se utilizar o argumento –hive-delims-replacement, que subs-
tarefa. titui os caracteres especiais por algum outro texto. Essa opção
só deve ser utilizada caso o Hive esteja configurado para utilizar
Importando dados para o Hive os delimitadores especiais padrão. A Listagem 10 ilustra a utili-
Na importação direta para o Hive, o Sqoop fará a extração zação do argumento –hive-delims-replacement.
dos metadados da tabela de origem para a criação da tabela
equivalente no Hive, caso ela não exista. Na criação da nova ta- Listagem 10. Comando Sqoop exemplificando a utilização
bela, o Sqoop se encarrega de converter os tipos de dados de do argumento –hive-delims-replacement.
origem para tipos de dados equivalentes na tabela de destino. sqoop import
Caso o dado de origem precise ser convertido para um tipo de –connect jdbc:mysql://mysql.example.com/DBTeste
dado menos preciso, uma mensagem de alerta será impressa no
console, conforme representado a seguir: –username eduardo

15/12/07 13:22:25 WARN hive.TableDefWriter: Column No- –password 123456


meColuna had to be cast to a less precise type in Hive’
Uma possível solução para esse problema é a utilização do –table cidades
argumento –map-column-hive, que instrui o Sqoop sobre o tipo
de dado correto em que a coluna deve ser mapeada. Um exem- –hive-import
plo de utilização desse argumento seria: –map-column-hive co-
–hive-delims-replacement “ESPECIAL”
lunaA=DECIMAL, colunaB=INT, que recebe como parâmetro o
nome da coluna no banco de dados de origem, seguido do ope-
A grande maioria dos bancos de dados permite que as co-
rador igual (=) e pelo tipo de dado dessa coluna no Hive.
lunas possam simplesmente não ter valores (campos NULL).
Caso a tabela já exista no Hive, o Sqoop irá apenas adicio- Contudo, por padrão, o Sqoop faz a conversão dos valores nulos
nar os dados ao final dessa tabela já existente. Uma alternativa para uma string “null”. Isso pode dificultar a manipulação des-
seria a utilização do argumento –hive-overwrite, que solicita ao ses dados no Hive, uma vez que ele utiliza N para representar
Sqoop a remoção prévia de todos os dados existentes na tabela, valores nulos.
como exemplificado na Listagem 9. Para contornar esse problema, o Sqoop oferece dois argu-
mentos, –null-string e –null-non-string, em que o primeiro trata
Listagem 9. Comando Sqoop exemplificando a utilização do os dados de origem que são do tipo textual (VARCHAR, TEXT,
argumento –hive-overwrite. NCHAR, NVARCHAR, NTEXT etc) e possuem valor NULL, substi-
sqoop import tuindo-os pelo parâmetro informado para esse argumento. Já
–connect jdbc:mysql://mysql.example.com/DBTeste o argumento –null-non-string substitui todos os demais tipos
de dados que não possuem valor – ou seja, o campo é NULL –,
–username eduardo substituindo-os pelo parâmetro informado para esse argumen-
to. O exemplo da Listagem 11 substitui todo e qualquer campo
–password 123456 NULL da tabela de origem por N, valor que o Hive entende como
NULL. A barra invertida () extra no exemplo da Listagem 11 é
–table cidades necessária por ser o caractere de escape em Java e que será in-
terpretada pelo compilador.

165
CONHECIMENTOS DE INFORMÁTICA

FLUME
Logs são uma fonte básica de informação e ajudam a monitorar a ‘saúde’ de sistemas, detectando falhas em hardware e serviços.
Podem ajudar também na solução de problemas. Embora, de uma forma geral, um log represente registro de eventos, esta é uma
ferramenta importante na administração de sistemas.
Com o surgimento de tecnologias e ferramentas para Big Data, a geração e utilização dos logs se tornaram cada vez mais impor-
tantes, uma vez que agora é possível ‘prever’ quando um equipamento precisa de manutenção, o comportamento de um indivíduo
em um e-commerce e a geração de recomendações, entre outras coisas.
Administrar o volume de logs que é gerado por diversos sistemas/ dispositivos não é uma tarefa fácil. Em 2011, a Cloudera criou
o Flume, um sistema distribuído, confiável e disponível para coletar, agregar e mover grandes quantidades de dados de muitas fontes
diferentes para um armazenamento de dados centralizado. Em 2012, esse passou a ser um projeto top level na Apache Software
Foundation.
O Apache Flume não se restringe apenas à coleta de logs, e pode ser usado para transportar grandes quantidades de dados, como
os gerados em social media, e-mails e qualquer fonte de dados possível.
O objetivo principal do Flume é ingerir dados de eventos no HDFS (Hadoop Distributed File System) de forma simples e automati-
zada. Porém, seu uso não se limita apenas ao HDFS; é possível enviar também dados para um arquivo ou banco de dados, entre outros.
Abaixo, o modelo de fluxo de dados do flume:

Um agente Flume roda na JVM (Java Virtual Machine) e possui os seguintes componentes:
Source: responsável pela entrada de dados;
Channel: armazena os dados que passam do source para o sink. Seu comportamento é parecido com uma fila;
Sink: responsável por enviar os dados ao destino/ saída. A saída pode ser outro agente Flume.
A configuração de um agente é feita por meio de um arquivo local que tem o formato de um arquivo properties utilizado em Java.
Abaixo, um exemplo de configuração de um agente com um source e um sink:

166
CONHECIMENTOS DE INFORMÁTICA

No exemplo, a1 é o nome do agente. Nele, está sendo confi- Connection:


gurado um source (r1), um channel (c1) e um sink (k1). Podemos entender as Connections no NiFi com sendo a li-
O tipo do source é netcat – captura qualquer dado enviado gação entre os Processors.
a um socket em uma porta tcp -, o endereço e portão são loca- As Connections agem como filas e permitem aos Processors
lhost:44444. interagirem em diferentes medidas de taxas.
O tipo do sink é logger, o que significa que os dados serão Flow Controller:
gravados em um arquivo. Este tipo é útil para fins de teste. O Controller mantém as informações de como os Proces-
O tipo do canal é memory com capacidade para armazenar sors estão conectados. Age como um broker facilitando a troca
1000 eventos no buffer e 100 eventos por transação. dos FlowFiles entre os Processors.
Por fim, tanto source como sink são ligados ao canal c1. Process Group:
Este é apenas um exemplo simples de configuração. Caso É um conjunto específico de Processors e suas conexões.
quiséssemos configurar mais de um agente, isso  poderia ser Podem receber dados através de portas de entrada e enviar da-
feito no mesmo arquivo, alterando apenas o nome do agente. dos através das portas de saída.
Isso pode ser bem útil a quem precisa coletar e analisar logs de
INSTALAÇÃO
diversos sistemas e máquinas, uma vez que configurados esses
O Apache Nifi é distribuído de forma open source e pode
agentes, os dados estariam disponíveis em HDFS, banco de da-
ser instalado em Windows, Linux ou Mac por se tratar de uma
dos ou outro repositório (definido no sink), trazendo agilidade
aplicação que roda sob a Virtual Machine do Java.
na análise e processamento.
Apache Flume é uma ferramenta flexível, podendo ser usa- Download e execução do Apache Nifi
da para diversas situações, o que a torna bem poderosa apesar Para fazer o download vá até o site oficial, clique em Down-
de sua simplicidade. loads, escolha a última versão e baixe o pacote que contém os
arquivos binários. No momento em que escrevo este post a ver-
NIFI são está em 1.5.0.

Podemos de forma básica entender o Apache Nifi como É necessário ter o Java instalado e configurado independen-
sendo uma ferramenta capaz de automatizar o fluxo de dados te de seu sistema operacional.
entre diferentes sistemas. Basicamente a instalação do Nifi pode ser feita descompac-
Tecnicamente conceituando de acordo com a documenta- tando o arquivo baixado para sua pasta de preferência. Aqui va-
ção oficial entendemos que o Apache NiFi é: mos abordar a instalação no Linux.
“ An easy to use, powerful, and reliable system to process 1 – Faça o download: Download via navegador
and distribute data. ” 2 – Descompacte o arquivo baixado para a pasta de sua pre-
Um sistema fácil, poderoso e confiável para processamento ferência
distribuído de dados. tar -xzvf nifi-1.5.0-bin.tar.gz
Dentro da realidade corporativa atual onde empresas pos- 3 – Acesse o diretório /bin Execute o serviço do Apache Nifi
suem fontes de dados vindas de tecnologias diferentes o Apache Caso tenha alguma aplicação já utilize a porta 8080 então
Nifi nos permite centralizar a produção, o tratamento e consu- devemos alterar o arquivo /nifi-1.5.0/conf/nifi.properties
mo dos dados de forma independente da plataforma utilizada. Encontre a linha com a configuração nifi.web.http.port=8080
O Apache Nifi não é apenas uma ferramenta de ETL como e altere o valor 8080 para uma porta disponível.
pode parecer a princípio mas sim uma ferramenta com recursos Não altere outras configurações ao menos que saiba real-
muito mais amplos como iremos aprender no decorrer desta sé- mente o que está fazendo.
rie de posts. Feita a alteração acima se foi necessário vamos executar o
serviço:
./bin/nifi.sh start
Conceitos
4 – Aguarde alguns segundos ou minutos dependendo da
Os termos utilizados no Apache Nifi possuem uma relação
configuração do seu sistema e a interface de trabalho do Nifi
próxima com a Flow Based Programming (FBP) ou seja a progra-
estará disponível em nosso navegador no seguinte endereço:
mação orientada a fluxo porém seguindo sua própria nomencla- http://localhost:8080/nifi
tura interna. Se tudo correu bem você deve ter acessado uma página
Veremos a seguir os principais módulos existentes no Apa- como a seguir:
che Nifi e seu conceito dentro da ferramenta.
FlowFile:
Um FlowFile representa para o Apache Nifi todo o fluxo de
dados sendo movimentado pelo sistema e cada um deles é con-
trolado por um par chave/valor demonstrando o total de bytes
movimentados.
FlowFile Processor:
O Processor é onde todo o trabalho acontece. Este módulo
tem acesso aos atributos do FlowFile e seu stream de dados.

167
CONHECIMENTOS DE INFORMÁTICA

Vamos ver na imagem abaixo uma explicação de cada setor apresentado na interface do Apache Nifi:

168
CONHECIMENTOS DE INFORMÁTICA

Barra de ferramentas; aqui encontramos os elementos utilizados no fluxo de operações que podemos criar, os elementos dispo-
níveis são: Processor, Input port, Output port, Process Group, Remote Process Group, Funnel, Template e Label.
Barra de status; são mostradas informações sobre quais grupos estão sendo executados, quantos bytes trafegando, se existe
alguma tarefa parada etc.
Navegação; controla o zoom e a visualização dos elementos na área de trabalho.
Operação; podemos iniciar todos os conjuntos de operações ou apenas as que estiverem selecionadas, excluir elementos bem
como configurá-los, criar e importar templates.
Área de trabalho; onde construímos nossas operações, é aqui que devemos arrastar e soltar processors, ports, groups etc.

E por onde começar?


No Apache Nifi tudo começa ao criar nosso primeiro elmento.
A criação é feita clicando no item desejado na barra de ferramentas e soltando para a área de trabalho e em seguida podemos
configurar esse ítem de acordo com seu tipo e operação que poderia ser buscar um arquivo no hdfs, carregar um csv ou consumir
alguma web api.

EXEMPLO PRÁTICO
Qual problema queremos resolver ?
Bem, para este exemplo temos alguns dados em um arquivo CSV onde estão registrados nome, idade e email, porém alguns en-
dereços de email estão com a palavra “mail” e queremos substituí-los por “dataidea“.
Temos um diretório chamado NifiExemplo com duas subpastas source e target. O arquivo problemático existe na pasta source e
após tratá-lo como queremos será criado um novo na pasta target.
Resumindo o fluxo será o seguinte:
1 – Ler arquivo CSV em /NifiExemplo/source/dados.csv o processor responsável por esta ação será o GetFile
2 – Substituir todos que possuem a palavra mail por dataidea, para isso vamos criar e configurar o processor ReplaceText
3 – Gravar o arquivo tratado na pasta /NifiExemplo/target, aqui o processor utilizado será o PutFile

A seguir mostro o fluxo de dados no Apache Nifi. As explicações adicionais e todos os arquivos podem ser baixados no final do
post.

169
CONHECIMENTOS DE INFORMÁTICA

Na área de trabalho do Apache Nifi devemos arrastar e sol- os nodos do Cluster e salvas de modo sequencial, o que garante
tar o ícone referente ao processor e em seguida escolher o tipo que ao lermos os registros eles serão entregues na mesma or-
do processor a ser utilizado. dem na qual foram enviados.
Kafka já é utilizado por mais de 1/3 das empresas da lista da
Processor GetFile: fortune 500 e 7 dos 10 maiores banco do mundo.
Temos que configurar o diretório de onde queremos obter Ele pode ser utilizado para diferentes finalidades. Você
o arquivo para leitura, no meu caso usei /home/NifiExemplo/ pode ver uma lista completa delas no site.
source mas você pode utilizar um outro local se achar neces- Kafka é uma excelente ferramenta para criarmos aplicações
sário. Esta configuração é feita dando um clique duplo sobre o que trocam mensagens entre si, event sourcing, replicação de
Processor em seguida Properties – Input Directory dados, etc. Mais detalhes aqui.
Existe uma configuração importante aqui que devemos Boa parte disso se deve pelo fato das mensagens ficarem
prestar bastante atenção e configurar de acordo com o caso de salvas em disco o que garante a consistência das mesmas, mes-
mo que um broker sofra uma falha.
uso, a Keep Source File, ou seja, manter o arquivo utilizado como
Além disso, como as mensagens são replicadas entre os
fonte e pode ser configurado como falso (false) ou verdadeiro
diferentes brokers, existe uma garantia em termos de disponi-
(true).
bilidade, já que caso um broker falhe, outro broker assume o
Atenção! Na configuração default o arquivo sempre é remo-
papel de leader e as mensagens podem continuar sendo escritas
vido do diretório de origem. e lidas normalmente. Pretendo explicar com mais detalhes este
processo em um post no futuro.
Processor ReplaceText:
É aqui onde a mágica realmente acontece.
Utilizamos em nosso exemplo uma expressão regular para
que o Apache Nifi encontre todas as palavras correspondentes à
“mail” e realize a substituição. A expressão regular utilizada aqui
foi a mais simples possível, “\bmail\b” e está sendo configurada
em Search Value.
Em Replacement Value é onde iremos colocar pelo que será
substituído o valor encontrado em Search Value.
Basicamente acontece o seguinte: Em Search Value busque
alguma coisa e substitua pelo conteúdo configurado em Repla-
cement Value
Nas duas propriedades podemos utilizar expressões regu-
lares ou a linguagem utilizada pelo Apache Nifi chamada de Ex-
pression Language que não entraremos em detalhe neste post.

Processor PutFile:
Este processor é responsável por obter o conteúdo trata-
do pelo processor anterior e gravar em um arquivo no diretório
configurado na propriedade Directory Como podemos ver acima, o kafka possui um componente
central que é o cluster, responsável por receber e armazenar as
mensagens e responder as requisições de consumers. As biblio-
Connections:
tecas de Connectors e Stream, utilizam o conceito de Consumers
Você observou que podemos ligar um Processor ao outro
e Producers para realizarem tarefas mais avançadas.
clicando na seta verde central e arrastar até o próximo.
2. Publisher / Subscriber
Temos algumas configurações possíveis, porém a mais co- Um bom uso para mensageria em geral é desacoplar as par-
mum é o relacionamento entre os Processors. Dependendo do tes de um sistema que necessitam trocar informação. Uma cha-
resultado no tratamento do fluxo então podemos configurar o mada síncrona entre estas partes demanda que estes sistemas
que será feito em caso de sucesso ou falha marcando as opções estejam conectados (acoplados) o que significa que eles preci-
success ou failure. sam se conhecer para realizarem as operações. Uma alternativa
Se tudo correu bem então conseguimos finalizar nosso pri- para este paradigma é uso de troca de mensagens que adiciona
meiro exemplo utilizando o Apache Nifi. um componente central responsável por receber / entregar es-
tas mensagens.
Apache Kafka Os dois patterns de mensageria mais conhecidos são Queue
Apache Kafka é uma plataforma de streaming distribuído / Topic:
desenvolvida originalmente pelo Linkedin e posteriormente do- Queue: As mensagens são inseridas em ordem sequencial
ada para a Apache Foundation. e lidas em ordem sequencial por 2 participantes: o que escreve
Kafka é diferente dos sistemas tradicionais de mensageria. a mensagem e o que lê a mensagem. Uma analogia seria uma
Conceitualmente, ele é um sistema de log distribuído. Isso sig- mensagem individual no WhatsApp. Você envia as mensagens e
nifica que as mensagens enviadas ao Kafka são replicadas entre o receptor as recebe na ordem que foram enviadas.

170
CONHECIMENTOS DE INFORMÁTICA

Topic: Semelhante a uma Queue porém ao invés de um re- O importante de termos diversas partições é que estas par-
ceptor no tópico temos o conceito de broadcast. Um produtor tições são distribuídas em diferentes nodos, tendo diferentes
envia mensagens para um tópico e as partes interessadas na in- leaders o que balanceia a carga de escrita e leitura entre dife-
formação assinam este tópico e passam a receber as mensagens rentes brokers no cluster.
enviadas. Como veremos a seguir, para cada grupo de consumidores,
um único consumidor é responsável por cada partição. Desta
Como veremos a seguir, Kafka possui um modelo híbrido, forma, se quisermos paralelizar a leitura de um tópico, o núme-
pois ele utiliza o conceito de tópico e partição, onde a partição ro de partições irá definir o limite de paralelismo. Veremos mais
pode ser considerada uma fila dentro de um tópico. adiante e em outros tópicos detalhes sobre isto.

3. Log 5. Broker
Um log pode ser descrito como uma sequência temporal Um broker é o componente responsável por receber as re-
de mensagens, onde as novas mensagens sempre são adiciona- quisições de producers e consumers, armazenar as mensagens e
das no final do log. Desta forma, uma mensagem enviada em executar a replicação das mesmas.
t0 sempre estará posicionada antes de uma mensagem enviada Os brokers são gerenciados por outro componente o zooke-
em t1. eper. Este componente é bastante utilizado para controlar os
Cada mensagem dentro do log possui algumas informações: diferentes integrantes de um cluster.
1. Timestamp: data-hora da inserção Além das tarefas descritas acima, os brokers também reali-
2. Offset: índice da mensagem na partição zam outras tarefas, como gerenciar os líderes de cada partição,
3. Key: chave da mensagem realizar a limpeza de dados ou a compactação das mensagens.
4. Value: a mensagem propriamente dita chamado de
payload 6. Producer
Todas as mensagens dentro de uma partição serão um con- Producer é o componente responsável por escrever men-
junto chave / valor. sagens para um tópico. Um tópico pode ter um ou mais produ-
cers. Basicamente este componente deve se conectar ao cluster
e escrever as mensagens para o tópico. É importante ressaltar
4. Partição
que um dos grandes benefícios do Kafka em relação a outros
Kafka utiliza o conceito de tópico onde as mensagens são
sistemas de mensageria é o throughput de escrita que ele su-
agrupadas por uma classificação lógica. Por exemplo, se um tó-
porta. Existem diversos benchmarks que demonstram conforme
pico chamado employee_salaries existir, esperamos que dentro
os links nas referências.
dele estejam armazenas mensagens desta categoria. Interna-
mente, um tópico é dividido em partições. Observe a imagem
Estes números dependem muito do modelo de consistência
abaixo:
de um producer. Esta consistência depende do modelo de ga-
rantia de escrita ou ack (acknowledgement) que define quantos
brokers devem receber a mensagem para que a mensagem seja
considerada como enviada. Quanto mais brokers receberem a
mensagem, maior a garantia que temos que a mensagem foi
persistida. Porém, a latência aumenta uma vez que mais compo-
nentes precisam dar o ack pra mensagem.

7. Consumer
Consumer é o componente responsável por realizar a leitu-
ra de um tópico. Estes componentes se registram em um tópico
e realizam a leitura dos registros nas partições associadas a ele.
A primeira coisa importante de se falar sobre os consumers
é que eles são responsáveis por armazenar o offset de leitura
de cada partição. Isso é muito importante pois no design do Ka-
fka, o cluster não é o responsável por armazenar o estado dos
Como podemos observar na imagem acima, este tópico consumidores e sim o próprio consumer. Isso faz com que os
possui 3 partições, cada uma com um número específico de brokers apenas respondam aos consumidores, entregando as
mensagens e totalmente independentes. mensagens a partir de um dado offset tornando o protocolo de
Cada partição é um log isolado. Com isso podemos concluir conversação bastante simples.
que a ordem das mensagens só pode ser garantida dentro de Conforme dito anteriormente cada consumidor possui um
uma partição. Se você deseja um tópico com 100% de garantia único consumer group. Desta forma, cada vez que um consumi-
de ordem, então ele poderá ter apenas 1 partição. Porém, na dor é criado, ele é relacionado a um consumer group. Um consu-
maioria dos casos temos uma separação lógica dentro da garan- mer group pode conter diversos consumidores agrupados.
tia de ordem. Por exemplo, no nosso exemplo de employee_sa- O importante disto é que cada mensagem existente em um
laries deveríamos garantir a ordem do salário por cpf ou código tópico é entregue para apenas um consumer group. Veja a ima-
do funcionário, de modo que a leitura garantiria a ordem por . gem abaixo:

171
CONHECIMENTOS DE INFORMÁTICA

___________________________________________________

___________________________________________________

___________________________________________________

___________________________________________________

___________________________________________________

___________________________________________________
Na imagem acima, possuímos um tópico com 4 partições.
Estas partições estão distribuídas em dois clusters. ___________________________________________________
O consumer group A possui dois consumers (C1 e C2). Note
que cada um deles esta recebendo mensagens de 2 partições. ___________________________________________________
Mas cada partição do tópico esta associada a apenas 1 consumi-
dor do Consumer Group A. ___________________________________________________
Da mesma forma, o Consumer Group B possui 4 consumido-
res, cada um recebendo mensagens de 1 partição.
___________________________________________________
O modelo de consumer group é utilizado para podermos
adicionar mais instâncias de consumidores e garantir a entre-
ga de apenas 1 mensagem a este grupo. Desta forma, podemos ___________________________________________________
criar mais consumidores para processar as mensagens sem per-
der a garantia de entrega de uma única mensagem por tópico / ___________________________________________________
consumer group.
___________________________________________________
Fonte:
https://www.gta.ufrj.br/grad/12_1/mapreduce/imple- ___________________________________________________
ment.htm
h tt p : / / re p o s i t o r i o . ro c a . u t f p r. e d u . b r / j s p u i / b i t s - ___________________________________________________
tream/1/7385/1/PG_COCIC_2017_1_05.pdf
http://www.bigdatabusiness.com.br/apache-sqoop-e-unifi-
cacao-de-dados/ ___________________________________________________
https://imasters.com.br/desenvolvimento/introducao-ao-
-apache-flume ___________________________________________________
http://dataidea.com.br/2018/04/11/introducao-ao-apa-
che-nifi-parte-4/ ___________________________________________________

ANOTAÇÃO ___________________________________________________

___________________________________________________ ___________________________________________________

___________________________________________________ ___________________________________________________

___________________________________________________ ___________________________________________________

___________________________________________________ ___________________________________________________

___________________________________________________ ___________________________________________________

___________________________________________________ ___________________________________________________

___________________________________________________ ___________________________________________________

___________________________________________________ ___________________________________________________

___________________________________________________ ___________________________________________________

172

Você também pode gostar