Buscar

trabalho de python av1 - FACI

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 3, do total de 6 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 6, do total de 6 páginas

Prévia do material em texto

Faculdade Ideal 
Paradigmas de Linguagem de Programação em Python 
Trabalho em Questionário para AV1 – 2,0 pontos 
NOME/ MATRICULA: 
 
1. Qual dos itens abaixo NÃO representa "Trade Off" direto no projeto de linguagens de programação? 
a) Custo de Execução e Legibilidade 
b) Confiabilidade x Custo de Execução 
c) Facilidade de Escrita x Confiabilidade 
d) Facilidade de Escrita x Legibilidade 
e) Confiabilidade x Legibilidade 
 
2. Indique quais questões são verdadeiras ou falsas: 
1. As linguagens Imperativas são baseadas na Arquitetura de Von Neumann 
2. As linguagens funcionais podem ser executadas em qualquer arquitetura computacional, porém, é menos 
intuitiva aos programadores 
3. Até hoje, o uso das linguagens funcionais se tornou dominante sobre as linguagens Imperativas. 
4. As novas metodologias de software nasceram a partir dos projetos descendentes ou Top-Down 
5. A maioria das linguagens utilizadas para desenvolvimento de sistemas corporativos é Imperativa e 
Orientada a Objetos 
a) V, V, F, V, V 
b) V, F, F, V, V 
c) V, F, F, V, F 
d) V, V, V, F, F 
e) V, F, F, F, V 
 
3. Programas de computadores são escritos por programadores que utilizam os compiladores e interpretadores 
para verificar se os códigos estão escritos de forma correta, e caso essa premissa seja verdadeira, converte o 
código em código de máquina se for um compilador ou executa o código sobre uma máquina virtual se for um 
interpretador. Baseado nesse contexto, analise assinale as afirmativas verdadeiras abaixo: 
(V) A premissa "Programas de computadores são escritos por programadores" é verdadeira. 
(F) A premissa "Programas de computadores são escritos por programadores que utilizam os compiladores" é 
verdadeira, mas, sua justificativa "para verificar se os códigos estão escritos de forma correta ... um 
interpretador" é falsa 
(V) A premissa "Programas de computadores são escritos por programadores que utilizam os compiladores" 
e sua justificativa "para verificar se os códigos estão escritos de forma correta ... um interpretador" são ambas 
verdadeiras. 
(V) A justificativa "para verificar se os códigos estão escritos de forma correta ... um interpretador" é 
verdadeira. 
(F) A premissa "Programas de computadores são escritos por programadores" é falso. 
 
4. Qual dos tipos abaixo NÃO é considerado um tipo primitivo na maioria das linguagens? 
a) Char 
b) Boolean 
c) String 
d) Double 
e) Int 
 
5. Dadas as afirmativas sobre tipos de dados e paradigmas de programação, 
 
 I - Os tipos de dados estruturados podem ser classificados em duas categorias: linear e não linear. 
 II - A estrutura linear em que a inserção e a remoção são realizadas na mesma extremidade é denominada 
lista encadeada. 
 III - São considerados tipos de dados elementares aqueles que armazenam valores exatos e utilizados com 
frequência como: inteiro, real e cadeia de caracteres (String). 
 
Verifica-se que está(ão) correta(s) 
a) I, apenas 
b) III, apenas. 
c) I e II, apenas. 
d) II e III, apenas. 
e) I, II e III. 
 
6. Qual a diferença entre uma Variável, um Tipo e um Valor? 
 
a) Uma variável recebe uma atribuição de tipo e podendo posteriormente receber qualquer valor 
b) Um Tipo representa o Valor de uma Variável 
c) Uma mesma Variável armazena valores ou tipos, independentemente 
d) Variável, Tipo e Valor representam uma hierarquia entre si 
e) O Tipo de uma Variável determina os valores que ela pode assumir 
 
7. Para o seguinte código abaixo um tipo de dados não pode ser utilizado, qual? 
 
def f(l): 
 for i in l: 
 print(i) 
 
a) lista 
b) inteiro 
c) tupla 
d) string 
e) dicionário 
 
8. O que podemos dizer, em relação a Trade Offs de projeto, sobre a implementação de ponteiros em C e JAVA 
a) Os ponteiros em JAVA são de mais fácil leitura apesar de menos confiáveis que em C++ 
b) Os ponteiros em C++ tem um custo de execução em menor que em JAVA, onde eles também são de difícil 
leitura 
c) Os ponteiros em C/C++ são bem mais confiáveis que em JAVA, linguagem na qual os ponteiros não foram 
implementados semanticamente. 
d) Ponteiros em C+ são menos confiáveis, porém, poderosos, em JAVA, ponteiros não foram semanticamente 
implementados 
e) Os ponteiros em JAVA são bem mais flexíveis e poderosos que em C/C++ apesar de terem um custo 
computacional mais alto. 
 
9. Tipos é definido como um conjunto de valores e um conjunto de operadores sobre valores. Eles podem 
compor um grupo básico e compostos. Com base nisso, uma linguagem pode ser tipada estaticamente ou 
dinamicamente e pode ser fortemente ou fracamente tipada. Uma linguagem pode ser dita tipada 
estaticamente se os tipos de todas as variáveis são fixados quando são declarados em tempo de compilação. 
E, dita tipada dinamicamente se o tipo é armazenado em tempo de execução com cada valor. Já, afirmamos 
que uma linguagem é fortemente tipada se a mesma é estaticamente tipada, em caso contrário, ela 
fracamente tipada. 
Baseado nesse contexto, analise e assinale apena a afirmativa verdadeira: 
a) Todas as premissas do parágrafo são verdadeiras. 
b) Todas as premissas do parágrafo são verdadeiras exceto a premissa "tipada dinamicamente se o tipo é 
armazenado em tempo de execução com cada valor". 
c) Todas as premissas do parágrafo são verdadeiras exceto a premissa "uma linguagem é fortemente tipada 
se a mesma é estaticamente tipada, em caso contrário, ela fracamente tipada". 
d) Todas as premissas do parágrafo são verdadeiras exceto a premissa "tipada estaticamente se os tipos de 
todas as variáveis são fixados quando são declarados em tempo de compilação". 
e) Todas as premissas do parágrafo são falsas. 
 
10. Os conceitos de escopo e tempo de vida podem se confundir em algumas situações, mas são conceitos 
completamente diferentes. Há casos que o tempo de vida parece ser igual ao escopo. Para as declarações 
abaixo, assinale V para as verdadeiras e F para as falsas. 
(V) Escopo é um conceito de tempo de compilação. 
(F) Escopo não existe no texto do código fonte, você não o descobre lendo o código. 
(V) Podemos dizer que neste contexto a visibilidade é um sinônimo de escopo. 
(V) Tempo de vida é um conceito de tempo de execução. 
(V) Se for uma variável o tempo de vida não se refere ao tempo que ela está disponível para acesso. 
 
11. Algumas linguagens de programação não têm tipos. Quais são as vantagens e desvantagens óbvias de não ter 
tipos em uma linguagem? 
a) Variáveis em linguagens sem tipo são válidas por todo o escopo global do programa, mas levam mais 
tempo para serem compiladas que as linguagens tipadas 
b) Elas são mais rápidas pois não precisam fazer pré-verificação de tipos, mas são menos confiáveis na 
detecção de erros. 
c) São mais confiáveis, porém menos flexíveis pois temos que checar todas as regras de conversão 
d) Atribuições de valores a variáveis funcionam tanto do lado direito para o esquerdo quanto do esquerdo 
para o direito, mas não se podem criar novas variáveis com o mesmo nome em outros pontos do 
programa. 
e) O programador tem mais flexibilidade podendo escrever algoritmos sem conhecer o tipo prévio de uma 
variável mas em contrapartida, perde a confiabilidade de detecção de erros em tempo de compilação e 
aumenta o custo de processamento. 
 
 
12. Qual a saída do comando abaixo? 
 
a = "10" 
print(a*2) 
 
a) Erro! 
b) 1010 
c) 20 
d) 20 
e) 100 
 
13. Indique quais sentenças são verdadeiras ou falsas 
(V) A base fundamental das linguagens Imperativas é a orientação a procedimentos 
(F) As linguagens visuais são uma sub categoria das linguagens lógicas 
(F) As linguagens “Scripting” e de Lógica são da categoria funcional. 
(V) As linguagens de categoria Lógica não precisam apresentar ordem nas suas regras. 
(V) Algumas linguagens funcionais oferecem suporte a orientação a objetos 
 
14. A sintaxe de programação é uma descrição precisa de todos os programas gramaticalmente corretos. Baseado 
nessa definição analise as seguintes afirmativas: 
I Ostrês níveis de sintaxe são léxica, concreta e abstrata; 
II Uma gramática é uma metalinguagem usada para definir a sintaxe de programação de uma linguagem. 
III Uma metalinguagem não é usada para definir outras linguagens. 
 
Assinale a única opção verdadeira acerca das afirmativas: 
 
a) Apenas as afirmativas I e II são verdadeiras. 
b) Todas as afirmativas são verdadeiras. 
c) Todas as afirmativas são falsas. 
d) Apenas a afirmativa III é verdadeira. 
e) Todas as afirmativas são verdadeiras exceto a afirmativa I. 
 
15. O termo binding (ligação ou vinculação) é uma associação entre uma entidade e uma propriedade. Baseado 
nessa definição analise as seguintes afirmativas: 
 
 I - Uma ligação pode ser Estática ou Dinâmica. 
 II - Um identificador é o termo utilizado para ligações de nomes que denotam diferentes entidades em 
programas. 
 III - Variável é uma ligação de um nome com endereço de memória que podem possuir as vinculações 
básicas, tais como, nome, endereço, tipo, valor e tempo de vida. 
 IV - Escopo é uma coleção de comandos que podem acessar uma ligação de nome e pode ser estático ou 
dinâmico. 
 V - Tabela de símbolos é uma estrutura de dados mantida pelo tradutor que permite a ele manter registros 
de cada nome declarado e suas associações. Em geral, ele implementado por uma estrutura de dicionário 
controlado por estrutura de pilhas. 
 
Assinale abaixo a única opção verdadeira acerca das afirmativas. 
 
a) Todas as afirmativas são verdadeiras. 
b) Apenas as afirmativas I, II e III são verdadeiras. 
c) Todas as afirmativas são falsas. 
d) Apenas a afirmativa V é verdadeira. 
e) Todas as afirmativas são verdadeiras exceto a afirmativa III 
 
16. Indique quais afirmativas são verdadeiras e quais são falsas ? 
(V) Uma classe que inclui ao menos um método abstrato é chamada de classe abstrata (classe base abstrata 
em C++), que normalmente não pode ser instanciada, porque alguns de seus métodos são declarados, mas 
não são definidos (eles não têm corpos). 
(F) Variáveis em Smalltalk ou Python não são tipadas, ou seja elas suportam polimorfismo dinâmico, pois tipos 
das variáveis são irrelevantes, desde que não se misturem variáveis de valores de tipos diferentes. 
(V) Uma das motivações primárias para classes aninhadas é o ocultamento de informação. 
(F) O polimorfismo no mundo da orientação a objetos é definido como o uso de um ponteiro ou referência 
polimórfica para acessar um método cujo nome é sobrescrito na na mesma classe definindo o objeto para ao 
qual o ponteiro ou referência apontam. 
(F) Uma classe é chamada de classe abstrata (classe base abstrata em C++), que normalmente não pode ser 
instanciada, somente se todos os seus métodos são declarados, mas não são definidos (eles não têm corpos). 
 
17. No que se refere ao tempo de vida, escopo e referência, o que podemos dizer sobre o retorno de funções em 
Python? 
a) Todas os retornos de funções em Python são feitos por referência, assim como em JAVA e C++ 
b) Variáveis primitivas são sempre retornadas por valor, sendo seu tempo de vida e escopo encerrados após 
o retorno da função, porém, se estas forem objetos, uma cópia do objeto é passado e a variável a qual a 
função é atribuída passa a fazer referência para esta nova cópia e o escopo da variável do objeto passado 
fica dentro da função. 
c) Variáveis primitivas são sempre retornadas por valor, sendo seu tempo de vida e escopo encerrados após 
o retorno da função, porém, se estas forem objetos, apenas sua referência é passada, o seu tempo de vida 
permanece, mas o escopo da variável do objeto passado fica dentro da função. 
d) O retorno de funções em Python é opcional, mas se realizado referenciando um objeto de uma classe 
resultará em problemas pois o objeto criado dentro de uma função tem seu tempo de vida limitado ao 
escopo da função. 
e) Todos os retornos de funções em Python são por valor. 
 
18. No projeto de linguagens de programação, existem questões ligadas a Nomes. Selecione a alternativa que não 
corresponde a uma preocupação a respeito deles. 
a) Tamanho máximo de caracteres 
b) Tamanho mínimo de caracteres 
c) Caracteres de conexão 
d) Case sensitive 
e) Palavras especiais que podem ser reservadas ou chave 
 
19. A sintaxe de programação é uma descrição precisa de todos os programas gramaticalmente corretos. Baseado 
nessa definição analise as seguintes afirmativas: 
I Os três níveis de sintaxe são léxica, concreta e abstrata; 
II Uma gramática é uma metalinguagem usada para definir a sintaxe de programação de uma linguagem. 
III Uma metalinguagem não é usada para definir outras linguagens. 
 
Assinale a única opção verdadeira acerca das afirmativas: 
 
a) Apenas as afirmativas I e II são verdadeiras. 
b) Todas as afirmativas são verdadeiras. 
c) Todas as afirmativas são falsas. 
d) Apenas a afirmativa III é verdadeira. 
e) Todas as afirmativas são verdadeiras exceto a afirmativa I. 
 
20. Indique quais afirmativas são verdadeiras e quais são falsas ? 
(V) Uma classe que inclui ao menos um método abstrato é chamada de classe abstrata (classe base abstrata 
em C++), que normalmente não pode ser instanciada, porque alguns de seus métodos são declarados, mas 
não são definidos (eles não têm corpos). 
(F) Variáveis em Smalltalk ou Python não são tipadas, ou seja elas suportam polimorfismo dinâmico, pois tipos 
das variáveis são irrelevantes, desde que não se misturem variáveis de valores de tipos diferentes. 
(V) Uma das motivações primárias para classes aninhadas é o ocultamento de informação. 
(F) O polimorfismo no mundo da orientação a objetos é definido como o uso de um ponteiro ou referência 
polimórfica para acessar um método cujo nome é sobrescrito na na mesma classe definindo o objeto para ao 
qual o ponteiro ou referência apontam. 
(F) Uma classe é chamada de classe abstrata (classe base abstrata em C++), que normalmente não pode ser 
instanciada, somente se todos os seus métodos são declarados, mas não são definidos (eles não têm corpos). 
 
21. Qual o conjunto de ferramentas mínimo que um ambiente de programação deve ter? 
a) Interface Gráfica, Editor de textos, Compilador e um sistema de arquivos 
b) Interface Gráfica, Editor de textos, Compilador e um Ligador 
c) Editor de textos, Controle de Rede, Compilador e um sistema de arquivos 
d) Interface Gráfica, Controle de Rede, Editor de textos, Compilador e um Ligador 
e) Editor de textos, Compilador, Ligador e um sistema de arquivos 
 
22. Paradigmas é um padrão de resolução de problemas que se relaciona a um determinado gênero de programas 
e linguagens. Baseado nesse contexto, assinale a opção que informa os principais paradigmas de programação: 
a) Imperativa, Orientada a Objetos, Funcional, Manipulação de eventos. 
b) Imperativa, Orientada a Objetos, Concorrente, Lógica. 
c) Imperativa, Concorrente, Funcional, Lógica. 
d) Imperativa, Orientada a Objetos, Funcional, Lógica. 
e) Imperativa, Orientada a Objetos, Manipulação de eventos, Lógica. 
 
23. Estudar conceitos básicos das linguagens de programação pode parecer muito tedioso, já que não estamos 
efetivamente usando as linguagens, mas apenas conhecendo suas bases. Contudo, existem razões indiretas 
para esse estudo, entre elas: 
a) Expansão da área de computação, Reaproveitamento de Linguagens não mais usadas, Aumento de 
performance dos Códigos 
b) Capacidade de Expressão, Intuição, Tomada de Decisão, Gerencia de Projeto 
c) Melhor capacidade de expressão, Melhor escolha de Linguagens, Curva de aprendizado de linguagens 
menor, Uso das linguagens na implementação 
d) Capacidade, Avaliação, Aprendizado, Códigos Menores 
e) Melhor uso de linguagens conhecidas, Interação social, Melhor Gerencia de Equipe. 
 
24. Quais as vantagens e desvantagens da linguagem Python não ter tipos estáticos? 
a) Variáveis sem tipo são válidas por todo o escopo global do programa, mas levam mais tempo para serem 
compiladas que as linguagens tipadas 
b) O programador tem mais flexibilidade podendo escrever algoritmossem conhecer o tipo prévio de uma 
variável, mas em contrapartida, mas perde a confiabilidade de detecção de erros em tempo de compilação 
e aumenta o custo de processamento. 
c) As variáveis rápidas pois não precisam fazer pré-verificação de tipos mas são menos confiáveis na detecção 
de erros. 
d) É mais confiável, porém menos flexível pois temos que checar todas as regras de conversão 
e) Atribuições de valores a variáveis funcionam tanto do lado direito para o esquerdo quanto do esquerdo 
para o direito, mas não se podem criar novas variáveis com o mesmo nome em outros pontos do 
programa. 
 
25. Explique o que são processos concorrentes. 
 
Gabarito: 
São processos que podem ocorrer em paralelo dividindo recursos físicos para serem processados. 
 
26. Conforme estudamos nesta unidade, o código de um programa pode estar todo contido em um único arquivo 
ou dividido entre uma parte principal em um arquivo e outras em arquivos complementares. Assim, diferencie 
Programa de Biblioteca. 
 
Gabarito: 
Bibliotecas são conjuntos de sub-rotinas contendo código útil a diversos programas que podem utilizar tais 
bibliotecas por meio de comandos de inclusão das mesmas, ou implementar todas estas sub-rotinas 
diretamente em seu código. 
 
27. Como um hardware ou sistema operacional poderia trabalhar com processos concorrentes? 
 
Gabarito: 
Hardware com dois ou mais processadores ou sistemas operacionais que podem realocar recursos ociosos 
durante processos lentos. 
 
28. Diferencie atributo de método. 
 
Gabarito: 
Atributos são as propriedades de uma entidade (classe). Métodos são as sub-rotinas (comportamentos) 
responsáveis por processar dados de uma classe (entidade). 
 
29. "É um mecanismo simples e poderoso que permite que uma nova classe seja descrita a partir de outra classe 
já existente, adquirindo características e propriedades." O conceito citado refere-se a qual termo? 
 
Autor: HILSON BARBOSA DA SILVA hilsonsilva@gmail.com 
 
a) Polimorfismo 
b) Objetos 
c) Herança 
d) Abstração 
e) Encapsulamento 
 
30. O conceito de polimorfismo em computação é: 
a) é capacidade de uma mesma assinatura de função ou uma operação ser aplicada, se possível, a qualquer 
um dos diversos tipos relacionados e obtiver o resultado associado a cada tipo. 
b) é a capacidade de programador reutilizar o código por meios de funções. 
c) é capacidade de sobrecarregar um operador com diversos tipos de entradas, mas, com apenas um tipo de 
saída do tipo inteiro 
d) é a capacidade de ser possível passar mais de um parâmetro em um entrada de função. 
e) é a capacidade de se retorna diversos valores ao mesmo tempos de uma função ou operação.

Outros materiais