Foram encontradas 40 questões.
- Paradigmas de ProgramaçãoOrientação a ObjetosOrientação a Objetos: Abstração
- Paradigmas de ProgramaçãoOrientação a ObjetosOrientação a Objetos: Classes e Objetos
- Paradigmas de ProgramaçãoOrientação a ObjetosOrientação a Objetos: Herança
As classes abstratas e concretas são fundamentais para organizar e estruturar sistemas de forma eficiente e flexível, pois promovem a reutilização de código e simplificam os processos de manutenção. O uso dessas classes permite ao desenvolvedor criar sistemas mais robustos, modulares e aderentes aos princípios da Programação Orientada a Objetos (POO).
Tendo como referência o tema classes concretas, classes abstratas e métodos abstratos, analise as afirmativas abaixo, assinalando V, para as Verdadeiras, e F, para as Falsas.
( ) As classes concretas atuam como modelos que definem um conjunto de características e comportamentos que suas subclasses devem seguir, sem estarem diretamente associadas a objetos.
( ) Superclasses abstratas obrigam suas subclasses a sobrescrever e implementar os métodos declarados como abstratos.
( ) Uma subclasse concreta deve fornecer implementações concretas de todos os métodos abstratos herdados da superclasse; caso contrário, será considerada abstrata também.
A sequência correta, de cima para baixo, é:
Provas
Considere as tabelas discentes e matriculas para responder às questões 19 e 20.

Considerando as tabelas discentes e matriculas e as diversas operações admitidas em consultas no padrão SQL, analise as afirmativas a seguir:
I. O script SELECT DISTINCT nome FROM discentes, matriculas WHERE discentes.ID = matriculas.ID AND ano BETWEEN 2020 AND 2023; retornará exatamente 2 registros: Catherine Lee e Grace Clark.
II. O script SELECT DISTINCT nome FROM discentes WHERE nome LIKE "%_a%"; retornará exatamente 2 registros: Catherine Lee e David Wilson.
III. O script SELECT departamento, COUNT(DISTINCT id) AS total FROM discentes NATURAL JOIN matriculas GROUP BY departamento; retornará 4 departamentos com seu respectivo número de discentes distintos matriculados em, pelo menos, uma disciplina.
IV. O script UPDATE discentes SET creditos = creditos + 10 WHERE creditos < (SELECT AVG(creditos) FROM discentes); atualizará o número de créditos de, exatamente, 5 discentes.
Estão corretas as afirmativas
Provas
A IBM desenvolveu a versão original da linguagem SQL, chamada inicialmente de Sequel, na década de 1970. Desde então, a SQL evoluiu e se tornou o padrão para bancos de dados relacionais. A linguagem SQL é composta por diferentes subconjuntos, cada um com comandos específicos para realizar várias operações.
Com base nesses subconjuntos, quais são as partes da linguagem SQL responsáveis, respectivamente, por modificar tuplas em uma relação e por criar esquemas de banco de dados?
Provas
Uma aplicação web foi desenvolvida utilizando Node.js com o framework Express. O objetivo é implementar um middleware simples de autenticação para proteger a rota /login. Este middleware verifica o cabeçalho Authorization das requisições HTTP, validando um token pré-definido. Além disso, o código inclui o tratamento de erros de autenticação e uma resposta padrão para rotas inexistentes.
Considere o seguinte trecho de código que implementa essa funcionalidade.
var express = require('express');
var app = express();
const auth = (req, res, next) => {
try {
const token = req.headers.authorization.split(' ')[1];
if (token !== 'XXX') {
throw new Error('ERROR!');
}
next();
}
catch (err) {
res.status(401).send({ message: 'Unauthorized' });
}
}
app.use('/login', auth);
app.post('/login', (req, res) => {
res.send('Hello World');
});
app.use((req, res) => {
res.status(404).send({ message: 'Not Found' });
});
app.listen(3000);
Com base no comportamento deste código, considere as seguintes requisições HTTP feitas ao servidor:
I. POST /login/auth HTTP/1.1
Authorization: Bearer XXX
II. GET /login HTTP/1.1
Authorization: XXX
III. POST /login HTTP/1.1
Authorization: Bearer XXX
IV. POST /login HTTP/1.1
Authorization: XXX
Dado o código apresentado, qual é o status de resposta esperado para cada uma das requisições listadas acima?
Provas
- Engenharia de SoftwareDefeitos, Erros e Falhas em Software
- FrameworksFrameworks JavascriptExpress.js
- FrameworksFrameworks JavascriptNode.js
- Qualidade de SoftwareBoas Práticas de Desenvolvimento
Em uma aplicação Node.js usando o framework Express, é possível criar middlewares para diferentes propósitos, como autenticação, manipulação de requisições, e registro de logs. Suponha que você tenha a seguinte função de middleware de autenticação que verifica se o usuário tem permissão para acessar uma rota específica com base no papel (role) associado ao usuário.
function authRoleMiddleware(role) {
return (req, res, next) => {
if (req.user.role !== role) {
return res.status(403).send('Access forbidden: Insufficient permissions');
}
next();
}
}
Este middleware é utilizado da seguinte forma para restringir o acesso de rotas a usuários com o papel de “admin”:
var express = require('express');
var app = express();
app.use('/admin', authRoleMiddleware('admin'));
app.get('/admin', (req, res) => {
res.send('Welcome, admin!');
});
app.listen(3000);
Considerando o funcionamento desse middleware, qual seria um problema que poderia surgir ao aplicá-lo em rotas que utilizam diferentes middlewares, e como esse problema pode ser resolvido?
Provas
Em uma aplicação Node.js usando o framework Express, existem três formas principais de capturar dados de uma requisição: req.body, req.params, e req.query. Cada uma dessas formas possui um uso específico. Considere o seguinte código que implementa uma rota de atualização de usuário.
var express = require('express');
var app = express();
app.put('/users/:id', (req, res) => {
const userId = req.params.id;
const userName = req.body.name;
const isActive = req.query.active;
if (!userId || !userName) {
return res.status(400).send('Missing required parameters.');
}
res.send(`
User ${userId} updated.
Name: ${userName},
Active: ${isActive}
`);
});
app.listen(3000);
Com base no código acima, qual das afirmativas abaixo descreve corretamente como os diferentes tipos de parâmetros devem ser usados para obter o comportamento esperado?
Provas
- Engenharia de SoftwareGerenciamento de Configuração de Software (SCM)Versionamento de Código e Artefatos
- FrameworksFrameworks JavascriptNode.js
O gerenciamento de pacotes em um projeto Node.js é facilitado pelo npm, que utiliza o arquivo package.json para armazenar informações sobre o projeto, dependências e scripts. O package.json é gerado automaticamente ao iniciar um novo projeto com o comando npm init.
Os scripts definidos na seção “scripts” do package.json permitem automatizar tarefas comuns, como a execução de testes, a construção de projetos e a inicialização do servidor. Esses scripts podem ser executados usando o comando npm run . Além disso, o npm permite a instalação de pacotes como dependências de produção ou de desenvolvimento.
Considerando o uso correto do npm e do arquivo package.json, analise as afirmativas a seguir:
I. O comando npm run é utilizado para executar scripts personalizados definidos na seção “scripts” do package.json, permitindo a automação de tarefas como testes e construção de projetos. O npm executa esses scripts em um ambiente isolado, onde as dependências do projeto são acessíveis.
II. O arquivo package.json é opcional em projetos pequenos, pois o npm pode gerenciar pacotes instalados globalmente sem a necessidade de um manifesto local.
III. Ao instalar um pacote com o comando npm install --save-dev , o pacote será adicionado à seção “devDependencies” do package.json, indicando que é uma dependência de desenvolvimento e não deve ser incluído em builds de produção.
IV. O diretório node_modules, onde os pacotes instalados pelo npm são armazenados, deve ser incluído no controle de versão para garantir que todas as dependências sejam restauradas em ambientes de desenvolvimento e produção.
Estão corretas apenas as afirmativas
Provas
- FrameworksFrameworks JavascriptExpress.js
- FrameworksFrameworks JavascriptNode.js
- Interoperabilidade e IntegraçãoAPIsREST e RESTful APIs
- WebProtocolo HTTP
Em uma aplicação Node.js com o framework Express, as rotas HTTP (POST, DELETE, GET, e PUT) são usadas para realizar diferentes operações com recursos. Seguindo as boas práticas de APIs REST, esses verbos representam ações coerentes com o padrão CRUD (Create, Read, Update, Delete), assegurando que a API siga padrões de design que promovem consistência, escalabilidade e legibilidade do código.
Agora, considere o seguinte trecho de código, onde um CRUD básico para produtos está implementado.
var express = require('express');
var app = express();
app.get('/products', (req, res) => {
// implementação da rota
});
app.post('/products', (req, res) => {
// implementação da rota
});
app.put('/products/:id', (req, res) => {
// implementação da rota
});
app.delete('/products/:id', (req, res) => {
// implementação da rota
});
app.listen(3000);
Com base no comportamento esperado das rotas HTTP em um CRUD para produtos, qual das afirmativas está INCORRETA?
Provas
Considere que o script PHP a seguir é executado em um servidor Web com PHP instalado e a extensão GD devidamente configurada. Considere ainda que, no diretório em que está o script em questão, existe um arquivo fonts/font.ttf que armazena um formato de fonte.

Com base no código em questão, é correto afirmar que
Provas
Considerando o suporte nativo da linguagem, analise o script em PHP que segue.
<?php $data = [ "nome" => "João", "idade" => 30, "habilidades" => ["PHP", "JavaScript", "SQL"], "ativo" => true, "saldo" => null ];
$json = json_encode($data, JSON_PRETTY_PRINT | JSON_UNESCAPED_UNICODE); echo $json; ?>
Qual das opções apresenta a saída do código acima?
Provas
Caderno Container