Logo Passei Direto
Buscar

Quiz 05_Algoritmos e Programação 2

Revisão de envio de um Quiz do curso Algoritmos e Programação II: página com perguntas e respostas comentadas (MergeSort, função recursiva para resto, passagem de vetores, busca binária), status da tentativa, tempo decorrido e pontuação (10/10).

Ferramentas de estudo

Mês do Cliente Passei Direto

Quer receber 70% de desconto para assinar o PasseIA?

Material
páginas com resultados encontrados.
páginas com resultados encontrados.

Escolha uma das opções e acesse esse e outros materiais sem bloqueio. 🤩

Cadastre-se ou realize login

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

Escolha uma das opções e acesse esse e outros materiais sem bloqueio. 🤩

Cadastre-se ou realize login

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

Escolha uma das opções e acesse esse e outros materiais sem bloqueio. 🤩

Cadastre-se ou realize login

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

Escolha uma das opções e acesse esse e outros materiais sem bloqueio. 🤩

Cadastre-se ou realize login

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

Escolha uma das opções e acesse esse e outros materiais sem bloqueio. 🤩

Cadastre-se ou realize login

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

Prévia do material em texto

<p>26/09/2023, 11:34 Revisar envio do teste: Clique aqui para iniciar o Quiz &ndash...</p><p>https://senacsp.blackboard.com/webapps/assessment/review/review.jsp?attempt_id=_33683777_1&course_id=_219522_1&content_id=_989379… 1/5</p><p>Revisar envio do teste: Clique aqui para iniciar o QuizSP_GRAD_686274_2303_01 2303-ALGORITMOS E PROGRAMAÇÃO II Quiz</p><p>REVISAR ENVIO DO TESTE: CLIQUE AQUI PARA INICIAR O QUIZ</p><p>Usuário HENRIQUE FERNANDO DE LIMA</p><p>Curso 2303-ALGORITMOS E PROGRAMAÇÃO II</p><p>Teste Clique aqui para iniciar o Quiz</p><p>Iniciado 26/09/23 11:27</p><p>Enviado 26/09/23 11:41</p><p>Data de vencimento 27/09/23 23:59</p><p>Status Completada</p><p>Resultado da tentativa 10 em 10 pontos</p><p>Tempo decorrido 14 minutos</p><p>Resultados exibidos Todas as respostas, Respostas enviadas, Respostas corretas, Comentários</p><p>Pergunta 1</p><p>Resposta Selecionada: d.</p><p>Respostas: a.</p><p>b.</p><p>c.</p><p>d.</p><p>e.</p><p>Comentário da</p><p>resposta:</p><p>Qual o índice, no vetor a seguir, do primeiro elemento utilizado para divisão do vetor, utilizando o MergeSort para ordenação</p><p>dos elementos?</p><p>Vetor = { 8, 10, 22, 5, 7, 11 }</p><p>2</p><p>5</p><p>4</p><p>3</p><p>2</p><p>1</p><p>Resposta: d) 2</p><p>O elemento do índice 2, de valor 22, é utilizado como ponto central para criação de dois vetores, para</p><p>assim dividir o problema maior e subproblemas.</p><p>Pergunta 2</p><p>Considere a função a seguir como uma solução recursiva para calcular o resto de uma divisão. Qual deve ser o critério de</p><p>parada, e o retorno desse caso base?</p><p>public static int restoRecursivo(int a, int b)</p><p>{</p><p>if ( critério de parada )</p><p>{</p><p>return caso base;</p><p>}</p><p>else</p><p>{</p><p>return código;</p><p>Sala de Aula Tutoriais</p><p>1 em 1 pontos</p><p>1 em 1 pontos</p><p>HENRIQUE FERNANDO DE LIMA</p><p>2</p><p>https://senacsp.blackboard.com/webapps/blackboard/execute/courseMain?course_id=_219522_1</p><p>https://senacsp.blackboard.com/webapps/blackboard/content/listContent.jsp?course_id=_219522_1&content_id=_9893772_1&mode=reset</p><p>https://www.ead.senac.br/</p><p>https://senacsp.blackboard.com/webapps/portal/execute/tabs/tabAction?tab_tab_group_id=_260_1</p><p>https://senacsp.blackboard.com/webapps/portal/execute/tabs/tabAction?tab_tab_group_id=_210_1</p><p>https://senacsp.blackboard.com/webapps/login/?action=logout</p><p>26/09/2023, 11:34 Revisar envio do teste: Clique aqui para iniciar o Quiz &ndash...</p><p>https://senacsp.blackboard.com/webapps/assessment/review/review.jsp?attempt_id=_33683777_1&course_id=_219522_1&content_id=_989379… 2/5</p><p>Resposta Selecionada: c.</p><p>Respostas: a.</p><p>b.</p><p>c.</p><p>d.</p><p>e.</p><p>Comentário da</p><p>resposta:</p><p>}</p><p>}</p><p>b > a ; return a</p><p>(a) a - b ; return b</p><p>a < b; return b</p><p>b > a ; return a</p><p>b > a ; return b</p><p>a – b ; return a</p><p>Resposta: c) b > a ; return a</p><p>A função decrementa um valor de “b” de “a”, a cada recursão (oposto da multiplicação, que acrescenta).</p><p>Isso é feito enquanto há um valor de pelo menos “b” em “a”, e por isso, o critério é “b > a”. Como o</p><p>decréscimo ocorre em “a”, o valore final de “a”, na última recursão, é o resto da divisão.</p><p>Pergunta 3</p><p>Resposta Selecionada:</p><p>c.</p><p>Respostas:</p><p>a.</p><p>b.</p><p>c.</p><p>d.</p><p>e.</p><p>Comentário da</p><p>resposta:</p><p>Observe o código abaixo.</p><p>double[] notas = {5.0,6.0,8.0};</p><p>double[] notas_com_bonus = bonus(notas);</p><p>E a função:</p><p>double[] bonus(double[] vetor){</p><p>for(int i=0;i<vetor.Length;i++){</p><p>vetor[i] = vetor[i]*1.2;</p><p>}</p><p>return vetor;</p><p>}</p><p>Após a execução do código, qual o valor dos elementos armazenados nos vetores notas e notas_com_bonus?</p><p>notas = {6.0,7.2,9.6}</p><p>notas_com_bonus = {6.0,7.2,9.6}</p><p>notas = {5.0,6.0,8.0}</p><p>notas_com_bonus = {5.0,6.0,8.0}</p><p>notas = {5.0,6.0,8.0}</p><p>notas_com_bonus = {6.0,7.2,9.6}</p><p>notas = {6.0,7.2,9.6}</p><p>notas_com_bonus = {6.0,7.2,9.6}</p><p>notas = {6.0,7.2,9.6}</p><p>notas_com_bonus = {5.0,6.0,8.0}</p><p>notas = {5.0,6.0,8.0}</p><p>notas_com_bonus = {0.0,0.0,0.0}</p><p>A função recebe o vetor e atualiza os valores de todas as posições. Como o vetor é passado por</p><p>referência, os valores do vetor original (notas) também são alterados. Dessa forma, notas_com_bonus e</p><p>notas apontam para a mesma estrutura, com os valores atualizados.</p><p>Pergunta 4</p><p>Resposta Selecionada: d.</p><p>Respostas: a.</p><p>b.</p><p>c.</p><p>Em qual dos vetores abaixo a execução da busca binária encontraria o elemento 26 no quarto passo?</p><p>{ 3, 8, 15, 26, 31, 38, 42, 61, 65, 70 }</p><p>{ 5, 8, 14, 16, 26, 31, 38, 43, 52, 60 }</p><p>{ 26, 29, 31, 40, 48, 53, 54, 62, 68, 72 }</p><p>{ 11, 26, 28, 31, 40, 51, 53, 59, 61, 68 }</p><p>1 em 1 pontos</p><p>1 em 1 pontos</p><p>26/09/2023, 11:34 Revisar envio do teste: Clique aqui para iniciar o Quiz &ndash...</p><p>https://senacsp.blackboard.com/webapps/assessment/review/review.jsp?attempt_id=_33683777_1&course_id=_219522_1&content_id=_989379… 3/5</p><p>d.</p><p>e.</p><p>Comentário da</p><p>resposta:</p><p>{ 3, 8, 15, 26, 31, 38, 42, 61, 65, 70 }</p><p>{ 3, 5, 9, 11, 15, 18, 21, 25, 26, 30 }</p><p>No primeiro passo, é verificado o valor 31 no índice 4. No segundo passo, é verificado o valor 8 no índice</p><p>1. No terceiro passo, é verificado o valor 15 no índice 2. No quarto passo, é verificado o valor 26 no</p><p>índice 3.</p><p>Pergunta 5</p><p>Resposta Selecionada: a.</p><p>Respostas: a.</p><p>b.</p><p>c.</p><p>d.</p><p>e.</p><p>Comentário da</p><p>resposta:</p><p>Como são conhecidos os métodos auxiliares, não recursivos, do MergeSort e do QuickSort, respectivamente?</p><p>Intercalar e Particionar</p><p>Intercalar e Particionar</p><p>Unir e Particionar</p><p>Unir e Dividir</p><p>Intercalar e Dividir</p><p>Unir e Mapear</p><p>Resposta: a) Intercalar e Particionar</p><p>O MergeSort realizar duas chamadas a si mesmo, e mais uma ao método Intercalar. O QuickSort</p><p>realiza uma chamada ao método Particionar e duas a si mesmo.</p><p>Pergunta 6</p><p>Resposta Selecionada: d.</p><p>Respostas: a.</p><p>b.</p><p>c.</p><p>d.</p><p>e.</p><p>Comentário da</p><p>resposta:</p><p>Aponte o valor no índice 3 do seguinte vetor:</p><p>int[] valores = {5, 3, 7, 6, 2};</p><p>6</p><p>5</p><p>3</p><p>7</p><p>6</p><p>2</p><p>O índice começa pelo valor zero, portanto, o índice 3 corresponde à quarta posição no vetor, que está</p><p>preenchida com o valor 6.</p><p>Pergunta 7</p><p>Resposta Selecionada: b.</p><p>Respostas: a.</p><p>b.</p><p>c.</p><p>Observe o código abaixo.</p><p>int[,] valores = { { 1, 2, 3 }, { 4, 5, 6 }, { 7, 8, 9 } };</p><p>for (int l = 0; l < 3; l++)</p><p>for (int c = 0; c < 3; c++)</p><p>if(l>=c)</p><p>Console.Write(valores[l,c]+" ");</p><p>O que será impresso pela execução do código?</p><p>1 4 5 7 8 9</p><p>1 2 3 4 5 7</p><p>1 4 5 7 8 9</p><p>1 2 3 5 6 9</p><p>1 em 1 pontos</p><p>1 em 1 pontos</p><p>1 em 1 pontos</p><p>26/09/2023, 11:34 Revisar envio do teste: Clique aqui para iniciar o Quiz &ndash...</p><p>https://senacsp.blackboard.com/webapps/assessment/review/review.jsp?attempt_id=_33683777_1&course_id=_219522_1&content_id=_989379… 4/5</p><p>d.</p><p>e.</p><p>Comentário da</p><p>resposta:</p><p>3 5 6 7 8 9</p><p>1 2 3 4 5 6</p><p>Todas as posições da matriz são percorridas acessando cada coluna, de cada linha, começando pela</p><p>primeira (acessando os valores na ordem: 1 2 3 4 5 6 7 8 9). Porém, somente são impressos os que</p><p>correspondem à condição em que o índice da linha seja maior ou igual ao índice da coluna, portanto,</p><p>apenas imprimindo os valores dos índices (0,0) (1,0) (1,1) (2,0) (2,1) (2,2).</p><p>Pergunta 8</p><p>Resposta Selecionada: b.</p><p>Respostas: a.</p><p>b.</p><p>c.</p><p>d.</p><p>e.</p><p>Comentário da</p><p>resposta:</p><p>Conforme novas chamadas recursivas são executadas, cada uma dessas instâncias é inserida em uma estrutura que</p><p>controla e mantém a ordem de execução de cada chamada. Essa estrutura é conhecida por:</p><p>Pilha de execução</p><p>Fila de execução</p><p>Pilha de execução</p><p>Vetor de execução</p><p>Matriz de execução</p><p>Chamada de execução</p><p>Resposta: b) Pilha de execução</p><p>A estrutura referida no enunciado é a pilha de execução. A chamada original fica na base da pilha, e cada</p><p>nova chamada é empilhada acima desta. Quando se alcança o critério de parada, a última chamada no</p><p>topo da pilha é encerrada e, sequencialmente, todas abaixo são encerradas até finalizar a chamada</p><p>original.</p><p>Pergunta 9</p><p>Resposta Selecionada: c.</p><p>Respostas: a.</p><p>b.</p><p>c.</p><p>d.</p><p>e.</p><p>Comentário da</p><p>resposta:</p><p>Quantas chamadas recursivas são realizadas em cada instância do MergeSort e QuickSort?</p><p>2</p><p>0</p><p>1</p><p>2</p><p>3</p><p>4</p><p>Resposta: c) 2</p><p>São realizadas duas chamadas recursivas: uma para a metade da esquerda do vetor, e outra para a</p><p>metade da direita do vetor. Sendo esta metade dividida de formas distintas, de acordo com</p><p>a lógica de</p><p>cada um dos algoritmos.</p><p>Pergunta 10</p><p>Um jogo armazenou em um vetor a pontuação de todos os jogadores em uma determinada partida, com a primeira metade</p><p>do vetor representando jogadores do time A e a segunda metade representando jogadores do time B. Sabendo disso, o que</p><p>será salvo no arquivo, pelo código abaixo?</p><p>StreamWriter sw = new StreamWriter(caminho_do_arquivo);</p><p>int x = 0;</p><p>int y = 0;</p><p>for (int i = 0; i < vetor.Length; i++)</p><p>{</p><p>if (i< vetor.Length/2-1)</p><p>{</p><p>x += vetor[i];</p><p>1 em 1 pontos</p><p>1 em 1 pontos</p><p>1 em 1 pontos</p><p>26/09/2023, 11:34 Revisar envio do teste: Clique aqui para iniciar o Quiz &ndash...</p><p>https://senacsp.blackboard.com/webapps/assessment/review/review.jsp?attempt_id=_33683777_1&course_id=_219522_1&content_id=_989379… 5/5</p><p>Terça-feira, 26 de Setembro de 2023 11h41min27s BRT</p><p>Resposta Selecionada: c.</p><p>Respostas: a.</p><p>b.</p><p>c.</p><p>d.</p><p>e.</p><p>Comentário da</p><p>resposta:</p><p>y++;</p><p>}</p><p>}</p><p>sw.WriteLine(x/y);</p><p>sw.Close();</p><p>A média da pontuação do time A.</p><p>A maior pontuação geral.</p><p>A maior pontuação do time A.</p><p>A média da pontuação do time A.</p><p>A maior pontuação do time B.</p><p>A média da pontuação do time B.</p><p>No código da questão, é percorrida cada posição do vetor, porém somente as posições até a metade do</p><p>vetor (time A) terão os respectivos valores somados na variável x, e incrementado a variável y. Ao final,</p><p>será salvo no arquivo o valor da divisão de x por y, que corresponde à média da pontuação do time A.</p><p>← OK</p>

Mais conteúdos dessa disciplina