Baixe o app para aproveitar ainda mais
Prévia do material em texto
Revisar envio do teste: Clique aqui para iniciar o QuizSP_GRAD_686268_2302_01 2301-ALGORITMOS E PROGRAMAÇÃO I Quiz REVISAR ENVIO DO TESTE: CLIQUE AQUI PARA INICIAR O QUIZ Usuário Curso Teste Clique aqui para iniciar o Quiz Iniciado Enviado Data de vencimento Status Completada Resultado da tentativa 8 em 10 pontos Tempo decorrido 1 hora, 50 minutos Resultados exibidos Todas as respostas, Respostas enviadas, Respostas corretas, Comentários Pergunta 1 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 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 2 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; Sala de Aula Tutoriais 1 em 1 pontos 1 em 1 pontos ALGORITMOS E PROGRAMAÇÃO I https://senacsp.blackboard.com/webapps/blackboard/execute/courseMain?course_id=_211761_1 https://senacsp.blackboard.com/webapps/blackboard/content/listContent.jsp?course_id=_211761_1&content_id=_9493060_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: 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 3 Resposta Selecionada: Respostas: Comentário da resposta: Leia com atenção o texto a seguir: O pensamento computacional requer a compreensão das capacidades dos computadores, a formulação de problemas a serem tratados por um computador e o projeto de algoritmos que um computador pode executar. O contexto e a abordagem mais eficazes para desenvolver o pensamento computacional é aprender ciência da computação; eles estão intrinsecamente conectados. Fonte: K12 COMPUTER SCIENCE. K12 Computer Science Framework. Disponível em: https://k1 2cs.org/wp-content/uploads/2016/09/K%E2%80%9312-Computer-Science-Framework.pdf. Acesso em: 30 out. 2021. Sobre o pensamento computacional, assinale a alternativa que apresenta uma de suas práticas. Resolver problemas computacionais através de programas. Desenvolver e usar abstrações. Testar algoritmos computacionais. Distinguir entre o pensamento humano e o computacional. Praticar os conceitos de ciência da computação como programação. Resolver problemas computacionais através de programas. Um dos pilares do pensamento computacional é a abstração. Praticar a abstração é preocupar-se com os elementos mais importantes de um problema, deixando de lado detalhes muito específicos. Ao fazer um bolo, por exemplo, a 0 em 1 pontos preocupação deve ser com a receita e se você possui ou não os ingredientes. Devemos então abstrair de detalhes como: se a batedeira é profissional ou doméstica, se o forno é elétrico ou a gás, entre outros. Pergunta 4 Resposta Selecionada: Respostas: Comentário da resposta: 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. 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 5 Resposta Selecionada: 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: I. O laço de repetição while da linha 5 será executado indiferentemente do valor digitado pelousuá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 1 em 1 pontos 1 em 1 pontos Respostas: Comentário da resposta: 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 é condizente com o esperado, que seria o inteiro. Pergunta 6 Resposta Selecionada: Respostas: Comentário da resposta: Observe com atenção o código a seguir desenvolvido no Scratch. Considerando esse código, o significado dos blocos e suas saídas, analise as afirmativas a seguir: I. O componente laranja é um nó encontrado no grupo de nós chamado Eventos e será ativado quando uma tecla for pressionada. II. Ao clicar na seta para a esquerda do teclado, no segundo bloco o gato inverterá o trajeto e, ao invés de ir para frente, irá para trás. III. O algoritmo desenvolvido é responsável por fazer o gato virar para trás e dar 100 passos nesta direção. IV. Ao clicar na seta para esquerda do teclado, o gato por 4 vezes, o gato fará um trajeto na tela semelhante a um quadrado no sentido horário. Está correto o que se afirma em: I e IV, apenas. I e IV, apenas. II e IV, apenas. II e III, apenas. III e IV, apenas. I e III, apenas. A afirmativa I está correta, pois o bloco laranja é um componente encontrado no grupo de nós laranja chamado Eventos. Neste bloco podemos selecionar qual tecla que, ao ser clicada, executará um evento (ação) no personagem. A afirmativa II está incorreta, pois apesar da tecla indicada ser a da esquerda, o gato vai virar 90° e deslocar 100 passos para baixo. Sendo assim, ele não virá para trás, ele ficará de cara para baixo e dará os 100 passos em sentido horário. A afirmativa III está incorreta, pois o gato não irá para trás, ele ficará de cara para baixo e, em seguida, se deslocará neste sentido. A afirmativa IV está correta, pois apesar da tecla indicada no bloco ser a da esquerda, ao clicar uma vez nessa tecla, o gato rotacionará 90°, ficando de cara para baixo, e andará 100 passos para baixo. Ao pressionar uma segunda vez, o gato rotacionará mais 90° e, ficando de ponta cabeça, deslocará 100 passos para a esquerda. Se pressionar o botão mais duas vezes, o gato completará o trajeto em sentido horário, formando um quadrado. 1 em 1 pontos Pergunta 7 Resposta Selecionada: Respostas: Comentário da resposta: Leia com atenção o texto a seguir. Um algoritmo é um procedimento computacional bem definido que pega algum valor como entrada e gera algum valor como saída. Em palavras simples, é uma sequência de etapas computacionais que converte a entrada em saída. A respeito dos algoritmos e seus tipos de representações, analise as afirmativas a seguir e assinale V para a(s) Verdadeira(s) e F para a(s) Falsa(s). I. ( ) O algoritmo fornece ao designer uma descrição consistente dos requisitos e objetivos dos problemas. II. ( ) O pseudocódigo, um método para representar algoritmos, resume o fluxo de um programa, apresentando os detalhes subjacentes. III. ( ) A detecção de erros ou o fluxo de programa incorreto no estágio de pseudocódigo é benéfica para o desenvolvimento. IV. ( ) Os fluxogramas melhoram a condição e a eficiência do trabalho, possuindo quatro símbolos básicos que são o início, o fim, o processo e a decisão. Assinale a alternativa que possui a sequência correta. F-V-V-F. F-V-F-V. V-V-F-F. F-V-V-F. V-F-V-V. F-F-V-V. A afirmativa I é verdadeira, pois a escrita de um algoritmo facilita o entendimento, de toda equipe, dos requisitos de um projeto de software. A afirmativa II é falsa, pois o pseudocódigo é um método de representação textual de um algoritmo, usado principalmente para destacar as principais funcionalidades, excluindo os detalhes subjacentes. A afirmativa III é verdadeira, pois por ser um processo realizado no início do desenvolvimento de software, encontrar um erro ou qualquer tipo de problema durante a elaboração do fluxograma é mais barato e menos prejudicial para a empresa. Logo, o fluxograma auxilia a encontrar erros que podem causar prejuízos para a empresa. A afirmativa IV é verdadeira, pois um fluxograma possui essencialmente quatro símbolos básicos que contêm código escrito para programação. Eles fornecem comandos como início, processo, decisão e fim, e esses símbolos são a parte crucial dos fluxogramas de programação. Pergunta 8 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 string e 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. 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: 0 em 1 pontos 1 em 1 pontos Resposta Selecionada: Respostas: Comentário da resposta: 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. É correto o que se afirma em: I e III, apenas. I e III, apenas. I e IV, apenas. II e III, apenas. I e II, apenas. II e IV, apenas. 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: Comentário da resposta: Observe com atenção o pseudocódigo a seguir: início se temperatura == “40” escreva(“ligar ar-condicionado”) escreva(“fechar as janelas”) senão escreva(“ligar ventilador”) escreva(“abrir as janelas”) �m-se �m Sobre algoritmos, assinale a alternativa correta. O pseudocódigo é utilizado para acelerar o ciclo de desenvolvimento de um código. O pseudocódigo é uma representação formal de um código real, porém em português. O pseudocódigo possui uma estrutura pré-definida, ou seja, específica, e é um intermediário entre o português e uma linguagem de programação. O pseudocódigo é usado em automação residencial, como no caso do código apresentado para ligar o ventilador ou o ar-condicionado. O pseudocódigo é utilizado para acelerar o ciclo de desenvolvimento de um código. O pseudocódigo é usado para comunicar ideias, assim como as linguagens de programação, porém em português. O pseudocódigo é uma escrita intermediária entre a linguagem falada ou o algoritmo narrativo e o código de computador. Logo, é uma boa opção escrevê-lo a fim de ganhar tempo e diminuir erros relacionados ao desenvolvimento. 1 em 1 pontos Sexta-feira, 13 de Outubro de 2023 17h47min06s BRT Pergunta 10 Resposta Selecionada: Respostas: Comentário da resposta: As estruturas de decisão, ou estruturas condicionais, são utilizadas nos códigos para dividir um 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 as 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 única 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 falsa. 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 verdadeira. 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 outra sejam verdadeiras, logo, o operador E (&&) representa o IF aninhado. ← OK 1 em 1 pontos
Compartilhar