Questões de Noções de Informática - Software para Concurso
Foram encontradas 2.344 questões
Em linguagem de programação, uma “Estrutura de Controle” (fluxo de controle) é a ordenação da execução ou avaliação das instruções, expressões e chamadas de funções de um sistema de informação. Quando a execução de um programa inicia em uma instrução, em seguida passa para outra e assim por diante, até a finalização do programa, é chamada de Estrutura
Quando um computador é multiprogramado, ele tem múltiplos processos e threads que competem pela CPU ao mesmo tempo. Essa situação ocorre sempre que dois ou mais processos estão simultaneamente no estado pronto. Considere as características apresentadas de algoritmos de escalonamento:
I. a CPU é atribuída aos processos na ordem em que eles a requisitam, sendo que o processo pode executar por quanto tempo necessitar.
II. um intervalo de tempo, o quantum, é atribuído ao processo e define o tempo em que este processo poderá executar. Se, ao final do quantum, o processo ainda estiver executando, ele sofrerá preempção.
III. quando várias tarefas igualmente importantes estiverem postadas na fila de entrada, à espera de ser iniciadas, o escalonador escolhe a tarefa mais curta primeiro.
Os algoritmos de escalonamento que possuem as características apresentadas nos itens I, II e III, respectivamente, são:
Na linguagem VHDL existem alguns tipos de dados que são pré-definidos no pacote padrão Sobre este assunto (VHDL), avalie o acerto das afirmações adiante e marque com V as verdadeiras e com F as falsas.
( ) Os objetos devem ser declarados segundo uma especificação de tipo, sendo permitida a transferência de valores diferentes entre objetos de tipos diferentes.
( ) bit_vectore_string são exemplos de declarações de tipos compostos.
( ) Como os tipos escalares são ordenados, não podem ser aplicados os operadores: maior, menor.
( ) O tipo INTEGER representa um número inteiro de 32 bits e é recomendado limitar a faixa de valores na declaração.
Marque a opção que contenha a sequência CORRETA, de cima para baixo:
Criada no ano de 1995 e considerada padrão no ano de 1997, a linguagem JavaScript, inventada por Brendan Eich, é uma linguagem voltada para a programação web e interage muito bem com outra linguagem web, o HTML. Enquanto o HTML serve para definir o conteúdo das páginas, a função do JavaScript é programar o comportamento delas.
(W3SCHOOLS TUTORIALS. Disponível em: <https://www.w3schools.com/> . Acesso em: 22 mar. 2018, com adaptações)
Suponha que você foi incumbido de adicionar um código JavaScript em uma aplicação Web para que seja exibido um alerta para o usuário quando ele for fazer uma operação irreversível no sistema, como, por exemplo, excluir algum registro importante. Esse alerta só deverá desaparecer da tela do usuário quando ele clicar no botão “ok”, a fim de garantir que ele tenha visto a mensagem.
O cenário a ser analisado é o seguinte: o usuário deseja excluir a sua matrícula de cursos de capacitação nos quais fez inscrição. O primeiro passo, o de selecionar os cursos, o usuário já fez. Agora o sistema pede que o usuário clique no botão “Continuar para prosseguir com a exclusão”. A sua tarefa é fazer com que, ao clicar no botão “Continuar”, o usuário receba a seguinte mensagem: “Aviso: Essa é uma operação irreversível”. E só deixe de ver a mensagem após clicar em “OK”.
Qual é o código JavaScript coerente com a demanda que você recebeu e que atende a todos os requisitos mencionados?
Pilhas são as mais simples de todas as estruturas de dados, apesar de estar entre uma das mais importantes, na medida em que são usadas em uma gama de aplicações diferentes que incluem estruturas de dados muito mais sofisticadas. Uma pilha é uma coleção de objetos que são inseridos e retirados de acordo com o princípio de que “o último que entra é o primeiro que sai”.
Formalmente, uma pilha é um tipo abstrato de dados que suporta os seguintes métodos:
push(e) -> insere o objeto (e) no topo da pilha;
pop() -> remove o elemento que está no topo da
pilha e o retorna. Se a pilha estiver vazia retorna
um erro;
size( ) -> retorna o número de elementos da
pilha;
isEmpty( ) -> retorna um booleano indicando se
a pilha está vazia;
top() -> retorna o elemento que está no topo da
pilha sem retirá-lo. Se a pilha estiver vazia
retorna um erro.
Outra estrutura de dados fundamental é a fila. Ela é uma prima próxima da pilha, pois uma fila é uma coleção de objetos que são inseridos e removidos de acordo com o princípio de que “o primeiro que entra é o primeiro que sai”.
De maneira análoga à pilha, a fila também é um tipo abstrato de dados e suporta os seguintes métodos:
enqueue(e) -> insere o elemento (e) no fim da
fila;
dequeue() -> retira o elemento da frente da fila e
o retorna. Se a fila estiver vazia retorna um erro;
size() -> retorna o número de elementos na fila;
isEmpty() -> retorna um booleano indicando se
a fila está vazia;
front() -> retorna, mas não remove, o elemento
que está na frente da fila. Se a fila estiver vazia
retorna um erro;
(GOODRICH, M. T., Estruturas de Dados e Algoritmos em Java, 4 ed., Porto Alegre: Bookman, 2007, com adaptações).
As duas tabelas a seguir apresentam operações com pilhas e filas sendo executadas.
A primeira mostra uma série de operações de pilha e seus efeitos sobre uma pilha de números inteiros inicialmente vazia.
A segunda tabela mostra uma série de operações e seus efeitos sobre uma fila de números inteiros inicialmente vazia.
As operações são executadas na mesma ordem das linhas, ou seja, a operação da linha 02 foi executada depois da operação da linha 01, a operação da linha 03 foi executada depois da operação da linha 02 e assim sucessivamente até a linha final da tabela, que mostra a última operação executada.
Selecione, dentre as alternativas disponíveis, aquela que substitui corretamente os termos {?} em cada tabela, nas linhas indicadas. Atente-se para o fato de que existe três {?} em cada tabela.
O arquivo AndroidManifest.xml é gerado pelo IDE quando um projeto de aplicativo é criado. Esse arquivo contém muitas configurações que podem ser especificadas pelo desenvolvedor como o nome do aplicativo, o nome do pacote, o nome das atividades, etc. É possível editar o código XML desse arquivo para adicionar, por exemplo, uma nova configuração que obrigue o teclado virtual a ser exibido assim que o aplicativo iniciar ou especificar que o aplicativo aceita apenas a orientação retrato.
Veja um exemplo do conteúdo do arquivo AndroidManifest.xml:
asdasdasdasdadaFigura: conteúdo do arquivo AndroidManifest.xml
(DEITEL, P. J., Android 6 para programadores: uma abordagem baseada em aplicativos, 3 ed., Porto Alegre: Bookman, 2016, com adaptações)
Agora, considere as seguintes características que podem ser relacionadas a atributos mostrados no arquivo:
( ) é exibido abaixo do ícone do lançador e também na barra de aplicativo quando ele está executando;
( ) força uma orientação de tela no aplicativo;
( ) define se o backup dos dados do aplicativo deve ser feito automaticamente ou não pelo Android para que possam ser restaurados posteriormente no próprio dispositivo ou em um novo aparelho;
( ) inicia o aplicativo quando é tocado;
( ) é usado como identificador exclusivo do aplicativo no Google Play;
( ) força a exibição do teclado virtual ao iniciar o aplicativo;
( ) determina a aparência e o comportamento padrão das views;
Acerca do conteúdo do AndroidManifest.xml apresentado na figura em questão e considerando as características mencionadas, qual é a correspondência correta entre as linhas do arquivo e as características mencionadas, exatamente na ordem em que as características foram mencionadas?
Carolina é Analista de T.I. de uma grande Universidade e atua como Analista de Requisitos dos projetos desenvolvidos em seu setor, a Gerência de Sistemas. Em seu último trabalho ela precisou levantar os requisitos para o projeto de desenvolvimento do Sistema Acadêmico da instituição. Dentre as informações obtidas por Carolina, havia requisitos funcionais e não funcionais, conforme pode ser observado na lista a seguir:
1. O sistema precisa fornecer uma interface para que o aluno consulte as suas notas;
2. O sistema deve permitir que o aluno se matricule em disciplinas eletivas;
3. O sistema deve encerrar a sessão do aluno após detectar 30 minutos de inatividade;
4. O sistema deve impedir que um mesmo usuário acesse-o simultaneamente a partir de dois dispositivos diferentes;
5. O sistema deve possibilitar a alteração dos dados pessoais e de contato do aluno pela Secretaria Acadêmica;
6. O sistema deve trafegar os dados de usuário sobre um protocolo de rede seguro e criptografado;
7. O sistema precisa oferecer uma interface para o docente fazer o lançamento de notas e apontamento de presenças dos seus alunos;
8. O sistema deve ser integrado ao Sistema de Gestão de Pessoas da instituição para obter dele os dados de docentes e funcionários;
9. O sistema deve calcular o coeficiente de rendimento acadêmico do aluno com base na fórmula estabelecida pela Pró-Reitoria de Graduação;
10. O sistema precisa fornecer relatórios e lista de alunos por curso para o Departamento de Registro Acadêmico;
11. O sistema deve permitir que o Coordenador de Curso aprove o plano de estudos do aluno;
12. O sistema deve garantir que o processo de matrícula do aluno em disciplinas ocorra em no máximo 90 segundos.
Com base na lista de requisitos produzida por Carolina, aponte qual é a separação correta dos requisitos entre funcionais e não funcionais:
Processos de desenvolvimento rápido de software são projetados para criar software útil rapidamente. Geralmente eles são processos iterativos nos quais a especificação, o projeto, o desenvolvimento e o teste são intercalados. O software não é desenvolvido e disponibilizado integralmente, mas em uma série de incrementos, e cada incremento inclui uma nova funcionalidade do sistema. A Extreme Programing (XP) é talvez o mais conhecido e mais amplamente usado dos métodos ágeis.
(SOMMERVILLE, I., Engenharia de Software. 8 ed., São Paulo: Pearson, Prentice Hall, 2007, com adaptações).
Aqui estão alguns dos princípios (ou práticas) da Extreming Programing:
1. Todos os requisitos são expressos como cenários ou histórias do usuário;
2. Cada história é implementada como uma série de tarefas;
3. Os programadores desenvolvem testes para cada tarefa logo após a escrita do código;
4. Quando um novo código é integrado ao sistema, apenas o teste desse código é executado; 5. Há um pequeno espaço de tempo entre os releases do sistema.
Considerando esses princípios na ordem em que foram apresentados, escolha dentre as alternativas a seguir, quais indicam corretamente os princípios verdadeiros e falsos.
Como Analista de Tecnologia da Informação de uma Instituição de Ensino Superior, Amadeu foi designado para fazer a análise e o projeto de um software de Gestão Orçamentária para a sua instituição. O Departamento de Tecnologia da Informação da instituição onde Amadeu trabalha adota como ferramenta de análise e projeto de software a Linguagem Unificada de Modelagem – UML. No entanto, os diagramas UML que devem ser preparados variam de um projeto para outro. No caso do software de Gestão Orçamentária, a equipe de desenvolvimento chegou à conclusão de que será necessária a criação de seis diagramas, que atendam às seguintes necessidades:
1. mostrar os objetos e seus relacionamentos;
2. modelar as interações funcionais entre os usuários e o sistema;
3. mostrar as classes, as interfaces, as dependências e as generalizações;
4. descrever as interações entre os objetos ao longo do tempo;
5. representar as interações entre os objetos como séries de mensagens sequenciadas;
6. descrever as mudanças de estado de um objeto em relação a eventos externos;
Sabendo disso e conhecendo bem a função de cada diagrama disponível na linguagem UML, Amadeu deverá preparar um pacote contendo todos os diagramas definidos pela equipe de desenvolvimento.
Selecione, dentre as alternativas abaixo, aquela que representa fielmente o conteúdo do pacote a ser produzido por Amadeu:
Considere a classe Java OperacoesVetores demonstrada a seguir.
public class OperacoesVetores {
public static void main(String[] args) {
int[] v1 = new int[]{9,3,6,4,};
int[] v2 = new int[]{3,5,7,2,2,5};
int r1 = operacao (v1, v2);
}
public static int operacao1(int[] vetorA, int[] vetor B) {
int tam;
tam = vetorA.length < vetorB. length ? vetorA.length : vetorB.length;
int som = 0;
int i = 0;
while (i<tam) {
som += vetorA[i] + vetorB[i];
i++;
}
int[] vetorTemp;
vetorTemp = vetorA.length == tam ? vetorB : vetorA;
int mult = 0;
for (int j = i ; j< vetorTemp.length; j++) {
mult += vetorTemp[j];
}
return som * mult;
}
}
Ao final de sua execução, o valor da variável r1 será:
Para desenvolver um sistema que possa ser acessado a partir de um navegador utilizando-se a internet, um desenvolvedor pode utilizar tecnologias como PHP, HTML, CSS e JavaScript.
Qual informação está adequada sobre a execução de uma página dinâmica construída utilizando-se essas tecnologias?
Édson Roberto Gaseta define Governança de Tecnologia da Informação (TI) em sua obra “Fundamentos de Governança de TI” como “uma estrutura de relacionamento e processos para dirigir e controlar uma organização, a fim de atingir os objetivos corporativos, adicionando valor ao negócio e equilibrando os riscos em relação ao retorno do investimento em TI e seus processos”. José, responsável pelo setor de governança de TI de uma instituição federal de ensino superior, resolveu explicar os principais conceitos de Governança de TI a um novo servidor da área. Em qual afirmação José cometeu um equívoco?
Com relação à programação estruturada e programação orientada a objetos, a opção INCORRETA é:
Julgue os itens que se seguem acerca de métodos ágeis:
I. Métodos ágeis são métodos de desenvolvimento incremental que se concentram em desenvolvimento rápido, releases frequentes do software, redução de overheads dos processos e produção de códigos de alta qualidade.
II. Extreme Programming é um método ágil, bem conhecido, que integra um conjunto de boas práticas de programação, como: melhorias contínuas do software e participação do cliente na equipe de desenvolvimento.
III. O método Scrum é uma metodologia ágil que fornece um framework de gerenciamento de projetos. É centralizado em torno de um conjunto de sprints, que são períodos determinados de tempo, quando um incremento de sistema é desenvolvido. O planejamento é baseado na priorização de um backlog de trabalho e na seleção das tarefas mais importantes para um sprint.
Diante das afirmativas citadas acima, é correto afirmar que:
Em relação aos papéis do SCRUM, aquele que é ponto central, que possui poderes de liderança, definindo as metas e recursos que serão construídos e qual a ordem a ser seguida é:
Uma empresa de software, na área de desenvolvimento, conta com uma equipe de 15 pessoas, das quais 10 são responsáveis por desenvolver sistemas e 5 são responsáveis por testá-los. O gerente de projetos, identificando uma grande demanda de serviço, decidiu que as equipes seriam subdividas para que os prazos estabelecidos fossem cumpridos. Assim sendo, quantas equipes de 5 pessoas podem ser formadas com 3 desenvolvedores e 2 testers?
No que se refere testes de software, é correto afirmar que:
Refere-se à capacidade de duas ou mais classes de objetos responderem à mesma mensagem, cada qual de seu próprio modo. O processo de abstração acima citado é conhecido por:
Sobre a arquitetura MVC, marque V(verdadeiro) ou F(Falso).
( ) A entrada do usuário e a verificação de dados estão presentes na camada View.
( ) Permite organizar o projeto em componentes, separando a lógica de negócio, da lógica de apresentação.
( ) A camada model recebe a requisição e retorna um resultado para ser apresentado na camada view.
( ) Controller é a camada que contém a lógica da aplicação, é responsável pelas regras de negócio, para sistemas persistentes, e também representa a informação (dados) dos formulários e as regras SQL para manipular dados do banco.
A alternativa correta é: