Prévia do material em texto
16/03/2023, 19:29 Revisar envio do teste: Clique aqui para iniciar o Quiz &ndash... https://senacsp.blackboard.com/webapps/assessment/review/review.jsp?attempt_id=_29772781_1&course_id=_205067_1&content_id=_919578… 1/5 Revisar envio do teste: Clique aqui para iniciar o QuizSP_GRAD_686274_2301_01 2301-ALGORITMOS E PROGRAMAÇÃO II Quiz REVISAR ENVIO DO TESTE: CLIQUE AQUI PARA INICIAR O QUIZ Usuário JONAS MIGUEL LEODESSIMO MENDANHA Curso 2301-ALGORITMOS E PROGRAMAÇÃO II Teste Clique aqui para iniciar o Quiz Iniciado 16/03/23 19:06 Enviado 16/03/23 19:28 Data de vencimento 29/03/23 23:59 Status Completada Resultado da tentativa 10 em 10 pontos Tempo decorrido 22 minutos Resultados exibidos Todas as respostas, Respostas enviadas, Respostas corretas, Comentários Pergunta 1 Resposta Selecionada: e. Respostas: a. b. c. d. e. Comentário da resposta: Quantos passos são executados pela busca linear e pela busca binária, respectivamente, até encontrar o valor 98 no vetor abaixo? Vetor = { 5, 10, 12, 38, 45, 61, 65, 69, 81, 89, 98, 100 } 11 e 3 3 e 11 4 e 11 11 e 11 11 e 4 11 e 3 A busca linear encontra o valor 98 na 11ª posição, necessitando, portanto, de 11 passos. A busca binária primeiro verifica o elemento central de valor 61 na posição 6, depois verifica o elemento 81 na posição 9, e por fim verifica o elemento 98 na posição 11. Pergunta 2 Resposta Selecionada: c. Observe o código abaixo. double[] notas = {5.0,6.0,8.0}; double[] notas_com_bonus = bonus(notas); E a função: double[] bonus(double[] vetor){ for(int i=0;i<vetor.Length;i++){ vetor[i] = vetor[i]*1.2; } return vetor; } Após a execução do código, qual o valor dos elementos armazenados nos vetores notas e notas_com_bonus? notas = {6.0,7.2,9.6} notas_com_bonus = {6.0,7.2,9.6} Sala de Aula Tutoriais 1 em 1 pontos 1 em 1 pontos JONAS MIGUEL LEODESSIMO MENDANHA 50 https://senacsp.blackboard.com/webapps/blackboard/execute/courseMain?course_id=_205067_1 https://senacsp.blackboard.com/webapps/blackboard/content/listContent.jsp?course_id=_205067_1&content_id=_9195762_1&mode=reset https://www.ead.senac.br/ https://senacsp.blackboard.com/webapps/portal/execute/tabs/tabAction?tab_tab_group_id=_260_1 https://senacsp.blackboard.com/webapps/portal/execute/tabs/tabAction?tab_tab_group_id=_210_1 https://senacsp.blackboard.com/webapps/login/?action=logout 16/03/2023, 19:29 Revisar envio do teste: Clique aqui para iniciar o Quiz &ndash... https://senacsp.blackboard.com/webapps/assessment/review/review.jsp?attempt_id=_29772781_1&course_id=_205067_1&content_id=_919578… 2/5 Respostas: a. b. c. d. e. Comentário da resposta: notas = {5.0,6.0,8.0} notas_com_bonus = {5.0,6.0,8.0} notas = {5.0,6.0,8.0} notas_com_bonus = {6.0,7.2,9.6} notas = {6.0,7.2,9.6} notas_com_bonus = {6.0,7.2,9.6} notas = {6.0,7.2,9.6} notas_com_bonus = {5.0,6.0,8.0} notas = {5.0,6.0,8.0} notas_com_bonus = {0.0,0.0,0.0} A função recebe o vetor e atualiza os valores de todas as posições. Como o vetor é passado por referência, os valores do vetor original (notas) também são alterados. Dessa forma, notas_com_bonus e notas apontam para a mesma estrutura, com os valores atualizados. Pergunta 3 Resposta Selecionada: a. Respostas: a. b. c. d. e. Comentário da resposta: Qual o tipo de dado utilizado para iniciar a escrita de um arquivo e o método utilizado para escrever em cada linha do arquivo? StreamWriter e WriteLine StreamWriter e WriteLine StreamWriter e FileWriter StreamLine e LineWriter StreamFile e WriteFile StreamLine e LineWriter Primeiro, deve criar um objeto da classe StreamWriter, e utilizar seu método WriteLine, passando como argumento o conteúdo a ser escrito na linha atual. Pergunta 4 Resposta Selecionada: b. Respostas: a. b. c. d. e. Comentário da resposta: Observe o código abaixo. int[,] valores = { { 1, 2, 3 }, { 4, 5, 6 }, { 7, 8, 9 } }; for (int l = 0; l < 3; l++) for (int c = 0; c < 3; c++) if(l>=c) Console.Write(valores[l,c]+" "); O que será impresso pela execução do código? 1 4 5 7 8 9 1 2 3 4 5 7 1 4 5 7 8 9 1 2 3 5 6 9 3 5 6 7 8 9 1 2 3 4 5 6 Todas as posições da matriz são percorridas acessando cada coluna, de cada linha, começando pela primeira (acessando os valores na ordem: 1 2 3 4 5 6 7 8 9). Porém, somente são impressos os que correspondem à condição em que o índice da linha seja maior ou igual ao índice da coluna, portanto, apenas imprimindo os valores dos índices (0,0) (1,0) (1,1) (2,0) (2,1) (2,2). Pergunta 5 1 em 1 pontos 1 em 1 pontos 1 em 1 pontos 16/03/2023, 19:29 Revisar envio do teste: Clique aqui para iniciar o Quiz &ndash... https://senacsp.blackboard.com/webapps/assessment/review/review.jsp?attempt_id=_29772781_1&course_id=_205067_1&content_id=_919578… 3/5 Resposta Selecionada: c. Respostas: a. b. c. d. e. Comentário da resposta: 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 parada, e o retorno desse caso base? public static int restoRecursivo(int a, int b) { if ( critério de parada ) { return caso base; } else { return código; } } b > a ; return a a < b ; return a a < b; return b b > a ; return a b > a ; return b a – b ; return a Resposta: c) b > a ; return a A função decrementa um valor de “b” de “a”, a cada recursão (oposto da multiplicação, que acrescenta). Isso é feito enquanto há um valor de pelo menos “b” em “a”, e por isso, o critério é “b > a”. Como o decréscimo ocorre em “a”, o valore final de “a”, na última recursão, é o resto da divisão. Pergunta 6 Resposta Selecionada: b. Respostas: a. b. c. d. e. Comentário da resposta: Conforme novas chamadas recursivas são executadas, cada uma dessas instâncias é inserida em uma estrutura que controla e mantém a ordem de execução de cada chamada. Essa estrutura é conhecida por: Pilha de execução Fila de execução Pilha de execução Vetor de execução Matriz de execução Chamada de execução Resposta: b) Pilha de execução A estrutura referida no enunciado é a pilha de execução. A chamada original fica na base da pilha, e cada nova chamada é empilhada acima desta. Quando se alcança o critério de parada, a última chamada no topo da pilha é encerrada e, sequencialmente, todas abaixo são encerradas até finalizar a chamada original. Pergunta 7 Considere a função a seguir como uma solução recursiva para calcular o resto de uma divisão. Qual deve ser o retorno dentro do bloco else? public static int restoRecursivo(int a, int b) { if ( critério de parada ) 1 em 1 pontos 1 em 1 pontos 16/03/2023, 19:29 Revisar envio do teste: Clique aqui para iniciar o Quiz &ndash... https://senacsp.blackboard.com/webapps/assessment/review/review.jsp?attempt_id=_29772781_1&course_id=_205067_1&content_id=_919578… 4/5 Resposta Selecionada: b. Respostas: a. b. c. d. e. Comentário da resposta: { return caso base; } else { return código; } } return restoRecursivo(a - b, b) return b - restoRecursivo(a, b) return restoRecursivo(a - b, b) return restoRecursivo(a, a - b) return a - restoRecursivo(a, b) return restoRecursivo(b, a) Resposta: b) return restoRecursivo(a - b, b) O passo indutivo consiste em retirar o valor “b” de “a”, portanto, o novo dividindo deve ser “a – b” e o divisor (quantidade a ser removida de “a”) permanece “b”. O retorno é diretamente a chamada recursiva com esses parâmetros, pois, ao se encontrar o resto, ele deve ser devolvido recursivamente, sem alterações, de volta à chamada original. Pergunta 8 Resposta Selecionada: e. Respostas: a. b. c. d. e. Comentário da resposta: Considerando um vetor já ordenado, qual dos algoritmos de ordenação, conforme implementaçãoabordada em aula, executaria mais rápido? Método bolha . Nenhum funcionaria para um vetor já ordenado. Todos ordenariam no mesmo tempo. Ordenação por inserção. Ordenação por seleção. Método bolha . Resposta: e) Método bolha Conforme primeira otimização demonstrada para o método bolha, uma variável booleana pode registrar a mudança de posição de valores em uma passada. Se todos os valores já estão ordenados, essa variável não mudará seu valor, logo o laço encerrará após a primeira passada. Pergunta 9 Resposta Selecionada: a. Respostas: a. b. c. d. e. Comentário da resposta: Como são conhecidos os métodos auxiliares, não recursivos, do MergeSort e do QuickSort, respectivamente? Intercalar e Particionar Intercalar e Particionar Unir e Particionar Unir e Dividir Intercalar e Dividir Unir e Mapear Resposta: a) Intercalar e Particionar 1 em 1 pontos 1 em 1 pontos 16/03/2023, 19:29 Revisar envio do teste: Clique aqui para iniciar o Quiz &ndash... https://senacsp.blackboard.com/webapps/assessment/review/review.jsp?attempt_id=_29772781_1&course_id=_205067_1&content_id=_919578… 5/5 Quinta-feira, 16 de Março de 2023 19h28min20s BRT O MergeSort realizar duas chamadas a si mesmo, e mais uma ao método Intercalar. O QuickSort realiza uma chamada ao método Particionar e duas a si mesmo. Pergunta 10 Resposta Selecionada: d. Respostas: a. b. c. d. e. Comentário da resposta: Em qual dos vetores abaixo a execução da busca binária encontraria o elemento 26 no quarto passo? { 3, 8, 15, 26, 31, 38, 42, 61, 65, 70 } { 5, 8, 14, 16, 26, 31, 38, 43, 52, 60 } { 26, 29, 31, 40, 48, 53, 54, 62, 68, 72 } { 11, 26, 28, 31, 40, 51, 53, 59, 61, 68 } { 3, 8, 15, 26, 31, 38, 42, 61, 65, 70 } { 3, 5, 9, 11, 15, 18, 21, 25, 26, 30 } No primeiro passo, é verificado o valor 31 no índice 4. No segundo passo, é verificado o valor 8 no índice 1. No terceiro passo, é verificado o valor 15 no índice 2. No quarto passo, é verificado o valor 26 no índice 3. ← OK 1 em 1 pontos