Baixe o app para aproveitar ainda mais
Prévia do material em texto
Usuário WALTER ANTONIO RODRIGUES JUNIOR Curso 2203-ALGORITMOS E PROGRAMAÇÃO I Teste Clique aqui para iniciar o Quiz Iniciado 27/10/22 16:45 Enviado 27/10/22 16:59 Data de vencimento 07/12/22 23:59 Status Completada Resultado da tentativa 5 em 10 pontos Tempo decorrido 13 minutos Resultados exibidos Todas as respostas, Respostas enviadas, Respostas corretas, Comentários • Pergunta 1 1 em 1 pontos Leia com atenção o texto a seguir: Muitos problemas quantitativos e centrados em dados podem ser resolvidos usando o pensamento computacional e uma compreensão do pensamento computacional lhe dará uma base para resolver diversos tipos de problemas. Dentre as habilidades do pensamento computacional, o componente principal que permite um programador criar um conjunto de etapas para desenvolver um programa de computador responsável por resolver problemas que têm impacto social no mundo real é a(o) Resposta Selecionada: algoritmo. Respostas: abstração. algoritmo. depuração. decomposição. avaliação. Comentário da resposta: Dentre as habilidades que norteiam o pensamento computacional, o pensamento algorítmico é a capacidade de escrever instruções em etapas para resolver um determinado tipo de problema. • Pergunta 2 1 em 1 pontos 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. Resposta Selecionada: a: float; b: string; c: int; d: float. Respostas: 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. Comentário da resposta: Em a) temos um número que é ponto flutuante, isso pode ser observado pelo uso de casas decimais; em b) a variável recebe 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 3 1 em 1 pontos A linguagem C#, assim como outras, permite que criemos funções para organizar o nosso código. Dentro destas funções, podemos adicionar estruturas de repetição, estruturas condicionais e também invocar outras funções nativas da linguagem. Observe com atenção o código a seguir escrito em C#, o qual utiliza funções. 1 public string print(string str){ 2 Console.WriteLine(str); 3 } 4 5 public static void Main (string[] args) { 6 Program x = new Program(); 7 8 string cont = “0”; 9 10 while(cont < 10){ 11 x.print(cont); 12 cont = Console.ReadLine(); 13 } 14 } Considerando as informações apresentadas, assinale a alternativa correta. Resposta Selecionada: Este código executará uma vez e apresentará uma mensagem informando que cont não é uma variável do tipo numérica, dando erro na linha 10. Respostas: Este código executará uma vez e apresentará uma mensagem informando que cont não é uma variável do tipo numérica, dando erro na linha 10. Neste código, enquanto o usuário digitar um número menor do que 10, todo o conteúdo interno (linhas 6 a 12) será repetido ou iterado. Ao digitar um número maior ou igual a 10, o loop encerra. Haverá um erro na linha 11, pois a função print está enviando um contador que é inteiro, porém na linha 1 recebe uma string como parâmetro. O while da linha 10, bem como todo o seu conteúdo, entrará em loop infinito, pois o valor de cont é zero e não existe um incremento para esta variável. O erro que ocorrerá em tempo de execução na linha 11 pode ser resolvido se substituirmos a função print pela função nativa do C#, WriteLine. Comentário da resposta: Na primeira execução, quando chega na linha 8, a variável cont é declarada do tipo string, logo, mesmo que receba um número, o tipo da variável é texto (string). Logo, quando encontra o loop do while na linha 10, estamos comparando um tipo texto (cont) com um numérico (10). Deste modo, ocorrerá um erro, pois não é possível realizar este tipo de comparação. • Pergunta 4 1 em 1 pontos Observe com atenção os blocos da figura a seguir: Analisando os blocos, é correto afirmar que: Resposta Selecionada: a operação aritmética realizada nos blocos laranja (altera) e azul claro (anda) terá o mesmo resultado, porém com comportamentos diferentes. Respostas: 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. Comentário da resposta: 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 5 0 em 1 pontos 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. Assinale a alternativa que traz a associação correta entre as duas colunas: Resposta Selecionada: I-C; II-A; III-B. Respostas: 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. Comentário da resposta: 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 6 1 em 1 pontos 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 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: Resposta Selecionada: O valor digitado pelo usuário na linha 3 será armazenado na variável txt e apresentado na linha 6 ou na linha 8. Respostas: 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. Comentário da resposta: 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 7 0 em 1 pontos 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. Resposta Selecionada: F-V-V-F. Respostas: F-V-F-V. V-V-F-F. F-V-V-F. V-V-F-V. F-F-V-V. Comentário da resposta: 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 0 em 1 pontos 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 } Os valores impressos na instrução da linha 17 serão: Resposta Selecionada: 4 - 3 - 2 Respostas: 4 - 13 - 12 4 - 3 - 2 14 - 13 - 12 14 - 3 - 2 4 - 12 - 13 Comentário da resposta: 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 9 0 em 1 pontos 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 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: Resposta Selecionada: I e II, apenas. Respostas: II e IV, apenas I e III, apenas. I e II, apenas. III e IV, apenas. II e III, apenas. Comentário da resposta: 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 10 0 em 1 pontos Analise com atenção o código a seguir, o qual possui duas variáveis (a e b), bem como uma estrutura condicional if na linha 4, que, caso seja verdadeira, irá executar o conteúdo interno que correspondem às instruções das linhas 5, 6 e 7. 1 int a, b, aux; 2 3 a = 41; 4 b = 9; 5 6 if(a > b){ 7 aux = a; 8 a = b; 9 b = aux; 10 } 11 Console.WriteLine(“O valor de a é “ + a); 12 Console.WriteLine(“O valor de b é “ + b); Considerando as informações apresentadas, assinale a opção correta. Resposta Selecionada: As linhas 7 e 9 poderiam ser suprimidas, ficando apenas os comandos a = b e b = a dentro do escopo do if. Respostas: O código apresentará um erro quando o valor de a for igual ao valor de b, uma vez que não existe uma condição que contemple esta igualdade. O código apresentará erro na linha 6 uma vez que o sinal de chavesestá na mesma linha que a estrutura if, ela deveria estar na linha seguinte. O objetivo deste código é apresentar uma sequência ordenada nas linhas 11 e 12, e a linha 7 é essencial neste processo. O valor de a e b, após a execução dos comandos das linhas 8 e 9, será 41, o mesmo valor da variável aux. As linhas 7 e 9 poderiam ser suprimidas, ficando apenas os comandos a = b e b = a dentro do escopo do if. Comentário da resposta: O 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 receber b e b receber 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 é feito na linha 7. A única condição de entrarmos neste if é quando a variável a for maior que a variável b, logo, estamos ordenando os valores. Quinta-feira, 27 de Outubro de 2022 17h00min40s BRT
Compartilhar