Questões de Concurso
Para analista de sistemas
Foram encontradas 15.593 questões
Resolva questões gratuitamente!
Junte-se a mais de 4 milhões de concurseiros!
Considere a seguinte função recursiva que calcula o n-ésimo número de Fibonacci.
public long fibonacci(int n) {
if (n <= 1) {
return n;
} else {
return fibonacci(n - 1) + fibonacci(n - 2);
}
}
Agora, imagine que você deseja calcular o 50º número de Fibonacci usando essa função. No entanto, ao executar o código, ele levará muito tempo para concluir. Por que o cálculo do 50º número de Fibonacci usando essa função recursiva levará tanto tempo?
iReports é uma ferramenta de geração de relatórios de código aberto e gratuita, baseada em Java. Ela permite que desenvolvedores criem relatórios personalizados para aplicações web e desktop. iReports é uma ferramenta poderosa e flexível que pode ser usada para criar uma variedade de relatórios, desde os simples até os complexos.
A função do arquivo .jrxml em iReports é
A mudança é inevitável em todos os grandes projetos de software. Os requisitos do sistema mudam, ao mesmo tempo que o negócio que adquiriu o sistema responde a pressões externas e mudam as prioridades de gerenciamento. Com a disponibilidade de novas tecnologias, emergem novos projetos e possibilidades de implementação. Portanto, qualquer que seja o modelo de processo de software, é essencial que possa acomodar mudanças no software em desenvolvimento.
SOMMERVILLE, Ian. Engenharia de Software. São Palo, SP, Brasil, 2011.
Processos que trabalham as mudanças no software e no requisito do software são:
Sobre as definições de Engenharia de Software, analise as afirmativas a seguir.
I. É a aplicação de uma abordagem sistemática, disciplinada e quantificável no desenvolvimento, na operação e na manutenção de software.
II. Abrange um processo, um conjunto de métodos (práticas) e um leque de ferramentas que possibilitam aos profissionais desenvolverem software de altíssima qualidade.
III. É uma disciplina cujo objetivo é produzir software isento de falhas, entregue no prazo e orçamento previstos e que atenda às necessidades do cliente. Além disso, o software deve ser fácil de ser modificado quando as necessidades do usuário mudarem.
IV. É uma disciplina de engenharia que se preocupa com todos os aspectos da produção de um software.
Esse software não é apenas um programa, ele inclui também a documentação. É correto o que se afirma em
SQL é uma linguagem de consulta estruturada para banco de dados relacional. É uma linguagem de alto nível que é independente da plataforma e do sistema operacional. SQL é usado para acessar, manipular e gerenciar dados em bancos de dados relacionais.
Com base na SQL, analise o código a seguir.
SELECT p.nome, c.nome
FROM produtos p
JOIN categorias c ON p.categoria_id = c.id
WHERE c.nome = ‘Eletrônicos’;
A partir do código, examine as assertivas a seguir.
I. A cláusula SELECT especifica as colunas que serão retornadas. Nesse caso, as colunas nome do produto e nome da categoria serão retornadas.
II. A cláusula JOIN especifica como as tabelas serão relacionadas. Nesse caso, as tabelas serão relacionadas pela coluna categoria_id, que é uma chave estrangeira na tabela produtos e uma chave primária na tabela categorias.
III. A cláusula WHERE especifica uma condição que deve ser satisfeita pelas linhas retornadas. Nesse caso, a condição é que o nome da categoria deve ser igual a “Eletrônicos”.
Está correto o que se afirma em
As principais linguagens orientadas a documentos são:
• JSON (JavaScript Object Notation): é uma linguagem de troca de dados leve e de fácil leitura e escrita. É baseada em chaves e valores e é frequentemente usada para transmitir dados entre sistemas;
• XML (Extensible Markup Language): é uma linguagem de marcação que permite a descrição de dados de forma estruturada. É frequentemente usada para armazenar dados em bancos de dados relacionais;
• YAML (YAML Ain’t Markup Language): é uma linguagem de configuração e serialização que é leve e fácil de ler. É frequentemente usada para armazenar dados em arquivos de configuração.
Linguagens orientadas a documentos são úteis para armazenar dados de forma flexível e eficiente. Elas são frequentemente usadas para aplicações de armazenamento de dados, como bancos de dados NoSQL, sistemas de gerenciamento de conteúdo e aplicações Web.
Sobre essas linguagens, analise as seguintes assertivas a respeito de como elas podem ser utilizadas.
I. Armazenar dados de produtos em um banco de dados NoSQL: os dados de um produto, como nome, descrição, preço e imagem, podem ser armazenados em um documento JSON.
II. Gerenciar um sistema de gerenciamento de conteúdo: um sistema de gerenciamento de conteúdo pode usar um documento YAML para armazenar a configuração do sistema.
III. Criar uma aplicação web: uma aplicação web pode usar um documento JSON para armazenar os dados do usuário.
É correto o que se afirma em
Considere as seguintes afirmações sobre os fundamentos da programação orientada a objetos.
I. A classe é uma estrutura de dados que representa um objeto do mundo real.
II. O método é um bloco de código que pode ser executado por um objeto.
III. A herança é um mecanismo que permite que uma classe herde os atributos e os métodos de outra classe.
IV. O polimorfismo é um mecanismo que permite que objetos de diferentes classes respondam a uma mesma mensagem de forma diferente.
É correto apenas o que afirma em
A sobrecarga de métodos pode ser usada em uma ampla variedade de situações. Alguns exemplos de sobrecarga de métodos incluem:
• métodos para realizar operações matemáticas com diferentes tipos de dados;
• métodos para formatar dados de diferentes maneiras;
• métodos para manipular coleções de objetos de diferentes tipos.
A sobrecarga de métodos é um recurso útil que pode ser usado para melhorar a qualidade do código orientado a objetos. Ela permite que os desenvolvedores criem métodos com nomes intuitivos e fáceis de lembrar, sem se preocupar com a duplicação de código.
Entre as alternativas, qual é a definição correta de sobrecarga de métodos em Java?
A ISO 9000 define processo como “um conjunto de atividades inter-relacionadas ou interativas, que transformam entradas em saídas”. Já́ o BPMN (Business Process Modeling Notation) propõe as seguintes definições:
• atividade: termo genérico para o trabalho desempenhado pela empresa. Processos, subprocessos e tarefas são tipos de atividades;
• tarefa: é uma atividade atômica incluída num processo. No modelo de processos, a tarefa é o desdobramento máximo do trabalho executado no processo; • processo: qualquer atividade desempenhada no interior da organização. No modelo de processos, é retratada como uma rede constituída por outras atividades em fluxo e por seus respectivos controles de sequenciamento (eventos e junções). Um processo de negócio contém um ou mais processos;
• evento: algo que “acontece” no curso do processo de negócio, influenciando seu fluxo. Há o evento inicial, o evento final e eventos intermediários.
VALLE, Rogerio; OLIVEIRA, Saulo Barbará de. Análise e modelagem de processos de negócio: foco na notação BPMN (Business Process Modeling Notation). Grupo GEN, 2013.
Sobre essas definições, analise as afirmativas a seguir.
I. As tarefas podem ser desdobradas em várias atividades para melhor organização do processo.
II. Um processo de negócio é basicamente constituído de várias atividades e seus eventos.
III. Os processos de negócio só podem ser modelados utilizando eventos.
É correto o que se afirma em
Conside o seguinte código em Java.
Scanner scanner = new Scanner(System.in);
System.out.print(“Digite seu nome: “);
String nome = scanner.nextLine();
System.out.print(“Digite sua idade: “);
int idade = scanner.nextInt();
System.out.println(“Nome: “ + nome);
System.out.println(“Idade: “ + idade);
scanner.close();
A respeito de comandos de entrada e saída, pode-se afirmar que
Quando aprendeu a contar, o homem foi obrigado a desenvolver símbolos que representassem as quantidades e as grandezas que ele queria utilizar. Esses símbolos, os algarismos, constituem a base dos sistemas de numeração.
WEBER, Raul F. Fundamentos de arquitetura de computadores UFRGS. V.8. Grupo A, 2012.
A respeito das regras utilizadas nos sistemas de numeração, analise as afirmações a seguir.
I. A base B de um sistema é igual à quantidade de algarismos distintos utilizados. Para a base decimal, tem-se dez algarismos distintos (de 0 a 9).
II. Quando uma posição é ocupada pelo maior algarismo e ela deve ser aumentada de uma unidade, essa posição recebe o símbolo nulo, e a posição seguinte deve ser aumentada de uma unidade. Assim, 9+1=10, 19+1=20, 99+1=100, 1999+1=2000.
III. O algarismo mais à direita (denominado de dígito menos significativo) tem peso um. O algarismo imediatamente à esquerda tem o peso da base B, o seguinte à esquerda tem peso de B ao quadrado, depois B ao cubo, e assim por diante.
IV. O valor de cada algarismo de um número é determinado multiplicando-se o algarismo pelo peso de sua posição.
V. O valor de um número é determinado pela soma dos valores de cada algarismo.
É correto o que se afirma em
Os testes de condições desempenham um papel crucial na programação, possibilitando que os programas efetuem escolhas e ações com base em circunstâncias específicas. Essas estruturas condicionais permitem o controle do fluxo de execução do código, contribuindo para a criação de lógica, interatividade e automação em aplicações de software. Assim, a compreensão e o domínio dos testes de condições representam competências essenciais para os programadores no contexto acadêmico e profissional.
Levando em consideração os testes de condições, pode-se afirmar que
A tecnologia Java tem especificações muito bem definidas para implementação de uma das principais características de uma linguagem de programação orientada a objetos, chamada polimorfismo. A respeito de polimorfismo em orientação a objetos com Java, analise as assertivas a seguir.
I. A utilização de herança com a implementação de sobrescrita de método pode ser uma técnica utilizada para implementar polimorfismo em Java.
II. Sobrecarga de método é uma técnica para redefinir métodos de classes pai para que possamos utilizar polimorfismo em Java.
III. A definição de interfaces e classes que implementam essas interfaces é uma das principais técnicas para a implementação de polimorfismo em Java.
É correto o que se afirma em
Transformar informações em códigos únicos, acelerando o acesso a dados em estruturas como tabelas é a função da técnica chamada hashing. Ela é uma técnica fundamental na programação que permite armazenar e recuperar dados de forma eficiente. O entendimento do hashing é essencial para otimizar algoritmos e melhorar o desempenho de muitas aplicações.
Sobre essa técnica, analise as assertivas a seguir.
I. Hashing serve para comprimir dados para economizar espaço de armazenamento.
II. Acelerar o acesso a dados, tornando-o mais eficiente, é o principal objetivo da técnica hashing.
III. Transformar texto legível em código binário, entendível pelo computador, é um dos objetivos da técnica hashing.
É correto o que se afirma apenas em
Os tipos de dados são essenciais na programação, determinando como os valores são armazenados e manipulados. Eles definem os conjuntos de valores e as operações possíveis, desempenhando um papel fundamental na comunicação entre programadores e computadores. Entender os tipos de dados é crucial para criar programas funcionais e robustos.
Sobre os tipos de dados, analise as assertivas a seguir.
I. Tipos inteiros armazenam valores que pertencem ao conjunto dos números naturais, sem a parte fracionária.
II. Tipos numéricos com a parte fracionária são definidos como reais.
III. Tipos caracteres permitem armazenar um único caractere.
É correto o que se afirma em
Na era digital, os softwares desempenham um papel fundamental em nossas vidas, desde tarefas cotidianas até aplicações empresariais complexas. Para entender melhor o mundo dos softwares, é importante distinguir entre software básico e aplicativos. Qual das seguintes opções é um exemplo de software básico?
A linguagem de modelagem unificada (UML, do inglês unified modeling language) é “uma linguagem-padrão para descrever/documentar projeto de software. A UML pode ser usada para visualizar, especificar, construir e documentar os artefatos de um sistema de software intensivo”.
PRESSMAN, Roger S.; MAXIM, Bruce R. Engenharia de software. Grupo A, 2021.
A UML 2.5.1 fornece especificação para 13 diagramas. A partir disso, analise as definições a seguir.
I. Um diagrama de classe fornece uma visão estática ou estrutural do sistema. Ele não mostra a natureza dinâmica das comunicações entre os objetos das classes no diagrama.
II. Um diagrama UML de caso de uso é uma visão geral de todos os casos de uso e de como eles estão relacionados. Fornece uma visão geral da funcionalidade do sistema.
III. O diagrama de sequência é utilizado para indicar as comunicações dinâmicas entre objetos durante a execução de uma tarefa. Ele mostra a ordem temporal em que as mensagens são enviadas entre os objetos para executar aquela tarefa.
IV. O diagrama de atividade UML (conhecido como “diagrama de colaboração” na UML 1.X) fornece outra indicação da ordem temporal das comunicações, mas dá ênfase às relações entre os objetos e as classes em vez da ordem temporal.
É correto o que se afirma em