Teorico 3
Teorico 3
Teorico 3
Objetivo da Unidade:
ʪ Material Teórico
ʪ Material Complementar
ʪ Referências
1 /3
ʪ Material Teórico
Fluxo de Código
A programação em si não está somente em escrever códigos como em um processador de texto
ou em executar uma sequência de instruções, uma após a outra, como fosse uma lista de tarefas.
A codificação de um programa deve fazer com que, independentemente do valor atribuído a uma
determinada expressão, o interpretador ou compilador terá que avaliar, decidir pular instruções,
repeti-las ou escolher uma entre várias instruções para executar. Cada linguagem de
programação tem a sua própria sintaxe, isto é, sua própria regra de como as operações devem
ser usadas.
Para Aggarwal (2021), do ponto de vista técnico, podemos dizer que o fluxo nada mais é do que
muitas instruções que consistem em várias operações que precisam ser executadas. Por
exemplo, adicionar 2 e 3 é uma instrução (ou expressão, neste caso), onde a operação é adição.
Assim, podemos ter declarações semelhantes ou diferentes de acordo com o problema que
estamos resolvendo através do código. Neste cenário da adição, o que está faltando é o controle,
que não temos o controle sobre as declarações da operação de adição.
Para relacionarmos isso com a vida real, podemos imaginar que a tomada de decisão no dia a dia
são as escolhas entre fazer isso ou aquilo, de modo que no mundo da codificação as tomadas de
decisão ocorrem de acordo com a situação das declarações obrigatórias ou em escolher entre
repetir ou pular as irrelevantes.
O controle de fluxo é importante para se decidir o fluxo de um programa a fim de que as
instruções sejam executas exatamente como foram planejadas. As tomadas de decisão apontam
como o código deve ser executado em determinadas situações, qual instrução deve ser
executada antes ou depois.
Na linguagem Python, temos belas formas de implementar o controle de fluxo. Então vamos lá!
Estrutura Sequencial
Sequenciação é uma estrutura de controle mais simples e, como o próprio nome sugere, é um
conjunto de instruções sequenciais em que cada instrução será executada uma após a outra, ou
seja, em sequência, pela ordem em que aparecem no programa.
Nas linhas 1 e 3 da Figura 1 são solicitados dois valores para a entrada do usuário, enquanto as
linhas 2 e 4 recebem o valor informado pelo usuário.
Uma condição é uma comparação que possui dois valores possíveis: verdadeiro ou falso. O
comando que define a estrutura é representado pela palavra “se” em português e if na
linguagem Python.
Na linguagem Python, após o comando if, a linha de comando termina com dois pontos (:), tal
como pode ser visualizado na linha 5 da Figura 4, indicando o início de um bloco de linha a
seguir e no qual informará o bloco ou script para a execução. Na linha 6 da Figura 4 é possível
notar que o bloco inicia com um deslocamento diferente.
Python é uma das poucas linguagens de programação que utiliza indentação para o
deslocamento do texto à direita (recuo) para marcar o início e fim de um bloco.
O script da Figura 4 solicita dois valores nas linhas 1 e 3 para o usuário e que são recebidos e
armazenados nas variáveis “a” e “b” e nas linhas 5, 8 e 11 são submetidos a condições com
operadores relacionais. Sempre que a condição tiver retorno verdadeiro será executado o bloco
após a condição.
Na Figura 7 é utilizada a entrada de dados pelo usuário, sendo a nota de um aluno. Neste
exemplo, o script faz uso do else, evitando o uso de outro if.
Figura 8 – Saída do script da Figura 7 com parâmetro = 7
Fonte: Reprodução
Note que 7 é maior que 6.9, de modo que a condição é verdadeira, executando o bloco a seguir,
com a apresentação da mensagem: “Aluno aprovado com nota 7”.
Em muitos casos será necessário aninhar vários if para obter o comportamento desejado do
programa e aninhar – neste caso, trata-se de utilizar um if dentro de outro.
Nas estruturas de decisão encadeadas, uma estrutura de condição é aninhada dentro de outra,
como bloco verdadeiro ou falso. Neste cenário, para que a estrutura de condição mais interna
seja avaliada é necessário que determinada condição seja satisfeita na estrutura de condição
mais externa.
Na Figura 10, temos uma representação da esturra condicional com três if aninhados.
Importante!
Sempre que a condição assumir valor falso, outra estrutura
condicional poderá ser executada na sequência dentro deste bloco.
Para fazer uso de uma estrutura de decisões aninhadas foi utilizada a tabela de médias
aritméticas, em que é testada a nota do aluno para verificar se está aprovado, em condição de
exame ou reprovado, de acordo com os parâmetros pré-estabelecidos na coluna 1 da Tabela 1.
Média
Mensagem
aritmética
<4 Reprovado
Média
Mensagem
aritmética
O script da Figura 11 recebe, como parâmetro para o teste, o valor da nota de um aluno, de modo
que nas linhas 4 e 7 é submetido ao teste condicional de acordo com os valores disponíveis na
coluna 1 da Tabela 1.
São realizados dois testes condicionais na Figura 11: a linha 4 verifica se a nota do aluno é maior
que 7, de modo que sendo verdadeiro executa o bloco a seguir da linha 5; se os resultados do
teste representarem falso será executada a condição da linha 4 para verificar se a nota é menor
que 4, de modo que caso verdadeiro executará o bloco da linha 8; ademais, se nenhum dos dois
testes for verdadeiro será executado, na linha 10, o bloco da instrução else, em que o aluno terá
média para fazer o exame.
Na Figura 12, temos a execução do último bloco, em que é apresentada a mensagem: “Aluno está
de exame com nota 6” – isso ocorre porque as duas primeiras condições são executadas em
sequência e têm o retorno como falso, de modo que o último bloco na linha 10 é executado.
Importante!
Podemos encadear quantos if forem necessários.
Estrutura Condicional ou de Decisão Selecione...Caso
(if...elfi...else)
A linguagem Python apresenta uma solução interessante ao problema de múltiplos if aninhados,
a cláusula elfi, a qual substitui um par else...if, sem criar outro nível de estrutura, evitando
problemas de deslocamento desnecessário à direita (MENEZES, 2019).
Em Python não há uma construção como selecione caso ou switch...CA “se”; em vez disso, a
forma preferida e mais simples de se substituir esse comando, que existe nas linguagens que
derivaram da sintaxe de C, tais como Java, Java script, C++, C#, entre outras, é usar o if do Python,
que além do else tem a expressão elif, tal como apresentado na Figura 13:
Figura 13 – Sintaxe da estrutura condicional composta ou
decisão usando o if...elfi...else... na linguagem Python
Fonte: Reprodução
Na Figura 13 é solicitado ao usuário o semestre em que o aluno cursa, sendo submetido a uma
sequência de estruturas condicionais e fazendo uso da instrução elfi, reduzindo
significativamente o número de if...else na solução do problema e contribuindo visualmente para
a leitura e o entendimento da estrutura condicional.
Esta estrutura de decisão múltipla é adequada quando se torna necessário escolher uma, entre
várias alternativas previamente definidas ou conhecidas pelo programador.
Para Menezes (2019) a estrutura de repetição é uma forma de executar o mesmo comando ou
conjunto de comandos sob determinadas condições ou com um contador, mas com a opção de
repetir ações semelhantes ou o mesmo bloco quantas vezes for necessário, sendo benéficas, por
exemplo, para repetir uma série de operações semelhantes que são executadas para todos os
elementos de uma lista ou de uma tabela de dados, ou ainda meramente para repetir um mesmo
processamento até que uma certa condição seja satisfeita.
Na linguagem Python, temos duas principais instruções que são utilizadas para reproduzir uma
ação repetidamente: while e for – em português, “enquanto” e “para”. Estas duas instruções
representam a principal sintaxe para escrever ações repetidas na programação em Python. A
estrutura de repetição tem início e fim, ou seja, nunca tende ao infinito.
Primeiro, o programa avalia a condição, a qual utiliza os operadores relacionais e lógicos das
estruturas condicionais.
Caso o resultado da expressão seja não nulo (verdadeiro), todo o bloco de sentenças será
executado.
Em seguida, o fluxograma volta a avaliar a expressão e o processo se repete até que a expressão
retorne um valor (falso), encerrando, assim, o laço de repetição.
Importante!
As estruturas de repetição são também conhecidas como laços de
repetição ou loops.
A repetição de while é controlada por uma condição que verifica alguma característica do
programa (por exemplo, valores de variáveis). Para o uso correto de while, o bloco de sentenças
precisa modificar o estado do sistema de forma a afetar justamente as características testadas
na expressão – se isso não ocorrer, então o while executará eternamente.
Onde:
Condição: será testada sempre que for executada uma repetição. Enquanto for
verdadeiro, o programa será repetido;
Contador: necessita ser alterado em cada laço de repetição para que essa variável
seja utilizada no teste da condição; caso contrário, teremos um loop infinito (sempre
verdadeiro) ou loop no qual nunca será executado (sempre falso).
Em outras palavras, declaramos uma variável x que controlará o while, a qual armazena o valor a
ser o cálculo da tabuada do 2 e o índice a ser impresso. A expressão do while verifica se o número
está dentro do limite desejado do índice (menor ou igual a 10).
Quando x armazenar o valor 11, a expressão que controla o while se tornará falsa. Nesse ponto, o
while terminará, encerrando as repetições.
No final da execução, o valor da variável x estará em 11, que foi justamente o valor que tornou a
expressão falsa, impedindo uma nova execução do bloco while.
Na Figura 18 temos o resultado da execução do script da Figura 17, onde é possível visualizar 11
interações, de 0 até 10, sendo, assim, construída a tabuada do número 2:
Figura 18 – Apresentação do resultado do script em
Python da Figura 18
Fonte: Reprodução
Por outro lado, a função continue é utilizada para prosseguir com a execução de um script.
Reinicia imediatamente a execução de um bloco de uma estrutura de repetição. Continue não
espera o término da execução do restante do bloco. Com a instrução while, a execução retorna
imediatamente para avaliar a expressão, antes de executar novamente o bloco, se for o caso. Se a
expressão avaliar como falso, então while será finalizado; caso contrário, realizará uma nova
iteração.
As funções break e continue só têm sentido quando estão dentro da estrutura de repetição while.
Importante!
O uso do comando break costuma estar associado a uma estrutura
condicional if para que a interrupção seja realizada somente sob
determinadas condições excepcionais.
Estrutura de Repetição – Contador e Acumulador
Contador
Uma estrutura de repetição while tem um único e um fim repetindo este bloco enquanto a
condição for verdadeira, sendo uma condição testada a cada volta da estrutura, utilizando uma
variável que deve ser iniciada com um valor e modificada, atualizada com um incremento ou
decremento ao decorrer da execução da estrutura – esta variável de controle é o contador.
Acumulador
Os acumuladores são utilizados para acumular resultados de operações matemáticas que
retornam valores como as operações aritméticas.
Acumulador e contador são diferentes: ao acumulador é adicionada uma variável, enquanto nos
contadores é adicionada uma constante.
Para Abbasi (2021), na linguagem Python, for é utilizado para percorrer elementos em sequência,
como uma string, lista, tupla ou objetos iteráveis. Na Figura 22 é apresentado o fluxo de controle
da estrutura de repetição for.
Importante!
Um objeto iterável é aquele que tem a capacidade de retornar cada um
de seus elementos de forma individual.
range (fim)
Na Figura 24, especificamente nas linhas 1 e 2, temos duas estruturas de repetição, ambas
incrementando de 1 em 1, uma aninhada dentro da outra para calcular as tabuadas de 1 até 10,
Na referência está uma variável iteradora que obtém o valor de cada item da sequência em cada
iteração. Depois de obter o valor em referência, o corpo do loop é executado, de modo que for
continua até que o último item da sequência seja alcançado (ABBASI, 2021).
Onde:
O exemplo da Figura 27 apresenta a sintaxe da estrutura de repetição for com uma lista de
strings, de modo que com a execução do script temos como saída:
Banana;
Manga;
Laranja.
Importante!
O comando for é utilizado com lista e outros comandos.
2/3
ʪ Material Complementar
Leitura
ACESSE
Loops
ACESSE
Loops in Python
ACESSE
3/3
ʪ Referências