Baixe o app para aproveitar ainda mais
Prévia do material em texto
QUESTÕES PROGRAMAÇÃO TI 1. O polimorfismo é um dos quatro pilares da programação de orientação a objetos. Portanto, marque a opção que melhor descreva o conceito de polimorfismo. Quando uma subclasse usa um método da superclasse. Quando cada classe implementa o mesmo método de diferentes maneiras. Quando uma classe possui métodos abstratos. Quando uma classe herda membros de outra classe. 2. Considere os dois tipos principais de polimorfismo, o estático e o dinâmico. Qual é a principal diferença do funcionamento desses dois tipos de polimorfismo? A principal diferença entre o polimorfismo estático e dinâmico é que o estático é um tipo de polimorfismo resolvido em tempo de compilação, enquanto o dinâmico é um tipo de polimorfismo resolvido em tempo de execução. Na prática, não existe diferença entre os tipos de polimorfismo, eles têm apenas nomes diferentes conforme a linguagem de programação utilizada. A principal diferença entre o polimorfismo estático e dinâmico é que o estático é um tipo de polimorfismo resolvido em tempo de execução, enquanto o dinâmico é um tipo de polimorfismo resolvido em tempo de compilação. No polimorfismo estático a velocidade de execução é baixa e no polimorfismo dinâmico a velocidade de execução é alta. Essa relação em nada tem a ver com o tempo de execução ou compilação. 3. Analise o código e marque a alternativa incorreta. public class BankAccount { private long number; private long balance; public static class Permissions { public boolean canDeposit, canWithdraw, canClose; } //.. } O nome completo da classe é BankAccount.Permissions. Permissions é um membro da classe BankAccount. A classe Permissions não pode acessar os membros de BankAccount. A classe Permissions é declarada dentro da classe BankAccount. 4. Marque a alternativa incorreta. A única forma de usar super é a seguinte: super(). super( ) sempre referencia a superclasse imediatamente acima da classe chamadora. Quando uma classe chama super(), está chamando o construtor de sua superclasse imediatamente. super( ) deve ser sempre a primeira instrução executada dentro de um construtor de subclasse. 5. Em orientação a objetos, temos as chamadas classes externas ou envolventes. Marque a alternativa correta. Classes externas ou envolventes são classes que contêm ou encapsulam classes aninhadas. Classes externas ou envolventes são classes que não estão no mesmo pacote. Classes externas ou envolventes são classes declaradas com o modificador de acesso public. A melhor definição para classes externas ou envolventes seria a de uma superclasse. 6. Para podermos entender melhor e trabalharmos com polimorfismo, é de extrema importância sabermos alguns conceitos, como as "Interfaces". Portanto, marque a alternativa que melhor define interfaces em programação orientada a objetos. Interfaces são classes que não podem ser instanciadas. Diferentemente de uma classe, um tipo de interface não fornece nenhuma implementação. São classes que possuem apenas atributos. Interfaces possuem variáveis de instância e métodos abstratos. 7. Em relação ao polimorfismo, marque a alternativa incorreta. Programar no específico é quando o programa determina o tipo de objeto no momento da execução. A técnica de polimorfismo não permite que alteremos a implementação de um método. Para trabalharmos com polimorfismo, podemos herdar métodos de uma superclasse ou implementarmos uma interface. O polimorfismo permite que programemos no geral, e não no específico. 8. Qual a relação do polimorfismo com interfaces e superclasses? Há polimorfismo quando uma subclasse herda membros de uma superclasse. Quando uma classe implementa uma interface, ela se obriga a utilizar e implementar todos os métodos da interface, com isso, temos um comportamento polimórfico. Quando uma classe herda membros de uma interface, ativa um comportamento polimórfico. Quando um método existente em uma interface é usado por uma classe que não altera a implementação do método, temos um comportamento de polimorfismo. 9. Quando tanto a superclasse quanto a subclasse definem construtores, o processo é um pouco mais complicado, porque os dois construtores devem ser executados. Nesse caso, devemos usar outra das palavras-chave do Java. Marque a alternativa que apresente a palavra-chave a ser usada nesta situação. this. extends. super. O nome da classe. 10. A forma geral de uma declaração class que herda uma superclasse é: nome-subclasse extends nome-superclasse { //corpo da classe } class nome-subclasse extends nome-superclasse ( //corpo da classe ) class nome-subclasse extends nome-superclasse { //corpo da classe } class nome-superclasse extends nome-subclasse{ //corpo da classe } 1. O polimorfismo dinâmico acontece na herança, quando a subclasse sobrepõe o método superclasse. Desta maneira, o método escolhido ocorre em tempo de execução e não mais em tempo de compilação. Considerando as propriedades do polimorfismo dinâmico, escolha a opção que explique qual é a saída do seguinte programa: Não estudou polimorfismo Erro de tempo na execução. Estudou polimorfismo. Erro de compilação. 2. Em orientação a objetos, como devemos começar as atividades de programação? Identificando objetos e as classes às quais eles pertencem. Identificando os requisitos funcionais da aplicação. Identificando os atributos. Identificando os métodos. 3. O conceito de polimorfismo é um dos principais pilares do paradigma de programação orientada a objetos, sendo um conceito com algumas características interessantes, como o caso da coerção. Qual definição a seguir descreve melhor o conceito de coerção? Permite converter um objeto de volta ao seu tipo de tempo de execução original ou a qualquer uma de suas superclasses. Coerção é o processo que permite que ocorra a sobrecarga de método, ou seja, permite que determinada operação ocorra em tempo de execução. Permite realizar correções no método que herdou as características de uma superclasse, caso tenha ocorrido algum erro. É quando estiver ocorrendo a subida na cadeia de herança — isto é, da subclasse para a superclasse. 4. Marque a afirmativa correta: Se você não pode afirmar, a partir do nome da classe, o que um objeto da classe supostamente deve fazer, provavelmente você não está no caminho certo. Uma categoria útil de classes pode ser descrita como atores. Essas classes servem para iniciar um programa. Uma classe deve ser criada para representar vários conceitos do domínio do problema. Nomeamos uma classe utilizando um verbo que define o objetivo dessa classe. 5. O que são classes aninhadas? São classes declaradas dentro do mesmo pacote. São classes que podem ser declaradas dentro de outras classes. São classes declaradas dentro de um mesmo projeto. São classes declaradas com a palavra-chave abstract. 6. Referente a coesão e acoplamento, podemos afirmar que: Quando a interface pública de uma classe referencia vários conceitos, é um bom sinal de que pode ser hora de utilizar classes separadas. A interface pública de uma classe é coesa se abrange todos os requisitos funcionais do sistema. Acoplamento refere-se à dependência que as classes possuem em relação aos seus métodos. Uma classe coesa representa uma solução bem estruturada no que se refere à criação do objeto. 7. Em uma estrutura de herança, para instanciarmos uma classe-filha, utilizamos qual construtor? Nenhum, pois estamos trabalhando com estrutura de herança. Ambos os construtores. O construtor da subclasse. O construtor da superclasse. 8. Considerando o paradigma de programação orientada a objetos, o polimorfismo é a habilidade de objetos de classes diferentes responderem à mesma mensagem de maneiras diferentes. Qual das alternativas a seguir é um tipo de polimorfismo?Polimorfismo de abstração. Polimorfismo de classificação. Polimorfismo de sobrecarga. Polimorfismo de instanciação. 9. O que é um pacote? É um conjunto de classes relacionadas. É uma forma de organizar os métodos. Servem para iniciar programas. É um modificador de acesso. 10. No paradigma de orientação a objetos, o conceito de polimorfismo é implementado, em algumas linguagens, por meio da técnica de sobrecarga de métodos, como, por exemplo, no Java. O que é a técnica de sobrecarga de métodos em Java? Quando dois ou mais métodos têm o mesmo nome, assim como assinaturas iguais no mesmo escopo, mas têm uma quantidade de argumentos e tipos de dados sem iguais nunca divergindo. Sempre que há mais de um método com o mesmo nome na classe pai e filho, com o mesmo número de argumentos e os mesmos tipos de dados, é conhecido como sobrecarga de método em Java. Sempre é aplicada quando um determinado método recebe uma sobrecarga muito grande de informações, ou seja, quando um método tem muitos argumentos; quando existe essa sobrecarga, o método é dividido em dois. Sempre que há mais de um método com o mesmo nome, mas um número diferente de argumentos ou tipos de dados diferentes na mesma classe, é conhecido como sobrecarga de método em Java. 1. O teste de Turing vem sendo usado até os dias atuais para avaliar as capacidades das máquinas. Analise as afirmativas abaixo e identifique a que está em conformidade acerca do teste de Turing. O teste de Turing se baseia na ideia de que uma máquina seja capaz de imitar o comportamento humano a ponto de enganar um ser humano comum. (Alternativa correta) O teste de Turing se baseia em um jogo de perguntas e respostas entre máquinas e humanos. Quando a máquina acertar mais que o humano é porque é inteligente. O teste de Turing é o único aceito mundialmente para classificar se um sistema é considerado inteligente. O teste de Turing foi proposto por Alan Turing em 1950 como uma forma de classificar se um sistema era inteligente ou não, baseando sua interação com um humano em um jogo de perguntas e respostas entre ambos. 2. Funções são sub-rotinas que executam uma ação em particular; seu principal objetivo é agrupar um código que pode ser reutilizado em diferentes locais do sistema. De acordo com esse conceito, assinale a afirmativa correta acerca da sua aplicação. Funções são sub-rotinas do código fonte que servem somente para diminuir a quantidade de linhas do código fonte. Funções são utilizadas se há necessidade de agrupar o código mesmo que não estejam dentro do mesmo escopo. Funções têm como principais objetivos reutilizar o código e facilitar a manutenção. (Alternativa correta) Funções servem para deixar o código mais elegante, facilitando a compreensão dos desenvolvedores. 3. Em linguagens como Java e C#, basta declarar que os atributos não podem ser acessados de fora da classe utilizando a palavra chave private. Em orientação a objetos, é prática quase que obrigatória proteger seus atributos com private. O Python não utiliza o termo private, que é um modificador de acesso e também chamado de modificador de visibilidade. No Python, são inseridos dois underscores ('__'). Assinale a alternativa correta acerca dessa afirmativa: A declaração de private não é muito recomendada como boa prática em orientação a objetos. Dessa maneira, não é possível acessar o atributo idade de um objeto do tipo pessoa fora da classe. (Alternativa correta) A definição do underscore antes do atributo idade é desnecessária nesse caso, visto que o método init já tem. Dessa maneira, o valor do atributo idade pode ser acessado por qualquer objeto do tipo pessoa mesmo fora da classe. 4. Nos testes de Turing, realizados por volta de 1950, dentre as premissas que deram origem aos estudos de redes neurais artificiais, é possível destacar quatro, dentre elas: aprendizado de máquina para realizar adaptação diante de novas circunstâncias e criação de padrões. (Alternativa correta) processamento de linguagem de máquina para criar comunicação. raciocínio analógico para representação do aprendizado por estímulo. representação de dados para armazenamento. 5. A inteligência é a capacidade de escolher entre várias possibilidades a opção mais acertada para resolver um problema. Nesse sentido, vale diferenciá-la da sabedoria, que é o acúmulo de conhecimentos. A inteligência significa fazer melhor uso de um saber prévio. Qual das afirmativas abaixo, sobre o teste de Turing, é coerente com essa afirmativa? A submissão de um sistema ao teste de Turing por si só é questionada sob o ponto de vista biológico quanto a definir se um sistema é ou não inteligente como o ser humano. (Alternativa correta) Sob esse ponto de vista, pode-se afirmar que o teste de Turing não é conclusivo para classificar um sistema como inteligente. O teste de Turing procura imitar um ser humano por meio de perguntas e respostas que simulem um comportamento humano. A coerência é devida ao fato de o teste de Turing ser usado até hoje para distinguir um sistema inteligente. 6. Analise o trecho a seguir. Curiosamente, o primeiro chatbot foi o que mais próximo chegou de bater o teste. Chamava-se Eliza e foi escrito em meados dos anos 1960. Rodava em computadores muito inferiores aos atuais, e seu código era rudimentar. Com base na afirmativa acima, pode-se concluir: Devido a seu tempo de existência, o teste de Turing é fácil de ser realizado. Apesar de sua relevância na área de inteligência artificial, o teste de Turing se mostra ainda como um teste de imitação, e não como evolução da IA. (Alternativa correta) Eliza é um chatbot que contém código rudimentar, mas ainda assim superior aos atuais por quase passar no teste de Turing. Sistemas de chatbot são capazes de passar no teste de Turing. 7. Seja o código a seguir que representa uma classe Aluno. Essa classe e o seu método podem ser testados utilizando o seguinte código: a = Aluno(5, 6, 7, 8) m = a.fecha_media() print(m) Assinale a alternativa que indique uma afirmação correta sobre a classe Aluno. A função __init__ corresponde ao conceito de construtor em Python. A função fecha_media calcula a média de quatro notas do aluno e retorna um valor do tipo float. (Alternativa correta) As variáveis locais soma e media não precisariam ser inicializadas e mesmo assim a função fecha_media funcionaria corretamente. A variável notas não pode ser alterada e, portanto, causaria um erro de execução no código apresentado. 8. Existem várias estruturas que podem ser criadas a partir de duas estruturas principais de redes neurais artificiais. Qual a estrutura neural artificial que utiliza conexões em uma única direção e que forma uma matriz dirigida, com saídas de 0 e 1 ou de -1 e 1, podendo ter N entradas, porém uma única saída? Rede neural adjacente única. Rede neural de duplacamada. Rede neural de multicamadas. Rede neural de camada única. (Alternativa correta) 9. Objetos são criados a partir das classes por meio de atribuição. O objeto é uma nova instância da classe que tem características próprias. Assinale a alternativa verdadeira acerca de um exemplo correto sobre objeto e classe. Uma classe e um objeto para cada animal que necessite ser cadastrado no sistema. Em um código, é possível ter uma classe para cada animal que necessite ser cadastrado. É possível ter um objeto para cada tipo de animal que necessite ser cadastrado. Uma classe para representar animal e um objeto para representar cada animal a ser cadastrado no sistema. (Alternativa correta) 10. As redes neurais artificiais com multicamadas são semelhantes aos perceptrons que têm uma única camada. Porém, nesse caso, há mais de uma camada de representação de neurônio e seus respectivos estímulos, formando: árvores. grafos. (Alternativa correta) matrizes. vetores. 1. Codificar uma imagemé representá-la com o menor número possível de bits, preservando a qualidade e a inteligibilidade necessárias à sua aplicação. Nesse contexto, uma imagem do tamanho 1.024x1.024 pixels, codificada com 16 bits (2 bytes), resultará em um arquivo de, aproximadamente: 2Mbits. 2MB. (Alternativa correta) 16Mbits. 16kB. 2. Um morador de uma região metropolitana tem 50% de probabilidade de atrasar-se para o trabalho quando chove na região; caso não chova, sua probabilidade de atraso é de 25%. Para um determinado dia, o serviço de meteorologia estima em 30% a probabilidade da ocorrência de chuva nessa região. Qual é a probabilidade desse morador se atrasar para o serviço no dia para o qual foi dada a estimativa de chuva? 0,325 (Alternativa correta) 0,600 0,150 0,075 3. Diante dos estudos realizados com modelagem cognitiva, foram criados modelos matemáticos para simular redes neurais artificiais e sua eletroquímica, demonstrando a interação entre as ________; tais modelos consistem em funções, que utilizam ________. A seguir, marque o item que completa as lacunas. sinapses nervosas – exponenciais. sinapses elétricas – exponenciais. sinapses nervosas – somatórios. (Alternativa correta) interligações elétricas – somatórios. 4. As redes neurais artificiais são compostas por nós, ou unidades, que são conectados por ligações direcionais. Uma ligação da unidade "i" para a unidade "j" serve para propagar a ativação de "ai" de "i" para "j", sendo que cada ligação tem um peso "wij" associado, que determina: as entradas de uma rede neural artificial. as variáveis de uma rede neural artificial. as conexões entre os nós da rede neural artificial. (Alternativa correta) as saídas de uma rede neural artificial. 5. Há diversas formas possíveis para ilustrar a probabilidade condicional. Por exemplo: as chances de um bebê nascer menina é um evento A. Agora, a probabilidade dessa criança apresentar doença celíaca, que é intolerância ao glúten, é um evento B. Baseado nesse exemplo, assinale a alternativa correta: O exemplo não está relacionado com probabilidade condicional. O exemplo está relacionado a um único espaço amostral. O exemplo está relacionado à probabilidade condicional. (Alternativa correta) O exemplo não tem qualquer relação com probabilidade. 6. Em Matemática, a definição de contagem é o ato de determinar um número n de elementos de um conjunto (finito). Sebre esse conceito, é correto afirmar que: A contagem é um recurso da Matemática e não tem relação com I.A. Não é possível usar a contagem para saber a população de um país. Em todo conjunto com um número de elementos finitos, é possível aplicar a contagem, pois é um conjunto possível de determinar sua quantidade. (Alternativa correta) A contagem não faz sentido para sistemas de I.A. 7. Para caracterizar o objeto que se quer reconhecer ou classificar, são utilizados descritores que especificam o aspecto a ser considerado. No caso do reconhecimento facial, são calculadas características que geram descritores: dimensionais. (Alternativa correta) de aspecto. de contorno. topológicos. 8. Chatbots são sistemas que simulam uma conversa humana, amplamente utilizados hoje para automatizar tarefas repetitivas e burocráticas, como, por exemplo, responder a dúvidas repetitivas. Analise as afirmativas a seguir e aponte a verdadeira sobre o propósito de sistemas de chatbot. Sistemas de chatbot estão em larga utilização para auxiliar, por exemplo, tarefas de responder questionamentos repetitivos, agilizando o atendimento. (Alternativa correta) O chatbot é utilizado com mais frequência para responder a perguntas. Os sistemas de chatbot podem substituir os seres humanos na execução de suas atribuições. Não há finalidade para a utilização de sistemas de chatbot em conversas complexas, somente em conversas repetitivas. 9. Nos sistemas especialistas probabilísticos, os valores de probabilidade refletem a crença do especialista sobre o que ele espera que ocorra em situações similares àquelas que têm experiência e que aprendeu ao longo de sua vivência. A utilização dos conceitos de probabilidade está diretamente relacionada: Sistemas especialistas não se baseiam em crenças e por isso não têm relação alguma com probabilidade. Sistemas especialistas utilizam a probabilidade para ter um grau de crença na ocorrência de determinado evento. (Alternativa correta) Apesar de se chamarem sistemas especialistas probalísticos, não têm relação com probabilidade e sim com aprendizado de máquina. Apenas com os cálculos de fatores envolvidos com problemas matemáticos 10. Um pixel é o menor ponto que forma uma imagem digital, e um conjunto de pixels com várias cores forma a imagem inteira. Considere que uma imagem 3x4 foi amostrada e armazenada em uma matriz 200 x 300. Quantos pixels a imagem amostrada terá? 200. 300. 60k. (Alternativa correta) 12.
Compartilhar