Prévia do material em texto
06/12/23, 22:34 Revisar envio do teste: Clique aqui para iniciar o Quiz &ndash... https://senacsp.blackboard.com/webapps/assessment/review/review.jsp?attempt_id=_35108728_1&course_id=_226489_1&content_id=_10210… 1/13 Revisar envio do teste: Clique aqui para iniciar o Quiz SP_GRAD_686268_2304_01 2303-ALGORITMOS E PROGRAMAÇÃO I Quiz REVISAR ENVIO DO TESTE: CLIQUE AQUI PARA INICIAR O QUIZ Usuário PALOMA COSTA BARROS Curso 2303-ALGORITMOS E PROGRAMAÇÃO I Teste Clique aqui para iniciar o Quiz Iniciado 06/12/23 22:10 Enviado 06/12/23 22:34 Data de vencimento 06/12/23 23:59 Status Completada Resultado da tentativa 8 em 10 pontos Tempo decorrido 23 minutos Resultados exibidos Todas as respostas, Respostas enviadas, Respostas corretas, Comentários Pergunta 1 Resposta Selecionada: Respostas: Durante o desenvolvimento de programas, os operadores lógicos E e OU são usados para relacionar expressões. O resultado de uma operação lógica será VERDADEIRO ou FALSO. Ao utilizar o operador E, por exemplo, o resultado será VERDADEIRO somente se estiver entre dois operandos também VERDADEIROS. Analise, então, as seguintes expressões: Expressão 1: FALSO OU VERDADEIRO E FALSO E VERDADEIRO. Expressão 2: FALSO E VERDADEIRO E FALSO OU VERDADEIRO. Sobre as expressões 1 e 2, é corretor dizer que o operador OU resultará VERDADEIRO quando qualquer um dos operandos também for verdadeiro. Logo, o resultado da expressão 2 será VERDADEIRO. o operador OU resultará VERDADEIRO quando qualquer um dos operandos também for verdadeiro. Logo, o resultado da expressão 1 será VERDADEIRO. Sala de Aula Tutoriais 1 em 1 pontos PALOMA COSTA BARROS 40 https://senacsp.blackboard.com/webapps/blackboard/execute/courseMain?course_id=_226489_1 https://senacsp.blackboard.com/webapps/blackboard/content/listContent.jsp?course_id=_226489_1&content_id=_10210078_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 06/12/23, 22:34 Revisar envio do teste: Clique aqui para iniciar o Quiz &ndash... https://senacsp.blackboard.com/webapps/assessment/review/review.jsp?attempt_id=_35108728_1&course_id=_226489_1&content_id=_10210… 2/13 Comentário da resposta: tanto a expressão 1 quanto a expressão 2 terão como saída o valor VERDADEIRO, afinal, em ambas as expressões temos o operador OU, que é chamado de operador permissivo. o operador E resultará VERDADEIRO quando qualquer um dos operandos também for verdadeiro. Logo, o resultado da expressão 2 será VERDADEIRO. o operador E é menos permissivo e restritivo que o operador OU, deste modo, em uma expressão, basta que apenas um operando seja VERDADEIRO para que toda a expressão se torne verdadeira. o operador OU resultará VERDADEIRO quando qualquer um dos operandos também for verdadeiro. Logo, o resultado da expressão 2 será VERDADEIRO. Analisando a tabela lógica ou tabela verdade, o operador OU resultará VERDADEIRO sempre que estiver relacionando qualquer valor booleano com um valor VERDADEIRO. Em outras palavras, basta que um dos operandos seja VERDADEIRO para que o resultado seja VERDADEIRO. O operador E é mais restritivo, logo, para que o resultado de uma expressão lógica seja verdadeiro, necessariamente todos os operandos precisam também ser verdadeiros. Pergunta 2 Resposta Selecionada: Leia o texto a seguir: As funções são um recurso comum entre todas as linguagens de programação. Elas permitem que os desenvolvedores escrevam blocos de código que realizam tarefas específicas. Uma função pode ser executada quantas vezes o desenvolvedor quiser em todo o código. Considerando esse contexto, avalie as seguintes asserções e a relação proposta entre elas. I. As funções fornecem melhor modularidade para seu aplicativo e um alto grau de reutilização de código. PORQUE II. C# oferece muitas funções integradas, permitindo que o programador possa criar as suas próprias, criando blocos de códigos organizados e reutilizáveis. A respeito dessas asserções, assinale a alternativa correta. 1 em 1 pontos 06/12/23, 22:34 Revisar envio do teste: Clique aqui para iniciar o Quiz &ndash... https://senacsp.blackboard.com/webapps/assessment/review/review.jsp?attempt_id=_35108728_1&course_id=_226489_1&content_id=_10210… 3/13 Respostas: Comentário da resposta: 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 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 verdadeira e a II é uma proposição falsa. 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 uma função é denotada pelo modificador de acesso, seguido pelo tipo de retorno, pelo nome da função e um conjunto de parênteses. Esses blocos de código permitem que você organize seu código com mais eficiência. A asserção II é uma proposição verdadeira, pois em C# temos as funções integradas como Math.pow() para potenciação, Math.round() para arredondar um número, entre outras. Também é possível criarmos nossas próprias funções, deixando o código mais organizado. A asserção II é uma justificativa da I, pois além de poder organizar o código, as funções também permitem que as manutenções sejam mais simples. Pergunta 3 Analise com atenção o código a seguir, que possui algumas variáveis e realiza algumas operações sobre elas: 1 string var1; 2 int var2; 3 double var3; 4 5 Console.WriteLine(“Digite seu nome”); 6 var1 = Console.ReadLine(); 7 1 em 1 pontos 06/12/23, 22:34 Revisar envio do teste: Clique aqui para iniciar o Quiz &ndash... https://senacsp.blackboard.com/webapps/assessment/review/review.jsp?attempt_id=_35108728_1&course_id=_226489_1&content_id=_10210… 4/13 Resposta Selecionada: Respostas: Comentário da resposta: 8 Console.WriteLine(“Digite sua idade”); 9 var1 = Console.ReadLine(); 10 11 var2 = int.Parse(var1); 12 13 var3 = Math.Pow(var2, 2); 14 15 Console.WriteLine(var3); Considerando essas informações, analise as afirmativas a seguir: I. Neste código será solicitada uma entrada de dados que, ao digitar valores numéricos, eles serão mostrados na tela. II. Neste código, ao digitar palavras e expressões alfanuméricas, elas serão armazenadas em var1 e mostradas na tela na linha 15. III. Este código apresentará mensagem de erro na linha 11 que recebe um texto, porém a variável var2 é do tipo Inteiro. IV. Este código apresenta uma saída de texto na linha 15 com o conteúdo da variável var3, sempre que var1 for um número. Estão corretas apenas as afirmativas: I e IV. II e III. I e IV. II e IV. I e III. III e IV. A afirmativa I é verdadeira, pois o tipo da variável var1 no início do código (linha 1) é string. Na linha 9 é solicitada a idade, que será um número, porém, a variável continua sendo string. Na linha 11 essa string é convertida para inteiro. Logo, se houver um caractere numeral na variável var1, ele será convertido para número do tipo inteiro na linha 11. Deste modo, na linha 13 estamos elevando esse número ao quadrado, se for 10, por exemplo, na linha 15 será mostrado o valor 100. A afirmativa II é falsa, pois ao digitar qualquer letra ou palavra, contendo ou não número, o código apresentará erro, uma vez que existe uma 06/12/23, 22:34 Revisar envio do teste: Clique aqui para iniciar o Quiz &ndash... https://senacsp.blackboard.com/webapps/assessment/review/review.jsp?attempt_id=_35108728_1&course_id=_226489_1&content_id=_10210… 5/13 operação aritmética na linha 13, logo o programa espera que você informe números e não letras. A afirmativa III é falsa, pois a variável var2 não é do tipo inteiro, ela não tem tipo até então, pois acabou de ser criada.O único erro que pode ocorrer na linha 11 é a tentativa de converter um caractere (letra) em inteiro. A afirmativa IV é verdadeira, pois sempre que for digitado um número na linha 6 ele será convertido de string para tipo inteiro e, em seguida, realizada a operação aritmética de exponenciação e, por fim, apresentado na tela na linha 15. Pergunta 4 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){ 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 } 0 em 1 pontos 06/12/23, 22:34 Revisar envio do teste: Clique aqui para iniciar o Quiz &ndash... https://senacsp.blackboard.com/webapps/assessment/review/review.jsp?attempt_id=_35108728_1&course_id=_226489_1&content_id=_10210… 6/13 Resposta Selecionada: Respostas: Comentário da resposta: Os valores impressos na instrução da linha 17 serão: 14 - 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 5 Resposta Selecionada: Respostas: Comentário da resposta: Sobre variáveis em programação, podemos afirmar que: I. Uma variável pode iniciar-se com letras, com underscore ( _ ) ou com traço (-) e deve ser evitado o uso de caracteres especiais. II. Se criarmos uma variável chamada aluno1 e outra chamada aluno2, teremos dois espaços na memória para guardar valores. III. Uma variável chamada nota pode armazenar, ao mesmo tempo, o nome de um aluno e sua respectiva nota em uma avaliação. IV. Uma variável não pode ter caracteres especiais ou traços, afinal, o computador pode não compreender estes sinais. As alternativas verdadeiras são: II e IV, apenas. I e III, apenas. I e IV, apenas. II e III, apenas. I e II, apenas. II e IV, apenas. A afirmativa I é falsa, pois não podemos utilizar o sinal de traço (-) em uma variável, afinal, o computador pode ficar em dúvida se 1 em 1 pontos 06/12/23, 22:34 Revisar envio do teste: Clique aqui para iniciar o Quiz &ndash... https://senacsp.blackboard.com/webapps/assessment/review/review.jsp?attempt_id=_35108728_1&course_id=_226489_1&content_id=_10210… 7/13 esse traço representa um caractere separador ou um sinal de subtração, então por isso não é possível utilizá-lo. A afirmativa II é verdadeira, pois uma variável tem o exato propósito de armazenar um valor na memória. Logo, ao criarmos duas variáveis, teremos dois espaços na memória reservados para o nosso programa. A afirmativa III é falsa, pois uma variável pode armazenar apenas um único valor, logo, ou se armazena o nome do aluno ou se armazena a nota do aluno, não sendo possível armazenar ambos os valores no mesmo espaço de memória. A afirmativa IV é verdadeira, pois caracteres especiais como @#$- ou qualquer outro que o valha, não podem ser utilizados no código como parte do nome da variável. Se usado, o compilador não o reconhecerá como presente na linguagem e, consequentemente, irá gerar um erro. Somente uma observação: alguns caracteres especiais como # e $ são usados na programação, mas não na declaração de uma variável. Pergunta 6 Resposta Selecionada: Observe com atenção os blocos da figura a seguir: Analisando os blocos, é correto afirmar que: a operação aritmética realizada nos blocos laranja (altera) e azul claro (anda) terá o mesmo resultado, porém com comportamentos diferentes. 1 em 1 pontos 06/12/23, 22:34 Revisar envio do teste: Clique aqui para iniciar o Quiz &ndash... https://senacsp.blackboard.com/webapps/assessment/review/review.jsp?attempt_id=_35108728_1&course_id=_226489_1&content_id=_10210… 8/13 Respostas: Comentário da resposta: ao clicar na bandeira verde, o usuário informa dois números, os quais serão somados e armazenados na variável soma. se o valor das variáveis numA e numB receberem os valores 8 e 10, o resultado será apresentado na tela pelo gato e ele andará 18 passos. existe uma operação de soma que será executada assim que alguém pressionar a bandeira verde, mostrando o resultado da operação na tela. a operação aritmética realizada nos blocos laranja (altera) e azul claro (anda) terá o mesmo resultado, porém com comportamentos diferentes. a instrução realizada no bloco azul (anda) resultará em erro, uma vez que operações aritméticas devem ser atribuídas a uma variável. Nos blocos laranja e azul temos a mesma operação de soma, com a diferença de que, enquanto o bloco laranja atribui o valor da operação de soma para uma variável, o bloco azul atribui para o bloco anda uma quantidade de passos para o gato caminhar. Logo, se o valor da variável numA for 8 e a variável numB for 10, então a variável soma recebe 18 e o gato caminha 18 passos. Pergunta 7 Leia o texto a seguir: Uma variável possui papel fundamental em um código: guardar dados. Elas podem armazenar apenas um dado por vez, logo, se uma variável chamada nome possui o conteúdo “João”, ao receber o valor “Maria”, a palavra “João” é perdida. Por outro lado, temos as estruturas condicionais, cuja principal característica é modificar o fluxo de um código de acordo com uma condição e, consequentemente, modificar o conteúdo de uma variável. Veja um exemplo de código fonte em C# que manipula uma única variável chamada txt e possui uma condicional. 1 string txt; 2 Console.WriteLine(“Digite seu nome”); 3 txt = Console.ReadLine(); 4 1 em 1 pontos 06/12/23, 22:34 Revisar envio do teste: Clique aqui para iniciar o Quiz &ndash... https://senacsp.blackboard.com/webapps/assessment/review/review.jsp?attempt_id=_35108728_1&course_id=_226489_1&content_id=_10210… 9/13 Resposta Selecionada: Respostas: Comentário da resposta: 5 if(txt != “Maria”){ 6 Console.WriteLine(txt + “seu acesso não está autorizado”); 7 } else { 8 Console.WriteLine(txt + “seu acesso foi autorizado”); 9 Console.WriteLine(“bem vindo!”); 10 } Marque a alternativa que explica corretamente a execução deste código: O valor digitado pelo usuário na linha 3 será armazenado na variável txt e apresentado na linha 6 ou na linha 8. Se a variável txt receber o valor “Maria”, será apresentado na tela que o acesso não está autorizado (linha 6) e três pontos (linha 9). O valor digitado pelo usuário na linha 3 será armazenado na variável txt e apresentado na linha 6 ou na linha 8. A linha 6 deste código apresentará a mensagem “Digite seu nome”, pois este é o valor da variável txt. Uma característica do C# pode ser observada na linha 9, o uso de três pontos para encerrar um fluxo de código. Independente do conteúdo de txt, o conteúdo da linha 9 será apresentado pois ele está fora da estrutura if/else. Na linha 3 o usuário entrará com um valor que, conforme solicitado, deve ser um nome. Se o nome for diferente de Maria, então será apresentado o valor da linha 6, caso contrário, será apresentado o valor da linha 8. Pergunta 8 0 em 1 pontos 06/12/23, 22:34 Revisar envio do teste: Clique aqui para iniciar o Quiz &ndash... https://senacsp.blackboard.com/webapps/assessment/review/review.jsp?attempt_id=_35108728_1&course_id=_226489_1&content_id=_1021… 10/13 Resposta Selecionada: Respostas: I. Na linha 3, quando o usuário inserir um valor de ano, resultará em um erro na linha 5, pois a entrada é do tipo stringe há uma operação aritmética de módulo. II. Se um valor é divisível por 4 e divisível por 100, logo, é divisível por 400 também, o que torna dispensável a expressão ano%400==0. III. Na linha 5, o valor da expressão será true para qualquer ano maior que 1500, uma vez que temos um operador || (ou), tornando a linha 6 inalcançável. IV. Na linha 5, é necessário substituir o primeiro operador maior (>) pelo operador de igualdade, caso contrário, o algoritmo pode não reconhecer anos bissextos. O código a seguir realiza a validação se um dado ano é bissexto ou não. Para calcularmos se um ano é bissexto ou não, temos, necessariamente, que considerar os seguintes fatores: o ano deve ser divisível por quatro, o resto da divisão do ano por 100 tem que ser maior que zero ou a divisão do ano por 400 precisa ser igual a zero. Analise o código com atenção. 1 double ano; 2 3 ano = Console.ReadLine(); 4 5 if(((ano % 4) == 0 || (ano % 100) > 0) || ((ano % 400) == 0)){ 6 Console.WriteLine(“Ano bissexto”); 7 } else { 8 Console.WriteLine(“Ano não é bissexto”); 9 } Considerando as informações apresentadas, avalie as afirmações a seguir: É correto o que se afirma em: II e IV, apenas. I e III, apenas. I e IV, apenas. II e III, apenas. I e II, apenas. II e IV, apenas. 06/12/23, 22:34 Revisar envio do teste: Clique aqui para iniciar o Quiz &ndash... https://senacsp.blackboard.com/webapps/assessment/review/review.jsp?attempt_id=_35108728_1&course_id=_226489_1&content_id=_1021… 11/13 Comentário da resposta: A afirmativa I é verdadeira, pois o valor de entrada é sempre do tipo string. Logo, é necessário converter o valor de entrada do input para o tipo double, de modo a evitar o erro. A afirmativa II está incorreta, pois para um ano ser bissexto, entre outros critérios, o resto da divisão deste ano por 100 deve ser maior que 0. A afirmativa diz que deve ser igual a zero, ou seja, deve ser divisível por 100, o que está errado. Em outras palavras, um número não pode ser divisível por 100. A afirmativa III é verdadeira, pois como o código está com três expressões ligadas por um operador || (ou), basta que uma delas seja verdadeira para que toda a expressão seja verdadeira também. Logo, sempre será executada a linha 4, tornando a linha 6 inacessível A afirmativa IV está incorreta, pois para um ano ser bissexto, ele não pode ser divisível por 100 e deve ser divisível por 4. Ou então, deve ser divisível por 400. Pergunta 9 Resposta Selecionada: Respostas: 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. 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. 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 falsas. A asserção I é uma proposição falsa e a II é uma proposição verdadeira. 1 em 1 pontos 06/12/23, 22:34 Revisar envio do teste: Clique aqui para iniciar o Quiz &ndash... https://senacsp.blackboard.com/webapps/assessment/review/review.jsp?attempt_id=_35108728_1&course_id=_226489_1&content_id=_1021… 12/13 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. 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 10 Resposta Selecionada: 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. 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. 1 em 1 pontos 06/12/23, 22:34 Revisar envio do teste: Clique aqui para iniciar o Quiz &ndash... https://senacsp.blackboard.com/webapps/assessment/review/review.jsp?attempt_id=_35108728_1&course_id=_226489_1&content_id=_1021… 13/13 Quarta-feira, 6 de Dezembro de 2023 22h34min04s BRT Respostas: Comentário da resposta: 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). ← OK