Buscar

Aplicações utilizando comandos iterativos aninhados

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 3, do total de 4 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

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.

Continue navegando