Prévia do material em texto
Revisar envio do teste: Clique aqui para iniciar o Quiz STADCAS1DA_2303-2303-686268 2303-ALGORITMOS E PROGRAMAÇÃO I Quiz REVISAR ENVIO DO TESTE: CLIQUE AQUI PARA INICIAR O QUIZ Usuário KAROLAYNE MOTA BEZERRA DA SILVA Curso 2303-ALGORITMOS E PROGRAMAÇÃO I Teste Clique aqui para iniciar o Quiz Iniciado 17/10/23 18:31 Enviado 30/11/23 18:36 Data de vencimento 06/12/23 23:59 Status Completada Resultado da tentativa 9 em 10 pontos Tempo decorrido 1056 horas, 4 minutos Resultados exibidos Todas as respostas, Respostas enviadas, Respostas corretas, Comentários Pergunta 1 Em C#, podemos utilizar os operadores aritméticos para manipular os dados de variáveis, bem como, realizar cálculos assim como na matemática. Considere o código-fonte a seguir escrito em C#. 1 int total; 2 total = 5 + 4 * 18 / 3 * 3 % 3 - 1; 3 Console.WriteLine(total); Considerando esse contexto, avalie as seguintes asserções e a relação proposta entre elas. I. Considerando a instrução da linha 2 e a ordem de precedência de operadores, o valor apresentado na linha 3 será 4. PORQUE II. O operador de adição e o de módulo possuem a mesma precedência, e a soma foi avaliada antes por aparecer primeiro na expressão. Sala de Aula Tutoriais 1 em 1 pontos KAROLAYNE MOTA BEZERRA DA SILVA 7 https://senacsp.blackboard.com/webapps/blackboard/execute/courseMain?course_id=_226521_1 https://senacsp.blackboard.com/webapps/blackboard/content/listContent.jsp?course_id=_226521_1&content_id=_10212822_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 Resposta Selecionada: Respostas: Comentário da resposta: A respeito dessas asserções, assinale a opção correta. A asserção I é uma proposição verdadeira e a II é uma proposição falsa. A asserção I é uma proposição verdadeira e a II é uma proposição falsa. As asserções I e II são proposições verdadeiras e a II é uma justificativa da I. As asserções I e II são proposições verdadeiras, mas a II não é uma justificativa da I. A asserção I é uma proposição falsa e a II é uma proposição verdadeira. As asserções I e II são proposições falsas. A asserção I é uma proposição verdadeira, pois seguindo a precedência dos operadores, a primeira operação será 4*18; em seguida, é feita a divisão, depois o módulo, por fim, a soma e a subtração, totalizando 4. A asserção II é uma proposição falsa, pois de acordo com a precedência de operadores temos: primeiramente, os valores entre parênteses (não é o caso), em seguida, a exponenciação (não é o caso), depois da exponenciação será calculada a multiplicação, a divisão ou o módulo (dependendo da ordem destes operadores), em seguida, será calculada a soma ou a subtração (dependendo da ordem dos operadores na expressão). Pergunta 2 Leia o trecho a seguir: Os operadores aritméticos de soma, subtração, divisão e multiplicação podem ser utilizados nas operações com números inteiros e números reais. Se um número inteiro for dividido por um número real, teremos um número do tipo real como resultado. Estes operadores podem ser utilizados em uma cadeia de instruções, respeitando sempre a ordem de precedência matemática: primeiro a multiplicação, em seguida a divisão, a soma e, por fim, a subtração. Considerando esse contexto, avalie as seguintes asserções e a relação proposta entre elas. 0 em 1 pontos Resposta Selecionada: Respostas: Comentário da resposta: I. Supondo os seguintes valores de variáveis do tipo string: A ="Bom" e B =" Dia", podemos somar A + B, obtendo C = A + B que é igual a “Bom Dia”. Porque: II. Quando realizamos a soma de strings, o resultado final é a concatenação das duas strings, com comportamento semelhante ao símbolo de &. A respeito dessas asserções, assinale a opção correta. As asserções I e II são proposições verdadeiras e a II é uma justificativa correta da I. As asserções I e II são proposições falsas. A asserção I é uma proposição falsa e a II é uma proposição verdadeira. As asserções I e II são proposições verdadeiras, mas a II não é uma justificativa correta da I. As asserções I e II são proposições verdadeiras e a II é uma justificativa correta da I. A asserção I é uma proposição verdadeira e a II é uma proposição falsa. A proposição I é verdadeira, pois quando somamos duas strings, na realidade estamos realizando uma junção. Deste modo, estamos juntando a palavra “Bom” com a palavra “Dia” e o resultado é a frase “Bom Dia”. A proposição II é falsa, pois em C#, o símbolo responsável por realizar a concatenação de strings é o sinal de adição +. O e-comercial “&” não realiza concatenação. Por ser falsa, a asserção II não justifica a asserção I. Pergunta 3 Leia e associe as duas colunas com relação aos pilares do pensamento computacional. I. Decomposição A. Resolve problemas menores e mais fáceis de serem gerenciados obtidos a partir de um problema complexo. II. Abstração B. Divide um problema em passo a passo para que ele seja resolvido por meio de instruções ou regras. III. Algoritmo C. Separa do problema apenas as partes importantes, ignorando as partes menos importantes. 1 em 1 pontos Resposta Selecionada: Respostas: Comentário da resposta: Assinale a alternativa que traz a associação correta entre as duas colunas: I-A; II-C; III-B. I-A; II-C; III-B. I-B; II-C; III-A. I-C; II-A; III-B. I-C; II-B; III-A. I-B; II-A; III-C. A alternativa correta é a) I-A; II-C; III-B. I. Decomposição A. Resolve problemas menores e mais fáceis de serem gerenciados obtidos a partir de um problema complexo. II. Abstração C. Separa do problema apenas as partes importantes, ignorando as partes menos importantes. III. Algoritmo B. Divide um problema em passo a passo para que ele seja resolvido por meio de instruções ou regras. Pergunta 4 Analise com atenção o código a seguir: 1 public static void Main (string[] args) { 2 Console.WriteLine("Digite um numero"); 3 string op = Console.ReadLine(); 4 5 while(op > 0 || op < 50){ 6 Console.WriteLine("Digite um número: "); 7 op = Console.ReadLine(); 8 } 9 } Considerando as informações apresentadas, avalie as afirmações a seguir: 1 em 1 pontos Resposta Selecionada: Respostas: Comentário da resposta: I. O laço de repetição while da linha 5 será executado indiferentemente do valor digitado pelo usuário, uma vez que temos o operador OU (||). II. O laço de repetição while apresentará um erro, pois a variável op é do tipo string e o valor zero é um número inteiro. III. O laço de repetição while será interrompido assim que o usuário digitar um número fora do intervalo entre zero e cinquenta. IV. O laço de repetição while está com sua sintaxe escrita corretamente, porém, ele apresentará um erro de execução. É correto o que se afirma em: II e IV, apenas II e IV, apenas I e III, apenas. I e II, apenas. III e IV, apenas. II e III, apenas. A afirmativa I está incorreta, pois o laço de repetição não será executado pois há uma tentativa de comparar uma string com um valor inteiro, o que irá gerar um erro. Para resolver isso, é possível converter o tipo da variável op de string para inteiro. A afirmativa II está correta, pois haverá um erro devido ao tipo da variável op que é string. A afirmativa III está incorreta, pois mesmo que a variável op fosse do tipo inteiro isso não ocorreria, afinal, existe uma condição ou, logo, independentemente do valor digitado pelo usuário, sempre este laço seria executado (considerando op como inteiro). A afirmativa IV está correta, pois sintaxe se refere a forma de escrita e, neste caso, o while está com sua sintaxe correta. Existe uma expressão interna entre os parênteses com um operador lógico conectando duas operações de comparação. Entretanto, o erro é semântico, uma vez que o tipo não é condizentecom o esperado, que seria o inteiro. Pergunta 5 Analise com atenção o código a seguir que utiliza função com passagem de parâmetros, com três argumentos. 1 public int calcular(int x, ref int y, ref int z){ 1 em 1 pontos Resposta Selecionada: Respostas: Comentário da resposta: 2 x = x + 10; 3 y = y + 10; 4 z = z + 10; 5 Console.WriteLine(x + " "+ y+ " "+ z); 6 return y; 7 } 8 9 public static void Main (string[] args) { 10 int a = 4; 11 int b = 3; 12 int c = 2; 13 14 Program p = new Program(); 15 p.calcular(a, ref b, ref c); 16 17 Console.WriteLine(a + " - "+ b + " - " + c); 18 } Os valores impressos na instrução da linha 17 serão: 4 - 13 - 12 4 - 13 - 12 4 - 3 - 2 14 - 13 - 12 14 - 3 - 2 4 - 12 - 13 Na função main há a invocação da função calcular passando três argumentos por parâmetro, sendo que o primeiro (variável a) é passado por valor, por outro lado, as variáveis b e c são passadas como referência. Logo, qualquer alteração nas variáveis y e z na função calcular, impactará no valor das variáveis b e c que estão na função main. Deste modo, os valores finais das variáveis a, b e c serão, respectivamente, 4, 13 e 12. Pergunta 6 I. Nas linhas 4 a 6 estamos calculando a porcentagem de um determinado valor. Logo, na linha 5 estamos calculando 5% em cima do valor 100. O resultado apresentado na linha 6 será 5. II. Nas linhas 8 a 10, estamos calculando a porcentagem de um determinado valor. Logo, na linha 9 estamos calculando 5% em cima do valor 100. O resultado apresentado na linha 10 será 5. III. Na linha 12, estamos comparando o valor da variável x (obtido na linha 5) e o valor da variável y (obtido na linha 9). O resultado dessa comparação será False. Observe com atenção o código a seguir: 1 double x, valor, y; 2 bool compara; 3 4 valor = 100; 5 x = valor % 5; 6 Console.WriteLine(x); 7 8 valor = 100; 9 y = valor * 0.05; 10 Console.WriteLine(y); 11 12 compara = x == y; 13 Console.WriteLine(compara); Em programação, podemos utilizar os operadores aritméticos como soma, multiplicação, divisão e módulo para manipular os valores das variáveis. Além desse tipo de operador, outro muito utilizado é o operador de comparação, que é responsável por relacionar duas expressões, validando sua igualdade ou diferença, por exemplo. Considerando as informações apresentadas, avalie as afirmações a seguir. É correto o que se afirma em: 1 em 1 pontos Resposta Selecionada: Respostas: Comentário da resposta: II e III, apenas. II e III, apenas. I e II, apenas. I, apenas. II, apenas. III, apenas. A afirmativa I está incorreta, pois o operador % (módulo) retorna o resto da divisão de um número por outro, não sendo responsável por calcular a porcentagem. Logo, a saída é o resto da divisão, ou seja, 0 (zero) e não 5 ou 5%. A afirmativa II está correta, pois estamos calculando a porcentagem, afinal, estamos multiplicando por 0,05 o conteúdo da variável valor, que é 100. Como resultado, teremos o número 5 ou 5%. A afirmativa III está correta, pois o valor da variável x é 0 (resto da divisão de 100 por 5) e o valor da variável y é 5. Como são valores diferentes, o resultado da comparação será False. Pergunta 7 Resposta Selecionada: Respostas: No código a seguir, temos duas estruturas de repetição for. A externa, na linha 1, será executada 10 vezes. Ou seja, o for irá de 1 até 10. No escopo desse for, temos uma estrutura condicional if, a qual também possui internamente uma estrutura de repetição for, que é executada de 1 até 5. 1 for(int x = 1; x<10; x++) 2 if(x % 4 != 0 && x % 2 == 0) 3 for(int y = 1; y<5; y++) 4 Console.WriteLine(y); Considerando as informações apresentadas, assinale a opção correta. No total, a linha 4 será executada 8 vezes, apresentando a sequência 12341234. No total, a linha 4 será executada 8 vezes, apresentando a sequência 12341234. 1 em 1 pontos Comentário da resposta: A expressão da linha 2 só será verdadeira quando o número for par e divisível por 4. A linha 4 será executada 10 vezes, apresentando a sequência 1234512345. A linha 2 será executada quando o valor de x for par e divisível por 4. A linha 4 apresentará o valor de y na tela quando o resto da divisão de x por 4 for diferente de zero ou quando o resto for igual 2. O for externo executará 9 vezes (de 1 a 9, exceto o 10) o bloco que se inicia na linha 2. Como a única condição para entrar no bloco if da linha 2 é que o valor de x não seja divisível por 4 E o valor de x seja par (ou divisível por 2), então a linha 4 será executada 8 vezes apresentando os valores 12341234. Pergunta 8 Resposta Selecionada: Respostas: Comentário da resposta: Em C# e em outras linguagens de programação, para que seja possível manipular dados, uma das necessidades é criar variáveis que armazenem temporariamente valores os quais podem ser numéricos (int ou float), texto (string) ou booleano (bool). Observe o código a seguir escrito em C#: 1 a = 5.95681545; 2 b = Console.ReadLine(); 3 c = 7 % 2; 4 d = 3.5 * c; Marque a alternativa que apresenta corretamente os tipos das variáveis a, b, c e d, respectivamente. a: float; b: string; c: int; d: float. a: int; b: string; c: float; d: int. a: float; b: int; c: float; d: float. a: int; b: string; c: int; d: int. a: float; b: string; c: int; d: float. a: int; b: int; c: float; d: int. Em a) temos um número que é ponto flutuante, isso pode ser observado pelo uso de casas decimais; em b) a variável recebe 1 em 1 pontos um conteúdo da linha de comando via o método input, logo, independentemente de o valor digitado ser um número ou letra, o tipo sempre será string; em c) estamos encontrando o resto de uma divisão, logo, o valor é inteiro; em d) estamos multiplicando um ponto flutuante por um inteiro, o que resulta em um ponto flutuante ou float. Pergunta 9 Resposta Selecionada: Respostas: As estruturas de decisão, ou estruturas condicionais, são utilizadas nos códigos para dividir u fluxo de processos em dois ou fluxos. Todo algoritmo que precisa de tomada de decisão necessita utilizar uma estrutura de controle como esta. Veja um exemplo de código a seguir: 1 int a = 4; 2 int b = 5; 3 4 if(a>1) { 5 if(b>1) { 6 Console.WriteLine(“Valor de a ” + a + “ valor de b “ + b); 7 } 8 } De posse dessas informações e do conteúdo estudado sobre estruturas condicionais, analise asserções a seguir e a relação proposta entre elas. I. No caso de usar IFs aninhados como no código, podemos substituir os dois IFs por uma úni instrução com o operador lógico E (&&), ficando assim: if(a>1 && b>1): Porque II. Para mostrar na tela o conteúdo da linha 6, a instrução da linha 4 precisa ser verdadeira e a instrução da linha 5 também precisa ser verdadeira. A seguir, assinale a alternativa correta: As asserções I e II são proposições verdadeiras e a II é uma justificativa correta da I. As asserções I e II são proposições verdadeiras e a II é uma justificativa correta da I. A asserção I é uma proposição verdadeira e a II é uma proposição fa 1 em 1 pontos Comentário da resposta: As asserções I e II são proposições verdadeiras, mas a II não é uma justificativa correta da I. A asserção I é uma proposição falsa e a II é uma proposição verdade As asserções I e II são proposições falsas. A proposição I está correta, pois podemos utilizar o conceito de IFs aninhados como no código, ou utilizar, nesse código, uma comparação lógica com o operador E (&&). A proposição II está correta, pois a única condição para mostrar o conteúdo da linha 6 é a linha 4 e a linha 5 serem verdadeiras juntas. A proposição II é uma justificativa da I pois, se ambas as decisões, tanto da linha 4 quanto da linha 5 forem verdadeiras, será apresentado o valor da linha 6. Note que temos um se ambas as decisões, ou seja, é necessário que uma e outrasejam verdadeiras logo, o operador E (&&) representa o IF aninhado. Pergunta 10 Resposta Selecionada: Observe com atenção o código a seguir: Considerando o código apresentado, assinale a opção correta. O objetivo deste código é apresentar uma sequência ordenada dos valores, e o bloco representado em 1 é essencial neste processo. 1 em 1 pontos Quinta-feira, 30 de Novembro de 2023 18h36min16s BRT Respostas: Comentário da resposta: O objetivo deste código é apresentar uma sequência ordenada dos valores, e o bloco representado em 1 é essencial neste processo. O valor das variáveis a e b após a execução dos comandos presentes nos blocos representados por 2 e 3 é 41, o mesmo valor da variável aux. O bloco representado por 1 pode ser suprimido, ficando apenas os comandos dos blocos 1 e 2 dentro do escopo do bloco SE. O código apresentará um erro quando o valor da variável a for igual ao valor da variável b, uma vez que não existe uma condição que contemple esta igualdade. O valor das variáveis a e b após a execução dos comandos presentes nos blocos representados por 2 e 3 é 9, o mesmo valor da variável aux. A alternativa a está correta, pois um algoritmo realiza a troca dos valores entre as variáveis a e b sempre que a variável a for maior que a variável b. Entretanto, se fizer uma troca direta, ou seja, a variável a receber o valor da variável b e b receber o valor de a, perderemos o valor da variável a. Deste modo, precisamos de um auxiliar que guarde para nós o valor de a, então isso acontece no bloco indicado em 1. A única condição de entrarmos no bloco SE é quando a variável a for maior que a variável b, logo, estamos ordenando os valores. ← OK