Prévia do material em texto
Questão 1/10 - Linguagem de Programação Aplicada
Ler em voz alta
[Aula 4] Em Python, você pode lidar com ações usando bibliotecas. Uma das maneiras mais
comuns de lidar com essas ações é usando a biblioteca sched. Como pode ser observado no
comando a seguir:
import sched
import time
def print_message(mensagem):
print(mensagem)
def schedule_next_event(scheduler, intervalo, mensagem):
scheduler.enter(1, 1, schedule_next_event, (scheduler, intervalo, mensagem))
print_message(mensagem)
scheduler = sched.scheduler(time.time, time.sleep)
schedule_next_event(scheduler, 1, "Esta é a mensagem agendada a cada 1 segundo!")
scheduler.run()
Esse código utilizado em Python nos traz um exemplo de:
A Agendamentos
B Apontamentos
C
Eventos calculados
D Manipulações
E
Eventos de tempo
Você assinalou essa alternativa (E)
Questão 2/10 - Linguagem de Programação Aplicada
Ler em voz alta
[Aula 6] Testes unitários, ou unit tests, são uma prática de desenvolvimento de software em que
partes individuais (ou unidades) do código são testadas isoladamente para garantir que funcionem
como esperado. Uma unidade pode ser uma função, um método de uma classe ou até mesmo uma
pequena parte de código que executa uma determinada funcionalidade.
Em termos simples, os testes unitários verificam se cada parte do código faz o que é suposto fazer.
Eles são escritos pelo desenvolvedor e têm como objetivo:
A Validar as unidades separadamente
javascript:void(0)
javascript:void(0)
Você assinalou essa alternativa (A)
B
Testar a base de dados
C
Validar as entradas de dados
D
Validar a indentação do código
E
Verificar a estrutura do código fonte
Questão 3/10 - Linguagem de Programação Aplicada
Ler em voz alta
[Aula 6] O debug em programação é o processo de identificar, isolar e corrigir erros em um
programa de computador. Os erros podem variar de simples erros de sintaxe a problemas mais
complexos de lógica ou comportamento do programa. O processo de debug é essencial para garantir
que um programa funcione corretamente e produza os resultados desejados, analise as afirmativas a
seguir que mostram alguns dos principais aspectos do debug em programação:
I. Publicar o erro: uma vez que o erro foi reproduzido, o próximo passo é a publicação do erro na
Internet para encontrar a solução. Isso pode envolver a revisão do código-fonte relevante, a
identificação de variáveis ou operações problemáticas, e a análise do fluxo de execução do
programa para entender onde o erro está ocorrendo
II. Identificação de erros: o primeiro passo no processo de debug é identificar que um erro
ocorreu. Isso pode ser indicado por mensagens de erro, comportamento inesperado do programa, ou
resultados incorretos
III. Correção do erro: uma vez que a causa do erro foi identificada, os desenvolvedores podem
fazer as correções necessárias no código para resolver o problema. Isso pode envolver a correção de
erros de sintaxe, ajuste de lógica de programação, manipulação de exceções, entre outras ações
IV. Testes de retorno: após a correção do erro, é importante realizar testes de retorno para garantir
que a correção gerou novos problemas no programa. Isso pode envolver a execução de testes
automatizados ou manuais para verificar se o programa está funcionando conforme o esperado
V. Depuração ativa: durante o processo de isolamento do erro, os desenvolvedores geralmente
usam técnicas de depuração ativa para examinar o estado do programa em tempo de execução. Isso
pode incluir a inserção de pontos de interrupção no código, inspeção de variáveis, rastreamento de
pilha e execução passo a passo do código para entender como o programa está se comportando
São corretas apenas as afirmativas:
A I, III e IV
B
II, III e V
Você assinalou essa alternativa (B)
C III e IV
D I, IV e V
E IV e V
javascript:void(0)
Questão 4/10 - Linguagem de Programação Aplicada
Ler em voz alta
[Aula 4] Em Python temos duas situações quando precisamos trabalhar com objetos. Uma situação
é quando você tem um conjunto de objetos que precisam se comunicar entre si, mas quer evitar que
eles se comuniquem diretamente, promovendo um acoplamento fraco entre eles. A outra situação é
quando você tem um objeto que precisa notificar outros objetos sobre mudanças em seu estado.
Essas duas situações referentes a objetos são conhecidas respectivamente como:
A List comprehensions e List ordered
B Design communicator e design viewer
C
Design pattern mediator e design pattern observer
Você assinalou essa alternativa (C)
D Manipulator e Range View
E Classificator e Ordenator
Questão 5/10 - Linguagem de Programação Aplicada
Ler em voz alta
[Aula 5] O SQLite é um sistema de gerenciamento de banco de dados relacional que é conhecido
por sua leveza, facilidade de uso e eficiência.
Relacione alguns pontos importantes sobre o SQLite 3:
1. Suporte ao SQL padrão
2. Ampla disponibilidade
3. Zero configuração
4. Embarcado
5. Transações ACID
( ) Oferece suporte a transações de Atomicidade, Consistência, Isolamento, Durabilidade, o que
garante que as operações de banco de dados sejam confiáveis, mesmo em face de falhas do sistema
( ) É amplamente suportado e está disponível em praticamente todas as plataformas, incluindo
Windows, macOS, Linux e sistemas embarcados. Ele é usado em uma variedade de aplicativos,
desde navegadores da web até aplicativos móveis e até mesmo em sistemas embarcados
( ) É uma biblioteca C que é embutida diretamente em aplicativos, o que significa que todo o
banco de dados é armazenado em um único arquivo. Isso torna o SQLite perfeito para aplicativos
que precisam de um banco de dados leve e não querem a sobrecarga de um servidor de banco de
dados separado
( ) Uma de suas principais vantagens do SQLite é não requerer configuração ou administração de
servidor. Você simplesmente inclui uma biblioteca em seu projeto e está pronto para começar a usar
o banco de dados
( ) Suporta a maioria do SQL padrão, incluindo consultas complexas, junções, transações,
gatilhos e subconsultas. Isso o torna muito poderoso e flexível para uma ampla gama de aplicativos
javascript:void(0)
javascript:void(0)
Agora, selecione a alternativa que apresenta a sequência correta:
A
1 – 2 – 4 – 5 – 3
B
5 – 2 – 3 – 4 – 1
C 3 – 4 – 5 – 2 – 1
D
5 – 2 – 4 – 3 – 1
Você assinalou essa alternativa (D)
E 2 – 3 – 5 – 1 – 4
Questão 6/10 - Linguagem de Programação Aplicada
Ler em voz alta
[Aula 5] O padrão Proxy é um padrão de projeto estrutural que fornece um objeto que atua como
um substituto para um objeto de serviço real usado por um cliente para controlar o acesso a ele. O
comando a seguir mostra um exemplo da utilização do Proxy:
all_clients = proxy.get_all_clients()
for d in all_clients:
print( f"Nome: {d.nome}, "
f"DataNcto: {d.datancto}, "
f"CPF: {d.cpf}, "
f"EMail: {d.email}, "
f"Telefone:{d.telefone}")
Esse recorte de comando Proxy tem o objetivo de:
A
Incluir clientes no banco de dados
B
Alterar os clientes no banco de dados
C
Excluir os registros dos clientes no banco de dados
D
Selecionar todos os clientes no banco de dados
Você assinalou essa alternativa (D)
E
Alterar a estrutura da tabela de clientes
Questão 7/10 - Linguagem de Programação Aplicada
Ler em voz alta
[Aula 5]
Em programação, é bastante comum usarmos um adapter para converter, por exemplo, um padrão
de armazenamento de arquivos para outro, como converter um arquivo Extensible Markup
javascript:void(0)
javascript:void(0)
Language(XML) em um JSON, ou então um JSON para um SQLite, ou vice-versa. Vejamos um
exemplo:
# Exemplo de uso
if __name__ == "__main__":
adapter = JsonSqliteAdapter("data.db")
adapter.connect()
data_to_save = [{"name": "Alice", "age": 25}, {"name": "Bob", "age": 30}]
adapter.save_data(data_to_save)
loaded_data = adapter.load_data()
for item in loaded_data:
print(item)
adapter.close()
Esserecorte de comando Adapter tem o objetivo de:
A
Salvar clientes no banco de dados
Você assinalou essa alternativa (A)
B
Alterar os clientes no banco de dados
C
Excluir os registros dos clientes no banco de dados
D Selecionar todos os clientes no banco de dados
E Alterar a estrutura da tabela de clientes
Questão 8/10 - Linguagem de Programação Aplicada
Ler em voz alta
[Aula 6] Uma IDE (Integrated Development Environment), como o PyCharm, desempenha um
papel crucial no desenvolvimento de software, especialmente para linguagens de programação
como Python. IDEs oferecem vários recursos aos desenvolvedores que permitem alterar o código,
salvá-lo automaticamente e ainda reestruturarem o código de forma segura e eficiente, ajudando a
melhorar sua qualidade e manutenção.
O recurso que permite reestruturação de código é conhecido como:
A Reutilização de código
B
Remanejamento do código
C
Refatoração de código
Você assinalou essa alternativa (C)
D
Distribuição do código
E Debug do código
javascript:void(0)
Questão 9/10 - Linguagem de Programação Aplicada
Ler em voz alta
[Aula 6] Gerar um executável a partir de um código em Python pode simplificar a distribuição,
melhorar a experiência do usuário e, em certos casos, proteger o código-fonte. Isso torna a prática
valiosa em uma variedade de contextos, incluindo desenvolvimento de software comercial,
distribuição de aplicativos e criação de ferramentas de linha de comando.
Vimos no material duas maneiras de gerar executável de um código Python, que são PyInstaller e
cx_Freeze, que possuem como características:
A PyInstaller implementa funções e cx_Freeze permite utilização de variáveis escaláveis
B
PyInstaller instala o programa e cx_Freeze congela o programa
C
PyInstaller torna possível a utilização de variáveis escaláveis e cx_Freeze permite usar
codificação direta
D
PyInstaller permite empacotar código Python junto com o interpretador e cx_Freeze é uma
ferramenta que permite congelar códigos .py criando um executável
Você assinalou essa alternativa (D)
E PyInstaller gera uma página de configurações e cx_Freeze gera congelamento dos atributos
Questão 10/10 - Linguagem de Programação Aplicada
Ler em voz alta
[Aula 3] O padrão de projetos conhecido como Builder faz parte do grupo de padrões titulado como
padrões criacionais definidos pelo GoF. O padrão builder é utilizado para construção de objetos
complexos fazendo-se uso de uma abordagem de desenvolvimento passo a passo. O padrão Builder
é um padrão de projetos de software comum que é usado para encapsular a lógica de construção de
um objeto. Este padrão é frequentemente utilizado quando o processo de construção de um objeto é
considerado complexo e também é adequado quando se trata da construção de representações
múltiplas de uma mesma classe.
Relacione os benefícios da abordagem com Padrão Builder:
1. Director
2. Classe Builder
3. Concrete Builder
4. Product
( ) Esta classe especifica uma interface ou uma classe abstrata para a criação das partes de um
objeto a fim de criar corretamente o produto
( ) É a classe responsável pela construção e pela montagem das partes do produto por meio da
implementação da classe builder. Ela define e
mantém o controle da representação que a classe cria, além de fornecer uma interface para
recuperação do produto
( ) Classe que controla o algoritmo responsável por gerar o objeto do produto. Um objeto
javascript:void(0)
javascript:void(0)
Director é instanciado e seus métodos construtores são
chamados. O método inclui um parâmetro para capturar objetos específicos do tipo Concrete
Builder que serão então utilizados para gerar o
produto
( ) É a representação do objeto complexo que está sendo construído. O concrete builder então
constrói a representação interna do produto e
define o processo pelo qual essa classe será montada
Agora, selecione a alternativa que apresenta a sequência correta:
A
2 – 4 – 1 – 3
B
1 – 4 – 3 – 2
C
2 – 3 – 1 – 4
Você assinalou essa alternativa (C)
D
4 – 2 – 3 – 1
E
4 – 3 – 2 – 1