Buscar

AV1

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

Disc.: ALGORITMOS E COMPLEXIDADE Turma: 3002
Aluno: FELIPE ANDERSON SILVA DE ANDRADE Matr.: 201703344936
Prof.: JEAN PIERRE HASHIMOTO BARROS Nota:  2,00 pts.
6639458704 29/09/2023 19:20:59
 1. Ref.: 7652658
Segundo a Lei de Moore (1965), o poder computacional das máquinas dobra a cada 18 meses. Portanto, a princípio,
pode-se considerar que um computador poderia resolver qualquer problema em um espaço de tempo curto. No
entanto, os problemas crescem mais rápido que a capacidade computacional existente.
A e�ciência pode ser associada aos recursos computacionais da seguinte forma:
A quantidade de espaço de armazenamento que utiliza.
A quantidade de tráfego que gera em uma rede de computadores.
A quantidade de dados que precisam ser movidos do disco ou para o disco.
Diante das a�rmações acima, assinale a alternativa correta:
O desempenho do algoritmo deve ser associado do desempenho da máquina que executará o algoritmo
Uma ferramenta de busca na Web, como o Google, que hoje retorna páginas relevantes de forma rápida e e�ciente,
não precisa se preocupar em melhorar seu algoritmo devido ao crescimento de informações na Web, seu
desempenho será sempre e�ciente devido ao seu atual grau de complexidade.
Caso a escolha do algoritmo mais e�ciente seja a errada, uma máquina 10 vezes mais rápida consegue ser e�ciente
proporcionalmente à sua capacidade computacional.
Com a evolução tecnológica da capacidade computacional das máquinas, a importância de se analisar o algoritmo
mais e�ciente �ca em último plano.
 
Para a maior parte dos problemas, a e�ciência está relacionada ao tempo de execução em função do tamanho a
entrada a ser processada.
Respondido em 29/09/2023 19:24:53
 2. Ref.: 7703918
Dado o trecho de código em C++ abaixo, assinale única a�rmativa correta:
#de�ne
struct Pessoa {
String nome;
int idade;
};
int main() {
   Pessoa alunos[10], professores;
}
 
 
A variável aluno é um ponteiro de estrutura contendo contendo as variáveis nome do tipo string e idade do tipo
inteiro
A variável professor é um ponteiro contendo as variáveis nome do tipo string e idade do tipo inteiro
As variáveis aluno e professor são criadas na memória como ponteiro.
javascript:alert('C%C3%B3digo da quest%C3%A3o: 7652658.');
javascript:alert('C%C3%B3digo da quest%C3%A3o: 7652658.');
javascript:alert('C%C3%B3digo da quest%C3%A3o: 7703918.');
javascript:alert('C%C3%B3digo da quest%C3%A3o: 7703918.');
 
A variável aluno é um vetor  de estrutura com 10 posições contendo as variáveis nome do tipo string e idade do tipo
inteiro.
A variável aluno é um vetor com 10 posições
Respondido em 29/09/2023 19:27:04
 3. Ref.: 7702647
A modularização de algoritmos é importante para organizar melhor o código, facilitar a
manutenção, entre outras coisas. Sobre funções e procedimentos, assinale a alternativa correta
sobre a modularização:
As variáveis de�nidas no escopo de cada função são acessíveis em todo o programa.
 A função retorna um valor ao programa.
O procedimento sempre retorna um valor ao programa.
Variáveis globais não são acessíveis no corpo de uma função
As variáveis locais são declaradas no escopo do programa inteiro.
Respondido em 29/09/2023 19:29:17
 4. Ref.: 7653648
A recursividade se apresenta como uma ferramenta poderosa para resolução de problemas computacionais, tanto
acadêmicos quanto comerciais. Por isso, vários algoritmos de ordenação e estrutura de dados são baseados em
programas recursivos.
Sobre recursividade podemos a�rmar:
I) - É importante saber quando utilizar a recursão ou a iteração na solução de um problema. Em linhar gerais,
solucionar problemas através da iteração geralmente exige uma quantidade maior de linhas de código;
II) -  Quando o foco é a e�ciência, a iteração é mais rápida em todos os casos;
III) - Em algumas situações as funções recursivas podem não oferecer benefícios quando comparadas a um algoritmo
elaborado utilizando iteração;
IV) - Quando um algoritmo recursivo faz muitas chamadas, ele pode comprometer o funcionamento adequado da
solução ao causar uma sobrecarga no uso de memória;
Diante das a�rmações acima, assinale a alternativa correta:
apenas as a�rmações I, II e III estão corretas;
apenas as a�rmações I e III estão corretas;
apenas as a�rmações II, III e IV estão corretas;
todas as a�rmações estão corretas;
 apenas as a�rmações I, III e IV estão corretas;
Respondido em 29/09/2023 20:10:15
 5. Ref.: 7767160
Relacionado ao conceito de Algorítmos Recursivos, estudado, assinale a única opção incorreta
javascript:alert('C%C3%B3digo da quest%C3%A3o: 7702647.');
javascript:alert('C%C3%B3digo da quest%C3%A3o: 7702647.');
javascript:alert('C%C3%B3digo da quest%C3%A3o: 7653648.');
javascript:alert('C%C3%B3digo da quest%C3%A3o: 7653648.');
javascript:alert('C%C3%B3digo da quest%C3%A3o: 7767160.');
javascript:alert('C%C3%B3digo da quest%C3%A3o: 7767160.');
Uma função é uma função que faz uma chamada a si mesma.
A geração de sequência é mais fácil com recursão do que usando alguma iteração aninhada.
 Uma desvantagem do uso da recursão é que uma tarefa complexa pode ser dividida em subproblemas mais simples.
O cálculo do fatorial de um número, é um bom exemplo para resolvermos de forma recursiva.
Uma vantagem do uso de recursão, é que funções recursivas fazem o código parecer limpo e elegante.
Respondido em 29/09/2023 20:11:03
 6. Ref.: 7642176
A recursividade é uma ferramenta poderosa para resolução de diversos problemas na computação. Alguns, que
seriam solucionados com algoritmos complexos e difíceis de entender, conseguem ser resolvidos de forma elegante e
bem mais simples.
Diversos problemas complexos da computação são resolvidos utilizando programação dinâmica e/ou paradigmas de
programação funcional. Essas técnicas e paradigmas são todas baseadas em programação recursiva, o que torna
obrigatório o conhecimento adequado da recursividade.
Sobre recursividade podemos a�rmar:
I  ) Não é necesário entender a de�nição recursiva de um algoritmo para realizar sua implementação;
II ) Ao elaborarmos algoritmos recursivos é importante testar os limites dos valores a serem inseridos (carregados)
para, assim, avaliarmos em que tipos de aplicações devemos utilizar-los;
III) Um algoritmo recursivo deve chamar a si mesmo, recursivamente;
IV ) Ao implementar algoritmos recursivos é importante consideramos a utilização da pilha da memória do
computador, procedimento que pode levar a estouros da capacidade de memória;
ssinale a alternativa correta:
a) apenas as a�rmações I, II e III são verdadeiras;
b) apenas as a�rmações II, III e IV são verdadeiras;
c) apenas as a�rmações I e IV são verdadeiras;
d) apenas as a�rmações I, II e IV são verdadeiras;
e) todas as a�rmações são verdadeiras;
 
Asinale a alternativa correta:
apenas as a�rmações I e IV são verdadeiras;
apenas as a�rmações I, II e III são verdadeiras;
 apenas as a�rmações II, III e IV são verdadeiras;
todas as a�rmações são verdadeiras;
apenas as a�rmações I, II e IV são verdadeiras;
Respondido em 29/09/2023 20:08:18
 7. Ref.: 7642426
Sabemos que cada algoritmo tem uma complexidade que está intimamente associada à complexidade do problema a
ser resolvido. Quanto maior for a variedade de situações a serem tratadas, maior será a complexidade.
A complexidade pode ser reduzida ao reduzirmos a variedade. E a variedade pode ser reduzida, dividindo problemas
maiores em problemas menores. Os problemas menores são tratados através do emprego de sub-rotinas, que terão
complexidade menor que o todo.
Considerando o contexto apresentado podemos a�rmar:
javascript:alert('C%C3%B3digo da quest%C3%A3o: 7642176.');
javascript:alert('C%C3%B3digo da quest%C3%A3o: 7642176.');
javascript:alert('C%C3%B3digo da quest%C3%A3o: 7642426.');
javascript:alert('C%C3%B3digo da quest%C3%A3o: 7642426.');
I  ) Subrotina, também chamada de subprograma, é um bloco contendo início e �m, sendo identi�cada por um nome,
pelo qual será referenciada em qualquer parte e em qualquer momento do programa princial;
II ) Aoelaborar um algoritmo podemos criar subrotias ou subprogramas, que são de�nidos como procedimentos e
funções;
III) A diferença principal entre os procedimento e as funções é que a função sempre vai retornar um valor e o
procedimento não retorna valor;
IV ) Dentro das subrotinas podem ser declaradas variáveis locais, que só podem ser referenciadas por comandos que
estão na própria subrotina ao qual foram declaradas, essas variáveis existem somente enquanto a subrotina está
sendo executada.
Assinale a alternativa correta:
 
 todas as a�rmações são verdadeiras;
apenas as a�rmações I, II e III são verdadeiras;
apenas as a�rmações I, II e IV são verdadeiras;
apenas as a�rmações I e IV são verdadeiras;
apenas as a�rmações II, III e IV são verdadeiras;
Respondido em 29/09/2023 20:08:41
 8. Ref.: 7653388
Uma das alternativas para solucionar o problema do cálculo do fatorial de um número é utilizando a recursividade,
conforme foi feito no algoritmo abaixo:
01 - //cálculo do fatorial
02 - #include
03 - int fat(int n);
04 - int main(void)
05 - {    int n;
    
06 -     printf("\n\nDigite um valor para calcularmos o fatorial: ");
07 -     scanf("%d", &n);
08 -     printf("\nO fatorial de %d eh %d, ", n, fat(n));
    
09 -     return 0;}
10 - int fat(int n)
11 - {    if (n) //em C o valor 0 (zero) é interpretado como FALSO e valores <>0 são interpretados como VERDAEIRO
12 -        return n*fat(n-1);
13 -     else return 1;}
Considerando o algoritmo apresentado, é correto a�rmar:
I  ) a recursividade é evidenciada na linha 12 do código;
II ) o subprograma fat é um procedimento, pois retorna um inteiro como resposta ao seu chamamento;
III) o subprograma fat chama ele mesmo e, assim, todas as chamadas �cam ocupando um espaço de memória até que
a útima chamada seja �nalizada e retorne valor para a chamada anterior e assim sucessivamente até chegar a
primeira chamada;
IV ) a funçção fat é chamada para execução na linha 03, do programa principal, momento em que inicia sua execução.
 
Assinale a alternativa correta:
 
apenas as a�rmações II, III e IV são verdadeiras;
apenas as a�rmações I, II e IV são verdadeiras;
javascript:alert('C%C3%B3digo da quest%C3%A3o: 7653388.');
javascript:alert('C%C3%B3digo da quest%C3%A3o: 7653388.');
 apenas as a�rmações I e III são verdadeiras;
todas as a�rmações são verdadeiras;
apenas as a�rmações I, II e III são verdadeiras;
Respondido em 29/09/2023 20:07:00
 9. Ref.: 7702563
Em relação aos ponteiros nas linguagens de programação, selecione, das opções seguintes, aquela
que justi�ca sua aplicação:
Aumento da legibilidade dos programas.
Di�culdade na implementação de tipos primitivos.
Código �ca mais legível e menos propenso a erros.
 Flexibilidade de endereçamento e controle do gerenciamento de armazenamento dinâmico.
Facilidade de implementação no gerenciamento dinâmico.
Respondido em 29/09/2023 20:03:44
 10. Ref.: 7642260
A notação Big O é uma ferramenta importantíssima para os cientistas da computação analisarem o custo de um
algoritmo.
Tecnocamente falando, a notação Big O é uma notação matemática que descreve o comportamento limitante de
uma função quando o argumento tende a um valor especí�co ou ao in�nito. Ela pertence a uma família de notações
inventadas por Paul Bachmann, Edmund Landau e outros, coletivamente chamadas de notação Bachmann¿Landau
ou de notação assintótica.  Ou seja,  a notação Big O descreve a complexidade do seu código usando termos
algébricos.
Diante do contexdo apresentado, podemos a�rmar:
I  ) Quando tentamos descobrir a Big O para uma função g(n) especí�ca, nos preocupamos apenas com o termo
dominante da função. O termo dominante é o termo que cresce mais rápido.
II ) Na notação Big O, podemos dizer que um algoritmo tem a menor complexidade quando seu custo for O(1).
III) De uma forma geral, a complexidade de um algoritmo tem relação principalmente com seu tempo de execução e
espaço de memória ocupado para execução;
IV ) Na notação Big O, podemos dizer que um algoritmo que tem a complexidade O(log(n)) é mais complexo do que
que custa O(n⁴);
Assinale a alternativa correta:
 
apenas as a�rmações II, III e IV são verdadeiras;
apenas as a�rmações I, II e IV são verdadeiras;
 apenas as a�rmações I, II e III são verdadeiras;
todas as a�rmações são verdadeiras;
apenas as a�rmações I e IV são verdadeiras;
Respondido em 29/09/2023 20:04:40
javascript:alert('C%C3%B3digo da quest%C3%A3o: 7702563.');
javascript:alert('C%C3%B3digo da quest%C3%A3o: 7702563.');
javascript:alert('C%C3%B3digo da quest%C3%A3o: 7642260.');
javascript:alert('C%C3%B3digo da quest%C3%A3o: 7642260.');

Continue navegando