0% acharam este documento útil (0 voto)
7 visualizações27 páginas

1 1631138390mtyzmtezodm5ma

Enviado por

Caio Gadelha
Direitos autorais
© © All Rights Reserved
Levamos muito a sério os direitos de conteúdo. Se você suspeita que este conteúdo é seu, reivindique-o aqui.
Formatos disponíveis
Baixe no formato PDF, TXT ou leia on-line no Scribd
0% acharam este documento útil (0 voto)
7 visualizações27 páginas

1 1631138390mtyzmtezodm5ma

Enviado por

Caio Gadelha
Direitos autorais
© © All Rights Reserved
Levamos muito a sério os direitos de conteúdo. Se você suspeita que este conteúdo é seu, reivindique-o aqui.
Formatos disponíveis
Baixe no formato PDF, TXT ou leia on-line no Scribd
Você está na página 1/ 27

Algoritmos e programação

Aula -
I/O e fluxo de dados
Prof. Jheymesson Apolinário Cavalcanti

Recife - Setembro de 2021


Agenda
- I/O
- Desvio de fluxo
a. if
b. elif
c. else
- Laços de repetição
a. while
b. fot
I/O
I/O - é uma abreviação para Input/Output, a grande maioria das aplicações possuem esse tipo de
funcionalidade, pois I/O é a forma mais usada para interagir com o usuário, vejamos alguns exemplos de I/O.

Inputs - strings de entrada, arquivos de texto que são anexados, fotos que são enviadas, um switch que muda,
a saída de um sensor…

Outputs - strings de saida, arquivos de texto, imagens, um speeker que dispara…

I/O dá dinamismo ao programa, visto que se o usuário entrar com dados diferentes então, possivelmente, as
saídas serão diferentes, isso dá poder de generalização para as aplicações, sendo um recurso muito
importante para ser dominado.

OBS.: Ainda existem aplicações sem I/O, mas geralmente são partes de um sistema maior ou aplicações muito
simples, raramente são vistas.
Inputs em Python
Usaremos a função a seguir:

input() - captura a entrada do teclado do usuário até que ele pressione ENTRER.

Um detalhe importante é que essa entrada precisará ser armazenada em uma variável, não adianta capturar a
entrada do usuário se ela não puder ser manipulada ou usada… Veja o exemplo:

entrada = input()
print(entrada)

OBS.: Por padrão do Python, a função input() retorna sempre strings, ou seja, caso o desenvolvedor esteja
esperando inteiros essa entrada deverá ser convertida, veja o exemplo:

numero = int(input())
Inputs em Python
A função input também pode ter um argumento como parâmetro, veja o exemplo:

nome = input(‘digite seu nome:’)

print(‘seja bem vindo’, nome, ‘. A aplicacao esta funcionando corretamente’)


Observação
Existem várias formas de se usar a função print(), isto depende muito do gosto do desenvolvedor, afinal Python
te dá liberdade para fazer muita coisa, observe outra forma de executar a função print:

numero = int(input(‘Digite um numero: ’))


nome = input(‘Digite seu nome: ’)

print(‘Obrigado {} por digitar um numero, o numero digitado foi: {}’.format(nome, numero))

Ou também é possível:

numero = int(input(‘Digite um numero: ’))


nome = input(‘Digite seu nome: ’)

print(‘Obrigado’ + nome + ‘por digitar um numero, o numero digitado foi: ’ + numero)

Ambos são opções válidas.


Para isso...
https://docs.python.org/3/library/string.html#string.Formatter
Controle de fluxo
O controle do fluxo do programa é uma tarefa e atividade fundamental em qualquer etapa de desenvolvimento.
Se o fluxo será linear ou não isso cabe ao programador que está desenvolvendo a heurística do programa,
para isso usar algumas palavras reservadas de Python:

- If - Possui uma condição de desvio, caso a condição seja aceita o fluxo é desviado.
- elif - Funciona como o if mas ele vem obrigatoriamente depois de um if.
- else - Vem depois de um if ou elif, não possui condição e desvia obrigatoriamente o fluxo da aplicação.
- while - é um laço de repetição, enquanto a condição for atendida a aplicação repetirá o escopo local.
Escopo
Todo a aplicação é codificada em um escopo, esse escopo pode ser local ou global, é importante identificar em
qual escopo estamos codificando…

- Global - É o escopo que a aplicação é codificada em geral.


- Local - É o escopo gerado quando existe a possibilidade de desvio de fluxo, ou seja, quando a aplicação
entra na condição de desvio ou de repetição, ele entra em um escopo local… é possível ter um escopo
local dentro de um escopo local.
Exemplo

Global

Local
Local

Local

Local
Local
Voltando para o if
- O comando if desvia o fluxo da aplicação caso a condição esteja verdadeira, observe:

idade = 18 #idade recebe 18

if idade > 17: #idade > que 18 logo entra na condição


print(‘Individuo maior de idade’) #esse texto é impresso
Comando elif
- O comando deve ser colocado após um if e funciona de maneira semelhante, observe:

Idade = 7 #idade recebe 7

if idade > 17: #idade > 17 logo não entra na condição


print(‘Individuo maior de idade’) #esse texto não será impresso
elif idade < 12: #idade < 12 logo entra na condição
print(‘Individuo ainda e uma crianca’) #texto será impresso
Comando else
- O comando deve ser colocado no final, e ele será executado caso nenhum if tiver sido usado, observe:

Idade = 14 #idade recebe 14

if idade > 17: #idade < 17 logo não entra na condição


print(‘Individuo maior de idade’) #esse texto não será impresso
elif idade < 12: #idade > 12 logo entra na condição
print(‘Individuo ainda e uma crianca’) #texto não será impresso
else:
print(‘Individuo ainda e um adolescente’) #texto impresso obrigatoriamente
Observações
- Note que o if pode ser usado sozinho ou não…
- Note que elif pode ser substituído por vários ifs aninhado e dependendo da situação a mudança faz muita
diferença, existem casos que o resultado é o mesmo, mas para ambas as situações a maior diferença para
a aplicação é o fluxo da informação.
- O elif pode ou não estar presente após um if.
- Note que o else pode ou não estar presente, caso esteja presente ele sempre será executado caso não
dispare nenhuma condição dos ifs e elifs anteriores MESMO QUE NÃO FAÇA SENTIDO.

Exemplo:

operador = ‘+’
operando1 = 3
operando2 = 4

If operador == ‘+’: #trocando o operador...


resultado = operando1 + operando2
else:
resultado = operando1 - operando 2
Exercícios
1. Faça uma aplicação que verifique se o número digitado é impar ou par.
2. Faça uma aplicação que valide a idade do usuário, classificando ele como criança, adolescente(12+),
jovem(18+), adulto(32+) ou idoso(60+).
3. Faça uma aplicação que leia dois números, escreva o maior deles.
4. Faça uma aplicação com uma senha cadastrada, ao iniciar a aplicação solicita a senha do usuário, caso ela
esteja correta imprima ‘SENHA VÁLIDA, ACESSO LIBERADO’, caso não imprima ‘SENHA INVÁLIDA,
ACESSO NEGADO!’.
5. Em determinado negócio maçãs custam R$ 0,30, caso o usuário compre mais de 15 maçãs elas custarão
R$ 0,25, faça uma aplicação que receba o número de maçãs e retorna o valor a ser pago.
Laços de repetição
Serve para repetir um escopo local até que determinada condição seja atendida, são muito úteis, processos
baseados em laços de repetição são chamados de processos iterativos, os mesmos fazem contraponto com
processos funcionais(que veremos no decorrer da disciplina).

Tomem cuidado com erros de lógica, erros de lógica aqui são muito mais caros do que o visto anteriormente…

Aqui vamos usar outra palavra reservada do Python: while

while [condicao]:
[escopo local]
Laços de repetição
Serve para repetir um escopo local até que determinada condição seja atendida, são muito úteis, processos
baseados em laços de repetição são chamados de processos iterativos, os mesmos fazem contraponto com
processos funcionais(que veremos no decorrer da disciplina).

Tomem cuidado com erros de lógica, erros de lógica aqui são muito mais caros do que o visto anteriormente…

Aqui vamos usar outra palavra reservada do Python: while

while [condicao]:
[escopo local]
Exemplos
Segue a aplicação de contagem:

numero = int(input(‘digite um numero: )) #tomar a entrada inteira

print(‘Vou contar, segura ae...’) #uma mensagem para o usuário

contador = 0 #variável auxiliar para realizar a contagem

while contador < numero: #início do loop, tome cuidado na condição do loop
contador = contador + 1 #incremento para realizar a próxima contagem
print(‘{}...’.format(contador)) #imprimir a contagem

print(‘aplicacao finalizada’) #mensagem de finalização


Parada brusca
Existe a possibilidade do loop ser quebrado em uma das partes durante sua execução sem que ele seja finalizado,
para isso usamos a palavra reservada break, ao usar essa palavra a aplicação será obrigada a sair do escopo
local…

Veja um exemplo, imagine que você quer obrigar o usuário a digitar um número ímpar! Enquanto ele não digitar um
número ímpar vamos obrigá-lo a digitar um novo número, e por mais que ele tente ele só prosseguirá quando ele
digitar um número ímpar…
Exemplo
numeroImpar = int(input(‘digite um numero: ’))

while numeroImpar % 2 != 1:
numeroImpar = int(input(print(‘O numero digitado nao e impar, por favor digite um numero impar: ’)))
if numeroImpar % 2 == 1:
break

print(‘Numero impar identificado’)


Laços de repetição
O segundo laço de repetição é o for, sua principal diferença do while é que ao invés de validar uma condição ele
ele atribui valores a uma variável até que o vetor acabe… bem veremos vetores, tuplas e matrizes mais adiante
mas segue o exemplo:

for i in [0, ‘a’, 2, 5, 10]:


print (i)

Ou também temos a seguinte opção:

for i in range(10)
print(i)
?
Dúvidas
Exercício
1. Faça uma aplicação chama somatório, ela lê um número e retorna o somatório do número lido para o
usuário.
Exercício
2. Faça uma aplicação que retorne o fatorial de um número.
Exercício
3. Faça uma aplicação que verifique se o número digitado é primo.
?
Ainda restam dúvidas
Obrigado!
Sem mais perguntas

Jheymesson Apolinário Cavalcanti

Você também pode gostar