Prévia do material em texto
Língua Espanhola
Prof. Adinoél Sebastião
Língua Espanhola
Prof. Adinoél Sebastião
1
2
Língua Espanhola
Prof. Adinoél Sebastião
REVISÃO DE VÉSPERA
CNU
BLOCO 2 - TECNOLOGIA, DADOS E INFORMAÇÃO - PARTE II
EIXO TEMÁTICO 4 –
DESENVOLVIMENTO DE SOFTWARE
3
4
Língua Espanhola
Prof. Adinoél Sebastião
PROGRAMAÇÃO E ESTRUTURAS
DE DADOS
Prof. Raphael Lacerda
DICAS E AGENDA!
@canetas.pretas
@canetaspretas
https://www.youtube.com/@canetaspretas
5
6
AGORA EM ÁUDIO TBM!
SEU LUGAR É AQUI!!!
@canetas.pretas
7
8
CESGRANRIO
DEV - QUESTÕES
https://www.instagram.com/p/B74PyOzj5V3/
https://www.estrategiaconcursos.com.br/blog/prazer-um-eterno-estudante/
Prof. Raphael Lacerda
ESSE CURSO É PARA VOCÊ?
Prof. Raphael Lacerda
9
10
#PROGRAMACAO
Prof. Raphael Lacerda
É uma característica distintiva das linguagens de programação funcionais a(o)
A ênfase em mutabilidade de variáveis, para otimizar o uso de memória.
B prioridade na otimização de uso de memória, para aumentar a eficiência.
C dependência de estruturas de controle de fluxo imperativas.
D uso exclusivo de programação orientada a objetos, ou classes.
E paradigma baseado em expressões e funções puras, ou seja, o valor de cada
expressão e aplicação de função é determinado unicamente pelos valores dos seus
argumentos.
CESGRANRIO/UNEMAT/2024
11
12
Várias abordagens que apoiam o reúso estão disponíveis a gerentes de projeto. Entre elas está a
abordagem usada quando componentes compartilhados são entrelaçados em uma aplicação em diferentes
lugares durante a compilação do programa.
A abordagem descrita é a de
A padrões de projeto
B padrão de arquitetura
C frameworks de aplicação
D integração de sistemas de aplicação
E desenvolvimento de software orientado a aspectos
CESGRANRIO/UNEMAT/2024
Ao construir uma aplicação para web, um programador decidiu projetar a arquitetura do
software, seguindo o modelo Model-View-Controller (MVC).
Nesse modelo, a função do Controller inclui
A apresentar a view escolhida e incorporar os estados da aplicação.
B encapsular o conteúdo dos objetos e gerenciar requisições do usuário.
C gerenciar requisições do usuário e preparar dados do modelo.
D selecionar a resposta da view e encapsular funcionalidade.
E selecionar comportamento do modelo e selecionar a resposta da view.
CESGRANRIO/UNEMAT/2024
13
14
O Ipea resolveu fazer uso de um método de desenvolvimento de web services que usa componentes de software,
chamados de serviços, para criar aplicações associadas à obtenção de dados de saneamento básico, de modo a
melhorar a parte dinâmica de seus sites.
Considerando-se essa decisão e o requisito de que as respostas aos requerimentos dos usuários externos devem
ser resolvidas mais rapidamente, o método de desenvolvimento indicado é o
A EDA
B SOA
C WSA
D Adapter
E Singleton
CESGRANRIO/IPEA/2024
Em uma arquitetura orientada a serviços, SOA, é encontrada a seguinte
característica:
A alto acoplamento
B baixa escalabilidade
C baixa disponibilidade
D menor confiabilidade
E fácil manutenibilidade
CESGRANRIO/IPEA/2024
15
16
A área de TI do Ipea pretende utilizar uma arquitetura orientada em eventos para o software que formata dados
oriundos do IBGE. A proposta indica que essa arquitetura deve ter uma infraestrutura de mensageria baseada em
subscrições em um fluxo de eventos, na qual, após um evento ocorrer ou ser publicado, ele é enviado aos
subscritores que precisam ser informados.
Qual é a arquitetura baseada em eventos que possui uma infraestrutura com essas características descritas?
A pub/sub
B serv/arch
C web services/DL
D bussines process
E event transmission
CESGRANRIO/IPEA/2024
Considere uma necessidade do Ipea de construir uma API que sirva para interfacear seu sistema de cadastro de
usuários internos e seu sistema de funcionários terceirizados, de modo a garantir melhor segurança e
confiabilidade. Para isso, será utilizado um modelo de API apropriadamente baseado no REST.
Considerando o contexto apresentado, qual deverá ser o modelo de API utilizado?
A MVC
B Zope
C Grovy
D Laravel
E RESTful
CESGRANRIO/IPEA/2024
17
18
@canetas.pretas
#O.O
CESGRANRIO/IPEA/2024
19
20
CESGRANRIO/IPEA/2024
Um banco de investimento extrai informações do Ipeadata e as envia para seus
principais clientes corporativos. Os dados devem ser enviados, preferencialmente,
no formato XML, porém, caso não seja possível, podem ser enviados no formato
JSON. Se ainda assim não for possível enviá-los, o formato de texto deve ser
utilizado.
As classes inicialmente criadas para solucionar esse problema são as seguintes:
Qual princípio SOLID é violado no design da solução apresentada?
A Dependency inversion B Interface segregation C Liskov substitution D Open–closed
E Single responsibility
CESGRANRIO/UNIRIO/2019
Em orientação a objetos, uma classe abstrata é uma classe que
A possui apenas métodos estáticos.
B não pode ser instanciada.
C não possui métodos.
D não possui variáveis de instância.
E não pode ter subclasses.
21
22
CESGRANRIO/UNIRIO/2019
Qual a propriedade, típica da orientação a objeto, que habilita uma quantidade
de operações diferentes a ter o mesmo nome, diminuindo o acoplamento entre
objetos?
A Encapsulamento
B Especialização
C Herança
D Padrões de projeto
E Polimorfismo
CESGRANRIO/UNIRIO/2016
Em linguagens orientadas a objetos (OO), classes representam a descrição da implementação de tipos
abstratos a partir dos quais instâncias podem ser criadas. Cada instância, depois de criada, guarda seu
estado próprio independente das demais instâncias. Esse estado pode ser alterado de acordo com
operações definidas pela classe, mas, ao serem executadas, as operações atuam individualmente sobre
cada instância. Na nomenclatura OO, instâncias e operações são conhecidas, respectivamente, como
A Métodos e Funções
B Objetos e Heranças
C Objetos e Métodos
D Tipos e Objetos
E Tipos e Heranças
23
24
CESGRANRIO/UNIRIO/2014
Considere que um programa orientado a objeto possui 5 classes: Máquina, Motor, MotorExplosão, MotorVapor e Gerador.
MotorExplosão e MotorVapor são especializações de Motor. Motor e Gerador são especializações de Máquina. Todas as classes
respondem a uma mensagem chamada “calcularPotencia”, sem argumentos, que calcula e retorna um número real que indica
potência do objeto, em watts, de acordo com os valores de alguns atributos, com um algoritmo diferente em cada classe. O exemplo
acima caracteriza a capacidade de enviar a mesma mensagem para vários objetos e que cada objeto responda a essa mensagem de
acordo com sua classe.
Tal característica é conhecida como:
A Polimorfismo
B Refatoração
C Herança Múltipla
D Independência de Dados
E Tratamento de Exceção
CESGRANRIO/UNIRIO/2012
A modelagem de casos de uso é uma técnica adequada para detalhar requisitos funcionais de um sistema de software orientado a
objetos através da decomposição funcional do comportamento desse sistema.
PORQUE
Na modelagem orientada a objetos, um modelo de classes conceituais apresenta classes que correspondem a conceitos do domínio
do problema e que são compostas de atributos e métodos resultantes do processo de decomposição funcional.
Analisando-se as afirmações acima, conclui-se que
A as duas afirmações são verdadeiras, e a segunda justifica a primeira.
B as duas afirmações são verdadeiras, e a segunda não justifica a primeira.
C a primeira afirmação é verdadeira, e a segunda é falsa.
D a primeira afirmação é falsa, e a segunda é verdadeira
E as duas afirmações são falsas.
25
26
CESGRANRIO/UNIRIO/2012
Um dos objetos da fase de projeto de sistemas de software é definir e organizar as
partes desse sistema da maneira mais adequada possível. Relativamente a essas
partes, devem ser maximizada e minimizada, respectivamente, as medidas
A encapsulamento e coesão
B encapsulamento e acoplamento
C acoplamento e coesão
D acoplamento e encapsulamento
E coesão e encapsulamento
#JAVA
Prof. Raphael Lacerda27
28
Na linguagem Java, para impedir que um método criado em uma classe J não possa ser
sobrescrito por alguma outra classe K que herde de J, deve-se usar a palavra
Alternativas
A extends
B final
C implements
D super
E void
CESGRANRIO/UNEMAT/2024
Em um projeto desenvolvido na linguagem Java, considere um método P que chama um método Q. Existe
uma palavra que, quando colocada na assinatura do método Q, faz com que, caso ocorra uma exceção
nesse método, o tratamento dessa exceção seja da responsabilidade do método P.
Qual é essa palavra?
A catch
B Exception
C finally
D throws
E try
CESGRANRIO/UNEMAT/2024
29
30
É uma característica da linguagem Java conseguir representar a
A codificação de métodos completos em interfaces
B herança múltipla de interface
C herança múltipla de classe
D instanciação de classes abstratas
E instanciação de interfaces
CESGRANRIO/UNEMAT/2024
Em linguagem de programação Java, polimorfismo é
A relacionado, apenas, à alteração de valores de variáveis durante a execução do programa.
B relacionado, apenas, à sobrecarga de métodos, onde várias versões do mesmo método
podem ser definidas na mesma classe.
C relacionado, apenas, à capacidade de ocultar a implementação de um método em uma
classe filha, tornando-o acessível apenas na classe base.
D a capacidade de uma classe estender múltiplas classes pai, simultaneamente.
E a capacidade de uma classe ter várias formas, permitindo que um objeto seja tratado como
uma instância de sua classe base ou de qualquer uma de suas subclasses.
CESGRANRIO/UNEMAT/2024
31
32
No processo de geração de código executável em Java, a etapa crucial que envolve a
transformação do código- -fonte Java em bytecode e o componente responsável por
executar esse bytecode são, respectivamente,
A bytecode e JIT Compiler
B compilação e JRE
C compilação e JVM
D interpretacão e JRE
E intermediário e Bytecode Engine
CESGRANRIO/UNEMAT/2024
O garbage collector (coletor de lixo) gerencia automatica- mente as solicitações de alocação
dinâmica de memória das aplicações. O Java HotSpot VM inclui diferentes tipos de coletores,
cada um com características de desempe- nho diferentes. Um desses coletores foi projetado
espe- cificamente para grandes heaps, variando, normalmente, de alguns gigabytes a vários
terabytes. Ele se concentra em minimizar o impacto das pausas na coleta de lixo, tor- nando-o
adequado para aplicações sensíveis à latência. Esse coletor é usado em cenários em que as
aplicações exigem tempos de resposta consistentes e têm requisitos de latência rigorosos.
O coletor descrito é o
(A) Serial (B) Parallel (C) G1
(D) CMS (E) ZGC
CESGRANRIO/IPEA/2024
An Introduction to ZGC: A Scalable and
Experimental Low-Latency JVM Garbage
Collector | Baeldung
33
34
CESGRANRIO/IPEA/2024
Sejam as seguintes classes Java, que ocupam, cada qual, o seu próprio
arquivo:
Qual classe poderá ser inserida em um projeto, juntamente com as
classes acima, sem produzir erros de compilação?
CESGRANRIO/IPEA/2024
35
36
CESGRANRIO/IPEA/2024
Um desenvolvedor pretende criar um artefato que permita definir quais métodos obrigatoriamente deverão ser desenvolvidos por
classes que o implementem. Tais métodos deverão ser capazes de criar, recuperar, atualizar e deletar (CRUD) dados persistidos que
poderão ser fornecidos por diferentes fontes, como, por exemplo, diferentes tipos de banco de dados. Esse artefato irá funcionar
como um contrato a ser respeitado por cada classe que o implementar.
O tipo de artefato mencionado é a(o)
A Interface
B Enumeração
C Classe concreta
D Objeto
EConstrutor de classe
CESGRANRIO/Transpetro/2023
37
38
CESGRANRIO/Transpetro/
2023
Suponha que a seguinte sequência de números inteiros tenha sido digitada por um usuário quando da
execução do método main acima:
4 16 8 12 7 14 9 15 -1
O que foi exibido no console pelo método main?
A 7 4 9 16 15 8 12 14
B 7 4 9 16 15 8
C 15 14 9 12 7 8
D 15 14 9 12 7 8 16 4
E 4 7 16 9 8 15
CESGRANRIO/Transpetro/2023
39
40
Um programador foi instruído pelo seu gerente a implementar, em Java, uma classe MemoriaCalculoVenda que
implementasse a interface MemoriaCalculo, já criada pela organização e que representa as exigências da
organização para classes que implementam memórias de cálculo.
Nesse cenário, com que fragmento de código o programador deve começar, de forma correta, a implementação da
classe?
A class MemoriaCalculoVenda extends MemoriaCalculo
B class MemoriaCalculoVenda implements MemoriaCalculo
C class MemoriaCalculoVenda imports MemoriaCalculo
D class MemoriaCalculoVenda inherits MemoriaCalculo
E class MemoriaCalculoVenda uses MemoriaCalculo
CESGRANRIO/BB/2023
CESGRANRIO/ELETRO/2022
41
42
A função acima não está completa. É preciso substituir os comentários // 1 e // 2 por comandos que façam
com que a função execute a troca de vogais minúsculas por vogais maiúsculas e retorne a string resultante.
Quais comandos completam a função de acordo com o objetivo definido acima?
A
// 1 deve ser substituído por return c + troca ( str.substring ( 1 ) );
// 2 deve ser substituído por return troca ( str.substring ( 1 ) );
B
// 1 deve ser substituído por return c + troca ( str.substring ( 1 ) );
// 2 deve ser substituído por return c + troca ( str.substring ( 0 ) );
CESGRANRIO/ELETRO/2022
CESGRANRIO/ELETRO/2022
C
// 1 deve ser substituído por return c ;
// 2 deve ser substituído por return c + troca ( str.substring ( 1 ) );
D
// 1 deve ser substituído por return c ;
// 2 deve ser substituído por return c + troca ( str.substring ( 0 ) );
E
// 1 deve ser substituído por return c + troca ( str.substring ( 1 ) );
// 2 deve ser substituído por return c + troca ( str.substring ( 1 ) );
43
44
CESGRANRIO/Banco Amazonia/2022
Qual definição de interface Java NÃO produz erro de compilação?
Alternativas
A interface P { int x; int y;
public void op1(String x); }
B abstract interface Q { public int x; public int y;
public default void op1() { System.out.println(x+y); } }
C final interface R { int x=10; int y=20;
public static void op1() { System.out.println(x+y); } }
D public interface S { public static int x=10; public static int y=20;
public static void op1() { x++; y++; System.out.println(x+y); } }
E public abstract interface T { static int x=20; public int y=20;
static void op1() { System.out.println(x+y); } }
Java Interface (w3schools.com)
● Interface attributes are by
default public, static and
final
CESGRANRIO/Banco Amazonia/2022
Admita que as duas classes Java a seguir pertençam ao pacote default e ocupem arquivos separados.
public class Va { private int a=0,b=2,c=4; private static int sb;
public Va() { a*=2; b*=3; c*=4; }
public Va(int x) { this(); sb+=x; }
{ sb*=2; a+=1; }
static { sb+=8; }
public void print() { System.out.print(a+b+c+sb); } }
public class Main { public static void main(String[] args) { new Va(1).print(); } }
O que será exibido no console quando o método main for executado?
Static vs. Instance Initializer Block in Java |
Baeldung
45
46
CESGRANRIO/ELETRO/2022
O encapsulamento é um dos quatro conceitos fundamentais da orientação a objetos. Seu objetivo é tratar os dados (variáveis) e as operações sobre esses dados
(métodos), de forma unitária. De acordo com esse princípio, as variáveis de uma classe ficam ocultas de outras classes, de forma que só possam ser acessadas
pelos métodos públicos da classe em que se encontram.
Entretanto, a maioria das linguagens de programação orientadas a objetos disponibilizam um mecanismo para que o encapsulamento possa ser atenuado sob
certas condições. Por exemplo, as variáveis de instância de uma classe podem ser livrementeacessadas pelos métodos de instância de todas as suas subclasses.
Esse acesso é possível, caso essas variáveis sejam declaradas como
A protegidas
B estáticas
C globais
D automáticas
E virtuais
CESGRANRIO/BANCO AMAZONIA/2021
Considere a classe Java abaixo.
O que o console exibirá quando o método main() for executado?
47
48
CESGRANRIO/BANCO AMAZONIA/2021
CESGRANRIO/BANCO AMAZONIA/2021
O que o console exibirá quando o método main() for executado?
A .i.a..
B ..a.i.
C l.s.rB
D Br.s.l
E Brasil
49
50
CESGRANRIO/PETRO/2014
O que imprimirá esse programa quando executado?
A oirnrgsevorp
B provegrnrio
C oirnrgsecvorp
D ac a
E a a
How to Compare Characters in Java | Java
Hungry
EJB
Prof. Raphael Lacerda
Cada tipo de enterprise bean passa por diferentes fases durante seu ciclo de vida. Um
desses tipos possui um estado denominado Passivo. Quando um bean entra nesse estado, o
container EJB o desloca da memória principal para a memória secundária.
Qual tipo de bean se comporta dessa maneira?
A Stateless Session Bean
B Stateful Session Bean
C Web Service Bean
D Singleton Session Bean
E Message-Driven Bean
Cesgranrio/BNDES/2013
51
52
EJB
Prof. Raphael Lacerda
Entity EJB e o statement SQL "SELECT FOR UPDATE" são técnicas para se
implementar o padrão arquitetural
A Estado da sessão no cliente (Client Session State).
B Bloqueio offline otimista (Optimistic Offline Lock).
C Bloqueio offline pessimista (Pessimistic Offline Lock).
D Objeto de transferência de dados (data transfer object).
E Mapeador (mapper).
Cesgranrio/BNDES/2009
EJB
Prof. Raphael Lacerda
Cesgranrio/PETRO/2010
53
54
EJB
Prof. Raphael Lacerda
O código acima apresenta um(a)
A EJB padrão 2.1 com informação de estado.
B bean de entidade para a tabela Produto.
C classe POJO que segue o padrão JavaBean.
D classe que utiliza JMS.
E classe que implementa o padrão FrontController
Cesgranrio/PETRO/2010
JSP - questões
Prof. Raphael Lacerda
Cesgranrio/Petro/2012
Em aplicações Java Enterprise Edition 6, é comum o uso da API JPA. Nessa API, há o
conceito de classe de entidade (entity class).
Por definição, uma classe de entidade deve, obrigatoriamente, cumprir os seguintes
requisitos, EXCETO
A estar anotada com a anotação Entity ou representada em um descritor XML.
B não ser qualificada com final.
C ter as variáveis de instância persistentes qualificadas com private, protected, ou
package-private.
D ter ao menos um construtor, este sem argumentos (no-arg constructor).
E ter o mesmo nome da tabela correspondente do banco de dados
55
56
JSP - questões
Prof. Raphael Lacerda
Cesgranrio/Petro/2011
I - EJB fornece ao programador Java EE os seguintes tipos fundamentais: Entity Beans,
Session Beans e Message Driven Beans.
II - JPA é parte integrante da especificação EJB e serve para definir as interfaces de acesso
local e/ou remoto de um componente EJB.
III - Um servidor de aplicações Java EE oferece vários recursos ao desenvolvedor como
pool de conexão, controle de transação, segurança e gerenciamento de recursos.
IV - Uma diferença entre as tecnologias Servlets e JSP é que, ao contrário da segunda, a
primeira permite o armazenamento do estado da aplicação em variáveis de sessão
assinale a afirmativa INCORRETA.
A A arquitetura J2EE Connector define um conjunto de contratos no nível de
sistema entre um servidor de aplicação e o EIS (Enterprise Information
System), entre os quais, o Connection Management, que permite que um pool
de servidores de aplicação se conecte a um EIS subjacente e que
componentes da aplicação se conectem a um EIS.
B Uma prática que pode melhorar o desempenho de EJBs consiste em
empacotar beans de entidade em um bean de sessão para transformar
chamadas EJB remotas em uma chamada de bean de sessão remota e várias
locais (pattern conhecido como fachada de sessão).
EJB
Prof. Raphael Lacerda
Cesgranrio/PETRO/2006
57
58
EJB
Prof. Raphael Lacerda
C Um descritor de instalação, localizado dentro de um arquivo Java Archive (JAR), permite que as
propriedades de um EJB sejam mantidas fora do código Java e que o desenvolvedor do bean torne as
informações sobre o bean disponíveis para o montador da aplicação e para o instalador do bean.
D Para se garantir a entrega de uma mensagem para um único destinatário, o modelo de troca de
mensagens publish/subscribe do JMS com o modo de entrega persistente e um assinante durável é mais
indicado, enquanto que se a mensagem for para vários destinatários, pode-se utilizar o modelo ponto a
ponto do JMS com um modo de entrega persistente.
E Na persistência gerenciada por contêiner (CMP), os dados do bean de entidade são mantidos
automaticamente pelo contêiner, como, por exemplo, um contêiner implementando persistência sobre
um banco de dados relacional (RDBMS) pode gerenciar a persistência armazenando os dados de um
bean como uma linha em uma tabela.
Cesgranrio/PETRO/2006
59
60
CESGRANRIO/Caixa/2021
As classes Java a seguir pertencem ao pacote default e foram incluídas no arquivo Main.java.
O que será exibido no console quando o método main for executado?
A 3
B 4
C 19
D 27
E 31
CESGRANRIO/Caixa/2021
As classes Java a seguir pertencem ao pacote default. class A1 { protected int va1=1,va2=2; public
A1(int x) { va1+=x; va2*=x; } } class A2 extends A1 { protected int vb1=10; } class A3 extends
A2 { protected int vc1=0; public A3(int y) { vc1=(va1+va2)*y; } } public class Main { public
static void main(String[] args) { A3 o=new A3(2); System.out.println(o.vc1); } } Qual construtor
poderá ser inserido na classe A2, sem que um erro de compilação seja gerado?
A public A2() { vb1=va1+va2; }
B public A2(int z) { super(z); vb1=va1+va2; }
C public A2() { vb1=va1+va2; super(vb1); }
D public A2() { super(0); vb1=va1+va2; }
E public A2() { super(vb1); }
61
62
CESGRANRIO/BB/2021
Sejam as seguintes classes Java:
public class Va1 {
public static String getStr() {
return “abcdefghijklmnop“; }
public String ini(String s, int cpr) {
return s.substring(0, cpr);
}
public String fin(String s, int cpr) {
return ini(s, cpr)+s.substring(s.length()-cpr, s.length());
}
}
Can We Override Static Method in Java -
Javatpoint
A Single Java Program Can Contain How
many Classes? - Scaler Topics
Online Java Compiler - Online Java Editor -
Java Code Online (jdoodle.com)
CESGRANRIO/BB/2021
public class Va2 extends Va1 {
public static String getStr() {
return “0123456789ABCDEF“; }
public String ini(String s, int cpr) {
return s.substring(s.length()-cpr, s.length());
}
public static void main(String[] args) {
Va1 o=new Va2();
System.out.println(o.fin(o.getStr(), 5));
}
}
63
64
CESGRANRIO/BB/2021
O que será exibido no console quando o método main for executado?
(A) 0123BCDE
(B) BCDEFBCDEF
(C) 01234BCDEF
(D) abcdelmnop
(E) lmnoplmnop
CESGRANRIO/BB/2021
65
66
CESGRANRIO/BB/2021
As classes Java a seguir são públicas e ocupam arquivos separados.
O que será exibido no console quando o método main for executado?
(A) 0 (B) 10 (C) 24 (D) 25 (E) 33
https://www.geeksforgeeks.org/ord
er-execution-initialization-blocks-
constructors-java/
CESGRANRIO/B.A/2018
A linguagem de programação Java suporta
Alternativas
A
passagem de parâmetros de tipos primitivos por referência
B
sobrecarga de operadores
C
herança múltipla
D
polimorfismo
E
ponteiros
67
68
#ESTRUTURA DE DADOS
#ORDENACAO
Prof. Raphael Lacerda
Mas isso cai em prova?
Prof. Raphael Lacerda
Questão Discursiva 91582 | FGV | TI -
Desenvolvimento de Sistemas |
(voceconcursado.com.br)
69
70
Mas isso cai em prova?
Prof. Raphael Lacerda
Mas isso cai em prova?
Prof. Raphael Lacerda
71
72
CESGRANRIO/IPEA/2024
Quando a função main for executada, será exibido no console o valor
A 47
B 49
C 100
D 150
E 200
CESGRANRIO/IPEA/2024
Suponha que uma função percorra essa árvore em ordem simétrica e exibaos valores de seus
nós no console.
Qual será o sexto valor a ser exibido por essa função?
A 20
B 30
C 60
D 70
E 80
73
74
CESGRANRIO/BB/2021
Dentre os problemas identificados pela gerência de um banco comercial, está a localização das contas dos seus
titulares nas listagens e nos relatórios impressos em diferentes situações. Um especialista de TI sugeriu ordenar as
contas por meio dos CPF dos seus n titulares antes das impressões.
Dentre alguns algoritmos pré-selecionados para essa ordenação, o especialista escolheu o algoritmo de ordenação
por inserção, no qual o consumo de tempo é, no melhor caso, proporcional a
(A) n log n
(B) log n
(C) n2
(D) n
(E) 1
CESGRANRIO/BB/2021
Em uma agência bancária, as filas de atendimento são ordenadas da esquerda para a direita, e o gerente
dessa agência percebeu a presença equivocada de um idoso, com a senha 52, na fila de atendimento não
preferencial. Visando a sanar o equívoco, o gerente resolveu que, na primeira oportunidade, faria uma
busca no sistema para saber se a senha 52 ainda estava ativa, indicando a presença do idoso na fila de
atendimento não preferencial. Em caso de resposta positiva, procu- raria o cliente para trocar sua senha
por outra de atendimento preferencial; se não, apenas registraria o fato para posterior discussão no grupo
de qualidade de atendimento.
Considerando o uso de um algoritmo de busca sequencial otimizado, partindo da esquerda para a direita, e
as sequências hipotéticas das senhas da fila de atendimento não preferencial e suas regras de ordenação,
segundo as quais quem está à esquerda é atendido antes de quem está à direita, o menor número de
comparações para o gerente conhecer o resultado de sua busca ocorre em
75
76
CESGRANRIO/BB/2021
CESGRANRIO/BB/2021
As agências bancárias negociam seguros residenciais com seus clientes e, muitas
vezes, precisam arquivar cópias de forma ordenada para que consultas
eventuais sejam facilitadas. O gerente de uma agência precisava ordenar um
vetor de documentos referentes a esses seguros, e o seu adjunto, da área de TI,
o aconselhou a usar o algoritmo de ordenação chamado Bubble Sort.
Utilizando-se o algoritmo sugerido, qual será a quantidade de trocas de posições
realizadas para ordenar, de modo cres- cente, o vetor de números de contrato
(77, 51, 11, 37, 29, 13, 21)?
(A) 14 (B) 15 (C) 16 (D) 17 (E) 18
77
78
CESGRANRIO/BB/2021
Uma das formas de o gerente de uma agência bancária acompanhar a qualidade dos serviços prestados aos seus clientes é verificar o
estado da ordem de atendimento em vários instantes ao longo do expediente. O sistema que a gerência utiliza para tal fim é a
estrutura de dados conhecida como FILA, que mostra a situação da ordem de atendimento no instante da verificação.
Nesse contexto, implementa-se uma estrutura de FILA de números inteiros com suas duas operações tradicionais: ENFILEIRAR(Z), que
ocorre no instante em que um cliente recebe uma senha Z e entra na FILA; e DESENFILEIRAR( ), que ocorre quando um cliente sai da
FILA, caso em que DESENFILEIRAR( ) retorna o número da senha. Sabe-se, tam- bém, que a representação do estado da FILA em um
instante qualquer é realizada listando os elementos, de forma que o primeiro elemento, da esquerda para a direita, é o mais antigo
presente na FILA.
Nas condições apresentadas, considere uma FILA que começa vazia e realiza as seguintes operações:
ENFILEIRAR(8) → ENFILEIRAR(9) → DESENFILEIRAR( ) → ENFILEIRAR(10) → ENFILEIRAR(11) → ENFILEIRAR(DESENFILEIRAR ( )) →
ENFILEIRAR(12) → DESENFILEIRAR( ) → ENFILEIRAR(13) → DESENFILEIRAR( )
Após realizar as operações acima, a FILA estará no estado
(A)10–11 –12 (B) 9 – 12 – 13 (C) 9 – 10 – 11 (D) 8 – 10 – 11 (E) 8 – 9 –10
CESGRANRIO/BB/2021
Desejam-se realizar buscas nas seguintes coleções de dados, representadas na linguagem Java:
I - Um array de 1.000 números inteiros ordenados de forma decrescente;
II - Uma lista encadeada desordenada e alocada dinamicamente, cujos 1.000 nós contêm strings (uma string por nó);
III - Uma lista encadeada, alocada dinamicamente, cujos 1.000 nós contêm números decimais (um número double por nó)
ordenados de forma ascendente.
Levando-se em consideração a exequibilidade e a eficiência, quais métodos de busca devem ser empregados, respectiva- mente, em cada um dos três casos
acima?
(A) I – sequencial; II – sequencial; III – binária
(B) I – binária; II – sequencial; III – sequencial
(C) I – binária; II – sequencial; III – binária
(D) I – sequencial; II – sequencial; III – sequencial (E) I – sequencial; II – binária; III – binária
Busca binária (artigo) | Algoritmos | Khan
Academy
79
80
CESGRANRIO/BB/2023
Admita que um método Java, chamado exibePilha, receba essas três pilhas como parâmetros e execute os seguintes passos:
1. Cria duas pilhas auxiliares, A1 e A2, inicialmente vazias;
2. Remove um elemento de P1 e o insere em A1. Em seguida, remove um elemento de P2 e o insere em A1. Repete esses dois procedimentos até que P1 e P2 fiquem, ambas,
vazias;
3. Remove um elemento de P3 e o insere em A1. Repete esse procedimento até que P3 fique vazia;
4. Remove um elemento de A1 e o insere em A2. Repete esse procedimento até que A1 fique vazia;
5. Remove um elemento de A2 e o exibe no console. Repete esse procedimento 4 vezes.
O que será exibido no console, quando o método exibePilha for executado, tendo P1, P2 e P3 sido passadas como parâmetros?
A 10 15 25 28
B 10 25 30 40
C 15 10 28 25
D 20 35 34 40
E 40 34 30 60
CESGRANRIO/ELETRO/2022
Os tipos abstratos de dados (TAD) Fila e Pilha foram implementados em uma linguagem orientada a objetos por
meio de um array de inteiros. As classes criadas para a implementação desses TADs contêm os seguintes métodos:
Classe Pilha
int pop ( ) – retorna o número inteiro retirado da pilha. push ( int x ) – insere o número inteiro x na pilha.
Classe Fila
int deq ( ) – retorna o número inteiro retirado da fila. enq ( int x ) – insere o número inteiro x na fila.
Admita que o estado inicial de uma pilha (p) seja um array vazio, e que o estado inicial de uma fila (f) seja
caracterizado pelo array [ 15, 90, 40 ].
Após a execução de uma sequência de operações sobre p e f, a fila assumiu o seguinte estado final: [ 35, 90, 40, 15
]
Qual sequência de comandos levou f do estado inicial para o estado final?
81
82
Pilha vs Fila
CESGRANRIO/ELETRO/2022
83
84
CESGRANRIO/BB/2018
O programa a seguir, em Python, implementa o algoritmo do método de bolha, imprimindo o
resultado de cada passo.
Qual será a quarta linha impressa para a chamada bolha([ 4, 3, 1, 9, 8, 7, 2, 5]) ?
A [3, 1, 4, 8, 7, 2, 5, 9]
B [1, 3, 4, 7, 2, 5, 8, 9]
C [1, 2, 3, 4, 5, 7, 8, 9]
D [1, 3, 2, 4, 5, 7, 8, 9]
E [1, 3, 4, 2, 5, 7, 8, 9]
CESGRANRIO/BB/2018
def bolha(lista):
cont = 1
for passo in range (len(lista)-1,0,-1):
for i in range (passo):
print(f"i: {i} - lista[i] {lista[i]} - lista[i+1] {lista[i+1]}")
if lista[i] > lista[i+1]:
print(f"trocando")
lista[i],lista[i+1]=lista[i+1],lista[i]
print(f"===========> {cont} - lista: {lista}")
cont = cont+1
bolha([4,3,1,9,8,7,5,2])
85
86
CESGRANRIO/BB/2021
Um programador escreveu uma função para percorrer, em pós-ordem,
uma árvore binária e exibir, no console, os valores referentes aos nós
dessa árvore.
Após essa função ter sido executada, foi exibido o seguinte resultado:
41 44 33 47 55 52 36 30
Que árvore essa função percorreu para exibir o resultado acima?
AVL Tree Visualzation (usfca.edu)
CESGRANRIO/BB/2021
AVL Tree Visualzation (usfca.edu)
87
88
Como Percorrer?
Prof. Raphael Lacerda
Uma árvore binária completa com 15 nós tem altura igual a
A 1
B 2
C 3
D 4
E 5
Prof. Raphael Lacerda
Como calcular altura?
89
90
Prof. Raphael Lacerda
E agora?
Estratégia Concursos (estrategia.com)
Estratégia Questões (estrategia.com)
Como calcular a
ALTURA de uma
árvore binária de
busca? –
Wagner Gaspar
Aula-arvores-1.pdf (uff.br)
Árvore
binária –
Wikipédia, a
enciclopédia
livre(wikipedia.or
g)
uma árvore com um único nó tem
altura 1
listaDeExercicios_1 (unicamp.br)
Árvores e Árvores Binárias (usp.br)
Considere uma árvore AVL que possui 12 nós. A altura dessa árvore é
A 3
B 4
C 5
D 6
E 7
Prof. Raphael Lacerda
CESGRANRIO/transpetro/2023
91
92
CESGRANRIO/BB/2023
Um estudante de computação decidiu escrever um método Java para exibir, no console, em
pré-ordem, os valores dos nós de uma árvore binária recebida como parâmetro. Ao executar
esse método, os seguintes valores foram exibidos no console:
80 84 55 76 72
Considerando os valores exibidos, qual árvore foi recebida como parâmetro?
AVL Tree Visualzation (usfca.edu)
CESGRANRIO/BB/2023
93
94
CESGRANRIO/Transpetro/2018
Uma árvore binária foi percorrida em ordem simétrica, e os valores de seus nós
exibidos no console. O resultado desse procedimento foi o seguinte:
15 12 10 19 20 13 34
Dentre as árvores apresentadas, a única capaz de produzir o resultado acima é
AVL Tree Visualzation (usfca.edu)
CESGRANRIO/Transpetro/2018
95
96
CESGRANRIO/BB/2021
Desejam-se realizar buscas nas seguintes coleções de dados, representadas na linguagem Java:
I - Um array de 1.000 números inteiros ordenados de forma decrescente;
II - Uma lista encadeada desordenada e alocada dinamicamente, cujos 1.000 nós contêm strings (uma string por nó);
III - Uma lista encadeada, alocada dinamicamente, cujos 1.000 nós contêm números decimais (um número double por nó)
ordenados de forma ascendente.
Levando-se em consideração a exequibilidade e a eficiência, quais métodos de busca devem ser empregados, respectiva- mente, em cada um dos três casos
acima?
(A) I – sequencial; II – sequencial; III – binária
(B) I – binária; II – sequencial; III – sequencial
(C) I – binária; II – sequencial; III – binária
(D) I – sequencial; II – sequencial; III – sequencial (E) I – sequencial; II – binária; III – binária
Busca binária (artigo) | Algoritmos | Khan
Academy
CESGRANRIO/BB/2023
Para entender como o algoritmo de busca binária se comporta, um estudante de computação resolveu inserir um comando
System.out.printf() em um método chamado busca. Esse método, escrito em Java, realiza uma busca binária em um array de números
inteiros, ordenados de forma ascendente. O objetivo do printf é exibir, no console, o valor de cada elemento do array visitado pelo
algoritmo de busca binária.
Para testar o código que criou, o estudante escreveu o método main a seguir.
public class Main { public static void main(String[] args) { int lista[]={5,18,27,33,44,49,54,67,69,72,79,86,87,92};
// o array lista possui 14 elementos
busca(78, lista); } public static int busca(int val,int lista[]) {
// código relativo ao algoritmo de busca binária } }
O que será exibido no console quando o método main for executado?
A 54 79 69 72 B 49 72 86 79 C 54 86 69 72 79 D 67 86 72 79 E 54 79 67 69 72
Busca binária (artigo) | Algoritmos | Khan
Academy
97
98
Um método que implementa um algoritmo de busca binária recebe como parâmetros um vetor de inteiros ordenados
descendentemente, o comprimento desse vetor e um número inteiro que se deseja localizar no vetor. O cabeçalho desse método é o
seguinte:
public int buscaBin(int vet[], int n, int val)
Admitindo-se que o vetor passado como parâmetro tenha 750 elementos, qual será o número máximo de iterações que o algoritmo
irá realizar até que o valor (val) seja localizado ou que seja detectado que esse valor não se encontra no vetor?
A 8
B 9
C 10
D 11
E 12
CESGRANRIO/Transpetro/2018
Busca binária (artigo) | Algoritmos | Khan
Academy
CESGRANRIO/BB/2021
Um professor preparou uma série de experimentos para avaliar, juntamente com seus alunos, três
algoritmos de ordenação: o da bolha, o de ordenação por inser- ção e o de ordenação por seleção. Para tal,
ele escre- veu três métodos Java, um para cada algoritmo. Todos eles recebem como único parâmetro um
array de inteiros (int vet[ ] = {81,15,4,20,7,47,14,20,4}), que será ordenado em ordem crescente.
Para acompanhar a evolução desse array sendo ordena- do, cada um dos três métodos exibe a
configuração dos elementos do array ao término de cada iteração do co- mando de repetição mais externo.
Vale lembrar que es- ses três algoritmos de ordenação são compostos por dois comandos de repetição
aninhados (dois comandos for ou dois comandos while).
Terminada a codificação, o professor executou os méto- dos relativos aos três algoritmos de ordenação e
projetou no quadro as configurações do array relativas às três pri- meiras iterações de cada um dos
algoritmos de ordena- ção, conforme mostrado a seguir.
99
100
CESGRANRIO/BB/2021
CESGRANRIO/BB/2021
As configurações 1, 2 e 3, exibidas acima, correspondem,
respectivamente, aos algoritmos
(A) da bolha, de seleção e de inserção
(B) da bolha, de inserção e de seleção
(C) de seleção, de inserção e da bolha
(D) de seleção, da bolha e de inserção
(E) de inserção, de seleção e da bolha
101
102
Prof. Raphael Lacerda
Selection Sort
Prof. Raphael Lacerda
Selection Sort
103
104
Prof. Raphael Lacerda
Insertion Sort
Prof. Raphael Lacerda
Insertion Sort
105
106
Prof. Raphael Lacerda
Bubble Sort
Prof. Raphael Lacerda
Bubble Sort
107
108
In a nutshell
Prof. Raphael Lacerda
https://www.treinaweb.com.br/blog/conheca-os-principais-algoritmos-de-ordenacao/
estrategia/algoritmos-ordenacao at main ·
raphaelLacerda/estrategia · GitHub
CESGRANRIO/IPEA/2024
Seja um array de inteiros de 32 bits com 10.000 elementos, gerados e posicionados aleatoriamente nesse
array.
Nessas condições, qual algoritmo irá ordenar esse array com um consumo de tempo, em seu caso médio,
proporcional ao consumo de tempo do pior caso do Quick sort?
A Bucket sort
B Heap sort
C Insertion sort
D Merge sort
E Tree sort
109
110
CESGRANRIO/BB/2021
Dentre os problemas identificados pela gerência de um banco comercial, está a localização das contas dos seus
titulares nas listagens e nos relatórios impressos em diferentes situações. Um especialista de TI sugeriu ordenar as
contas por meio dos CPF dos seus n titulares antes das impressões.
Dentre alguns algoritmos pré-selecionados para essa ordenação, o especialista escolheu o algoritmo de ordenação
por inserção, no qual o consumo de tempo é, no melhor caso, proporcional a
(A) n log n
(B) log n
(C) n2
(D) n
(E) 1
CESGRANRIO/BB/2021
Em uma agência bancária, as filas de atendimento são ordenadas da esquerda para a direita, e o gerente
dessa agência percebeu a presença equivocada de um idoso, com a senha 52, na fila de atendimento não
preferencial. Visando a sanar o equívoco, o gerente resolveu que, na primeira oportunidade, faria uma
busca no sistema para saber se a senha 52 ainda estava ativa, indicando a presença do idoso na fila de
atendimento não preferencial. Em caso de resposta positiva, procu- raria o cliente para trocar sua senha
por outra de atendimento preferencial; se não, apenas registraria o fato para posterior discussão no grupo
de qualidade de atendimento.
Considerando o uso de um algoritmo de busca sequencial otimizado, partindo da esquerda para a direita, e
as sequências hipotéticas das senhas da fila de atendimento não preferencial e suas regras de ordenação,
segundo as quais quem está à esquerda é atendido antes de quem está à direita, o menor número de
comparações para o gerente conhecer o resultado de sua busca ocorre em
111
112
CESGRANRIO/BB/2021
CESGRANRIO/BB/2021
As agências bancárias negociam seguros residenciais com seus clientes e, muitas
vezes, precisam arquivar cópias de forma ordenada para que consultas
eventuais sejam facilitadas. O gerente de uma agência precisava ordenar um
vetor de documentos referentes a esses seguros, e o seu adjunto, da área de TI,
o aconselhou a usar o algoritmo de ordenação chamado Bubble Sort.
Utilizando-se o algoritmo sugerido, qual será a quantidade de trocas de posições
realizadas para ordenar,de modo cres- cente, o vetor de números de contrato
(77, 51, 11, 37, 29, 13, 21)?
(A) 14 (B) 15 (C) 16 (D) 17 (E) 18
113
114
CESGRANRIO/BB/2021
Uma das formas de o gerente de uma agência bancária acompanhar a qualidade dos serviços prestados aos seus clientes é verificar o
estado da ordem de atendimento em vários instantes ao longo do expediente. O sistema que a gerência utiliza para tal fim é a
estrutura de dados conhecida como FILA, que mostra a situação da ordem de atendimento no instante da verificação.
Nesse contexto, implementa-se uma estrutura de FILA de números inteiros com suas duas operações tradicionais: ENFILEIRAR(Z), que
ocorre no instante em que um cliente recebe uma senha Z e entra na FILA; e DESENFILEIRAR( ), que ocorre quando um cliente sai da
FILA, caso em que DESENFILEIRAR( ) retorna o número da senha. Sabe-se, tam- bém, que a representação do estado da FILA em um
instante qualquer é realizada listando os elementos, de forma que o primeiro elemento, da esquerda para a direita, é o mais antigo
presente na FILA.
Nas condições apresentadas, considere uma FILA que começa vazia e realiza as seguintes operações:
ENFILEIRAR(8) → ENFILEIRAR(9) → DESENFILEIRAR( ) → ENFILEIRAR(10) → ENFILEIRAR(11) → ENFILEIRAR(DESENFILEIRAR ( )) →
ENFILEIRAR(12) → DESENFILEIRAR( ) → ENFILEIRAR(13) → DESENFILEIRAR( )
Após realizar as operações acima, a FILA estará no estado
(A)10–11 –12 (B) 9 – 12 – 13 (C) 9 – 10 – 11 (D) 8 – 10 – 11 (E) 8 – 9 –10
Pilha
Prof. Raphael Lacerda
115
116
Fila
Prof. Raphael Lacerda
CESGRANRIO/Caixa/2021
Qual árvore binária pode ser classificada como árvore binária de busca?
117
118
CESGRANRIO/BANCO AMAZONIA/2021
A classe Java ArvNo, exibida abaixo, é usada para representar os nós de
uma árvore binária.
Ela é usada na implementação de uma árvore binária pela classe Arv,
exibida a seguir.
Que árvore terá os valores de seus nós exibidos em ordem descendente
quando for percorrida pelo método percorre(), definido na classe Arv?
CESGRANRIO/BANCO AMAZONIA/2021
119
120
CESGRANRIO/BANCO AMAZONIA/2021
CESGRANRIO/BANCO AMAZONIA/2021
121
122
CESGRANRIO/BB/2021
Desejam-se realizar buscas nas seguintes coleções de dados, representadas na linguagem Java:
I - Um array de 1.000 números inteiros ordenados de forma decrescente;
II - Uma lista encadeada desordenada e alocada dinamicamente, cujos 1.000 nós contêm strings (uma string por nó);
III - Uma lista encadeada, alocada dinamicamente, cujos 1.000 nós contêm números decimais (um número double por nó)
ordenados de forma ascendente.
Levando-se em consideração a exequibilidade e a eficiência, quais métodos de busca devem ser empregados, respectiva- mente, em cada um dos três casos
acima?
(A) I – sequencial; II – sequencial; III – binária
(B) I – binária; II – sequencial; III – sequencial
(C) I – binária; II – sequencial; III – binária
(D) I – sequencial; II – sequencial; III – sequencial (E) I – sequencial; II – binária; III – binária
Busca binária (artigo) | Algoritmos | Khan
Academy
CESGRANRIO/B.A/2018
Em uma árvore AVL com grande quantidade de nós, o custo para inclusão de um nó no meio
da árvore é proporcional a
A log(n)
B n
C n log(n)
D n2
E n2 log(n)
123
124
#PYTHON
Prof. Raphael Lacerda
Prof. Raphael Lacerda
Strings
125
126
Prof. Raphael Lacerda
Quais métodos devo
saber?
https://www.w3schools.com/python/python_ref_string.asp
Prof. Raphael Lacerda
e mais
https://www.w3schools.com/python/python_ref_string.asp
127
128
Prof. Raphael Lacerda
Prof. Raphael Lacerda
O que mais?
129
130
Prof. Raphael Lacerda
Concatenação
https://realpython.com/python-f-strings/
Prof. Raphael Lacerda
LISTAS
131
132
Prof. Raphael Lacerda
Quais devo saber?
Prof. Raphael Lacerda
133
134
Seja o seguinte programa Python:
a = [1, 4, 8]
b = [-1, 6, 2]
c = a*2+b*0
print(c)
O que será exibido no console quando esse programa for executado?
A [2, 8, 16]
B [1, 4, 8, 1, 4, 8]
C [2, 8, 16, 0, 0, 0]
D [1, 4, 8, 1, 4, 8, 0, 0, 0]
E TypeError: unsupported operand type(s) for +: 'list' and 'list'
CESGRANRIO/IPEA/2024
CESGRANRIO/IPEA/2024
135
136
Admita que o módulo pilha contém as funções push(pil, e), pop(pil), e
empty(pil), que implementam as operações usuais sobre uma pilha.
O que será exibido no console quando esse programa for executado?
A 8 45 76 80 23
B 8 45 80 23 76
C 23 80 45 8 76
D 45 8 23 80 76
E 80 23 8 45 76
CESGRANRIO/IPEA/2024
Seja o seguinte programa Python:
def contagem(s):
if len(s)==0: return 0
return len(s[0])+contagem(s[1:])
txt = [ 'hoje', [ ['é', 'dia', 'de', 'prova' ] ], 'eu', [ [ 'vou', 'me', 'sair' ] ], [ 'bem' ] ]
print(contagem(txt))
O valor que será exibido no console quando esse código for executado é
A 5 B 9 C 10 D 16 E 29
CESGRANRIO/IPEA/2024
137
138
resolvendo
Seja o seguinte código Python:
str = 'America do Sul'
s1 = ( str.split ( ';' ) ).pop().upper()
print ( str )
O que será exibido no console quando esse código for executado?
A America do Sul B AMERICA DO SUL C Sul D SUL E AMERICA
CESGRANRIO/TRANSPETRO/2023
139
140
Seja o seguinte programa Python:
l = ['abc', ['a', 'b', 'c'], 'd', ['a', ['abc', 'd']]]
c = 0
for e in l:
c+=len(e)
print( c )
O que será exibido no console quando esse programa for executado?
CESGRANRIO/TRANSPETRO/2023
Pilhas podem ser implementadas em Python por meio de listas em que o último elemento é o topo da pilha, como
no exemplo abaixo:
pilha01 = ['a4', 'a3', 'a2', 'a1'] # o elemento 'a1' está # no topo da pilha
pilha02 = ['b2', 'b1'] # o elemento 'b1' está no topo da pilha
Considere uma função Python, chamada unifica, que recebe duas pilhas como parâmetros e retorna uma terceira,
que é o resultado da intercalação dos elementos das duas pilhas recebidas como parâmetros. Um programa
Python chamou essa função unifica, passando como parâmetros as duas pilhas do exemplo acima (pilha01 e
pilha02). O resultado da intercalação foi a pilha
['a4', 'a3', 'b2', 'a2', 'b1', 'a1']
Qual implementação da função unifica realiza o que foi descrito acima?
CESGRANRIO/TRANSPETRO/2023
141
142
Alternativas
A
def unifica(p1, p2): p3 = [ ]
while len(p1) > 0: p3.append(p1.pop())
while len(p2) > 0: p3.append(p2.pop())
return p3
B
def unifica(p1, p2): p3 = [ ]
while len(p1) > 0 and len(p2) > 0 : p3.append(p1.pop())
p3.append(p2.pop())
return p3
CESGRANRIO/TRANSPETRO/2023
CESGRANRIO/TRANSPETRO/2023
C
def unifica(p1, p2): p3 = [ ] p4 = [ ]
while len(p1) > 0 and len(p2) > 0 : p3.append(p1.pop()) p3.append(p2.pop())
while len(p3) > 0: p4.append(p3.pop())
return p4
D
def unifica(p1, p2): p3 = [ ] p4 = [ ]
while len(p1) > 0 or len(p2) > 0 : if len(p1) != 0: p3.append(p1.pop()) if len(p2) != 0:
p3.append(p2.pop())
while len(p3) > 0: p4.append(p3.pop()) return p4
E
def unifica(p1, p2): p3 = [ ] p4 = [ ]
while len(p1) != 0: if len(p1) != 0: p3.append(p1.pop())
while len(p2) != 0: if len(p2) != 0: p3.append(p2.pop())
while len(p3) > 0: p4.append(p3.pop())
return p4
143
144
CESGRANRIO/TRANSPETRO/2018
Python | yield Keyword - GeeksforGeeks
def x(u):
for i in range(u):
yield(i**i)
def z(n):
return lambda x:x+n
w=0
for k in x(5):
w+=(lambda x:x//2)(z(k)(k))
print(w)
Que resultado será impresso por esse programa?
A 30 B 33 C 256 D 289 E 3414
Decodificando…
def x(u):
for i in range(u):
yield i
for i in x(5):
print(i)
Python | yield Keyword - GeeksforGeeks
145
146
Decodificando…
def x(u):
for i in range(u):
yield i**i
for i in x(5):
print(i)
Python | yield Keyword - GeeksforGeeks
Decodificando…
Python | yield Keyword - GeeksforGeeks
def z(n):
return lambda x:x+nprint(z(3)(2))
print(z(5)(1))
147
148
Decodificando…
def x(u):
for i in range(u):
yield i**i
def z(n):
return lambda x:x+n
for k in x(5):
print(k)
Python | yield Keyword - GeeksforGeeks
Decodificando…
def x(u):
for i in range(u):
yield i**i
def z(n):
return lambda x:x+n
w=0
for k in x(5):
w+=(lambda x:x//2)(4)
print(w)
Python | yield Keyword - GeeksforGeeks
Python Operators (w3schools.com)
149
150
Decodificando…
def x(u):
for i in range(u):
yield i*i
def z(n):
return lambda x:x+n
w=0
for k in x(5):
w+=(lambda x:x//2)(z(k)(k))
print(w)
Python | yield Keyword - GeeksforGeeks
Python Operators (w3schools.com)
Cesgranrio/UNIRIO/2019
Um programador tentou executar o programa a seguir em um
interpretador Python
O que aconteceu?
A Houve um erro de sintaxe.
B Houve um erro na execução.
C Imprimiu o número 7.
D Imprimiu o número 12.
E Imprimiu o número 17.
151
152
def f(x):
def g(y):
z = sum(range(x))
return z+y
return g
k = f(5)
print(k(2))
Decodificando
def f(x):
def g(y):
y = y+x
return y
return g
print(f(2)(3))
Decodificando
153
154
def f(x):
def g(y):
y = sum(range(x))
return y
return g
print(f(5)(2))
Decodificando
def f(x):
def g(y):
z = sum(range(x))
return z+y
return g
k = f(5)
print(k(2))
Decodificando
155
156
Considere-se o código Python abaixo.
O que será impresso?
A 2
B 8
C 13
D 16
E -3
Cesgranrio/UNIRIO/2019
Cesgranrio/UNIRIO/2019
157
158
Cesgranrio/UNIRIO/2019
O código a seguir exibe parte de um programa Python que tem por objetivo retirar um elemento de uma pilha (variável stack) de
strings e exibir no console o valor do elemento retirado.
A pilha foi concebida de modo que o seu topo é o primeiro elemento de uma lista (variável stack).
Qual versão da função pop(s) fará com que o programa acima alcance o seu objetivo?
Alternativas
A
def pop(s): return s.pop()
B
def pop(s): temp=s[0] s.remove(s[0]) return temp
C
def pop(s): return s.pop(-1)
D
def pop(s): temp=s[0] s=s[1:] return temp
E
def pop(s): temp=s[-1] s=s[-1:1:-1] return temp
pq nao pop()?
A pilha foi concebida de modo que o seu topo é o primeiro elemento de
uma lista (variável stack).
stack = [1,2,4,5,6]
print(stack)
stack.pop()
print(stack)
159
160
qual problema da D?
def pop(s):
temp=s[0]
s=s[1:]
return temp
stack = [1,2,4,5,6]
print(pop(stack))
Duas pilhas, p1 e p2, foram implementadas em Python, por meio de listas em que o último
elemento da lista é o topo da pilha. As configurações iniciais dessas pilhas são as seguintes:
p1=[50,40,30,20,10] p2=[ ] Qual função irá transferir os elementos de p1 para p2, de modo
que p1 passe a ser uma pilha vazia, e p2 passe a ter a mesma configuração que p1 tinha, antes
da chamada da função?
A def fa(p1,p2): if(len(p1)==0): return x=p1[len(p1)-1] fa(p1,p2) p2.append(x)
B def fb(p1,p2): if(len(p1)==0): return x=p1[len(p1)-1] del p1[len(p1)-1]
fb(p1,p2) p2.append(x)
C def fc(p1,p2): if(len(p1)==0): return p2.append(p1.pop()) fc(p1,p2)
D def fd(p1,p2): for i in range(len(p1)): p2.append(p1.pop())
E def fe(p1,p2): for i in range(len(p1)): p2.append(p1[i])
CESGRANRIO/CAIXA/2021
161
162
p1=[50,40,30,20,10]
p2=[ ]
def fb(p1,p2):
if(len(p1)==0):
return
x=p1[len(p1)-1]
print(x)
del p1[len(p1)-1]
print(p1)
fb(p1,p2)
p2.append(x)
fb(p1,p2)
print(p1)
print(p2)
decodificando
O que será exibido pelo comando print(v3) quando esse programa for
executado por meio do IDLE?
A
['Ri de Janeir']
B ["]
C ['rienaJ ed ']
D ['Rio de Janeiro']
E ['orienaJ ed oiR']
Prof. Raphael Lacerda
Cesgranrio/UNIRO/2019/
163
164
Considere-se uma lista L, criada em Python, da seguinte forma:
L=[-20,-10,0,10,20,30]
O comando print(L[-1::-2]) apresentará o resultado
A [30, 10, -10]
B [30, 20]
C [-20, 10]
D [30]
E [20]
Prof. Raphael Lacerda
Cesgranrio/UNIRO/2019/
Código:
1 a = ['UF'] + [ 'RN']
2 len(a)
3 b = ['4']*4
4 len(b)
Prof. Raphael Lacerda
Cesgranrio/UNIRO/2019/
165
166
A saída correta correspondente às linhas 2 e 4 do código é
A
2 e 4.
B
4 e 16.
C
2 e 16.
D
4 e 4.
Prof. Raphael Lacerda
Cesgranrio/UNIRO/2019/
Prof. Raphael Lacerda
A saída na tela após a execução será
A Fulano m
B Fulano 2500.0
C Fulano de Tal m
D Fulano de Tal 2500.0
E Fulano de Tal m 2500.0
Cesgranrio/UNIRIO/2016
167
168
#ENGENHARIA DE SOFTWARE
Prof. Raphael Lacerda
@canetas.pretas
#ÁGIL
169
170
CESGRANRIO/BASA/2021
“O Scrum é um arcabouço que ajuda pessoas, times e organizações a gerar valor por meio de soluções adaptativas para problemas
complexos.”
SCHWABER, K. ; SUTHERLAND, J. O Guia do Scrum, O Guia Definitivo para o Scrum: As Regras do Jogo. Nov. 2020. p 3. Adaptado.
Para cumprir seu objetivo, o Scrum se baseia em quatro eventos formais, contidos dentro de um evento de maior duração: a Sprint.
Tais eventos formais implementam os três pilares empíricos do Scrum, que são
a) compromisso, abertura e adaptação
b) respeito, coragem e foco
c) respeito, inspeção e adaptação
d) transparência, compromisso e respeito
e) transparência, inspeção e adaptação
CESGRANRIO/B.A/2018
O Manifesto Ágil se tornou um marco da Engenharia de Software, chamando a atenção de que vários processos
propostos de forma independente tinham valores em comum. Além disso, foram definidos 12 princípios.
Entre eles, figura o seguinte princípio:
A cada pessoa em um projeto deve ter sua função predeterminada para acelerar o desenvolvimento em conjunto.
B a contínua atenção à simplicidade do trabalho feito aumenta a agilidade.
C software funcionando é a medida primária de progresso.
D os indivíduos, clientes e desenvolvedores, são mais importantes que processos e ferramentas.
E o software funcional emerge de times auto-organizáveis.
171
172
CESGRANRIO/B.A/2018
No SCRUM, o Backlog da Sprint é “um conjunto de itens do Backlog do Produto selecionados para Sprint,
juntamente com o plano para entregar o incremento do produto e atingir o objetivo da Sprint” (Schwaber e
Sutherland, 2017).
Durante a Sprint, quem pode alterar o Backlog da Sprint?
A Product Owner, apenas
B Scrum Master, apenas
C Time de Desenvolvimento, apenas
D Time de Desenvolvimento e o Product Owner, apenas
E Time de Desenvolvimento e o Scrum Master, apenas
CESGRANRIO/UNIRIO/2019
“O Scrum é um arcabouço que ajuda pessoas, times e organizações a gerar valor por meio de soluções adaptativas para problemas
complexos.”
SCHWABER, K. ; SUTHERLAND, J. O Guia do Scrum, O Guia Definitivo para o Scrum: As Regras do Jogo. Nov. 2020. p 3. Adaptado.
Para cumprir seu objetivo, o Scrum se baseia em quatro eventos formais, contidos dentro de um evento de maior duração: a Sprint.
Tais eventos formais implementam os três pilares empíricos do Scrum, que são
a) compromisso, abertura e adaptação
b) respeito, coragem e foco
c) respeito, inspeção e adaptação
d) transparência, compromisso e respeito
e) transparência, inspeção e adaptação
173
174
CESGRANRIO/UNIRIO/2019
Uma das principais práticas de XP (Extreme Programming) é o Iteration Planning Game.
Entre as atividades realizadas em uma sessão de Iteration Planning, está a
a) definição, pelos programadores, de quais story cards serão implementados em uma
iteração.
b) estimação do esforço que será necessário para implementar cada story card.
c) estimação da data de entrega de um release baseado na estimativa de esforço de cada
story card.
d) estimação, feita por cada programador, do tempo que será necessário para realizar cada
tarefa sob sua responsabilidade.
e) designação, por parte do coach, dos programadores que irão realizar as tarefas contidas na
lista de tarefas.
CESGRANRIO/UNIRIO/2019
O modelo de processo incremental é iterativo por natureza e produz a cada incremento uma versão operacional
do produto, diferente de outros modelos, como, por exemplo, a prototipagem.
Esse modelo incremental
a) gera incrementos logo nas primeiras etapas, masestes não podem ser entregues ao cliente.
b) possui unicamente atividades de codificação e teste nos seus incrementos.
c) deve ter, no máximo, 1 a 5 sprints quando planejados e gerenciados com métodos ágeis.
d) possui atividades de teste fora do incremento, realizadas por outra equipe que vai integrando
incrementalmente o produto a cada etapa do teste.
e) combina elementos do modelo cascata, aplicado de maneira iterativa, sendo também essa filosofia incremental
usada em processos ágeis.
175
176
CESGRANRIO/UNIRIO/2019
O ciclo de vida de um projeto em cascata, para desenvolvimento de software de gestão de almoxarifado,
teve escopo, prazo e custo rigidamente determinados, nas suas fases iniciais, pelo gestor de projeto e sua
equipe, stackeholders e área solicitante.
Dessa forma, conclui-se que esse projeto tem um ciclo de vida
a) ágil
b) iterativo
c) integrado
d) incremental
e) preditivo
CESGRANRIO/Transpetro/2018
O Processo Unificado de desenvolvimento de software é dividido em quatro fases: concepção
(inception), elaboração, construção e transição.
Um dos objetivos da fase de elaboração é
a) definir a arquitetura
b) estimar o custo total
c) estabelecer o escopo do projeto
d) minimizar custos de desenvolvimento
e) converter bancos de dados operacionais
177
178
CESGRANRIO/Transpetro/2018
A etapa do projeto unificado e a sua correspondente característica são,
respectivamente:
a) Concepção – levantamento de requisitos sistêmicos primários do ciclo
b) Construção – implementação dos elementos de maior risco e criticidade
c) Elaboração – mitigação dos problemas de alto risco do projeto
d) Incremento – diferenciação entre as entregas de duas etapas subsequentes
e) Transição – geração de um subconjunto executável do produto final
CESGRANRIO/Transpetro/2018
O processo unificado consiste em um conjunto de diretrizes que visam a aumentar as chances de um bem sucedido projeto de
desenvolvimento de software.
Uma de suas características é
a) apresentar-se como uma alternativa aos métodos ágeis, tais como Scrum e Feature-Driven development.
b) combinar boas práticas de desenvolvimento de software, como ciclo de vida em cascata evolutivo e documentação de processo
coesa e precisa.
c) gerar como produto de cada etapa de tempo definido e curto um sistema parcial, testável e integrável.
d) partir de um conjunto perene de requisitos previamente aferidos, cujas partes serão implementadas por etapas.
e) produzir, ao final de cada etapa de desenvolvimento, um protótipo do sistema, com vistas à validação de um subconjunto de
requisitos.
179
180
CESGRANRIO/Transpetro/2018
De acordo com o Processo Unificado (RUP), que resultado deve ser alcançado ao
término da fase de elaboração?
a) A integração do sistema nas plataformas definidas pelo cliente.
b) A descrição da arquitetura do sistema.
c) A disponibilização das versões finais dos manuais do usuário.
d) A disponibilização da versão inicial do documento de visão do sistema.
e) O encerramento dos testes para validar o sistema em relação às expectativas de
seus usuários.
CESGRANRIO/Transpetro/2018
O Processo Unificado, originalmente proposto pela Rational, é um processo moderno baseado no uso de
UML. Nesse processo, existem quatro fases, sendo que uma delas é conhecida como Elaboração.
Um dos objetivos previstos nessa fase é
a) avaliar a contribuição do sistema ao negócio.
b) desenvolver um entendimento do domínio do problema.
c) estabelecer um caso de negócio para o sistema.
d) identificar todas as entidades externas que irão interagir com o sistema.
e) realizar o projeto físico do sistema.
181
182
#MOBILE
Prof. Raphael Lacerda
Um desenvolvedor de aplicativos para dispositivos móveis, utilizando o framework Ionic, deseja operar com
Splash Screens no desenvolvimento de aplicações com Ionic nas páginas do Ipea. Contudo, as Splash
Screens, para funcionarem, devem ser inseridas em um diretório de projeto Ionic específico.
Em qual diretório do projeto Ionic essas Splash Screens devem ser inseridas?
A icons
B splash
C dtbase
D resources
E configuration
CESGRANRIO/BB/2024
183
184
Um programador recebeu a incumbência de desenvolver uma aplicação móvel segundo a API 30 do Android,
correspondente ao Android 11. Seguindo as melhores práticas, cada tela dessa aplicação, incluindo sua
funcionalidade, foi construída como um módulo único e autônomo, totalmente independente de outros módulos
similares.
Esse módulo único e autônomo é conhecido como
A activity
B content provider
C fragment
D intent
E manifest
CESGRANRIO/BB/2023
O React Native 0.59 introduziu o conceito de Hooks.
Entre os Hooks, tem-se o usestate, que permite
A calcular o estado de um CEP ou ZIP de acordo com o Locale.
B chamar estados específicos do engine React para alterar seu comportamento.
C declarar uma classe que segue o padrão de design state.
D criar uma enumeration que representa estados.
E manter um estado local em uma função de um componente funcional.
CESGRANRIO/BB/2023
185
186
O código abaixo está em linguagem TypeScrip, cuja tipagem é estática.
let fraseLegal = 'Bom dia!';
fraseLegal = 9.5;
Analisando o código apresentado, tem-se que a TypeScrip
A não realiza a inferência de tipo, por isso, o código apresentado vai rodar sem erro.
B realiza a inferência de tipo, por isso, o código apresentado vai rodar sem erro.
C realiza a inferência de tipo, por isso, aceita a atribuição do tipo number para um tipo string sem gerar erro de compilação do código apresentado.
D realiza a inferência de tipo, por isso, não aceita a atribuição do tipo number para um tipo string, o que vai gerar um erro de compilação do código apresentado.
E não diferencia valores ponto flutuante (decimal) de valores inteiros, por isso, o código apresentado vai rodar sem erro.
CESGRANRIO/BB/2023
Kotlin é uma linguagem de programação usada no desenvolvimento Android.
Entre suas características, está um grau de compatibilidade com Java, que permite
A chamar funções feitas em Java, apenas, mas não permite que suas funções Kotlin sejam chamadas por
Java.
B ler dados que foram salvos por apps Java, apenas.
C ler e escrever dados que podem ser lidos e escritos por apps Java, apenas.
D ter suas funções chamadas por Java, apenas, mas não consegue chamar funções feitas em Java.
E construir apps com código parcialmente em Java e parcialmente em Kotlin, sem restrições.
CESGRANRIO/BB/2023
187
188
Em um programa em Swift, o programador deseja incluir o resultado de uma operação dentro de uma string. Nesse contexto, considere o seguinte código:
let quantidade = 4 let valor = 10
Dado o código acima, o programador deseja uma string saida cujo valor seja
"valor total = 40"
Para isso, o programador deve utilizar o seguinte fragmento de código Swift:
A let saida := "valor total = \(quantidade*valor)"
B let saida := "valor total = \{quantidade*valor}"
C let saida = "valor total = %[quantidade*valor]"
D let saida = "valor total = \(quantidade*valor)"
E let saida = "valor total = \[quantidade*valor]"
CESGRANRIO/BB/2023
Um programador de aplicativos para dispositivos Apple com iOS recebeu a seguinte parte de um código, escrito na
linguagem swift:
var i:Int var texto:String var num:Int=0 var frase:String=”” for i in 1...3 { num = num+1+i*2 switch num{ case
2...6: texto = “a “ case 7...9: texto = “casa “ case 10...13: texto = “carro “ case 14...16: texto = “eh “ case
17...20: texto = “o “ case 21...23: texto = “forte “ default: texto = “não eh “ } frase = frase+texto } print
(frase)
A execução dessa parte do código produz como resposta
A o carro eh
B a casa eh
C o carro não eh
D a casa eh forte
E o carro eh forte
CESGRANRIO/BB/2021
189
190
CESGRANRIO/Caixa/2021
Na linguagem de programação Kotlin, é possível criar uma variável cujo valor nunca pode ser
mudado, na prática, uma constante, com o nome idademinima, do tipo básicointeiro de 32
bits, com o valor 18. Para que isso aconteça, qual das seguintes instruções deve ser usada?
A val idademinima : Int = 18
B val idademinima : Integer = 18
C val idademinima = 18 : Integer
D var idademinima : Int = 18
Evar idademinima : Integer = 18
CESGRANRIO/BB/2021
O desenvolvimento de um aplicativo bancário para dis- positivos móveis exige
que se dedique atenção à parte visual do mesmo, que vai depender, também,
do modelo do aparelho e do tipo de sistema operacional (SO) que esteja
rodando nele.
Caso um desenvolvedor de aplicativos para um iPhone com SO iOS precise fazer
a programação visual das telas desses aplicativos, que ferramenta do Xcode 10
ele deve utilizar?
(A) Interface Builder (B) Bundle Identifier (C) Organizer Interface (D) Apple LLVM
(E) Instruments
191
192
CESGRANRIO/BB/2021
Xcode 14 Overview - Apple DeveloperInterface Builder - Wikipedia
Prof. Raphael Lacerda
Ciclo
de
Vida
https://medium.com/good-morning-
swift/ios-view-controller-life-cycle-
2a0f02e74ff5
193
194
Prof. Raphael Lacerda
Equatable
#NOSQL
Prof. Raphael Lacerda
195
196
CESGRANRIO/BB/2023
Considere um cenário no qual uma empresa de investimentos financeiros tenha realizado uma campanha para que seus
colaboradores indicassem outras pessoas que pudessem vir a estar interessadas em seus produtos e serviços. Esses colaboradores
também foram estimulados a informar a sua ligação com as pessoas indicadas (ex: amigo, irmão, primo) e as eventuais ligações entre
as pessoas indicadas. Estes relacionamentos são importantes para a definição da próxima campanha dessa empresa.
O banco de dados NoSQL mais indicado para representar esses dados é o que utiliza o modelo
A chave/valor
B orientado a colunas
C orientado a documentos
D orientado a grafos
E relacional
CESGRANRIO/Transpetro/2023
Na implementação de sistemas de Big Data, é comum a utilização de tecnologias de Bancos de Dados NoSQL, que
têm como característica principal não seguir ou ir além do Modelo Relacional e da linguagem SQL.
Duas dessas tecnologias são os Bancos de Dados orientados a documentos e orientados a colunas, exemplificados,
respectivamente, pelos softwares
A ArangoDB e MongoDB
B HBase e ArangoDB
C HBase e MongoDB
D MongoDB e ArangoDB
E MongoDB e HBase
197
198
CESGRANRIO/BB/2021
Um banco comercial deseja obter um tipo de banco de dados NoSQL que trate os dados extraídos de redes
sociais, de modo a formar uma coleção (collection) interconectada. Nessa coleção (collection), os dados são
organizados em vértices ou objetos (O) e em relacionamentos, que são relações (R) ou arestas.
Nesse modelo de banco de dados NoSQL, os dados seriam apresentados da seguinte forma:
O:Usuario{u1:Joao, u2:Jose, u3:Maria, u4:Claudio} O:Escola{e1:UFRJ, e2:URGS, e3:IFB}
R:Estudaem{re1=u1:e2;re2=u2:e2;re3=u3:e1;re4=u4:e3} R:Amigode{ra1=u1:u2;ra2=u1:u3;ra3=u2:u3}
O banco de dados NoSQL que representa essa situação deve ter uma estrutura do tipo
(A) Distribuided Hashing (B) Consistent Hashing (C) Document Oriented (D) Graph Oriented
(E) Vector Clock
CESGRANRIO/CAIXA/2021
Os Sistemas de Gerenciamento de Banco de Dados (SGBD) foram afetados pelas demandas trazidas pelo
Big Data. Uma das formas de tratar essas demandas são os Sistemas de Gerenciamento de Banco de Dados
Distribuídos (SGBDD), nos quais os dados podem estar armazenados em vários servidores, conectados por
uma rede de computadores. Um SGBDD que usa softwares middleware, de forma que os SGBDs que o
compõem estejam fracamente acoplados, é conhecido como
A Baseado em Grafos
B Hierárquico
C Federado
D Orientado a objetos
E NOSql
199
200
Prof. Raphael Lacerda
NoSQL
Prof. Raphael Lacerda
Melhor Escalabilidade
201
202
Prof. Raphael Lacerda
Relacional vs NoSQL
NoSQL Tutorial: What is, Types of NoSQL
Databases & Example (guru99.com)
Prof. Raphael Lacerda
BASE vs ACID
NoSQL Tutorial: What is, Types of NoSQL
Databases & Example (guru99.com)
203
204
Prof. Raphael Lacerda
e esses SGBD's?
Prof. Raphael Lacerda
NoSQL
https://medium.com/permalink-univesp/nosql-o-que-s%C3%A3o-onde-habitam-do-que-se-alimentam-2ccd4cc39571
205
206
Prof. Raphael Lacerda
NoSQL
https://micreiros.com/tipos-de-bancos-de-dados-nosql/
Prof. Raphael Lacerda
Exemplos
https://autociencia.blogspot.com/2020/01/scylladb-um-banco-de-dados-nosql-big-data.html
207
208
Prof. Raphael Lacerda
Grafos
Prof. Raphael Lacerda
Documentos
209
210
Prof. Raphael Lacerda
Colunar
Prof. Raphael Lacerda
Chave/Valor
Redis - DB4Beginners - O blog da Dani Monteiro
211
212
Prof. Raphael Lacerda
Teorema
CAP
https://autociencia.blogspot.com/2020/01/scylladb-um-banco-de-dados-nosql-big-data.html
https://blog.caelum.com.br/nosql-do-teorema-cap-para-paccl/
CESGRANRIO/BB/2021
Um administrador de um banco de dados construído por meio do MongoDB inseriu dados em uma coleção
(collection) de dados da seguinte forma:
db.fornecedores.insert( { codigo: “thx1138“,
nome: “Roupas Syfy ltda“, pais: “Arabia Saudita“ } )
Posteriormente, esse administrador construiu uma consulta que retornou apenas o nome, sem repetição, de todos
os países que fazem parte dessa coleção (collection).
O comando utilizado para tal consulta foi
(A) db.fornecedores.find("pais")
(B) db.fornecedores.find().pretty({"pais":1}) (C) db.fornecedores.find().sort({"pais":1}) (D)
db.fornecedores.distinct({"pais":0})
(E) db.fornecedores.distinct( "pais" )
213
214
dicas do mongo
Document Database
Collections (tables)
Views e Materialized Views
High Performance
Rich Query Language
High Availability
Scalability
https://docs.mongodb.com/manual/introduction/
CRUD! https://docs.mongodb.com/manual/r
eference/method/db.collection.inser
tMany/#mongodb-method-
db.collection.insertMany
215
216
CRUD! https://docs.mongodb.com/manual/r
eference/method/db.collection.inser
tMany/#mongodb-method-
db.collection.insertMany
217
218
CESGRANRIO/BB/2018
Uma das características inerentes ao modelo chave-valor de bancos de dados
NoSQL é a(o)
A suporte à compreensão da semântica do valor associado à chave
B favorecimento à evolução de esquemas conceituais
C dependência de linguagem de consulta específica
D estrutura de armazenamento interna complexa
E falta de suporte à concorrência
O termo NoSQL refere-se
A a uma abordagem teórica que segue o princípio de não utilização da linguagem SQL em bancos de dados
heterogêneos.
B à renúncia às propriedades BASE (Basically Available, Soft state, Eventual consistency), potencializando seu
espectro de uso.
C ao aumento da escalabilidade das bases de dados neles armazenados, aliado a um desempenho mais satisfatório
no seu acesso.
D à facilidade de implementação de bases de dados normalizadas, com vistas a minimização de redundâncias no
conjunto de dados.
E à implementação simultânea das três componentes do modelo CAP: consistência, disponibilidade e tolerância ao
particionamento.
CESGRANRIO/BB/2018
219
220
Organizações modernas estão sujeitas a uma grande quantidade de dados, principalmente se tratam com grandes
quantidades de clientes. Muitas das demandas de tecnologia de informação a que essas organizações estão
submetidas passaram a ser organizadas e tratadas dentro do conceito de Big Data.
Além do grande volume de dados, o Big Data, em sua definição original, considera também a(s) seguinte(s)
propriedade(s):
A falta de qualidade, apenas
B variedade, apenas
C velocidade, apenas
D variedade e velocidade
E velocidade e falta de qualidade
CESGRANRIO/BB/2023
Considere uma empresa que possui dados de clientes, todos bem definidos e estruturados (ex: CPF, nome, e-mail, endereço),
armazenados em um banco de dados relacional. Uma oportunidade surge para a empresa enriquecer esse banco de dados com dados
de outra natureza, porém não muito bem definidos e pouco estruturados.
Uma solução pode ser adotar um banco de dados NoSQL, de tal forma que:
A a ausência de um esquema de dados bem definido para os dadosnecessários de um cliente possa ser corretamente modelada e
implementada em um gerenciador de banco de dados adequado.
B a linguagem SQL utilizada para acesso aos dados dos clientes possa ser substituída por outra linguagem de acesso a dados
organizados em tabelas segundo o modelo relacional, porém com maior eficiência.
C esse novo banco de dados relacional possa ser melhorado, com os dados não muito bem definidos, sem um esquema rígido.
D o gerenciador de banco de dados relacional utilizado possa ser atualizado para uma versão mais recente, que não utilize a
linguagem SQL.
E os atributos que hoje representam chaves primárias e estrangeiras sejam mais bem controlados.
CESGRANRIO/BB/2023
221
222
#JAVASCRIPT
Prof. Raphael Lacerda
Para que um pacote (package) cujo nome é pk01 possa ser publicado no registro
npm (registry npm), ele deve conter um arquivo chamado
A package.xml
B pk01.xml
C pk01.js
D package.json
E pk01.json
CESGRANRIO/IPEA/2024
223
224
Analise com atenção o código a seguir, escrito em TypeScript 4.0.
function segredo(a: number[]) { return a.map(x=>x*2);}
console.log(segredo([1,2,3]));
O que será exibido no console quando o código acima for executado?
A "Executed JavaScript Failed:"
B [2, 4, 6]
C [6]
D 6
E 12
CESGRANRIO/BB/2023
JSP
Prof. Raphael Lacerda
Cesgranrio/BB/2018
225
226
CESGRANRIO/BB/2018
A página HTML com Javascript que
apresenta esse comportamento é:
REST, ou Representational State Transfer, é um protocolo de comunicações sem estado.
Que alternativa melhor representa o corpo de uma chamada REST que deseja saber o saldo de um cliente bancário identificado como
cliente 23232?
A { cliente (id: "23232") { saldo } }}
B {"cliente"=23232 "saldo"="?"}
C http://app.banco.com/contascorrentes/saldo/cliente/23232
D <QUERY><SALDO/><CLIENTE ID="23232"/><QUERY>
E <?xml version="1.0"?> <soap:Envelope xmlns:soap=http://www.w3.org/2001/12/soap-envelope
soap:encodingStyle="http://www.w3.org/2001/12/soap-encoding"> <soap:body> <b:getSaldo
xmlns:b="http://app.banco.com/contascorrentes "> <m:cliente>23232</m:cliente></m:getSaldo> </soap:Body></soap:Envelope>
CESGRANRIO/BB/2018
227
228
Um formulário HTML é usado para coletar entradas do usuário e pode conter elementos
<input> de vários tipos. Se o desenvolvedor Web desejar incluir um campo no formulário com
dados que não fiquem visíveis na interface do usuário, ele deve usar o elemento <input> do
tipo
A blocked
B secret
C hidden
D encrypted
E invisible
CESGRANRIO/UNIRIO/2019
AngularJS segue um modelo MVC. Qual a diretiva correta em AngularJS para ligar um
elemento de entrada de dados da visão, como um campo input do tipo texto, a um
elemento do modelo, como uma variável do tipo string?
A ngView
B ngValue
C ngBind
D ngModel
E ngLink
CESGRANRIO/BB/2018
229
230
CESGRANRIO/B.A/2018
É um exemplo de uma expressão Angular (Angular Expression) em AngularJS:
Alternativas
A
<p>Candidato aprovado: {{ candidato.nome }}</p>
B
<p>Candidato aprovado: [[ candidato.nome ]]</p>
C
<p>Candidato aprovado: <%= candidato.nome %></p>
D
<p>Candidato aprovado: <?= candidato.nome ?> </p>
E
<p>Candidato aprovado: <js:angular value="candidato. nome"/></p>
CESGRANRIO/B.A/2018
Considere o código HTML com CSS listado a seguir:
Qual deve ser o estilo utilizado para que o texto seja mostrado na cor azul?
A #texto { color: #0000FF; }
B #texto { font-color: #0000FF; }
C .texto { color: #0000FF; }
D .texto { font-color: #0000FF; }
E .texto { text-color: #0000FF; }
231
232
A hora não irá aparecer no <div> porque
A o append em jQuery não pode ser utilizado para containers vazios; deveria ter sido substituído por html.
B o objeto identificado por idLugar ainda não existe quando o script é executado.
C o símbolo de # está faltando na frente da identificação na definição do <div>
D a variável data está escrita erradamente (está escrita em português).
E os métodos getHours e getMinutes estão escritos no plural, quando deveriam ser, respectivamente, getHour e getMinute.
CESGRANRIO/BANCO amazonia/2018
Um arquivo, contendo um documento XML, contém exatamente a seguinte informação: <?xml
version=”1.0”?> <PEDIDOS> <PEDIDO> <TITULO>Pedido de Empréstimo</TITULO> <REQUERENTE>José da
Silva</REQUERENTE> <CPF>999.999.999-99</CPF> <VALOR>20000</VALOR> <PEDIDO> <PEDIDOS> A
partir desse documento apenas, um processador XML pode garantir que o arquivo é
A bem-formado, apenas
B bem-formado e normalizado
C bem-formado e válido
D normalizado, apenas
E válido, apenas
CESGRANRIO/CAIXA/2021
233
234
Um profissional de Informática está trabalhando em um projeto que envolve a manipulação de
documentos XML. Ele precisa garantir que os documentos XML estejam bem- -formados e válidos, de
acordo com as especificações do XML 1.1.
Uma das regras que ele deverá seguir para garantir que um documento XML 1.1 seja válido é que o(s)
A documento pode ter um ou mais elementos raiz.
B documento deve começar com uma declaração XML.
C nomes dos elementos são insensíveis a maiúsculas e minúsculas.
D atributos devem ter o mesmo nome se estiverem no mesmo elemento.
E comentários XML devem aparecer como atributos de uma etiqueta (tag).
CESGRANRIO/Transpetro/2023
Muitas vezes é necessário adicionar um link, em uma página HTML, de modo a criar um vínculo com outro
documento ou recurso.
Para adicionar um link com essa finalidade, utiliza-se
Alternativas
A
<h1></h1>B <p></p>
C <a></a>
D <head></head>
E <br></br>
CESGRANRIO/Transpetro/2023
235
236
Um desenvolvedor web está trabalhando em uma aplicação que envolve a coleta de dados numéricos dos
usuários, e, para isso, está usando HTML e JavaScript (ECMAScript 2020) para criar um campo de entrada de texto
e um botão. Quando um usuário clicar nesse botão, o valor inserido será processado. Nesse cenário, considere que
esse desenvolvedor quer obter o valor atual do campo de texto HTML com o ID idade.
Para obter esse valor, ele deve utilizar o seguinte fragmento de código JavaScript:
A document.getElementById(“idade”).getText()
B document.getElementById(“idade”).innerHTML
C document.getElementById(“idade”).value
D document.getElementByName(“idade”).value
E document.querySelector(“#idade”).text
CESGRANRIO/Transpetro/2023
Um profissional de Informática está desenvolvendo uma aplicação web e deseja implementar uma
interface de usuário que permita que os usuários, ao clicar em um botão, acionem uma função JavaScript
chamada processar.
Qual das seguintes opções de código HTML5 esse profissional deve usar?
A <button action=”processar()”>Clique Aqui</button>
B <button execute=”processar()”>Clique Aqui</button>
C <button onclick=”processar()”>Clique Aqui</button>
D <button onsubmit=”processar()”>Clique Aqui</button>
E <button trigger=”processar()”>Clique Aqui</button>
CESGRANRIO/Transpetro/2023
237
238
AJAX (do inglês Asynchronous Javascript And XML) tem sido largamente utilizado no desenvolvimento de
aplicações WEB. Um dos conceitos centrais do AJAX é a possibilidade de serem feitas requisições ao servidor
através de código Javascript, rodando no navegador do usuário. Esse recurso é empregado principalmente para
permitir que
A o processamento das regras de negócio da aplicação seja distribuído aos clientes, minimizando a carga do
servidor.
B o usuário envie uma requisição assíncrona e verifique o resultado da mesma mais tarde, sem precisar aguardar
pela resposta imediata do servidor.
C as páginas carreguem mais rapidamente, pois as requisições são paralelizadas e compactadas durante o trânsito.
D as páginas compostas diretamente em XML, ao invés de XHTML ou HTML, sejam apresentadas no navegador do
usuário.
E partes de uma página web sejam atualizadas, sem que o browser recarregue a página inteira do servidor,
proporcionando uma interface com melhor usabilidade.
CESGRANRIO/Transpetro/2023
CESGRANRIO/BB/2021
Considere o código HTML a seguir.
<!doctype html>
<html lang=”pt-br”>
<head>
<script src=”script.js”></script></head>
<body>
<form>
Texto: <input type=’text’ name=’texto’ id=’idTexto’ class=’classe-input’ value=’Texto inicial’><br>
<input type=’submit’ value=’Envia’>
</form>
</body>
</html>
239
240
CESGRANRIO/BB/2021
Considere, também, o arquivo TypeScript script.ts, listado a seguir, que irá gerar o arquivo script.js no mesmo diretório do arquivo HTML, apresentado acima.
onload = (event) => {
const texto = document.querySelector(’???’) as HTMLInputElement; console.log(’Texto inicial: ’, texto.value);
};
Que texto o programador deverá utilizar no lugar de ???, no código do arquivo TypeScript script.ts, para exibir o valor do campo HTML input na console?
(A) #classe-input (B) #idTexto
(C) #texto
(D) .idTexto
(E) .texto
O tratamento de erros e exceções é, atualmente, uma exigência para as linguagens de programação.
Qual fragmento de código, em Javascript, é um exemplo válido desse tratamento?
A try { adddlert("Bem vindo!"); } else(err) { window.alert(err.message); }
B try { adddlert("Bem vindo!"); } except(err) { window.alert(err.message); }
C try { adddlert("Bem vindo!"); } catch(err) { window.alert(err.message); }
D try { adddlert("Bem vindo!"); } catch(err) { window.alert(err.message); } else { window.alert("sem
erros"); }
E try { adddlert("Bem vindo!"); } catch(err) { window.alert(err.message); } otherwise { window.alert("sem
erros"); }
CESGRANRIO/BANCO amazonia/2022
241
242
Um programador teve por tarefa escrever uma função Javascript que receba uma string como parâmetro e retorne outra string. A
string retornada deve conter os mesmos caracteres que a string recebida, sem espaços em branco.
Exemplo:
String recebida: ‘ B r a s il ‘ (total de 14 caracteres e 8 espaços em branco)
String retornada: ‘Brasil’ (total de 6 caracteres e nenhum espaço em branco)
Considere que, na função a ser escrita, duas aspas simples seguidas (‘‘) representam uma string vazia, e duas aspas simples com um
espaço entre elas (‘ ‘) representam um caracter de espaço em branco.
Qual função realiza o que foi pedido a esse programador?
A function tiraBranco(str) { var i=0,len=str.length,aux=’’;
while(i<len) { if(str[i]===’ ‘) aux=aux+str.slice(i+1,str.length); i++; } return aux; }
CESGRANRIO/BANCO amazonia/2022
CESGRANRIO/BANCO amazonia/2022
B function tiraBranco(str) { if(str.length===0) return ‘’; if(str[0]===’ ‘)
return tiraBranco(str.slice(1,str.length)); else return
str[0]+tiraBranco(str.slice(1,str.length)); }
C function tiraBranco(str) { var i=0,len=str.length,aux=’’; while(i<len) {
if(str[i]===’ ‘) aux=aux+str[i]; i++; } return aux; }
D function tiraBranco(str) { var aux=’’;
for(let c in str) { if(c!==’ ‘) aux+=c; } return aux; }
E function tiraBranco(str) { if(str.length===0) return ‘’; var c=str[0],ret;
ret=tiraBranco(str.slice(str.length)); if(str[0]===’ ‘) return ret; else return
c+ret; }
String.prototype.slice() - JavaScript | MDN
(mozilla.org)
javascript - What is the difference between
String.slice and String.substring? - Stack
Overflow
243
244
CESGRANRIO/ELETROBRAS/2022
Um usuário realizou a autenticação na aplicação Web de um banco. Durante a utilização dessa aplicação, o usuário sofreu um ataque
de engenharia social que o fez clicar em um link presente numa mensagem de e-mail com conteúdo HTML e cuja URL corresponde a
uma requisição válida na aplicação Web do banco. Essa URL foi processada pelo navegador do usuário, e a requisição foi enviada e
executada com sucesso em nome do usuário da aplicação Web.
Esse ataque bem-sucedido demonstra que a aplicação Web do banco está vulnerável ao ataque de
A SQL Injection
B XPATH Injection
C Buffer Overflow
D CSRF
E XSS
CESGRANRIO/BB/2021
Considere o fragmento de código TypeScript a seguir.
const a = <T extends {b: string}>(obj: T) => { <código removido>
};
Com relação ao código apresentado acima, a(o)
(A) função a() retorna um objeto do tipo string.
(B) variável a é uma lista de objetos do tipo string.
(C) variável a é um dicionário cujas chaves são objetos do tipo string.
(D) objeto que for passado para a função a() deve ter um campo b do tipo string.
(E) valor retornado pela função a() é um objeto que estende um objeto do tipo string.
javascript - How to restrict object fields in
Typescript using Type parameter - Stack
Overflow
Using Typescript Generic Constraints to
Restrict Function Arguments Based on Other
Arguments - DEV Community
245
246
Prof. Raphael Lacerda
Ecossistema
Prof. Raphael Lacerda
Características
⇒ Compilada (error checking)
⇒ Fortemente e Estaticamente tipada
⇒ Orientação a Objetos
247
248
Prof. Raphael Lacerda
Sintaxe básica
Prof. Raphael Lacerda
Variáveis
249
250
Prof. Raphael Lacerda
Palavras Reservadas
Prof. Raphael Lacerda
strings
251
252
CESGRANRIO/BB/2021
Em TypeScript 4, é possível usar o seguinte fragmento de código:
// definir x
const y = (...args: number[]) => args.reduce(x, 0);
Que fragmento de código apresenta uma versão compilável e executável da definição de x que poderia aparecer no lugar do
comentário “// definir x” ?
(A) const x = 1;
(B) const x = [1,2,3];
(C) const x = (a:number) => [a*2];
(D) const x = (a:number[]) => a[0];
(E) const x = (a:number,b:number) => a+b;
Array.prototype.reduce() - JavaScript | MDN
(mozilla.org)
CESGRANRIO/BB/2018
Um desenvolvedor Web precisa transformar em JSON a seguinte variável, em um programa JavaScript:
var d1 = { "nome":"Ana Anacleto", "idade":31 };
Qual fragmento de código faz isso corretamente?
A var d2 = d1.stringfy(d1)
B var d2 = d1.parse()
C var d2 = JSON.stringify(d1);
D var d2 = JSON.parse(dados);
E var d2 = d1.toJSON();
253
254
A hora não irá aparecer no <div> porque
A o append em jQuery não pode ser utilizado para containers vazios; deveria ter sido substituído por html.
B o objeto identificado por idLugar ainda não existe quando o script é executado.
C o símbolo de # está faltando na frente da identificação na definição do <div>
D a variável data está escrita erradamente (está escrita em português).
E os métodos getHours e getMinutes estão escritos no plural, quando deveriam ser, respectivamente, getHour e getMinute.
CESGRANRIO/BANCO amazonia/2018
Considere o seguinte trecho de código em Javascript.
var studentGrade;
var firstNumber = 50;
var secondNumber = 90;
studentGrade = firstNumber*0.7 + secondNumber*0.3;
if (studentGrade>=90) document.writeln (“A”);
else if (studentGrade>=80) document.writeln (“B”);
else if (studentGrade>=70) document.writeln (“C”);
else if (studentGrade>=60) document.writeln(“D”);
else document.writeln (“E”);
Após análise desse trecho, constata-se que será impresso o
CESGRANRIO/IBGE/2013
255
256
Considere o seguinte trecho de código em Javascript.
var sum = 0;
for (var number = 2; number < 100; number +=2)
sum+=number;
Após análise do trecho, verifica-se que será armazenado na variável sum a soma de todos os números.
A pares entre 2 e 98
B pares entre 2 e 100
C ímpares entre 2 e 98
D ímpares entre 2 e 100
E entre 2 e 100
CESGRANRIO/IBGE/2013
Usando o conjunto de tecnologias conhecido como AJAX, é possível fazer requisições assíncronas a um servidor. Para isso, é
necessário criar um objeto da classe XMLHttpRequest, a menos que se esteja trabalhando no ambiente do Microsoft Internet Explorer
de versões anteriores a 7. O código para isso é:
xmlhttp=new XMLHttpRequest() ;
Que fragmento de código corresponde aos dois passos necessários para enviar uma requisição a um servidor?
A xmlhttp.connect("ajax_info.txt",true); xmlhttp.get( );
B xmlhttp.connect("GET","ajax_info.txt",true); xmlhttp.send( );
C xmlhttp.initialize("GET","ajax_info.txt",true); xmlhttp.send( );
D xmlhttp.open("ajax_info.txt",true); xmlhttp.get( );
E xmlhttp.open("GET","ajax_info.txt",true); xmlhttp.send( );
CESGRANRIO/IBGE/2013257
258
Observe as seguintes Figuras extraídas de uma página HTML com Javascript. A Figura 1
apresenta um campo do tipo select sendo selecionado pelo usuário (no caso, a opção 2). A
Figura 2 mostra o que acontece imediatamente depois que o usuário seleciona a opção. O
Google Chrome foi utilizado para capturar a imagem, mas o efeito seria o mesmo nos
navegadores mais utilizados.
A página HTML com Javascript que apresenta esse comportamento é:
CESGRANRIO/BB/2018
HTML DOM Event Object (w3schools.com)
HTML DOM Select Object (w3schools.com)
CESGRANRIO/BB/2018
259
260
CESGRANRIO/BB/2018
Em um texto em um website educacional, um professor deseja que um título (H1) seja automaticamente
trocado por outro texto quando clicado.
Um desenvolvedor decidiu implementar uma função em JavaScript trocar(id) que troca o texto de um
elemento DOM passado como o parâmetro id. Essa função está apresentada a seguir.
function trocar(id)
{
id.innerHTML="Título Mudado"
}
Que fragmento de HTML corresponde à execução do comportamento desejado pelo professor?
CESGRANRIO/CEFET-RJ/2014
HTML DOM Event Object (w3schools.com)
HTML DOM Select Object (w3schools.com)
261
262
CESGRANRIO/CEFET-RJ/2014
HTML DOM Event Object (w3schools.com)
HTML DOM Select Object (w3schools.com)
@estrategiaconcursosti
#DEVOPS
263
264
Cesgranrio/IPEA/2024
Suponha que a equipe de desenvolvimento de sistemas para web do Ipea confeccionou um cluster Kubernetes e o pôs em execução,
visando hospedar workloads executáveis em um único espaço de armazenamento, para que as páginas webs dinâmicas do Ipea
respondam mais rapidamente aos acessos. Nesse caso, a equipe precisa implantar um aplicativo conteinerizado nesse cluster.
Qual objeto deve ser construído com a responsabilidade de criar e atualizar instâncias desse aplicativo conteinerizado?
A Stateless
B Stateful
C Metadata
D Deployment
E Debugpoints
Cesgranrio/Transpetro/2023
O Kubernetes é uma plataforma de orquestração de contêineres que visa facilitar o desenvolvimento e a
implantação de aplicações. Uma implantação do Kubernetes em funcionamento é chamada de cluster. O plano de
controle do cluster Kubernetes é formado pelos componentes que controlam o cluster e os dados sobre o estado e
a configuração do cluster. Esse plano de controle fornece uma API pela qual o usuário interage com o cluster.
Essa interação pode ser realizada a partir da linha de comando com a seguinte ferramenta nativa do Kubernetes:
A kubeapi
B kube-api-cmd
C kube-cmd
D kubeget
E kubectl
265
266
CESGRANRIO/BB/2021
Em um ambiente Cluster, há um servidor Linux que tem o Ansible instalado.
Para construir um arquivo YAML, que informe os passos que o Ansible realizará
automaticamente na conexão com os servidores que fazem parte do Cluster, além de exe-
cutar um conjunto de tarefas solicitadas, o administrador desse servidor deve seguir o padrão
(A) Apache-Start
(B) Nodel
(C) Playbook
(D) Taskbook
(E) Tower
CESGRANRIO/BB/2023
Ansible é uma ferramenta configurável por playbooks, escritos em YAML.
Um playbook é composto de
A plays, que são sequências de modules que, por sua vez, chamam tasks.
B plays, que são sequências de tasks que, por sua vez, chamam modules.
C tasks, que são sequências de modules que, por sua vez, chamam plays.
D tasks, que são sequências de plays que, por sua vez, chamam modules.
E modules, que são sequências de tasks que, por sua vez, chamam play.
267
268
Devops
Prof. Raphael Lacerda
Infra as Code
https://stackshare.io/stackups/ansible-vs-terraform
https://logz.io/blog/terraform-vs-ansible-vs-puppet/
Devops
Prof. Raphael Lacerda
https://medium.com/edureka/ansible-cheat-sheet-guide-5fe615ad65c0
269
270
Devops
Prof. Raphael Lacerda
code na infra
Devops
Prof. Raphael Lacerda
code na infra
271
272
Prof. Raphael Lacerda
Palpites
Prof. Raphael Lacerda
Palpites
https://www.digitalocean.com/com
munity/cheatsheets/how-to-use-
ansible-cheat-sheet-guide
273
274
Prof. Raphael Lacerda
Palpites
Cesgrario/Caixa/2021
Entre as principais ferramentas de gestão de configuração de software, estão os
sistemas de controle de versão, como o svn ou cvs. Nesses sistemas, o comando de
registrar as mudanças locais em um repositório é denominado
A branch
B commit
C save
D store
E update
275
276
José é um desenvolvedor e acabou de fazer uma alteração no código. O gerente de projeto definiu que
serão realizados os seguintes testes: unitários/integração; de sistema; de aceitação. A empresa possui uma
área de testes independente da equipe de desenvolvimento
O Desenvolvedor, a equipe de teste e o usuário devem executar, respectivamente, os seguintes testes:
A de sistema; unitário/de integração; de aceitação
B de aceitação; de sistema; unitário/de integração
C unitário/de integração; de sistema; de aceitação
D unitário/de integração; de aceitação; de sistema
E de sistema; de aceitação; unitário/de integraçã
Cesgrario/UNIRIO/2019
CESGRANRIO/BANCO amazonia/2022
Uma prática essencial do Test Driven Development (TDD) é o teste de unidade, em que o desenvolvedor cria um
ou mais testes para cada unidade do sistema, como uma classe ou uma função ou um método, normalmente
usando um pacote feito na mesma linguagem de programação na qual o programa é feito, como JUnit para Java.
Esses testes de unidade são, então, necessariamente executados sempre que alguma modificação no código é
feita, caracterizando uma outra prática de testes, que ajuda a detectar quando partes do código que estavam
funcionando passam a apresentar erros após o código ter sido modificado.
Essa outra prática de testes citada é conhecida como testes de
A exaustão
B integração
C modificação
D mutantes
E regressão
277
278
Cesgrario/Caixa/2021
O teste de unidade tem como finalidade testar os componentes mais simples do
software
A de forma isolada.
B quanto à sua coesão.
C quanto ao seu acoplamento.
D quando unificados na versão a ser lançada.
E quanto à sua capacidade de responder a entradas únicas.
Cesgrario/Caixa/2021
O Desenvolvimento Dirigido por Testes se caracteriza por
A manter sem modificação um arquivo de código fonte que já tenha sido
aprovado em um teste.
B escrever o código fonte e, baseado na análise do código, escrever os testes.
C escrever as histórias do usuário na forma de testes.
D projetar os casos de teste antes de criar o código fonte.
E repetir todos os testes a cada modificação do código fonte.
279
280
Cesgranrio/IPEA/2024
Em projetos de desenvolvimento de softwares, é importante que eles sejam testados em diferentes situações
comuns de ocorrerem, de modo a contribuir para que eles atinjam a qualidade esperada. Por isso, nesses projetos,
quatro níveis de teste são importantes de serem considerados, a fim de ajudar a lidar com tais situações.
Esses quatro níveis de teste são os seguintes:
A acessibilidade, usabilidade, unidade e sistema
B desempenho, funcionais, componente e aceitação
C funcionais, não funcionais, componente e desempenho
D funcionais, não funcionais, usabilidade e acessibilidade
E unidade, integração, sistema e aceitação
Cesgranrio/IPEA/2024
Um desenvolvedor de sistemas, ao analisar algumas ferramentas de testes, deparou-se com o xUnit, o qual,
dentre outras características, destaca-se por
A suportar a criação de testes unitários e de testes de interface para as linguagens .NET e Swift.
B ser código fechado e ser voltado a criar testes unitários para as linguagens orientadas a objetos.
C ser código aberto e permitir a criação de testes unitários para linguagens .NET.
D ser uma biblioteca gratuita que permite a criação de testes unitários para aplicações desenvolvidas em
Java e Swift.
E ser uma biblioteca gratuita e de código fechado que permite a criação de testes unitários e funcionais
para diversas linguagens, como, por exemplo, C# e F#.
281
282
Cesgranrio/IPEA/2024
Uma nova funcionalidade acabou de ser desenvolvida para um software que tem sido usado háanos por uma empresa. A líder da
equipe de desenvolvimento informou à equipe a relevância de executar um conjunto de testes a toda nova versão desse software, a
fim de garantir que mudanças realizadas nas novas versões não impactem o restante do sistema.
Com base no cenário descrito, qual(is) teste(s) valida(m) se o que foi criado em versões anteriores desse mesmo software continua
funcionando a partir de mudanças em suas outras funcionalidades?
A Carga
B Stress
C Regressão
D Portabilidade
E Não funcionais
Cesgranrio/IPEA/2024
Uma gerente de testes de software propôs a seu time de desenvolvimento que começasse a
aplicar a abordagem Test Driven Development (TDD).
É uma das características principais dessa abordagem iniciar o desenvolvimento de testes
A antes de implementar alguma funcionalidade em si.
B durante o período de homologação.
C após as funcionalidades serem construídas.
D quando a primeira leva de funcionalidades planejadas forem codificadas em algum sprint.
E pelos testes de interface automatizado, seguidos pelos testes unitários.
283
284
Cesgranrio/IPEA/2024
Uma desenvolvedora foi contratada para a equipe de desenvolvimento de uma empresa e teve, como primeira
tarefa, estudar sobre stub.
Ao pesquisar sobre o assunto, ela encontrou uma boa definição para esse termo, que explicava que stub é(são)
A a implementação real, mas não necessariamente igual à implementação que estará no ambiente de produção.
B a implementação que permite fornecer respostas prontas, sendo usada nas situações em que se deseja validar
apenas o resultado.
C a técnica que permite criar métodos com o mesmo nome em uma mesma classe, e o que varia entre os métodos
escritos são os tipos de informações que poderão receber em seus parâmetros.
D os objetos fornecidos, mas não utilizados, sendo geralmente usados no preenchimento da lista de parâmetros.
E os objetos pré-programados que verificam se um ou mais métodos foram ou não chamados, a ordem de
chamadas, se foram chamados com os argumentos certos e quantas vezes foram chamados.
Cesgranrio/IPEA/2024
Considere que um novo software foi desenvolvido e está prestes a entrar no ambiente de produção de uma
empresa, mas, antes disso, serão realizados testes finais. Para isso, um conjunto de representantes dos usuários
finais deve participar desse estágio de testes. Caso se perceba que o software está tendo o comportamento
esperado, ele será implantado em produção.
Qual estágio de teste está descrito no cenário acima?
A Aceitação
B Componente
C Configuração
D Desempenho
E Usabilidade
285
286
Cesgrario/Caixa/2021
No âmbito de DevOps, o termo “shift left testing” significa que os testes devem
A ser feitos junto com a entrada em operação do produto.
B ser feitos apenas no ambiente de desenvolvimento.
C ser feitos apenas por meio de ferramentas de automação de testes.
D ser feitos desde as fases iniciais do ciclo de vida do produto.
E dirigir o desenvolvimento do produto.
Modelo Tradicional
https://medium.com/revista-
tspi/descubra-o-que-%C3%A9-
shift-left-testing-b67116b79a0c
287
288
Shift Left Testing
https://medium.com/@qavengers/s
hift-left-testing-62e03d809cc3
Shift Left Testing
https://medium.com/@qavengers/s
hift-left-testing-62e03d809cc3
289
290
CESGRANRIO/Transpetro/2023
Ao planejar um projeto de sistema seguindo um ciclo de vida linear, um gerente de projeto
resolveu instituir uma estratégia global de teste de software.
Considerando-se uma ordem do mais específico para o mais geral, ou seja, terminando-se com
o teste de ordem superior, qual a ordem dos testes a serem realizados?
A Teste de integração, teste de validação, teste de sistema, teste de unidade
B Teste de sistema, teste de validação, teste de unidade, teste de integração
C Teste de validação, teste de integração, teste de unidade, teste de sistema
D Teste de validação, teste de sistema, teste de unidade, teste de integração
E Teste de unidade, teste de integração, teste de validação, teste de sistema
CESGRANRIO/CEF/2021
O Desenvolvimento Dirigido por Testes se caracteriza por
a) manter sem modificação um arquivo de código fonte que já tenha sido
aprovado em um teste.
b) escrever o código fonte e, baseado na análise do código, escrever os testes.
c) escrever as histórias do usuário na forma de testes.
d) projetar os casos de teste antes de criar o código fonte.
e) repetir todos os testes a cada modificação do código fonte.
291
292
CESGRANRIO/CEF/2021
No âmbito de DevOps, o termo “shift left testing” significa que os testes devem
a) ser feitos junto com a entrada em operação do produto.
b) ser feitos apenas no ambiente de desenvolvimento.
c) ser feitos apenas por meio de ferramentas de automação de testes.
d) ser feitos desde as fases iniciais do ciclo de vida do produto.
e) dirigir o desenvolvimento do produto.
CESGRANRIO/CEF/2021
O teste de unidade tem como finalidade testar os componentes mais simples do
software
a) de forma isolada.
b) quanto à sua coesão.
c) quanto ao seu acoplamento.
d) quando unificados na versão a ser lançada.
e) quanto à sua capacidade de responder a entradas únicas.
293
294
CESGRANRIO/UNIRIO/2019
José é um desenvolvedor e acabou de fazer uma alteração no código. O gerente de projeto definiu que
serão realizados os seguintes testes: unitários/integração; de sistema; de aceitação. A empresa possui uma
área de testes independente da equipe de desenvolvimento.
O Desenvolvedor, a equipe de teste e o usuário devem executar, respectivamente, os seguintes testes:
a) de sistema; unitário/de integração; de aceitação
b) de aceitação; de sistema; unitário/de integração
c) unitário/de integração; de sistema; de aceitação
d) unitário/de integração; de aceitação; de sistema
e) de sistema; de aceitação; unitário/de integração
CESGRANRIO/UNIRIO/2019
Os testes de integração determinam se as unidades de software desenvolvidas
independentemente funcionam corretamente quando estão conectadas umas às outras.
Dentre os tipos de teste que são comumente usados nos testes de integração, estão os testes
de
a) matriz ortogonal e de análise de valor limite
b) interfaces com o usuário e de cenários de uso
c) usabilidade e de cenários de uso
d) desempenho e os beta testes
e) desempenho e usabilidade
295
296
CESGRANRIO/Transpetro/2018
Entre as técnicas de teste de software, aquela que gera versões levemente modificadas de um
programa sob teste e exercita tanto o programa original quanto os programas modificados,
procurando diferenças entre essas formas, é conhecida como testes
a) aleatórios
b) exploratórios
c) de mutação
d) de perfil operacional
e) baseados em fluxo de controle
https://www.alura.com.br/artigos/testes-de-
mutantes
CESGRANRIO/Liquigás/2018
Um grupo de desenvolvedores elaborou vários casos de teste que selecionam caminhos de
teste de acordo com as definições e com o uso de variáveis existentes em um programa.
Esse tipo de teste caixa-branca é denominado
A teste de condição
B teste de fluxo de dados
C teste de caminho básico
D análise de valor-limite
E particionamento de equivalência
297
298
@canetas.pretas
#PADRÕES
Prof. Raphael Lacerda
Não Esquecer
https://brizeno.wordpress.com/cate
gory/padroes-de-projeto/
299
300
Prof. Raphael Lacerda
Não Esquecer
CESGRANRIO/IPEA/2024
Um fabricante de aeronaves produz modelos turboélices e turbofans. Para auxiliar os pilotos das aeronaves que fabrica, a empresa
desenvolveu um software para checklist de decolagem. A classe principal desse software é exibida a seguir.
O checklist é composto de quatro etapas. As três primeiras, step01, step02 e step03, são comuns aos modelos turboélices e
turbofans, mas a quarta etapa depende do tipo de propulsor.
Para criar um design flexível que dê suporte a outros modelos sem alterações no código existente, a equipe de desenvolvimento
definiu um método abstrato para o quarto passo. Ele deverá ser implementado pelas subclasses deChecklist que implementem o
quarto passo de acordo com o propulsor usado. Por exemplo, a classe Turboelice seria implementada da seguinte maneira:
public class Turboelice extends Checklist { void step04( ) { // código irrelevante para a questão } }
Desse modo, o checklist para turboélices seria executado de acordo com o trecho de código a seguir:
Checklist c = new Turboelice(); c.check( );
Qual padrão de projeto foi empregado nesse design?
A Singleton B Adapter C Strategy D Factory Method E Template Method
301
302
CESGRANRIO/IPEA/2024
CESGRANRIO/UNEMAT/2024
J participa de uma equipe de desenvolvimento e recebeu uma demanda de
codificar uma estrutura de árvore no sistema em que está trabalhando.
O padrão de projeto estrutural que poderá ajudar nessa tarefa de
implementação é o
A Visitor
B Façade
C Singleton
D Composite
E Factory Method
303
304
CESGRANRIO/UNEMAT/2024
A equipe de sistemas de uma empresa recebeu uma demanda para incluir, em um
sistema, um tratamento que permita observar se um determinado conjunto de
dados está sendo atualizado. Caso haja alguma atualização, um conjunto de
assinantes que desejem ser informados sobre alguma mudança nesses dados deverá
ser notificado.
Para atender à demanda descrita, qual padrão de projeto pode ser usado?
A Memento
B Observer
C Strategy
D Abstract Factory
E Template Method
CESGRANRIO/BASE/2022
Um sistema cliente-servidor precisa tratar de documentos que possuem imagens muito grandes. Essas
imagens não são, necessariamente, apresentadas ao usuário sempre que ele carrega um documento, logo,
carregar todas as imagens previamente, toda vez que o cliente abre um documento, pode gastar um tempo
desnecessário. A melhor estratégia é carregar a imagem apenas quando a visualização é necessária. Ciente
desse problema, o desenvolvedor responsável pelo sistema decidiu usar um padrão de projeto que
fornece, no cliente, um objeto substituto que controla o acesso ao objeto original.
Qual foi o padrão de projeto utilizado?
a) Decorator
b) Facade
c) Memento
d) Observer
e) Proxy
305
306
CESGRANRIO/Transpetro/2023
CESGRANRIO/Transpetro/2023
Ela contém métodos que implementam o processo de venda de ingressos para espetáculos culturais. Entre eles está o método de encerramento de uma venda, que é composto de
três etapas. São elas:
• o cálculo do valor do ingresso; • a confirmação do pagamento; • a impressão do ingresso.
As duas últimas etapas independem da natureza de quem está comprando um ingresso, por isso foram implementadas diretamente na classe VendaIngresso. A 1ª etapa,
entretanto, não pôde ser implementada nessa classe, pois o valor de um ingresso pode variar de acordo com o tipo de comprador (estudante, idoso, pessoa com deficiência,
dentre outros). Por isso, o método calculaValorIngresso é abstrato.
Uma 2ª classe, que implementa a venda de ingressos para estudantes, é mostrada a seguir.
public class VendaIngressoEstudante extends VendaIngresso { protected double calculaValorIngresso() { // implementação irrelevante para resolver a questão } }
Ela é uma subclasse de VendaIngresso que implementa o cálculo do valor de um ingresso de estudante. Dessa forma, um programa Java que implemente a venda de ingressos para
estudantes, baseada nas classes acima, irá conter os seguintes comandos:
VendaIngresso v = new VendaIngressoEstudante(); v.encerraVenda("Máquina Mortífera 20", "L8");
Qual padrão de projeto foi empregado na solução descrita acima?
A Prototype B Adapter C Composite D Mediator E Template Method
307
308
O software que controla a venda de títulos privados de um banco de investimentos tem de ser flexível o suficiente para acomodar as variações nos procedimentos de venda de
CDBs, letras de câmbio e debêntures. Entretanto, a sequência na qual esses procedimentos são executados é a mesma para todos os tipos de títulos. Sendo assim, os projetistas
desse software adotaram o design descrito a seguir.
Em primeiro lugar, criaram uma classe abstrata contendo um método concreto, chamado compra(), que implementa a sequência de execução dos procedimentos, que é comum a
todos os tipos de títulos, mas deixaram em aberto, por meio de métodos abstratos, a implementação de cada procedimento. Essa classe, chamada TituloPrivado, é mostrada a
seguir
public abstract class TituloPrivado {
public final boolean compra(int qtd) {
if(exibePropospectoInicial())
if(realizaCadastro(qtd))
return encerra();
return false;
}
CESGRANRIO/UNIRIO/2019
public abstract boolean exibePropospectoInicial();
public abstract boolean realizaCadastro(int qtd);
public abstract boolean encerra();
}
O passo seguinte foi criar subclasses específicas para cada um dos três tipos de títulos. Cada subclasse implementa os seus próprios procedimentos, por meio da
concretização dos métodos abstratos da classe TituloPrivado. Isso é exemplificado pela classe Debenture, mostrada a seguir.
public class Debenture extends TituloPrivado {
public boolean exibePropospectoInicial() { // código irrelevante para a questão }
public boolean realizaCadastro(int qtd) { // código irrelevante para a questão }
public boolean encerra() { // código irrelevante para a questão
}
CESGRANRIO/UNIRIO/2019
309
310
CESGRANRIO/UNIRIO/2019
A realização de uma compra será feita por meio da instanciação de uma das subclasses
concretas da classe TituloPrivado e da posterior execução do método compra(), que irá acionar
os métodos que implementam os procedimentos específicos do tipo de título instanciado.
Qual padrão de projeto foi empregado nesse design?
a) Prototype
b) Template Method
c) Interpreter
d) Composite
e) Proxy
CESGRANRIO/LIQUIGAS/2018
Qual padrão de projeto tem a intenção de promover o descasamento entre a
abstração e sua implementação, de forma que a abstração possa variar
independentemente de sua implementação?
a) Adaptador
b) Bridge
c) Decorator
d) Façade
e) Observer
311
312
OBRIGADO!
FOCO NA
APROVAÇÃO
Prof. Raphael Lacerda
@canetas.pretas
@canetaspretas
@canetaspretas
@canetaspretas
Língua Espanhola
Prof. Adinoél Sebastião
ENGENHARIA DE SOFTWARE
Prof. Fernando Pedrosa
313
314
CNU – Engenharia de
Software
O Movimento Ágil
❏ Motivação: insatisfação com os excessos dos métodos tradicionais,
considerados “pesados”
❏ Métodos ágeis buscam flexibilizar o desenvolvimento de software
❏ Focam no código, e não no projeto
❏ São baseados em abordagens iterativas
❏ Têm o objetivo de entregar software funcionando o mais rápido possível
315
316
Manifesto Ágil
“Estamos evidenciando maneiras melhores de desenvolver software fazendo-o nós mesmos e ajudando
outros a fazê-lo. Através desse trabalho, passamos a entender que:
Indivíduos e interações são mais importantes que processos e ferramentas.
Software funcionando é mais importante do que documentação completa e detalhada.
Colaboração com o cliente é mais importante do que negociação de contratos.
Adaptação a mudanças é mais importante do que seguir o plano inicial.
Ou seja, mesmo tendo valor os itens à direita, valorizamos mais os itens à esquerda. “
❏ Práticas:
• Metáfora, Projeto simples, Pequenas versões, Refatoração, Programação
em pares, Propriedade coletiva do código, Padrão de codificação,
Ritmo sustentável, Reuniões em pé, Cliente sempre presente,
Desenvolvimento Orientado a Testes, Integração Contínua, Planejamento
Incremental
❏ Valores:
• Comunicação, Simplicidade, Feedback, Coragem, Respeito
XP (resumo)
317
318
❏ Papeis:
• Product Owner, Developers e Scrum Master
❏ Cerimônias:
• Sprint, Sprint Planning, Daily Scrum, Sprint Review, Sprint Retrospective
❏ Artefatos (mais importantes):
• Backlog do Produto, Backlog da Sprint, Incremento do Produto,
Burndown Chart
Scrum (resumo)
Kanban
❏ “Cartão” ou “Placa Visual” em japonês
❏ Método para Gestão de Mudanças com foco na visualização do
trabalho em progresso (WIP – Work in Progress)
❏ Não prescreve papeis,práticas ou cerimônias específicas
❏ Normalmente utilizado em conjunto com outros processos (Scrum,
XP, etc.)
319
320
Kanban – Fluxo de Trabalho
Engenharia de Requisitos
321
322
❏ Quanto ao nível de abstração:
• Requisitos de Usuário, Requisitos de Sistema
❏ Quanto à qualidade:
• Normal, Esperado (Implícito), Fascinante
❏ Quanto à evolução:
• Permanentes (estáveis), Voláteis (mutáveis, emergentes, consequentes,
compatibilidade)
❏ Quanto à funcionalidade:
• Funcional, Não Funcional
Tipos de Requisitos
Engenharia de Requisitos - Processo
323
324
Técnicas de Elicitação
Testes de Software
325
326
Testes - Abordagens
Testes - Estágios
327
328
Testes - Tipos
OBRIGADO!
Prof. Fernando Pedrosa
329
330
Língua Espanhola
Prof. Adinoél Sebastião
BANCO DE DADOS
Prof. Thiago Cavalcanti
O professor irá disponibilizar o material durante a revisão.
331
332
OBRIGADO!
Prof. Thiago Cavalcanti
Língua Espanhola
Prof. Adinoél Sebastião
ARQUITETURA DE SOFTWARE
Prof. Fernando Pedrosa
333
334
Arquitetura de Software
Arquitetura do Sistema
❏ Arquitetura de software é a organização ou a estrutura dos
componentes significativos do sistema que interagem por meio de
interfaces
❏ É composta de:
❏ Componentes de software
❏ Suas propriedades visíveis externamente
❏ O relacionamento entre os componentes
❏ Forma a espinha dorsal para se construir softwares efetivos
335
336
O que constitui uma boa arquitetura?
❏ Baixo Acoplamento
❏ É o grau de dependência de um determinado módulo do
programa em relação a outros módulos
❏ Alta Coesão
❏ É a medida do quão fortemente relacionadas são as
responsabilidades de um módulo
Arquitetura em Camadas
❏ Uma forma de organizar a arquitetura é através de camadas
de software. Cada camada provê um conjunto de
funcionalidades em determinado nível de abstração
❏ Arquitetura:
❏ Monolítica
❏ Two-Tier (Interface + Aplicação -> SGBD)
❏ Three-Tier (Apresentação + Regras de Negócio + Acesso a Dados)
❏ Arquitetura Web (N-Tier -> browser como cliente universal)
337
338
Modelo MVC
Controlador
Visão
Modelo
Interações entre as camadas
339
340
OBRIGADO!
Prof. Fernando Pedrosa
EIXO TEMÁTICO 5 – APOIO À
DECISÃO, INTELIGÊNCIA ARTIFICIAL E
MÉTODOS QUANTITATIVOS
341
342
Língua Espanhola
Prof. Adinoél Sebastião
BIG DATA, DW, MINERAÇÃO
DE DADOS E APRENDIZADO
DE MÁQUINA
Profª. Emannuelle Gouveia
TECNOLOGIA DA INFORMAÇÃO
Profa. Emannuelle Gouveia
@Emannuellegouveia
343
344
Informática
Profa: Emannuelle Gouveia
@Emannuelle Gouveia
MODELAGEM DIMENSIONAL
Informática
Profa: Emannuelle Gouveia
@Emannuelle Gouveia
MODELAGEM DIMENSIONAL
345
346
Informática
Profa: Emannuelle Gouveia
@Emannuelle Gouveia
MODELAGEM DIMENSIONAL
Esquema Estrela (Star Schema)
Informática
Profa: Emannuelle Gouveia
@Emannuelle Gouveia
MODELAGEM DIMENSIONAL
347
348
Esquema Flocos de Neve (Snowflake Schema)
Informática
Profa: Emannuelle Gouveia
@Emannuelle Gouveia
MODELAGEM DIMENSIONAL
Informática
Profa: Emannuelle Gouveia
@Emannuelle Gouveia
MODELAGEM DIMENSIONAL
349
350
Operações OLAP
Antes de tudo, vamos lembrar que granularidade e o detalhamento são
conceitos inversamente proporcionais.
Informática
Profa: Emannuelle Gouveia
@Emannuelle Gouveia
MODELAGEM DIMENSIONAL
Operação Drill Down
A operação de Drill Down permite a navegação entre os níveis de dados
que vão desde o mais sumarizado até o mais detalhado.
Vai aumentar o nível de detalhes, descendo na hierarquia das
dimensões e reduzindo a granularidade.
Informática
Profa: Emannuelle Gouveia
@Emannuelle Gouveia
MODELAGEM DIMENSIONAL
351
352
No cubo abaixo, a operação de Drill Down é executada ao descer na
hierarquia da dimensão Tempo (Quadrimestre → Mês).
Informática
Profa: Emannuelle Gouveia
@Emannuelle Gouveia
MODELAGEM DIMENSIONAL
Operação Roll Up
A operação de Roll Up permite a navegação entre os níveis de dados
que vão desde o mais detalhado até o mais sumarizado.
Vai reduzir o nível de detalhes, subindo na hierarquia das dimensões e
aumentando a granularidade.
Informática
Profa: Emannuelle Gouveia
@Emannuelle Gouveia
MODELAGEM DIMENSIONAL
353
354
No cubo abaixo, a operação de Roll Up – também chamada Drill Up – é
executada ao subir na hierarquia da dimensão Tempo (Mês →
Quadrimestre).
Informática
Profa: Emannuelle Gouveia
@Emannuelle Gouveia
MODELAGEM DIMENSIONAL
Operação Drill-Across
A Operação Drill-Across permite ao usuário pular um nível intermediário
dentro de uma mesma dimensão.
Exemplo: sendo a dimensão localização composta por bairro, cidade,
estado e país, e o usuário pular de bairro para país. Por outro lado, Kimball
utiliza outra definição totalmente diferente que afirma que esta operação
serve realizar consultas que envolvem mais de uma tabela fato.
Informática
Profa: Emannuelle Gouveia
@Emannuelle Gouveia
MODELAGEM DIMENSIONAL
355
356
Operação Drill-Through
A Operação Drill-Through permite atravessar de uma informação
contida em uma dimensão para uma informação contida em outra
dimensão.
Exemplo: sendo uma dimensão tempo e outra localização, seria
atravessar de mês para cidade.
Informática
Profa: Emannuelle Gouveia
@Emannuelle Gouveia
MODELAGEM DIMENSIONAL
Uma outra conceituação afirma que essa operação permite que o
usuário exiba, em tempo de consulta, os detalhes dos dados não
sumarizados a partir do modelo multidimensional, logo, quando eu parto de
um nível superior do modelo dimensional e vou até as tabelas do modelo
transacional para acessar dados mais detalhados que foram a origem para
os dados do cubo, eu estou utilizando o Drill Through.
Informática
Profa: Emannuelle Gouveia
@Emannuelle Gouveia
MODELAGEM DIMENSIONAL
357
358
Operação Slice-and-Dice
A Operação Slice permite ao usuário recuperar um subconjunto de uma
matriz multidimensional fixando/selecionando o valor de uma de suas
dimensões.
É como se fatiássemos um cubo fixando apenas uma dimensão (como
uma fatia de bolo) – lembrando slice é fatiar, em inglês.
Informática
Profa: Emannuelle Gouveia
@Emannuelle Gouveia
MODELAGEM DIMENSIONAL
No exemplo abaixo, nós fatiamos o cubo fixando apenas a dimensão
Tempo como Q1, de forma que recuperamos um subconjunto de localização
e veículos. Vejamos como ficou:
Informática
Profa: Emannuelle Gouveia
@Emannuelle Gouveia
MODELAGEM DIMENSIONAL
359
360
Já a Operação Dice permite ao usuário recuperar um subconjunto de
uma matriz multidimensional fixando/selecionando valores de mais de uma
dimensão. Dice é dado, em inglês – portanto é como se gerássemos um
minicubo a partir de um cubo maior.
Informática
Profa: Emannuelle Gouveia
@Emannuelle Gouveia
MODELAGEM DIMENSIONAL
No exemplo abaixo, escolhemos as localizações: Delhi e Kolkata; os
períodos: Q1 e Q2; e os veículos: Car e Bus. Muitas vezes, pode ocorrer uma
mudança de perspectiva de visão nessa operação!
Informática
Profa: Emannuelle Gouveia
@Emannuelle Gouveia
MODELAGEM DIMENSIONAL
361
362
Operação Pivot (Rotação)
Essa operação permite ao usuário realizar uma alteração de uma
hierarquia ou orientação dimensional para outra (Ex: inverter as dimensões
entre linhas e colunas). Uma vez que gira a visão atual para obter uma nova
visão da representação, é conhecida como pivoteamento ou rotação.
Informática
Profa: Emannuelle Gouveia
@Emannuelle Gouveia
MODELAGEM DIMENSIONAL
No subcubo obtido após a operação de fatia (slice), é possível observar
que a execução da operação de pivoteamento nos fornece uma nova visão
da mesma fatia.
Informática
Profa: Emannuelle Gouveia
@Emannuelle Gouveia
MODELAGEM DIMENSIONAL
363
364
Características Essenciais
Informática
Profa: Emannuelle Gouveia
@Emannuelle Gouveia
DATA WAREHOUSE (DW)
Informática
Profa: Emannuelle Gouveia
@Emannuelle Gouveia
DATA WAREHOUSE (DW)
365
366
Processo de Data Warehouse
Informática
Profa: Emannuelle Gouveia
@Emannuelle Gouveia
DATA WAREHOUSE (DW)
Informática
Profa: Emannuelle Gouveia
@Emannuelle Gouveia
DATA WAREHOUSE (DW)
367
368
Quanto ao valorInformática
Profa: Emannuelle Gouveia
@Emannuelle Gouveia
MINERAÇÃO DE DADOS
Informática
Profa: Emannuelle Gouveia
@Emannuelle Gouveia
MINERAÇÃO DE DADOS
369
370
Informática
Profa: Emannuelle Gouveia
@Emannuelle Gouveia
MINERAÇÃO DE DADOS
Principais Objetivos Da Mineração de Dados
Informática
Profa: Emannuelle Gouveia
@Emannuelle Gouveia
MINERAÇÃO DE DADOS
371
372
Informática
Profa: Emannuelle Gouveia
@Emannuelle Gouveia
MINERAÇÃO DE DADOS
Informática
Profa: Emannuelle Gouveia
@Emannuelle Gouveia
MINERAÇÃO DE DADOS
373
374
Processo de Descoberta de Conhecimento
A Mineração de Dados faz parte de um processo muito maior de
descoberta de conhecimento chamada KDD (Knowledge Discovery in
Databases – Descoberta de Conhecimento em Bancos de Dados). Este
compreende cinco fases:
(1) Seleção;
(2) Pré-processamento;
(3) Transformação;
(4) Data Mining;
(5) Interpretação e Avaliação
Informática
Profa: Emannuelle Gouveia
@Emannuelle Gouveia
MINERAÇÃO DE DADOS
Informática
Profa: Emannuelle Gouveia
@Emannuelle Gouveia
MINERAÇÃO DE DADOS
375
376
Informática
Profa: Emannuelle Gouveia
@Emannuelle Gouveia
MINERAÇÃO DE DADOS
Conforme é apresentado na imagem a seguir, podemos dividi-las em
duas categorias: Preditivas e Descritivas.
Informática
Profa: Emannuelle Gouveia
@Emannuelle Gouveia
MINERAÇÃO DE DADOS - Técnicas e Tarefas
377
378
Técnicas Preditivas buscam prever os valores dos dados usando
resultados conhecidos coletados de diferentes conjuntos de dados, isto é,
busca-se prever o futuro com base dos dados passados.
Técnicas Descritivas buscam descrever relacionamentos entre variáveis
e resumir grandes quantidades de dados. Eles usam técnicas estatísticas
para encontrar relações entre variáveis, como correlações e associações.
Informática
Profa: Emannuelle Gouveia
@Emannuelle Gouveia
MINERAÇÃO DE DADOS - Técnicas e Tarefas
As técnicas de Classificação e Regressão são consideradas de
aprendizado supervisionado; já as técnicas de Associação, Agrupamento são
de aprendizado não-supervisionado.
Informática
Profa: Emannuelle Gouveia
@Emannuelle Gouveia
MINERAÇÃO DE DADOS
379
380
Informática
Profa: Emannuelle Gouveia
@Emannuelle Gouveia
MINERAÇÃO DE DADOS - Técnicas e Tarefas
Informática
Profa: Emannuelle Gouveia
@Emannuelle Gouveia
MACHINE LEARNING – TIPOS DE APRENDIZADO
381
382
Informática
Profa: Emannuelle Gouveia
@Emannuelle Gouveia
MACHINE LEARNING – TIPOS DE APRENDIZADO
Aprendizado Semi-Supervisionado: trata-se de um meio termo entre o
aprendizado supervisionado e o não-supervisionado.
Nesse caso, utilizamos dados rotulados e não-rotulados para o
treinamento.
Em geral, utiliza-se uma pequena quantidade de dados rotulados e uma
grande quantidade de dados não-rotulados, visto que dados não rotulados
são mais baratos e são obtidos com menos esforço.
Ela pode ser aplicada para o agrupamento, regras de associação,
classificação ou regressão.
Informática
Profa: Emannuelle Gouveia
@Emannuelle Gouveia
MACHINE LEARNING – TIPOS DE APRENDIZADO
383
384
Aprendizado por Reforço: trata-se de um conjunto de técnicas que
utilizam tentativa e erro para descobrir decisões ótimas de como interagir
com ambiente ou com outros agentes.
Sua meta é reforçar ou recompensar uma ação considerada positiva e
punir uma ação considerada negativa.
Ex: robôs aspiradores.
Informática
Profa: Emannuelle Gouveia
@Emannuelle Gouveia
MACHINE LEARNING – TIPOS DE APRENDIZADO
Nós podemos generalizar a matriz de confusão da seguinte forma:
Informática
Profa: Emannuelle Gouveia
@Emannuelle Gouveia
CLASSIFICAÇÃO
385
386
Informática
Profa: Emannuelle Gouveia
@Emannuelle Gouveia
MACHINE LEARNING – CLASSIFICAÇÃO
Informática
Profa: Emannuelle Gouveia
@Emannuelle Gouveia
CLASSIFICAÇÃO
387
388
Informática
Profa: Emannuelle Gouveia
@Emannuelle Gouveia
Árvores de Decisão
Informática
Profa: Emannuelle Gouveia
@Emannuelle Gouveia
Árvores de Decisão
389
390
A regressão linear é um tipo de algoritmo de aprendizado de máquina
supervisionado utilizado na mineração de dados.
Ela é usada para prever uma variável de destino contínua ajustando
uma equação linear aos pontos de dados.
Baseia-se na relação entre as variáveis independentes (preditoras) e a
variável dependente (alvo).
O algoritmo de regressão linear encontra a melhor linha de ajuste que
minimiza a soma dos erros quadrados. Essa linha de melhor ajuste é então
usada para prever valores para a variável dependente.
Informática
Profa: Emannuelle Gouveia
@Emannuelle Gouveia
Regressão Linear
Sendo assim, o modelo de regressão para uma única variável preditora
x, ou regressão linear simples, pode ser definido pela seguinte equação da
reta:
em que a e b são coeficientes de regressão (pesos) e especificam o
intercepto do eixo y e a inclinação da reta, respectivamente.
Informática
Profa: Emannuelle Gouveia
@Emannuelle Gouveia
Regressão Linear
391
392
Na mineração de dados, a regressão logística é uma técnica de
modelagem preditiva utilizada para problemas de classificação.
Trata-se de um algoritmo de aprendizado supervisionado que usa um
conjunto de dados de treinamento rotulados para construir um modelo que
pode prever com precisão os resultados de dados não vistos.
A regressão logística é usada para identificar padrões em grandes
conjuntos de dados e para estimar a probabilidade de um determinado
evento ocorrer.
Informática
Profa: Emannuelle Gouveia
@Emannuelle Gouveia
Regressão Logística
Regressão Logística: é um algoritmo de aprendizagem de máquina
supervisionado utilizado para classificação.
Trabalha com dados qualitativos (categóricos).
Em geral, a utilização da regressão logística se dá com categorias
binárias, isto é, aquelas que podem assumir somente dois valores (Ex:
grande ou pequeno, alto ou baixo, sim ou não, lucro ou prejuízo, válido ou
inválido, entre outros).
Informática
Profa: Emannuelle Gouveia
@Emannuelle Gouveia
Regressão Logística
393
394
O perceptron é a unidade básica de uma Rede Neural Artificial (RNA),
sendo equivalente a um neurônio biológico. Vejamos abaixo como seria sua
estrutura básica:
Informática
Profa: Emannuelle Gouveia
@Emannuelle Gouveia
MACHINE LEARNING – REDES NEURAIS FEED-FORWARD
Informática
Profa: Emannuelle Gouveia
@Emannuelle Gouveia
MACHINE LEARNING – REDES NEURAIS FEED-FORWARD
395
396
A função sigmóide mais famosa é a função logística apresentada a
seguir (frequentemente são tratadas como sinônimos):
Informática
Profa: Emannuelle Gouveia
@Emannuelle Gouveia
MACHINE LEARNING – REDES NEURAIS FEED-FORWARD
Há também o caso em que desejamos que o resultado assuma valores
entre [-1,1]. Para tal, podemos utilizar um outro tipo de função sigmóide
chamada de tangente hiperbólica:
Informática
Profa: Emannuelle Gouveia
@Emannuelle Gouveia
MACHINE LEARNING – REDES NEURAIS FEED-FORWARD
397
398
Single Layer Perceptrons (SLP): trata-se de uma rede neural que
organiza os perceptrons em uma única camada de processamento. Onde os
nós (preceptons) da camada de saída realizam processamentos e os nós da
camada de entrada apenas transferem os valores diretamente para a
camada de saída.
Informática
Profa: Emannuelle Gouveia
@Emannuelle Gouveia
MACHINE LEARNING – REDES NEURAIS FEED-FORWARD
Multilayer Perceptrons (MLP): Trata-se de uma arquitetura de redes
neurais artificiais que utiliza múltiplas camadas de perceptrons.
Temos duas camadas que realizam processamentos: camada oculta e
camada de saída.
Da mesma forma da arquitetura anterior, os nós da camada de entrada
apenas transferem os valores (com seus respectivos pesos) para os nós da
camada oculta ou camada escondida, sendo os únicos perceptrons que não
executam uma função de ativação.
Informática
Profa: Emannuelle Gouveia
@Emannuelle Gouveia
MACHINE LEARNING – REDES NEURAIS FEED-FORWARD
399
400
Informática
Profa: Emannuelle Gouveia
@Emannuelle Gouveia
MACHINE LEARNING – REDES NEURAIS FEED-FORWARD
Atualmente existem redes neurais com mais de mil camadas
escondidas, além de trilhões deperceptrons, que é o caso da Deep Learning.
Informática
Profa: Emannuelle Gouveia
@Emannuelle Gouveia
MACHINE LEARNING – REDES NEURAIS FEED-FORWARD
401
402
Informática
Profa: Emannuelle Gouveia
@Emannuelle Gouveia
BIG DATA – CONCEITOS BÁSICOS
Podemos afirmar que a definição de Big Data pode ser quebrada em cinco
dimensões, quais sejam: Volume, Velocidade, Variedade, Veracidade e
Valor.
Informática
Profa: Emannuelle Gouveia
@Emannuelle Gouveia
BIG DATA – PREMISSAS
403
404
Informática
Profa: Emannuelle Gouveia
@Emannuelle Gouveia
BIG DATA –ANALYTICS
A maioria das arquiteturas de Big Data inclui alguns ou todos os
seguintes componentes.
Informática
Profa: Emannuelle Gouveia
@Emannuelle Gouveia
BIG DATA – ARQUITETURA DE BIG DATA
405
406
A arquitetura lambda aborda esse problema criando dois caminhos para
o fluxo de dados em que passam todos os dados que entram no sistema:
Informática
Profa: Emannuelle Gouveia
@Emannuelle Gouveia
BIG DATA – ARQUITETURA LAMBDA
Informática
Profa: Emannuelle Gouveia
@Emannuelle Gouveia
BIG DATA – ARQUITETURA KAPPA
407
408
Informática
Profa: Emannuelle Gouveia
@Emannuelle Gouveia
BIG DATA
Informática
Profa: Emannuelle Gouveia
@Emannuelle Gouveia
BIG DATA
409
410
Informática
Profa: Emannuelle Gouveia
@Emannuelle Gouveia
BIG DATA
a) Nuvem Pública:
Trata-se de um conjunto de hardware, rede, armazenamento, serviços,
aplicações e interfaces pertencentes e operados por terceiros para uso por
outras empresas e indivíduos. Esses provedores comerciais criam um centro
de dados altamente escalável que oculta os detalhes da infraestrutura
subjacente do consumidor.
As nuvens públicas são viáveis porque normalmente gerenciam cargas
de trabalho relativamente repetitivas ou diretas.
Informática
Profa: Emannuelle Gouveia
@Emannuelle Gouveia
BIG DATA – MODELOS DE DISTRIBUIÇÃO DE SERVIÇOS
411
412
Uma nuvem pública pode ser muito eficaz quando uma organização
está executando um projeto complexo de análise de dados e precisa de
ciclos de computação extras para lidar com a tarefa ou precisa de
armazenamento de dados com custo baixo.
Os principais problemas com nuvens públicas para Big Data são os
requisitos de segurança e a quantidade de latência aceitável.
Informática
Profa: Emannuelle Gouveia
@Emannuelle Gouveia
BIG DATA – MODELOS DE DISTRIBUIÇÃO DE SERVIÇOS
b) Nuvem Privada
Trata-se de um conjunto de hardware, rede, armazenamento, serviços,
aplicações e interfaces pertencentes e operados por uma organização para
uso de seus funcionários, parceiros e clientes. Pode ser criada e gerenciada
por terceiros para uso exclusivo de uma empresa.
É um ambiente altamente controlado não aberto para consumo público,
automatizada com foco em governança, segurança e conformidade.
A automação substitui processos manuais de gerenciamento de serviços
de TI para dar suporte aos clientes e regras e processos de negócios podem
ser implementados dentro do software para que o ambiente se torne mais
previsível e gerenciável.
Informática
Profa: Emannuelle Gouveia
@Emannuelle Gouveia
BIG DATA – MODELOS DE DISTRIBUIÇÃO DE SERVIÇOS
413
414
Se as organizações estão gerenciando um projeto de Big Data que exija
o processamento de grandes quantidades de dados, ela pode ser a melhor
escolha em termos de latência e segurança.
Informática
Profa: Emannuelle Gouveia
@Emannuelle Gouveia
BIG DATA – MODELOS DE DISTRIBUIÇÃO DE SERVIÇOS
c) Nuvem Híbrida
Trata-se de uma combinação de uma nuvem privada combinada com o
uso de serviços de nuvem pública (ou outras combinações) com um ou
vários pontos de contato entre os ambientes.
O objetivo é criar um ambiente de nuvem bem gerenciado que possa
combinar serviços e dados de uma variedade de modelos de nuvem para
criar um ambiente de computação unificado, automatizado e bem
gerenciado.
Informática
Profa: Emannuelle Gouveia
@Emannuelle Gouveia
BIG DATA – MODELOS DE DISTRIBUIÇÃO DE SERVIÇOS
415
416
d) Nuvem da Comunidade (Comunitária)
Trata-se de um serviço de armazenamento de dados que é
compartilhado entre vários usuários com objetivos comuns.
Os usuários podem usar a nuvem comunitária para armazenar e
compartilhar arquivos, aplicação e outros dados.
Informática
Profa: Emannuelle Gouveia
@Emannuelle Gouveia
BIG DATA – MODELOS DE DISTRIBUIÇÃO DE SERVIÇOS
a) Infrastructure as a Service (IaaS)
Trata-se de um dos serviços de computação em nuvem mais diretos.
IaaS é a entrega de serviços de computação, incluindo hardware, rede,
armazenamento e espaço de data center com base em um modelo de
aluguel.
O consumidor do serviço adquire um recurso e é cobrado por esse
recurso com base na quantidade usada e na duração desse uso.
Informática
Profa: Emannuelle Gouveia
@Emannuelle Gouveia
BIG DATA – MODELOS ENTREGA DE SERVIÇOS
417
418
b) Platform as a Service (PaaS)
Trata-se de um mecanismo para combinar IaaS com um conjunto
abstrato de serviços de middleware, desenvolvimento de software e
ferramentas de implantação que permitem que a organização tenha uma
maneira consistente de criar e implantar aplicações em uma nuvem ou no
local.
Ele oferece serviços de programação ou middleware que garantem que
desenvolvedores tenham uma forma testada e integrada de criar aplicações
em um ambiente de nuvem.
Informática
Profa: Emannuelle Gouveia
@Emannuelle Gouveia
BIG DATA – MODELOS ENTREGA DE SERVIÇOS
Um ambiente de PaaS reúne desenvolvimento e implantação para criar
uma maneira mais gerenciável de criar, implantar e dimensionar aplicações
Observe que um PaaS requer um IaaS.
Informática
Profa: Emannuelle Gouveia
@Emannuelle Gouveia
BIG DATA – MODELOS ENTREGA DE SERVIÇOS
419
420
c) Software as a Service (SaaS)
Trata-se de um modelo de aplicação hospedada por um provedor em
um modelo multitenant, isto é, refere-se à situação em que uma única
instância de uma aplicação é executada em um ambiente de nuvem, mas
atende a várias organizações clientes (locatários), mantendo todos os seus
dados separados. Os clientes pagam pelo serviço por usuário geralmente em
um modelo de contrato mensal ou anual.
Informática
Profa: Emannuelle Gouveia
@Emannuelle Gouveia
BIG DATA – MODELOS ENTREGA DE SERVIÇOS
d) Data as a Service (DaaS)
Trata-se de um serviço independente de plataforma que permite que
você se conecte à nuvem para armazenar e recuperar seus dados.
Além disso, você encontra vários serviços de dados especializados que
são de grande benefício em um ambiente de Big Data, por exemplo, o
Google oferece um serviço capaz de processar uma consulta com 5
terabytes de dados em 15 segundos o que normalmente levaria dez vezes
mais tempo com um data center típico.
Informática
Profa: Emannuelle Gouveia
@Emannuelle Gouveia
BIG DATA – MODELOS ENTREGA DE SERVIÇOS
421
422
Informática
Profa: Emannuelle Gouveia
@Emannuelle Gouveia
BIG DATA – SOLUÇÕES PARA BIG DATA
Informática
Profa: Emannuelle Gouveia
@Emannuelle Gouveia
BIG DATA – SOLUÇÕES PARA BIG DATA
423
424
QUESTÕES
Informática
Profa: Emannuelle Gouveia
@Emannuelle Gouveia
01) Outliers são pontos ou observações em um conjunto de dados que
diferem significativamente da maioria dos demais outros pontos. Eles
podem ser resultados de variações na medição, erros de entrada de dados
ou, ainda, podem indicar uma variação genuína da fonte de coleta.
Em preparação para análise de um conjunto de dados, o tratamento de
outliers
A) é sempre necessário, independentemente do tamanho do conjunto de
dados ou do objetivo da análise.
B) é sempre uma tarefa simples que pode ser realizada por qualquer analista
de dados, sem risco de perder informações valiosas.
C) é sempre uma tarefa complexa que requer um conhecimento profundo
de estatística e que independe do conjunto de dados e do objetivo da
análise.
Informática
Profa: Emannuelle Gouveia
@Emannuelle Gouveia
425
426
D) deve ser realizado antes de realizar agregações, pois os outliers podem
afetar os resultados da análise que inclua uma agregação.
E) deve ser realizado após realizar agregações, pois os outliers podem
obscureceros resultados da agregação.
Informática
Profa: Emannuelle Gouveia
@Emannuelle Gouveia
02) No aprendizado não supervisionado, os dados de treinamento não têm
rótulos. O objetivo é agrupar instâncias semelhantes em clusters. Nesse
contexto, suponha que se deseja executar um algoritmo de agrupamento
para tentar detectar grupos de visitantes semelhantes em um blog. Em
nenhum momento é informado ao algoritmo a que grupo um visitante
pertence, mas ele encontra essas conexões sem ajuda. Por exemplo, o
algoritmo pode notar que 40% dos visitantes são homens que adoram
histórias em quadrinhos e, geralmente, leem o blog à noite, enquanto 20%
são jovens amantes de ficção científica que visitam o blog durante os fins de
semana, e assim por diante. Deseja-se, nesse caso, usar um algoritmo de
agrupamento hierárquico para subdividir cada grupo em grupos menores, o
que pode ajudar a direcionar as postagens do blog para cada grupo
específico.
Informática
Profa: Emannuelle Gouveia
@Emannuelle Gouveia
427
428
Nesse cenário, qual é o algoritmo mais apropriado para fazer o agrupamento
desejado?
A) Agglomerative Hierarchical Clustering
B) Principal Component Analysis (PCA)
C) Linear Regression Clustering
D) k-DBSCAN Clustering
E) L-Means Clustering
Informática
Profa: Emannuelle Gouveia
@Emannuelle Gouveia
03) O processo de ingestão de dados é normalmente dividido em três etapas
principais:
1 - Extração, ou coleta, de dados das fontes disponíveis;
2 - Transformação dos dados coletados para que atendam às necessidades
específicas de processamento e análise; e
3 - Carga dos dados em algum repositório de destino, como um banco de
dados relacional ou um data lake. Essas três etapas podem variar
dependendo de os dados serem estruturados ou não.
Nesse contexto, verifica-se que, na etapa de
A) carga, os dados estruturados são sempre transferidos diretamente ao
repositório de destino, sem necessidade de transformação.
Informática
Profa: Emannuelle Gouveia
@Emannuelle Gouveia
429
430
B) carga, os dados não estruturados são sempre convertidos em formatos
estruturados antes de serem armazenados.
C) extração, os dados estruturados são coletados exclusivamente através de
APIs especializadas.
D) transformação, os dados estruturados podem requerer conversão para
um formato não estruturado para facilitar a análise avançada.
E) transformação, os dados não estruturados podem necessitar de
processamento de linguagem natural ou de técnicas de reconhecimento de
imagens.
Informática
Profa: Emannuelle Gouveia
@Emannuelle Gouveia
04) Considere um conjunto de dados estruturados composto por colunas,
que refletem as características desses dados, e por linhas, que combinam
essas características.
No tratamento desses dados, o processo de enriquecimento consiste em
A) adicionar dados externos ao conjunto de dados.
B) expandir ou adernar os dados de um conjunto, sem interferência externa.
C) verificar a integridade dos relacionamentos entre as colunas.
D) normalizar os dados, mitigando a diferença de escala entre as colunas.
E) imputar dados em linhas de dados que apresentem valores ausentes.
Informática
Profa: Emannuelle Gouveia
@Emannuelle Gouveia
431
432
05) O Ecossistema Spark tem componentes que oferecem funcionalidades
específicas que o tornam uma ferramenta versátil e eficiente para o
processamento de grandes volumes de dados, a análise em tempo real, o
aprendizado de máquina e muito mais. Essa integração e flexibilidade são
algumas das razões pelas quais o Spark se tornou uma ferramenta
amplamente utilizada em aplicações de Big Data. Os componentes da
Plataforma Spark pertencem a dois grupos principais: os componentes
básicos e os componentes especializados, que provêm funcionalidades mais
avançadas. Dentre os componentes básicos, podemos destacar o Spark
Core, também conhecido como “coração” do Ecossistema, e que é
responsável pelas tarefas consideradas essenciais.
Informática
Profa: Emannuelle Gouveia
@Emannuelle Gouveia
O componente Spark Core
A) é um módulo que atua como sistema de gerenciamento de banco de
dados relacional para processamento de dados estruturados e distribuídos
em um contexto Big Data.
B) é uma biblioteca para processamento de gráficos e análises de dados
distribuídos, sem esquema e não estruturados, características principais em
um ambiente Big Data.
C) é uma ferramenta responsável pelo tratamento e análise de streams de
dados em tempo real, específica de grandes volumes, com velocidade e
variedade, características típicas em sistemas de Big Data.
D) corresponde ao módulo que contempla funcionalidades de computação
distribuída, incluindo agendamento de tarefas e gerenciamento de
memória, para aplicações Big Data.
Informática
Profa: Emannuelle Gouveia
@Emannuelle Gouveia
433
434
E) diz respeito ao principal add-on da plataforma que, por ser um framework
orientado a objetos, tem esse hot-spot para melhorar a eficiência do
armazenamento de dados distribuídos de aplicações Big Data em clusters.
Informática
Profa: Emannuelle Gouveia
@Emannuelle Gouveia
06) Para melhorar o processamento de grandes volumes de dados através
de computação paralela ou distribuída, pode-se utilizar sharding, técnica
que divide os dados em partes menores, chamadas shards. Essas partes são
normalmente armazenadas em diferentes nós, ou sítios, de processamento
em um sistema distribuído.
O sharding é necessário para garantir a
A) privacidade dos dados
B) eficiência do processamento de dados
C) disponibilidade dos dados em caso de falha de um nó
D) escalabilidade do sistema de processamento de dados
E) consistência dos dados em caso de alteração de um shard
Informática
Profa: Emannuelle Gouveia
@Emannuelle Gouveia
435
436
07) Considere o seguinte texto sobre integração de dados.
Como viabilizar o compartilhamento efetivo de dados e informações das
cadeias agropecuárias entre instituições de governo e dessas com a
sociedade? Esta foi a principal questão que os participantes do 1º Painel de
Cadeias Agropecuárias e Dados Abertos buscaram responder na tarde de
quinta-feira (2/12), durante webinar realizado pelo Instituto de Pesquisa
Econômica Aplicada (Ipea).
Disponível em: https://www.ipea.gov.br/portal/categorias/45-todas- as-
noticias/noticias/11394-especialistas-debatem-abertura- -e-integracao-de-
dados-de-cadeias-agropecuarias?highlight=
WyJhYmFzdGVjaW1lbnRvIiwiYWd1YSIsIidcdTAwZTFndWEiLCJhZ3VhJywiXQ=
=. Acesso em: 5 jan. 2024.
Informática
Profa: Emannuelle Gouveia
@Emannuelle Gouveia
Considerando-se o questionamento apresentado no texto e sabendo-se que,
quando da integração de conjuntos de dados de múltiplas fontes, matching
é uma questão relevante, o problema de identificação de entidades em
múltiplas fontes de dados remete ao desafio de
A)agregar os objetos do conjunto de dados, oferecendo versões
consolidadas de suas ocorrências.
B) detectar a ocorrência de uma mesma entidade do mundo real.
C) determinar a correlação entre os identificadores dos objetos.
D) reduzir o conjunto de dados a ser submetido ao processo de análise.
E) selecionar as variáveis mais significativas do conjunto de dados,
eliminando as irrelevantes ou redundantes.
Informática
Profa: Emannuelle Gouveia
@Emannuelle Gouveia
437
438
08) Nas últimas décadas, a automatização e a inserção de máquinas
agrícolas transformaram profundamente o panorama do trabalho nas áreas
rurais [...] e, em menos de 50 anos, a produtividade do agronegócio
brasileiro aumentou 400%. [...]
Esses resultados vieram com a adoção da tecnologia nos processos
cotidianos, e também com o investimento em pesquisas [...]. Agora, o
agronegócio pode estar diante de um novo salto de produtividade; big data
e machine learning são ferramentas que estão ganhando espaço e que
podem, novamente, transformar o cenário do campo.
Disponível em: https://summitagro.estadao.com.br/tendencias-e- -
tecnologia/como-big-data-e-machine-learning-sao-aplicados-no- -
agronegocio/. Acesso em: 5 jan. 2024. Adaptado.
Informática
Profa: Emannuelle Gouveia
@Emannuelle Gouveia
A utilizaçãoda plataforma paralela de processamento MapReduce aplica-se
adequadamente como um framework de processamento de Big Data,
visando à escalabilidade para as aplicações.
Nesse contexto, uma característica inerente à MapReduce é a
A) sua abordagem, que reflete uma solução simplificada de processamento
de dados paralelos em um cluster.
B) sua função map(), que gera, para cada registro de entrada, um ou mais
pares (chave,valor).
C) sua função reduce(), que gera um resultado combinado em valores que
compartilham chaves distintas.
D) sua demanda pela existência de um esquema de dados.
E) natureza estática de suas funções, que devem respeitar a especificação
original, caracterizando uma restrição inerente a essa abordagem.
Informática
Profa: Emannuelle Gouveia
@Emannuelle Gouveia
439
440
OBRIGADA
Prof. Emannuelle Gouveia
@emannuellegouveia
Língua Espanhola
Prof. Adinoél Sebastião
ESTATÍSTICA
Prof. Carlos Henrique
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
11) Um estudo com uma amostra aleatória de tamanho 400 revelou
que 64% dos
cariocas acreditam que morar em uma cidade litorânea aumenta o
tempo de vida de um
ser humano. O intervalo de 95% de confiança para a proporção de
cariocas que
acreditam que morar em uma cidade litorânea aumenta o tempo de
vida de um ser
humano é:
a) 64% ± 2,7%
b) 64% ± 3,6%
c) 64% ± 4,2%
d) 64% ± 4,7%
e) 64% ± 5,4%
485
486
487
488
A tabela a seguir apresenta as probabilidades de, em um certo dia, o time
Snipers fazer 0, 1, 2 ou 3 gols em um jogo.
12) A média do número de gols é:
a) 1,2
b) 1,3
c) 1,4
d) 1,5
e) 1,6
489
490
13) A variância do número de gols é:
a) 1,59
b) 1,60
c) 1,61
d) 1,62
e) 1,63
491
492
493
494
495
496
14) O valor de α, em milhões de reais, é igual a:
a) 16
b) 18
c) 20
d) 24
e) 30
497
498
15) A previsão do faturamento em um determinado ano, uma vez
que a empresa investiu em pesquisa, nesse ano, 4 milhões de
reais, é igual a:
a) 30 milhões
b) 32 milhões
c) 35 milhões
d) 36 milhões
e) 39 milhões
499
500
501
502
16) Através de uma amostra de 100 servidores de determinado órgão,
estimou-se um salário médio amostral de R$ 4.000,00. Dessa forma, o
intervalo de confiança para o salário médio de todos os servidores foi
4.000,00 ± 160,00, com um certo grau de confiança. Se tivéssemos obtido o
mesmo dado amostral com uma amostra de 400 servidores, o intervalo de
confiança (com o mesmo grau de confiança) seria dado por:
a) 4.000,00 ± 80,00
b) 4.000,00 ± 70,00
c) 4.000,00 ± 60,00
d) 4.000,00 ± 50,00
e) 4.000,00 ± 40,00
503
504
505
506
17) Numa amostra de 30 pares de observações do tipo (xi , yi), com i =
1, 2, ..., 30, a covariância obtida entre as variáveis X e Y foi -2. Os dados
foram transformados linearmente da forma (zi , wi) = (-3xi + 1 , 2yi + 3),
para i = 1, 2, ..., 30.
Qual o valor da covariância entre as variáveis Z e W transformadas?
a) 41
b) 36
c) -7
d) 12
e) 17
507
508
509
510
511
512
513
514
Mariana, uma funcionária do Banco do Brasil, realizou uma pesquisa entre a
relação do clientes que entram em uma agência bancária (x) e o número
vendas de seguros em um dia qualquer (y). Mariana descobriu que o
coeficiente de correlação linear de Pearson das duas variáveis é 0,8,
enquanto que os desvios padrões das variáveis x e y são, respectivamente,
4 e 5. Logo, podemos concluir que o desvio padrão da diferença entre as
variáveis x e y é:
a) 2
b) 3
c) 4
d) 5
e) 6
515
516
517
518
OBRIGADO!
Prof. Carlos Henrique
519
520
521
Página em branco