Baixe o app para aproveitar ainda mais
Prévia do material em texto
Aplicações utilizando comandos iterativos aninhados (nível fácil de aninhamento — Python) Desafio O aninhamento é um recurso muito útil em programação, principalmente para leitura de listas bidimensionais e para aplicação de algoritmos de ordenação. Você trabalha no setor de desenvolvimento de uma empresa e recebeu uma nova demanda da área de Gestão de Recursos Humanos (RH) para ordenar uma lista de promoções na empresa. Confira: O algoritmo deve percorrer o conjunto de dados tantas vezes quanto o necessário para que termine ordenado de maneira crescente de matrícula do funcionário, sendo o mais antigo o primeiro elemento desse conjunto. Em Python, a melhor estrutura para armazenar o conjunto de dados e proceder com a ordenação é uma lista. Para percorrer a lista e ordenar os dados em ordem crescente, podem ser utilizados os comandos iterativos fore while. O código para atender essa demanda será semelhante a este: lista = recebe a lista com o código de matrícula desordenado do sistema de gestão e retorna a lista ordenada. colaboradores = len(lista)-1 ordenado = False while not ordenado: ordenado = True for i in range(colaboradores): if lista[i] > lista[i+1]: lista[i], lista[i+1] = lista[i+1],lista[i] ordenado = False print(lista) Exercícios O while é um comando iterativo que repete continuamente um bloco de código enquanto a expressão lógica de controle for verdadeira, ou seja, quando o número de repetições não é finito. O comando while é suscetível aos loops infinitos, que fazem o programa ficar preso, repetindo o mesmo bloco de código eternamente. Essa situação é ainda mais grave quando utilizam-se comandos while aninhados. Analise o código abaixo e assinale a alternativa correta: E. O programa não faz o que deveria ser feito e pode entrar em loop infinito, como é chamado. O exemplo acima acarretará no que é chamado de loop infinito. O interpretador não conseguirá gerenciar a memória e desalocar o programa. Sendo assim, o programa vai alocar a memória e, não sendo possível encerrar a execução, a máquina acabará travando. 2. O conceito de estruturas interativas aninhadas é basicamente a utilização de um comando interativo for ou while, no caso do Python dentro de outro, podendo ser combinados ou então do mesmo tipo. Esse tipo de estrutura é útil em muitos casos. Assinale a seguir a alternativa que exemplifica alguns dos casos que podemos trabalhar com estruturas interativas aninhadas: A. Cálculos matemáticos mais complexos como operações entre listas bidimensionais. De todos os exemplos, o único em que se justifica e é necessária a implementação de estruturas de comandos interativos aninhados é para a execução de cálculos matemáticos mais complexos como operações entre matrizes. Inserção de valores em variáveis e concatenação não utilizam essa estrutura. E um bloco de repetição com a instrução para soma entre dois valores pode ser criado com comandos condicionais simples IF/ELSE. Já para a realização de testes condicionais com retorno de valores se utilizaria uma função. 3. O teste de mesa em comandos interativos é um recurso fundamental a ser utilizado. Por meio de sua aplicação, é possível identificarmos problemas de lógica na construção dos algoritmos entre outras finalidades. Acerca da aplicação do teste de mesa, assinale a alternativa correta: D. A aplicação de teste de mesa utiliza valores fictícios para variaveis e simula comportamento em papel. A aplicação do teste de mesa utiliza valores ficticios das variáveis e simula o comportamento do sistema em papel sem a necessidade de um compilador. Esse recurso não serve para refatoração de sistemas e, apesar de tradicional, pode ser utilizado na construçâo de sistemas com linguagens modernas, pois não está ligado à tecnologia e, sim, à lógica. 4. A utilização de comandos iterativos ou laços de repetição geram muitas vantagens para o código. No Python, temos a possibilidade de trabalhar com os comandos for e while para implementar laços iterativos. Em conjuntos, esses comandos podem construir estruturas aninhadas onde um laço é repetido dentro do outro. Sobre a aplicação desses comandos em estruturas condicionais aninhadas, assinale a alternativa correta: B. O comando for é empregado em casos onde sabemos quantas iterações queremos executar. Podemos utilizá-lo combinando com laços de repetição while e vice-versa. Apesar de os dois comandos serem amplamente utilizados na implementação de estruturas iterativas, o comando for é mais adotado quando sabemos previamente quantas iterações queremos executar. O comando while é mais utilizado quando não sabemos previamente o número de repetições que são executadas. Ambos comandos podem ser combinados entre si. Um comando não é substituição do outro. Dessa forma, tem-se que respeitar a sintaxe de ambos os comandos, para não gerar erros de lógica, como a implementação de laços infinitos. Analise o seguinte algoritmo que implementa comandos interativos aninhados para o controle de entrada de pessoas em um estabelecimento . O algoritmo ficará preso em um loop infinito Pelo erro de lógica e implementação dos comandos interativos aninhados, toda vez que entrar no segundo while (while contador < 10), ele vai escrever a mensagem "Você pode entrar" eternamente e nunca sairá deste while. Nesse contexto, o algoritmo será executado infinitas vezes e precisará que o usuário interrompa a sua execução.
Compartilhar