Prévia do material em texto
<p>LINGUAGENS DE PROGRAMAÇÃO AVANÇADAS</p><p>1. Linguagens compiladas são amplamente utilizadas em aplicações que</p><p>exigem alto desempenho, como jogos e softwares de edição gráfica. Essa</p><p>escolha se justifica pelas vantagens que esse tipo de linguagem oferece.</p><p>Assinale a alternativa que descreve quais as seguintes características é</p><p>uma vantagem inerente às linguagens compiladas:</p><p>a. Baixa dependência de recursos de hardware, tornando o código mais</p><p>portável.</p><p>b. Facilidade de depuração do código, pois o código é executado linha a</p><p>linha.</p><p>c. Flexibilidade para modificar o código durante a execução, sem</p><p>necessidade de recompilar.</p><p>d. Ausência de necessidade de um compilador para executar o código.</p><p>e. Tempo de execução geralmente mais rápido em comparação com</p><p>linguagens interpretadas. (CORRETA)</p><p>2. Em Ciência da Computação, diferentes tipos de estruturas de dados são</p><p>empregados para otimizar a eficiência e a funcionalidade de programas e</p><p>sistemas. Cada estrutura de dados possui características que a tornam</p><p>mais adequada para certos tipos de operações e cenários de uso</p><p>específicos. Considere as seguintes afirmações relacionadas a estruturas</p><p>de dados comumente utilizadas:</p><p>I - Vetores são adequados para representar conjuntos de dados que</p><p>mudam de tamanho frequentemente.</p><p>II - Pilhas são úteis para implementar o recurso de desfazer/refazer em</p><p>editores de texto.</p><p>III - Filas são ideais para armazenar o histórico de navegação em um</p><p>navegador web, permitindo voltar às páginas anteriores.</p><p>IV - Hashmaps são eficientes para buscar um elemento específico em</p><p>um conjunto de dados desordenado.</p><p>V - Grafos podem ser utilizados para representar mapas de cidades em</p><p>um sistema de GPS, onde as cidades são vértices e as estradas são</p><p>arestas.</p><p>Assinale a alternativa correta:</p><p>a. As afirmações II, IV e V estão corretas. (CORRETA)</p><p>b. As afirmações II, III e V estão corretas.</p><p>c. As afirmações I e III estão corretas.</p><p>d. As afirmações I, II e V estão corretas.</p><p>e. As afirmações II, III e IV estão corretas.</p><p>3. Você está desenvolvendo um sistema de recomendação de filmes que</p><p>precisa buscar rapidamente as preferências de um usuário entre milhões</p><p>de outros usuários. Qual estrutura de dados seria mais eficiente para</p><p>armazenar e recuperar essas informações com base na ID (identificador)</p><p>do usuário, garantindo buscas rápidas e eficientes?</p><p>Assinale a alternativa correta:</p><p>a. Árvore binária de busca.</p><p>b. HashMap. (CORRETA)</p><p>c. Pilha.</p><p>d. Vetor ordenado.</p><p>e. Lista encadeada.</p><p>4. O nível de abstração de uma linguagem de programação influencia</p><p>diretamente a complexidade do desenvolvimento e a portabilidade do</p><p>código.</p><p>Considere as seguintes linguagens de programação:</p><p>1. Go</p><p>2. MATLAB</p><p>3. Rust</p><p>4. Fortran</p><p>Assinale a alternativa que apresenta a sequência correta dessas</p><p>linguagens de programação, do nível de abstração mais baixo para o</p><p>mais alto:</p><p>a. 4, 3, 1, 2. (CORRETA)</p><p>b. 2, 4, 3, 1.</p><p>c. 4, 1, 3, 2.</p><p>d. 1, 3, 2, 4.</p><p>e. 3, 4, 1, 2.</p><p>5. A programação orientada a objetos (POO) é um paradigma que trouxe</p><p>uma nova maneira de pensar o desenvolvimento de software,</p><p>introduzindo conceitos fundamentais que facilitam a organização,</p><p>modularização e reutilização de código. Esse paradigma é amplamente</p><p>utilizado por desenvolvedores para criar sistemas complexos de maneira</p><p>mais eficiente e compreensível, através de quatro pilares principais que</p><p>sustentam seus princípios.</p><p>Assinale a alternativa que define corretamente um dos quatro pilares da</p><p>programação orientada a objetos:</p><p>a. A capacidade de representar objetos com base em suas características</p><p>essenciais, escondendo detalhes de implementação, simplificando a</p><p>interação e o uso. (POSSÍVEL RESPOSTA CORRETA)</p><p>b. A capacidade de um objeto responder de maneiras diferentes a uma</p><p>mesma mensagem, dependendo de sua classe, permitindo flexibilidade</p><p>e adaptação.</p><p>c. A capacidade de criar métodos que podem ser reutilizados em</p><p>diferentes partes do código, promovendo a modularização e a</p><p>organização.</p><p>d. A capacidade de criar classes que herdam atributos e métodos de</p><p>outras classes, promovendo a reutilização de código e a organização</p><p>hierárquica.</p><p>e. O processo de agrupar dados (atributos) e métodos (comportamento)</p><p>em um único objeto, controlando o acesso a eles, garantindo a</p><p>segurança e a integridade dos dados. (INCORRETA)</p><p>6. A classificação de linguagens de programação por nível de abstração</p><p>ajuda a entender a complexidade da linguagem e sua proximidade com a</p><p>linguagem de máquina. Analise as afirmativas abaixo em relação aos</p><p>níveis de abstração em linguagens de programação:</p><p>I. Linguagens de baixo nível, como Assembly, oferecem controle direto</p><p>sobre o hardware, mas exigem um conhecimento profundo da</p><p>arquitetura do computador.</p><p>II. Linguagens de nível intermediário, como C e C++, permitem um certo</p><p>grau de controle sobre o hardware, mas também fornecem abstrações</p><p>de alto nível, tornando o código mais legível e fácil de manter.</p><p>III. Linguagens de alto nível, como Python e Java, são mais abstratas e</p><p>se aproximam da linguagem humana, ocultando detalhes de baixo nível</p><p>da implementação.</p><p>IV. Linguagens de muito alto nível, como SQL e Prolog, se concentram</p><p>na resolução de problemas, permitindo que o programador descreva o</p><p>que o programa deve fazer, em vez de como fazer.</p><p>Assinale a alternativa correta:</p><p>a. As afirmativas II, III e IV estão corretas.</p><p>b. As afirmativas I, III e IV estão corretas.</p><p>c. As afirmativas I, II e III estão corretas.</p><p>d. As afirmativas I e II estão corretas.</p><p>e. As afirmativas I, II, III e IV estão corretas. (CORRETA)</p><p>Vetores e matrizes são, sem dúvida, os blocos de construção mais</p><p>básicos em quase todas as aplicações de programação que envolvem</p><p>dados numéricos ou manipuláveis. A escolha entre essas estruturas</p><p>depende do problema a ser resolvido, sendo os vetores usados para</p><p>dados sequenciais, enquanto as matrizes são essenciais para</p><p>representações como sistemas de equações e gráficos.</p><p>7. Considere as afirmações abaixo sobre vetores e matrizes:</p><p>I - Vetores e matrizes são estruturas de dados que armazenam coleções</p><p>de elementos do mesmo tipo.</p><p>II - Vetores são unidimensionais, enquanto matrizes são bidimensionais.</p><p>III - O acesso aos elementos em um vetor ou matriz é feito através de</p><p>um índice numérico.</p><p>IV - Vetores e matrizes são estruturas de dados dinâmicas, o que</p><p>significa que seu tamanho pode ser alterado durante a execução do</p><p>programa.</p><p>Assinale a alternativa correta:</p><p>a. As afirmações II, III e IV estão corretas.</p><p>b. As afirmações I, II e III estão corretas. (CORRETA)</p><p>c. As afirmações III e IV estão corretas.</p><p>d. As afirmações I e II estão corretas.</p><p>e. As afirmações I e IV estão corretas.</p><p>8. Imagine que você está em uma aula de estrutura de dados, onde o</p><p>professor está explicando os conceitos de pilhas e filas, duas das</p><p>estruturas de dados mais fundamentais em ciência da computação.</p><p>Assinale Verdadeiro (V) ou falso (F) para as seguintes afirmações sobre</p><p>pilhas e filas:</p><p>( ) Pilhas e filas são estruturas de dados lineares.</p><p>( ) A principal diferença entre pilha e fila está na ordem de inserção e</p><p>remoção dos elementos.</p><p>( ) Pilhas seguem o princípio FIFO (First-In, First-Out), enquanto filas</p><p>seguem o princípio LIFO (Last-In, First-Out).</p><p>( ) Pilhas são usadas em situações como o botão de desfazer em um</p><p>editor de texto.</p><p>( ) Filas são usadas em situações como a organização de pedidos em</p><p>um sistema de delivery.</p><p>Assinale a alternativa correta:</p><p>a. F - F - F - V - V.</p><p>b. V - V - V - V - F.</p><p>c. V - V - F - V - V. (CORRETA)</p><p>d. F - V - F - V - V.</p><p>e. V - F - V - F - V.</p><p>9. “A programação é a arte de criar ordem a partir do caos, de transformar</p><p>ideias abstratas em instruções precisas que a máquina pode entender e</p><p>executar” (Farrell, 2009, p. 54). Para que essa transformação seja</p><p>possível, a programação se baseia em diversos fundamentos.</p><p>Analise as afirmativas abaixo:</p><p>I.Linguagem de programação.</p><p>II.Algoritmos.</p><p>III.Design do código-fonte.</p><p>IV.Interface gráfica.</p><p>Assinale a alternativa correta em relação ao que é considerado um</p><p>fundamento essencial da programação?</p><p>a. Apenas II, III e IV correta.</p><p>b. Apenas I e II corretas.</p><p>c. Apenas II e IV corretas.</p><p>d. Apenas I, III e IV corretas</p><p>e. Apenas I, II e III corretas. (CORRETA)</p><p>10. Imagine que você está organizando uma festa de aniversário e decidiu</p><p>dividir as responsabilidades entre seus amigos. Cada um deles deve</p><p>trazer um tipo específico de item: salgados, doces ou bebidas. No entanto,</p><p>para garantir que tudo corra bem, você estipulou que cada amigo só pode</p><p>trazer um tipo de item. Por exemplo, o João, que ficou encarregado dos</p><p>salgados, não pode trazer doces ou bebidas, e o mesmo vale para os</p><p>outros.</p><p>Esse tipo de organização rígida, no qual cada "amigo" (variável) só pode</p><p>lidar com um "tipo de comida" (dado) específico, é uma característica de</p><p>algumas linguagens de programação, sendo chamada de:</p><p>Assinale a alternativa correta:</p><p>a. Tipagem forte. (CORRETA)</p><p>b. Tipagem organizada.</p><p>c. Tipagem fraca.</p><p>d. Tipagem rápida.</p><p>e. Tipagem dinâmica.</p>