As linguagens de programação são ferramentas essenciais no desenvolvimento de software, e cada uma é projetada com características específicas que determinam sua utilização e funcionalidade. Existem várias categorias de linguagens de programação, como linguagens de baixo e alto nível, linguagens compiladas e interpretadas, e linguagens orientadas a objetos, funcionais e procedurais. A escolha da linguagem adequada depende do tipo de aplicação a ser desenvolvida, desempenho necessário e facilidade de manutenção do código, influenciando diretamente na produtividade e na eficiência dos desenvolvedores.Com relação a este contexto, analise as asserções a seguir e a relação proposta entre elas:I. As linguagens de programação de alto nível são projetadas para serem mais compreensíveis.PORQUEII. As linguagens de alto nível utilizam uma sintaxe mais próxima da linguagem humana, facilitando a escrita e a leitura do códigoA respeito dessas asserções, assinale a alternativa correta.
Em uma empresa de tecnologia, a equipe de desenvolvimento está trabalhando em um sistema de gerenciamento de dados que exige alta eficiência na busca, inserção e remoção de informações. Para atender a essas demandas, eles decidem implementar uma estrutura de dados de árvore AVL, conhecida por sua capacidade de manter os dados balanceados e garantir operações eficientes. Com base no cenário e no conhecimento sobre árvores AVL (Adelson-Velsky e Landis), avalie as seguintes afirmativas:I. Em uma árvore AVL, a diferença de altura entre as subárvores de qualquer nó não é maior do que um, assegurando um balanceamento eficiente.II. As árvores AVL requerem reequilíbrio por meio de rotações após cada inserção ou remoção, o que é essencial para a eficiência do sistema de gerenciamento de dados.III. Na implementação da árvore AVL neste sistema, a inserção de um novo nó sempre resultará em uma árvore desbalanceada, demandando ajustes complexos.IV. Para a equipe, uma árvore AVL, sendo uma forma especial de árvore binária de busca, elimina a necessidade de manter a ordenação dos nós, simplificando o processo.Assinale a opção correta:
A implementação de algoritmos de busca em grafos requer uma compreensão detalhada das estruturas de dados e dos passos envolvidos no processo. Na busca em largura (BFS), utilizamos uma fila para garantir que todos os vértices a uma determinada distância sejam visitados antes de se aprofundar mais no grafo. A correta marcação dos vértices é essencial para evitar a visitação redundante e loops infinitos.Durante a execução de uma busca em largura (BFS), é correto apontar que o principal propósito de utilizar uma fila é de:
No departamento de Ciência da Computação de certa Universidade, um professor está dando uma aula introdutória sobre teoria dos grafos. Ele explica que um grafo é uma estrutura composta por [preencher 1] e [preencher 2] que representam, respectivamente, os elementos e as conexões entre esses elementos.Identifique essas duas componentes fundamentais do grafo e complete as lacunas com as palavras apropriadas e assinale a alternativa correta:
Uma empresa de desenvolvimento de software, a equipe de engenheiros de software está trabalhando em um novo projeto de banco de dados. Eles estão implementando uma estrutura de árvore binária para otimizar as operações de busca e inserção. O líder do projeto, para reforçar o entendimento da equipe sobre árvores binárias, propõe uma questão para preencher lacunas sobre suas características fundamentais:"Em uma árvore binária, cada nó tem no máximo [preencher 1] filhos. Uma das principais vantagens dessa estrutura é a sua eficiência na realização de [preencher 2] de dados."Escolha as palavras que preenchem corretamente as lacunas:
As tabelas hash são estruturas de dados que utilizam uma função hash para mapear chaves a índices em uma tabela. Isso permite um acesso rápido aos dados. No entanto, um dos desafios no uso de tabelas hash é lidar com colisões, que ocorrem quando duas chaves diferentes são mapeadas para o mesmo índice.Assinale a alternativa que compreende uma vantagem do uso de tabelas hash em relação a outras estruturas de dados.
Ao explorar as diferentes formas de organização de dados em memória na programação, um tópico importante são as listas encadeadas. Estas listas oferecem uma maneira flexível de armazenar dados. Considere as afirmações a seguir sobre listas encadeadas e identifique qual delas é correta:
A pilha é uma das estruturas de dados mais simples que existe, ela permite o acesso aos seus elementos somente a partir do topo, ou seja, quando o elemento entra na pilha, ele passa a ser o canal para manipulação dos dados por ser o único acesso. Isso significa que a retirada de elementos acontece inversamente à forma de como foram colocados, ou seja, o primeiro a sair é o último elemento que entrou na pilha.Com relação às verificações necessárias para inserções e remoções na pilha, observe as afirmativas a seguir:A função isEmpty verifica se a pilha está vazia e retorna verdadeiro se positivo. Caso contrário, é preciso encontrar o último elemento com um ponteiro e verificar se aponta para NULL, indicando ser o último elemento.
A função lógica isFull verifica se a pilha está cheia, ou seja, confere se o tamanho do vetor menos 1 é igual ao topo. Em caso positivo, ela retorna verdadeiro e impede que um novo elemento seja inserido na pilha.
O método push adiciona elementos sempre no topo da pilha e requer a função lógica isFull que, ao retornar verdadeiro indica que não existe mais espaço para armazenar elementos na pilha.Está correto o que se afirma em:
Em uma aula sobre estruturas de dados avançadas, um grupo de estudantes de Ciência da Computação está projetando um sistema de gerenciamento de inventário utilizando tabelas hash. Para tratar as colisões inerentes ao uso de tabelas hash, eles decidem implementar o método de encadeamento. Leia as seguintes afirmações sobre o tratamento de colisões por encadeamento em tabelas hash:I. O encadeamento resolve colisões mantendo uma lista separada para cada índice da tabela hash.
II. No encadeamento, uma colisão resulta na substituição do elemento já existente no índice hash.III. O encadeamento permite que múltiplos elementos sejam armazenados em um único índice da tabela hash.IV. Uma vantagem do encadeamento é a simplicidade de implementação, mas pode sofrer com a eficiência quando há muitas colisões.Assinale a opção correta:
No âmbito de sistemas de banco de dados, o que se observa é que, no modelo relacional formal, uma relação se define com um conjunto de tuplas, sendo que duas tuplas não podem apresentar igual combinação de valores para todos os atributos. Algumas condições adicionais se impõem, por exemplo, a necessidade de cada relação ter ao menos uma superchave-padrão.A esse respeito, analise as asserções a seguir e a relação proposta entre elas.I. Chave e superchave são conceitos distintos, ainda que associados — por exemplo, pela constatação de que uma chave satisfaz a propriedade de ser uma superchave mínima, da qual se pode remover qualquer atributo e, ainda, manter uma restrição de exclusividade.PORQUEII. Uma superchave também é uma chave, embora não se possa afirmar o mesmo da condição contrária, pois jamais uma chave poderia ser assumida como uma superchave, sob qualquer circunstância.
Avaliando as asserções, conclui-se que:
O modelo de dados orientado a objetos pode ser considerado uma extensão do paradigma orientado a objetos. Ele compartilha essencialmente os mesmos conceitos. Afinal, o paradigma orientado a objetos visa construir aplicações a partir de objetos abstraídos da realidade, com a devida associação de dados e comportamentos. Esses objetos têm atributos, entendidos como as propriedades que apresentam valores que descrevem o objeto, e métodos, que são as especificações objetivas do comportamento dos objetos. O modelo orientado a objetos também carrega outras características de suma importância, incluindo o encapsulamento, as mensagens, a herança e o polimorfismo.Sobre a temática, avalie as asserções a seguir e a relação proposta entre elas.I. Polimorfismo é a capacidade de criar uma nova classe a partir de outra.PORQUE
II. Em contrapartida herança é a capacidade de aplicar diferentes implementações para métodos com igual assinatura em diferentes classes.
A respeito das asserções, assinale a alternativa correta:
Quando é utilizado o comando select em linguagem SQL (Structured Query Language ou, em uma tradução livre, Linguagem de Consulta Estruturada), é possível fazer algumas consultas combinadas. Determinada cláusula permite que sejam combinados dados de duas ou mais tabelas em um elementar comando select. Essa cláusula possibilita a junção de dados que seguiram para entidades ou de tabelas separadas a partir da adoção do modelo relacional.Assinale a alternativa correta que contenha um texto ou palavra que esteja associado ao conceito apresentado no contexto acima:
Quando se usa o comando select em linguagem SQL (Structured Query Language ou, em uma tradução livre, Linguagem de Consulta Estruturada), determinada cláusula permite a criação de um filtro que define o conjunto de registros a serem recuperados. A condição é sempre satisfeita mediante uma operação lógica (portanto, booleana). De fato, há diversas possibilidades de condições que podem ser determinadas nessa cláusula em específico.Assinale a alternativa correta que corresponda a cláusula pertinente ao contexto apresentando acima:
No âmbito de banco de dados, denomina-se “índice” a estrutura de acesso auxiliar que é empregada para agilizar a recuperação de registros como resposta a determinadas condições de consulta. Com efeito, os índices são, indiscutivelmente, uma das ferramentas de otimização mais difundidas e de amplo uso por parte dos desenvolvedores de bancos de dados.Com base nas informações apresentadas, identifique se as afirmativas a seguir são (V) verdadeiras ou (F) falsas.Índices devem abranger campos sujeitos a pesquisas frequentes.
Índices são de especial predileção junto a colunas com valores binários.
Existem outras cláusulas além da UNIQUE para serem atribuídas ao índice.Assinale a alternativa que apresenta a sequência correta:
Lançado no mercado em 1989, esse excepcional banco de dados open source suporta SQL e se mostra multiplataforma, rodando muito bem não apenas no Windows mas em FreeBSD, HP-UX, Linux, NetBSD, OpenBSD, OS X, Solaris e Unix. É considerado bastante robusto, sendo de especial predileção para uso em sistemas que reúnem grande quantidade de registros, tendo sido um dos primeiros open source a implementar UTF-8 (um tipo de codificação binária de comprimento variável que se transformou na codificação de caracteres mais usual da World Wide Web).
Assinale a designação correta do banco de dados em questão:
No mapeamento MER para relacional, é preciso, primeiramente, escolher uma abordagem. O que se vê, na prática, é que a mais comum delas é a da chave _______. De toda forma, é preciso saber que existem alternativas, como a abordagem da relação _______ e a abordagem da referência _______, também denominada, muitas vezes, como relação de relacionamento.Preencha as lacunas escolhendo a alternativa correta:
No campo da TI, é importante que se conheça a definição correta dos termos e das expressões técnicas que são comumente empregados, fazendo com que o profissional possa ser mais assertivo nas comunicações no dia a dia. Um desses conceitos corresponde à identificação de um nome do banco de dados. A especificação ocorre durante o projeto do banco de dados, que pode englobar várias estruturas de tabelas.Assinale a designação correta do conceito em questão:
Ao longo das décadas, as arquiteturas de computadores passaram por diversas inovações tecnológicas que impactaram significativamente sua organização e desempenho. É importante entender como essas inovações moldaram os computadores que utilizamos hoje.Analise as seguintes afirmações sobre a evolução das arquiteturas de computadores e selecione a alternativa correta que relaciona uma inovação tecnológica ao seu impacto.
No processo de tradução de linguagens de alto nível para linguagem de máquina, utiliza-se uma série de passos intermediários que envolvem compiladores, montadores e ligadores. Compreender essas etapas é essencial para entender como o código escrito em linguagens como C ou Java é transformado em instruções executáveis pela CPU.Identifique a sequência correta de tradução de um programa em linguagem C até sua execução pela CPU, considerando as etapas de compilação, montagem e ligação.
Linguagens de montagem (assembly) e linguagens de máquina são essenciais para o funcionamento dos sistemas computacionais. A linguagem de montagem usa mnemônicos e é convertida em linguagem de máquina, composta por instruções binárias executáveis pelo processador. A linguagem de montagem facilita a programação de baixo nível, permitindo acesso a recursos específicos do hardware, enquanto a linguagem de máquina está estreitamente ligada à arquitetura do computador.Neste contexto, assinale a alternativa que descreve uma vantagem da linguagem de montagem sobre a linguagem de alto nível em sistemas embarcados.
Em um programa na linguagem C, estruturas (structs) são usadas para agrupar variáveis de diferentes tipos em um único tipo de dado, enquanto typedef facilita a criação de novos nomes para esses tipos de dados complexos. Essa combinação permite a definição clara e reutilizável de dados, melhorando a organização e manutenção do código.Considere um programa que utiliza uma estrutura para representar uma pessoa com os campos nome (string de 30 caracteres) e idade (inteiro) e assinale qual das opções abaixo aplica a definição correta da estrutura e seu uso com typedef para simplificar a criação de variáveis desse tipo.
Existem dois tipos principais de arquiteturas para sistemas de computação paralela: multiprocessadores e multicomputadores. Nos [preencher 1], as CPUs compartilham um único espaço de endereço virtual mapeado para uma memória comum, permitindo um/uma [preencher 2] mais eficiente entre as CPUs. Em contraste, no/nos [preencher 3], cada CPU possui sua própria memória privada, sendo necessário um meio de comunicação para troca de informações.Os termos [preencher 1], [preencher 2] e [preencher 3] são corretamente substituídos por:
A política de substituição de páginas é essencial para o gerenciamento eficiente da memória. Nela temos que o conjunto de trabalho de um programa deve ser mantido na memória para reduzir faltas de página. Diferentes políticas de substituição, como FIFO (First In, First Out), LRU (Least Recently Used) e a política ideal, são usadas para determinar qual página remover.Nesse contexto sobre políticas de substituição de páginas, observe as seguintes afirmativas:O conjunto de trabalho de um programa inclui todas as páginas do programa, independentemente de serem usadas ativamente ou não.
O sistema operacional deve prever qual página na memória é a menos útil e removê-la para abrir espaço para a nova página.
A escolha aleatória de uma página para remover é uma prática comum em sistemas operacionais modernos.
A política de substituição ideal remove a página cuja próxima referência prevista está mais distante no futuro.É correto o que se afirma em:
As memórias dos computadores têm diversas características importantes que influenciam seu funcionamento e desempenho. Dentre essas características, estão a capacidade de armazenamento, o tempo de acesso e o custo. Compreender como essas características interagem pode ajudar na escolha adequada de memória para diferentes aplicações.Assinale a alternativa que identifica a principal relação entre tempo de acesso e custo nas memórias dos computadores.
Durante uma discussão sobre arquiteturas de computadores, o professor pediu aos estudantes que explicassem como o modelo de Von Neumann processa dados e instruções. Ele forneceu um exemplo onde o computador deve executar uma série de operações aritméticas e lógicas. Selecione a alternativa que explica corretamente como o modelo de Von Neumann processa dados e instruções.
A história da internet no Brasil é marcada por importantes iniciativas que contribuíram para a expansão e democratização do acesso à tecnologia. Instituições acadêmicas e não acadêmicas tiveram papéis fundamentais neste processo, interligando redes e criando serviços que permitiram o acesso a informações e a comunicação entre diferentes grupos e comunidades. Conhecer esses marcos históricos é essencial para entender como a internet se desenvolveu no país.Sobre a história inicial da internet no Brasil, avalie as afirmativas a seguir:O primeiro acesso à internet no Brasil ocorreu no Laboratório Nacional de Computação Científica (LNCC), através de uma conexão com a Universidade de Maryland em 1988.II. A Fapesp foi a segunda instituição no Brasil a conectar-se à Bitnet, estabelecendo uma conexão com o Fermilab em Chicago.III. A rede ANSP foi criada pela Fapesp para interligar diversas universidades no estado de São Paulo, como a USP e a Unicamp.IV. A Universidade Federal do Rio de Janeiro (UFRJ) foi o primeiro ponto de acesso à internet no Rio de Janeiro, conectando-se à Bitnet através da UCLA.V. O Ibase foi fundamental na promoção da democratização do acesso à internet no Brasil, especialmente por meio do serviço Alternex.Está correto o que se afirma em:
A Google Cloud Platform (GCP) oferece uma infraestrutura poderosa e distribuída globalmente para hospedar e escalar aplicações web, proporcionando velocidade, localização e capacidade de processamento de dados em larga escala. Essas características são essenciais para garantir o desempenho e a disponibilidade das aplicações em uma escala global.Neste contexto, qual das seguintes alternativas melhor descreve uma característica fundamental da infraestrutura da Google Cloud Platform?
Iniciar com o Docker envolve uma série de passos fundamentais que introduzem os usuários à criação, gerenciamento e implantação de container. A instalação do Docker, o entendimento de imagens e containers, e a execução de um container Docker básico são etapas essenciais para começar a explorar as vantagens da conteinerização em projetos de desenvolvimento.Qual das seguintes opções descreve corretamente um passo inicial ao utilizar o Docker?
Arquiteturas de software podem variar grandemente em complexidade e funcionalidade. Uma arquitetura monolítica, comumente utilizada em sistemas mais antigos, encapsula todas as operações do sistema em um único e indistinto conjunto. Este modelo suporta diversos tipos de clientes, como mobile e desktop, e pode integrar com outras aplicações usando REST ou SOAP. Embora esta abordagem ofereça um desenvolvimento inicial rápido e seja mais simples de aprender e gerenciar inicialmente, ela também tem desvantagens significativas.Considere as características e implicações do uso de uma arquitetura de software monolítica. Qual das seguintes opções é uma desvantagem dessa arquitetura?
A arquitetura de três esquemas em sistemas de gerenciamento de banco de dados (SGBDs) é fundamental para garantir a eficiência e segurança no manejo dos dados. Esta arquitetura divide a estrutura do banco de dados em três níveis distintos: o esquema interno, que lida com a armazenagem física dos dados; o esquema conceitual, que define a estrutura lógica de toda a base de dados; e o esquema externo, que proporciona várias visões personalizadas dos dados para diferentes usuários. Esta estruturação é projetada para isolar os usuários das complexidades físicas da armazenagem de dados, ao mesmo tempo em que oferece uma visão mais intuitiva e adaptada às suas necessidades específicas.Neste sentido, qual é o principal objetivo da implementação da arquitetura de três esquemas em SGBDs?