Baixe o app para aproveitar ainda mais
Prévia do material em texto
ATIVIDADE 03 - ADS/SI - ALGORÍTMOS E LÓGICA DE PROGRAMAÇÃO I - 2020 Período:11/05/2020 08:00 a 29/05/2020 23:59 (Horário de Brasília) Status:ABERTO Nota máxima:0,50 Gabarito:Gabarito será liberado no dia 30/05/2020 00:00 (Horário de Brasília) Nota obtida: 1ª QUESTÃO Um objeto é dito recursivo se ele for definido em termos de si próprio. Destaca-se que o conceito de recursão não é encontrado somente na programação mas também na matemática e no dia a dia como, por exemplo, quando vemos uma imagem que contém a si própria. LEAL, Gislaine Camila Lapasini, OLIVEIRA, Pietro Martins de. Algoritmos e Lógica de Programação I. Maringá: Unicesumar, 2020. Assim, considere o seguinte trecho de pseudocódigo do algoritmo fatRec , abaixo, cujo propósito é calcular e exibir, na tela, o fatorial de 5. 01 - Algoritmo fatRec 02 - Funcao fat(x: inteiro): inteiro 03 - Início 04 - Se (________) então 05 - retorne 1 06 - Senão 07 - retorne x * __________ 08 - Fim_se 09 - Fim_funcao 10 - Var n, resultado: inteiro 11 - Início 12 - n <- 5 13 - ______________ <- fat(n) 14 - escreva(resultad0) 15 - Fim Com base em suas habilidades no desenvolvimento e compreensão de algoritmos, assinale a alternativa que melhor se adequa à realidade e ao propósito do algoritmo fatRec apresentado acima. ALTERNATIVAS As lacunas das linhas 4, 7 e 13 devem ser preenchidas pelas instruções "x = 1", "fat(x)" e "n", respectivamente. As lacunas das linhas 4, 7 e 13 devem ser preenchidas pelas instruções "x = 1", "fat(x-1)" e "n", respectivamente. As lacunas das linhas 4, 7 e 13 devem ser preenchidas pelas instruções "x = 1", "fat(x)" e "resultado", respectivamente. As lacunas das linhas 4, 7 e 13 devem ser preenchidas pelas instruções "x = 0", "fat(x-1)" e "resultado", respectivamente. As lacunas das linhas 4, 7 e 13 devem ser preenchidas pelas instruções "fat(x) = 0", "fat(x)" e "resultado", respectivamente. Atenção! Questão anulada. ALTERNATIVAS II, apenas. I e II, apenas. I e III, apenas. II e III, apenas. I, II e III. 3ª QUESTÃO Na matemática a Sequência de Números de Fibonacci é uma sequência de números inteiros na qual cada elemento é igual à soma dos dois elementos imediatamente antecessores a ele. A Sequência de Fibonacci pode ser encontrada em uma ampla variedade de aplicações como, por exemplo, em trabalhos de design, biologia, mercado financeiro, computação, etc. Considere a função fibo() , abaixo, cujo objetivo seria retornar o “n-ésimo” elemento da Série de Fibonacci. 01 - Função fibo(n: inteiro): inteiro 02 - Var i, fib, ant1, ant2: inteiro 03 - Início 04 - ant1 <- 0 05 - ant2 <- 1 06 - Para i de 1 até n passo 1 faça 07 - fib <- ant1 + ant2 08 - ant2 <- ant1 09 - ant1 <- fib 10 - Fim_para 11 - retorne fib 12 - Fim_funcao Considere as seguintes afirmações: I – Para que o algoritmo retorne o valor correto, de acordo com a Série de Fibonacci, é preciso inverter as linhas 8 e 9. II – Para que o algoritmo funcione, a variável ant1 deve ser inicializada com o valor 2. III – Caso o parâmetro " n " valha 5 (cinco), o bloco de comandos compreendido entre as linhas 7 e 9 será executado por 4 (quatro) vezes. Realizando o teste de mesa na função acima, pode-se dizer que é correto o que se afirma em: ALTERNATIVAS I, apenas. III, apenas I e II, apenas. I e III, apenas. II e III, apenas. 4ª QUESTÃO Através das estruturas de decisão, o programa pode escolher, em tempo de execução, por tomar um dentre vários caminhos possíveis, de acordo com uma condição pré-estabelecida. Combinada a uma estrutura de repetição, a estrutura condicional pode auxiliar o algoritmo a tomar uma sequência de decisões. Sabendo disso, analise o algoritmo abaixo. 01 - Algoritmo contador 02 - Var numero, cont: inteiro 03 - Início 04 - cont <- 0 05 - leia(numero) 06 - Enquanto (numero > 0) 07 - Se (numero MOD 5 = 0) então 08 - cont <- cont + 1 09 - Fim_se 10 - numero <- numero / 10 11 - Fim_enquanto 12 - escreva(cont) 13 - Fim Tomando por base o passo a passo apresentado no algoritmo acima leia as afirmações. I – Esse algoritmo serve apenas para dizer se o " numero " informado pelo usuário é múltiplo de 5, ou não. II – A instrução descrita na linha 10 só será executada caso a condição da linha 7 seja verdadeira. III – O algoritmo irá imprimir, na linha 12, quantos algarismos igual a 5 estão contidos no "numero" informado pelo usuário. Sendo assim, é correto o que se afirma em: ALTERNATIVAS I, apenas. II, apenas. III, apenas. I e II, apenas. II e III, apenas. 5ª QUESTÃO O algoritmo abaixo foi criado com o intuito de inicializar uma matriz de 2 (duas) linhas por 3 (três) colunas. 01 - Algoritmo manipulaMatriz 02 - Var mat: Vetor 1..2, 1..3 de inteiro 03 - i, j: inteiro 04 - Início 05 - i <- 1 06 - j <- 1 07 - Enquanto (i <= 3) faça 08 - Enquanto(j <= 2) faça 09 - mat i, j <- i*j 10 - j <- j + 1 11 - Fim_enquanto 12 - Fim_enquanto 13 - Fim Assim, considere o algoritmo acima para avaliar as afirmações abaixo. I – Em um dado ponto da execução do algoritmo, o elemento da primeira linha, segunda coluna, terá seu conteúdo valendo 2 (dois). II – Há um erro semântico na linha 7, pois a matriz possui duas linhas apenas. III – Da maneira como foi escrito, o algoritmo nunca irá entrar em loop infinito. Sendo assim, é correto o que se afirma em: ALTERNATIVAS I, apenas. II, apenas. III, apenas. ) I e II, apenas. I, II e III. 6ª QUESTÃO Inúmeras aplicações têm, em certo ponto de seu código, que decidir entre tomar um caminho ou outro. Por exemplo, algumas ações podem ser tomadas caso um número qualquer seja igual a zero, ou caso o número seja menor do que zero, e assim por diante. Com base em seus conhecimentos a respeito de estruturas condicionais, realize o teste de mesa no algoritmo abaixo. 01 - Algoritmo testaNumero 02 - Var numero: inteiro 03 - Início 04 - leia(numero) 05 - Se((-1)*numero < 0) então 06 - escreva("Caso 1.") 07 - Senão 08 - Se ((-1)*numero > 0) então 09 - escreva("Caso 2.") 10 - Senão 11 - escreva("Caso 3.") 12 - Fim_se 13 - Fim_se 14 - Fim Com base no algoritmo acima, leia as afirmações abaixo. I – A linha 6 do algoritmo só será executada caso o usuário insira um valor positivo. II – A condição da linha 8 só será testada caso o usuário insira um valor não-positivo. III – A linha 10 será executada quando o número for diferente de zero. Sendo assim, é correto o que se afirma em: ALTERNATIVAS I, apenas. II, apenas. III, apenas. I e II, apenas. I, II e III. 7ª QUESTÃO Replicar código fonte de maneira desregulada, além de deselegante, pode tornar o código ineficiente e dificultar em muito a manutenção de um algoritmo. Por isso, é comum a utilização de estruturas de repetição. LEAL, Gislaine Camila Lapasini, OLIVEIRA, Pietro Martins de. Algoritmos e Lógica de Programação I. Maringá: Unicesumar, 2020 (adaptado). Conhecendo as sintaxes de declaração dos comandos " para " e " enquanto ", avalie as afirmações a seguir. I – Na estrutura " para " a condição de parada está embutida no comando. II – Na estrutura " enquanto " a condição de parada fica implícita, de forma que o desenvolvedor fica restrito a expressões lógico-relacionais simples. III – Tanto na estrutura " enquanto " quanto na estrutura" para " é usual que se utilize uma variável de controle para estabelecer uma condição de parada. Sendo assim, é correto o que se afirma em: ALTERNATIVAS I, apenas. III, apenas. I e II, apenas. I e III, apenas. II e III, apenas. 8ª QUESTÃO Uma função é uma sub-rotina que tem como objetivo desviar a execução do programa principal para realizar uma tarefa específica. ASCENCIO, A. F. G.; CAMPOS, E. A. V. Fundamentos da programação de computadores. 5. ed. São Paulo: Prentice Hall, 2010. Considere o algoritmo que abaixo. No pseudocódigo é possível identificar a declaração e utilização da função convertePeso() . 01 - Algoritmo conversao 02 - Função convertePeso(q: real): real 03 - Var g: real 04 - Início 05 - g <- q * 1000 06 - retorne g 07 - Fim_funcao 08 - Var pes, gra: real 09 - Início 10 - escreva("Digite o peso em quilos:") 11 - leia(pes) 12 - convertePeso(pes) 13 - escreva("O peso, em gramas, é:", gra) 14 - Fim Levando em consideração seus conhecimentos sobre funções, bem como o pseudocódigo acima, avalie as afirmações a seguir. I – A função convertePeso() irá retornar o peso convertido em gramas: um número do tipo inteiro. II –A variável g pertence ao escopo da função convertePeso() e não pode ser referenciada fora desse contexto. III – Para que o comando " escreva() " da linha 13 apresente um resultado correto, é preciso fazer com que a variável gra receba o resultado da execução da função convertePeso() , na linha 12. É correto o que se afirma em: ALTERNATIVAS II, apenas. I e II, apenas. I e III, apenas. II e III, apenas. I, II e III. Atenção! Questão anulada. ALTERNATIVAS I, apenas. II, apenas. III, apenas. I e III, apenas. I, II e III. 10ª QUESTÃO Em muitas situações nos deparamos com problemas complexos e abrangentes. Para resolver esse tipo de problema temos que dividí-lo em subproblemas mais simples e específicos, dividindo assim a sua complexidade e facilitando a resolução, através de procedimentos específicos. FORBELLONE, A. L. V.; EBERSPACHER, H. F. Lógica de Programação. 3. ed. São Paulo: Makron Books, 2005. Considere o algoritmo em pseudocódigo abaixo. 01 - Algoritmo quadrado 02 - Procedimento elevaAoQuadrado(x: inteiro) 03 - Início 04 - x <- x * x 05 - Fim_procedimento 06 - Var x: inteiro 07 - Início 08 - escreva("Insira o valor:") 09 - leia(x) 10 - elevaAoQuadrado(x) 11 - escreva(x) 12 - Fim Sendo assim, tomando por base seus conhecimentos a respeito de procedimentos, leia as afirmações que se seguem. I – A linha 2 contém a declaração da passagem por valor, do parâmetro x . Assim a instrução da linha 11 imprimirá o resultado do cálculo do número informado pelo usuário elevado ao quadrado, na linha 9. II – Independentemente da passagem de parâmetro da linha 2 ser definida como valor ou referência, o algoritmo será capaz de imprimir o quadrado do número inserido pelo usuário pois a variável x , declarada na linha 6 irá sobrepor a declaração da linha 2. III – O procedimento foi declarado com sintaxe correta, dispensando o uso da palavra reservada " retorne ", palavra essa que é reservada à sintaxe de declaração de funções. Sendo assim, é correto o que se afirma em: ALTERNATIVAS I, apenas. II, apenas. III, apenas. I e III, apenas. II e III, apenas.
Compartilhar