Você está na página 1de 14

Campus Taguatinga

Curso: Licenciatura em física


Disciplina: Algoritmos e Programação de Computadores
Professor: José Gonçalo dos Santos

Algoritmos e Programação de Computadores - Aula 2_1

Lnguagem Python - Estruturas de controle

1. Introdução
Nesta aula serão apresentados conceitos de aplicações de estruturas de
controle, tanto de fluxo quanto de repetição. As estruturas de controle no
Python não é tão diferente das demais linguagens já estudadas no curso, os
seus conceitos são basicamente os mesmos, o que muda é a sintaxe.

2.Comando condicional
Nesta Seção é apresentado o comando condicional e suas variações de uso.

2.1 Comando if
Uma declaração if éusada como uma forma de programação condicional,
algo que, provavelmente, as pessoas fazem todos os dias no mundo real,
como, por exemplo, decidir se vão tomar chá ou café ou decidir se terão
torradas ou um muffin para café da manhã, entre outras coisas. Em cada um
desses casos, elas estão fazendo uma escolha, geralmente baseada em
algumas informações, como tomei café ontem, então tomarei chá hoje. Em
Python, tais escolhas são representadas programticamente pelo comando if.
Nessa construção, se alguma condição é verdadeira, alguma ação é
realizada, opcionalmente se não é verdadeira, alguma outra ação pode ser
realizada em seu lugar. Basicamente, uma estrutura if é a seguinte:
if <condição>:
comandos

Professor José Gonçalo dos Santos (jose.santos@ifb.edu.br)


Campus Taguatinga
Curso: Licenciatura em física
Disciplina: Algoritmos e Programação de Computadores
Professor: José Gonçalo dos Santos

Atividade 1 - Usando a condição if


1 - Digite o trecho de código a seguir (Observe o espaço antes do comando
print - é a identação1, muito importante no Python).
num = eval(input('Digite um número: '))
if num < 0:
print ('Número negativo')
2 - Execute o código e digite números negativos ou positivos. Se um número
positivo for digitado, nada será exibido na tela, porque a condição só verifica
se o número é negativo.
3 - Digite o trecho de código a seguir.
num = int(input('Digite outro número: '))
if num > 0:
print(num, 'é positivo')
print(num, 'O seu quadrado é ', num * num)
4 - Execute o código e digite números negativos ou positivos. Se um número
negativo for digitado, nada será exibido na tela, porque a condição só verifica
se o número é positivo.

2.2 Comando else


Pode-se usar o comando else como parte de um comando if, embora seja
opcional, é possível usar esse comando para executar alguma ação quando
a condição for falsa.

1 Indentação é uma forma de organizar o código, fazendo com que algumas linhas fiquem mais à
direita que outras, à medida que adicionamos espaços em seu início. Para a maioria das linguagens, a
indentação não é obrigatória, mas no caso Python isso é diferente. A indentação é uma característica
importante no Python, pois além de promover a legibilidade é essencial para o bom funcionamento do
código, isto é, se a indentação não estiver adequada o programa pode se comportar de forma
inesperada ou até mesmo não compilar.
2

Professor José Gonçalo dos Santos (jose.santos@ifb.edu.br)


Campus Taguatinga
Curso: Licenciatura em física
Disciplina: Algoritmos e Programação de Computadores
Professor: José Gonçalo dos Santos

Atividade 3 - Usando o comando else


1 - Digite o trecho de código a seguir.
num = eval(input('Digite um número: '))
if num < 0:
print ('Número negativo')
else:
print('Número não negativo')
2 - Execute o código e digite números negativos ou positivos. Observe o
resultado.

2.3 Comando elif


Em alguns casos existem muitas condições que devem ser testadas, sendo
cada uma delas podem ser testadas se a anterior falhar. Esse caso, else-if, é
suportado pelo Python pelo uso do comando elif. O comando elif vem depois
de um if e antes (opcional) de um comando else e tem a seguinte sintaxe
geral:
elif <condição>:
comandos

Atividade 4 - Usando o comando elif


1 - Digite o código a seguir.
economia = float(input('Digite o valor a ser economizado: '))
if economia == 0:
print('Nada economizado')

Professor José Gonçalo dos Santos (jose.santos@ifb.edu.br)


Campus Taguatinga
Curso: Licenciatura em física
Disciplina: Algoritmos e Programação de Computadores
Professor: José Gonçalo dos Santos

elif economia < 500:


print('Legal!')
elif economia < 1000:
print('Bom começo')
elif economia < 10000:
print('Excelente!')
else:
print('Valeu!')

2 - Execute o código, forneça valores de acordo com as faixas apresentadas


e veja o resultado.
3 - Execute o código, forneça um número negativo, veja que o resultado não
é o esperado.
4 - Modifique o código para que reflita melhora realidade, tratando valores
negativos, por exemplo.

2.4 Ifs aninhados


Como em outras linguagens de programação, é possível aninhar um
comando if dentro de outro. Nesse caso, o aninhamento indica que o
comando if faz parte de outro comando if.

Atividade 5 - Usando ifs aninhados


1 - Digite o código a seguir.
nevando = True
temperatura = -1
if temperatura < 0:
print('Está congelando!')
if nevando:
4

Professor José Gonçalo dos Santos (jose.santos@ifb.edu.br)


Campus Taguatinga
Curso: Licenciatura em física
Disciplina: Algoritmos e Programação de Computadores
Professor: José Gonçalo dos Santos

print('Agasalhe-se bem')
print('Hora de tomar uma bebida quente')

2 - Execute o código e veja o resultado.


3 - Altere o valor da variável “nevando” para False e execute novamente. A
mensagem “Hora de tomar uma bebida quente” continua sendo exibida? Por
quê?

Exercícios
1 - O objetivo deste exercício é escrever um pequeno programa para testar
se um número inteiro é positivo ou negativo.
O programa deve:
1. Solicitar ao usuário que insira um número (use a função input()). Deve-se
assumir que a entrada será algum tipo de número.
2. Converta a string em um número inteiro usando a função int().
3. Agora verifique se o número inteiro é um número positivo ou um número
negativo.
4. Adicione também um teste para ver se o número é Zero.

2 - Escreva um programa para receber um número do usuário e determinar


se o número é ímpar ou par. Mais uma vez, pode-se supor que o usuário
digite um número inteiro válido.
Imprima uma mensagem para o usuário para que ele saiba o resultado.
Para testar se um número é válido, você pode usar (num % 2) == 0 que
retornará True se o número for igual (note que os parênteses são opcionais,
mas facilitar a leitura).

Professor José Gonçalo dos Santos (jose.santos@ifb.edu.br)


Campus Taguatinga
Curso: Licenciatura em física
Disciplina: Algoritmos e Programação de Computadores
Professor: José Gonçalo dos Santos

3 - Faça um programa em Python que leia do teclado o nome de um aluno e


as quatro notas que ele obteve durante o semestre. Em seguida calcule a
média aritmética dessas notas. Se a média for maior ou igual a (seis) o aluno
será aprovado. Se a média for menor que cinco, estará automaticamente
reprovado. Caso a média for menor que seis e maior que cinco, o programa
deverá ler a nota do exame final e calcular a nova média, da seguinte forma:
Média Final = (Média+Exame Final)/2. Nesse caso, para ser aprovado a
média final deverá ser maior ou igual a seis, caso contrário será reprovado.
Mostre com saída padrão o resultado das operações (Aprovado, Reprovado,
Recuperação).

3.Comandos de repetição (laços)


Nesta Seção são apresentados os comandos de repetição, while e for, bem
como suas aplicações.

3.1.Laço while
O laço while existe em quase todas as linguagens de programação e está
acostumado a iterar (ou repetir) uma ou mais comandos, desde que a
condição de teste (expressão) seja verdadeira. Esta forma de de iteração é
normalmente usada quando o número de vezes que precisamos repetir o
bloco de código a ser executado não é conhecido. Por exemplo, pode ser
necessário repetir até que alguma solução seja encontrada ou o usuário entre
em um determinado valor. O comportamento do laço while é ilustrado na figura
a seguir.
6

Professor José Gonçalo dos Santos (jose.santos@ifb.edu.br)


Campus Taguatinga
Curso: Licenciatura em física
Disciplina: Algoritmos e Programação de Computadores
Professor: José Gonçalo dos Santos

A estrutura básica do laço while é a seguinte:


while <condição>:
comandos

Atividade 6 - Usando o laço while


1 - Digite o código a seguir.
cont = 0
print('Início')
while cont < 10:
print(cont, ' ', end=' ')
cont += 1
print()
print('Fim')
2 - Execute o código e veja o resultado.
3 - Digite o código a seguir.
#Jogo de dados - o jogador deve jogar 2 dados e ver o resultado de cada um deles
#deve continuar jogando, enquanto quiser, ou acabar o dinheiro
import random
MIN = 1

Professor José Gonçalo dos Santos (jose.santos@ifb.edu.br)


Campus Taguatinga
Curso: Licenciatura em física
Disciplina: Algoritmos e Programação de Computadores
Professor: José Gonçalo dos Santos

MAX = 6
while True:
print('Joque os dados')
print('Os valores são...')
dado1 = random.randint(MIN,MAX)
print(dado1)
dado2 = random.randint(MIN, MAX)
print(dado2)
continuar = input('Jogar de novo (S/N): ').upper()
if continuar != 'S':
break
print('Fim')
4 - Execute o código e veja o resultado.

3.2.Laço for
Em muitos casos, sabemos quantas vezes queremos iterar sobre uma ou
mais comando. Embora o while pode ser usado para tais situações, o laço for é
uma maneira muito mais concisa de fazer isso. É tipicamente também mais
claro para outro programador que o laço deve iterar para um determinado
número de iterações. O laço for é usado para passar uma variável através de
uma série de valores até que determinada condição seja atingida. O
comportamento do laço for é ilustrado na figura a seguir.

Professor José Gonçalo dos Santos (jose.santos@ifb.edu.br)


Campus Taguatinga
Curso: Licenciatura em física
Disciplina: Algoritmos e Programação de Computadores
Professor: José Gonçalo dos Santos

A seguir é apresentada a estrutura usada no laço for.


for <variavel> in range(...):
comandos

Atividade 7 - Usando o laço for


1 - Digite o código a seguir.
print('Início')
for i in range(10):
print(i, ' ', end=' ')
print()
print('Fim')
2 - Execute o código e veja o resultado.
3 - Digite o trecho de código a seguir.
print('Início')
for i in range(0,10,2):
print(i, ' ', end=' ')

Professor José Gonçalo dos Santos (jose.santos@ifb.edu.br)


Campus Taguatinga
Curso: Licenciatura em física
Disciplina: Algoritmos e Programação de Computadores
Professor: José Gonçalo dos Santos

print()
print('Fim')
4 - Execute o código e veja o resultado.
5 - Digite o trecho de código a seguir.
print('Início')
for _ in range(0,10):
print('.', ' ', end=' ')
print()
print('Fim')
6 - Execute o código e veja o resultado.

3.3.Comando break
Python, como Java e C, permite que os programadores decidam se querem
sair de um laço cedo ou não (quer estejamos usando while ou for). Isto é feito
usando o comando break. Esse comando permite que um desenvolvedor
altere o ciclo normal do laço com base em alguns critérios que podem não
ser previsíveis de antemão (por exemplo, pode ser baseado em alguma
entrada do usuário).
O comando break, quando executado, encerrará o laço atual e saltará
o programa para a primeira linha após o laço. A figura a seguir mostra como
isto trabalha em um laço:

10

Professor José Gonçalo dos Santos (jose.santos@ifb.edu.br)


Campus Taguatinga
Curso: Licenciatura em física
Disciplina: Algoritmos e Programação de Computadores
Professor: José Gonçalo dos Santos

Atividade 8 - Usando o comando break


1 - Digite o código a seguir.
num = int(input('Diigite um número: '))
for i in range(0,6):
if i == num:
break
print(i, ' ', end=' ')
print('Fim')
2 - Execute o código, digitando números maiores e menores que 6, e veja o
resultado.
3.4.Comando continue
11

Professor José Gonçalo dos Santos (jose.santos@ifb.edu.br)


Campus Taguatinga
Curso: Licenciatura em física
Disciplina: Algoritmos e Programação de Computadores
Professor: José Gonçalo dos Santos

O comando continue também afeta a execução do fluxo dos laços for e while.
Contudo, ele não termina o laço, apenas interrompe a iteração e continua na
próxima. A figura a seguir ilustra a execução desse comando.

Atividade 9 - Usando o comando continue


1 - Digite o código a seguir.
for i in range(10):
print(i,' ',end=' ')
if i % 2 == 1:
continue
print('número par')
print('Fim')
2 - Execute o código e veja o resultado.

3.5.Laço for com else


O laço for pode ter um bloco else opcional no fim dele. A parte else é executada
se e somente se todas as iterações forem executadas. Um laço for pode
falhar ao processar elementos do laço se, por alguma razão, um erro ocorrer,

12

Professor José Gonçalo dos Santos (jose.santos@ifb.edu.br)


Campus Taguatinga
Curso: Licenciatura em física
Disciplina: Algoritmos e Programação de Computadores
Professor: José Gonçalo dos Santos

neste caso, o bloco else não é executado.

Atividade 10 - Usando laço for com else


1 - Digite o código a seguir.
num = int(input('Diigite um número: '))
for i in range(0,6):
if i == num:
break
print(i, ' ', end=' ')
else:
print()
print('Todas as iterações foram executadas.')
print('Fim')
2 - Execute, entre com valores maiores ou menores que 6, o código e veja o
resultado.

Exercícios
1 - Escreva um programa que possa encontrar o fatorial de qualquer número
dado. Por exemplo, encontre o fatorial do número 5 (geralmente escrito como
5!) que é 1*2*3*4*5 e é igual a 120.
O fatorial não é definido para números negativos e o fatorial de Zero é 1; ou
seja, 0! = 1.
Seu programa deve ter como entrada um número inteiro do usuário (você
pode reutilizar seu lógica desta para verificar se eles entraram com um valor
inteiro positivo usando isumeric()).
Você deve
1. Se o número for inferior a Zero retorna com uma mensagem de erro.
2. Verifique se o número é zero se for zero, então a resposta é 1.

13

Professor José Gonçalo dos Santos (jose.santos@ifb.edu.br)


Campus Taguatinga
Curso: Licenciatura em física
Disciplina: Algoritmos e Programação de Computadores
Professor: José Gonçalo dos Santos

3. Caso contrário, use um laço para gerar o resultado e imprimi-lo.

2 - Crie uma calculadora para fazer as seguintes operações: somar, subtrair,


multiplicar, dividir e potência de 2 números. O programa deverá apresentar
um menu com as opções das operações e a opção de sair. Dependendo da
opção desejada, fazer a operação, mostrar o resultado e permanecer no
menu, até que a opção sair seja escolhida.

Bibliografia consultada
HUNT, John. A Beginners Guide to Python 3 Programming. Springer:
Brighton - UK, 2020.
LEE, Kent D. Python Programming Fundamentals. Springer: USA, 2014.

14

Professor José Gonçalo dos Santos (jose.santos@ifb.edu.br)

Você também pode gostar