SlideShare uma empresa Scribd logo
1 de 4
Baixar para ler offline
Python:
algoritmos básicosalgoritmos básicos
Rodrigo de Toledo
(adaptação do original do prof. Alexandre Meslin)
Resumo até agora
• Em programação, temos os seguintes papéis:
– cliente, programador, usuário e computador
• Em python:
– variável: espaço em memória para armazenar
conteúdoconteúdo
– atribuição = (da direita para esquerda)
– print: informar ao usuário
– input: pegar informação do usuário
– ==, !=, >, >=, <, <=, and, or !
– if, elif e else
– while
Dicas valiosas
• Escolha bons nomes de variáveis
– Diminui a chance de você se perder
– Maior legibilidade para o programador futuro
• Foque primeiro em entender qual é o resultado
esperado.esperado.
– Ou seja, pense qual será o seu output
• Pense em diferentes testes de entradas
– Para cada teste de entrada, verifique se a saída está
correta
– Se estiver fazendo no papel, tente fazer um “chinês”
– (o Debugger do Python é equivalente ao chinês no papel)
Matemática
• Relação entre dois valores
– Relação entre a e b:
a) obter os valores de a e b.
b) calcular a / b.b) calcular a / b.
• Percentual entre dois valores
– Percentual de a em relação a b:
a) obter a relação entre a e b.
b) multiplicar o valor obtido por 100
Loops (1/3)
• Loop com quantidade determinada em tempo de
programação (número de vezes constante)
(O comando FOR é o mais apropriado, porém exemplos com WHILE)
Usar uma variável para contar (ex: i)
• Com while, inicializar contador antes do loop e
atualizá-lo dentro.atualizá-lo dentro.
• Exemplo: executar um comando ou um bloco de
comandos 100 vezes.
i = 0
while i<100
<comando>
i = i+1 # i+=1 também funciona,
apenas uma abreviação...
Loops (2/3)
• Loop com quantidade determinada no início da
execução
(O comando FOR é o mais apropriado, porém exemplos com WHILE)
Usar uma variável para contar (ex: i)
• Exemplo: executar um comando ou um bloco de• Exemplo: executar um comando ou um bloco de
comandos n vezes, onde n é uma variável cujo valor já
foi calculado, inicializado ou lido anteriormente:
nnnn = input (“Entre com a quantidade de vezes
:”)
i = 0
while i<nnnn
<comando>
i += 1
Loops (3/3)
• Loop com quantidade indeterminada de vezes
– Inicializar variáveis de controle fora do loop
(geralmente imediatamente antes do loop começar)
– Montar a condição do loop
– Ao final do bloco de comandos, atualizar as variáveis
de controlede controle
• Exemplo: ler uma seqüência de números inteiros até que o
valor digitado seja igual a zero.
num = input(“Entre com o primeiro numero”)
While num!=0:
<comandos>
num = input(“Entre com o proximo
numero”)
Loops exemplo
• O chefe do departamento da universidade gostaria que os
professores informassem a média da turma a cada prova. Para
ajudá-los:
Faça um programa que leia 40 notas e diga a média.
– Quem são o cliente, o usuário e o programador?
• As turmas tem tamanho variado, então, modifique o programa• As turmas tem tamanho variado, então, modifique o programa
anterior para perguntar o total de alunos antes de ler a sequência.
• Os professores reclamaram porque, como alguns alunos faltam a
prova, eles são obrigados a contar o total de provas para rodar o
programa. Modifique o programa anterior para que o professor não
seja obrigado a dizer quantas provas são, o professor pode entrar
diretamente com as notas e, ao final, entrará com um valor
negativo para indicar o fim da série.
As 3 soluções• 40 provas
n = input("Entre com a quantidade de provas: ")
i, soma = 0, 0.0
while i<n:
nota = input("Entre com a proxima nota: ")
i, soma = 0, 0.0
while i<40:
nota = input("Entre com a proxima nota: ")
soma = soma+nota
i = i+1
print "A media eh :", soma / 40
Quantas provas?
nota = input("Entre com a proxima nota: ")
soma = soma+nota
i = i+1
print "A media eh :", soma / n
Terminar com negativo!
i, soma = 0, 0.0
nota = input("Entre com a primeira nota: ")
while nota>=0:
soma = soma+nota
i = i+1
nota = input("Entre com a proxima nota: ")
print "A media eh :", soma / i
Acumulador e Contador
• Inicializar a variável com o valor inicialmente já acumulado (geralmente,
imediatamente antes do loop).
• Dentro do loop, atualizar o acumulador
– Exemplo contador: Leia as notas dos 40 alunos e ao final diga o total em prova
final (<7.0)
i,pf=0,0
while i<40:
nota = input(“Entre com nota: “)
if nota<7.0:
pf +=1pf +=1
i+=1
print “Total em prova final: ”, pf
– Exemplo acumulador: Leia os 12 faturamentos mensais de uma empresa,
indicando o seu faturamento anual.
i,anual=0,0
while i<12:
mensal = input(“Entre com faturamento do mes: ”)
anual += mensal #anual = anual + mensal
i +=1
print “Faturamento anual: ”, anual
Competidor
Cálculo do mais relevante (maior, menor, etc)
• Obter o primeiro elemento da série e armazená-lo como o mais relevante
(normalmente antes do loop)
• Realizar um loop obtendo o restante da série
– Para cada elemento obtido, testar se este é mais relevante do que o que já
estava previamente armazenado como relevante
• Exemplo: O maior de 10 números entrados
maior = input(“Entre com o primeiro numero”)
i=1
while i<=10:
num = input(“Entre com o proximo numero”)
if num > maior
maior = num
i = i+1
print maior
Competidor
(continuação)
• Exemplo: O maior de 10 números entrados, mas em qual posição?
maior = input(“Entre com o primeiro numero”)
i=1
posicao = 1
while i<=10:
num = input(“Entre com o proximo numero”)
if num > maior
maior = num
posicao = i
i = i+1
print “O maior eh”, maior, “na posição”, posicao
Loop dentro de loop
• Exemplo das tabuadas
Exercícios• Percentual:
– Faça um programa que leia as notas finais dos alunos e, ao final, diga total e percentual
de aprovações diretas (>=7), reprovações (<3) e pessoas em prova final. (termina com
<0)
– Faça um programa que leia o preço de compra e o preço de venda de 100 mercadorias.
O programa deverá imprimir quantas mercadorias proporcionam:
• lucro < 10 %
• 10 % <= lucro <= 20 %
• lucro > 20 %
• Competidor:
– Faça um programa que leia os tempos conseguidos pelos corredores em cada uma das 8
raias da prova de 1500m das olimpíadas e diga quem foi o vencedor (ou seja, o número
da raia). Obs: os tempos serão dados em minutos e segundos.da raia). Obs: os tempos serão dados em minutos e segundos.
• Filtro:
– Em uma eleição presidencial, existem quatro candidatos. Os votos são informados
através de código. Os dados utilizados para a escrutinagem obedecem à seguinte
codificação:
• 1, 2, 3, 4 = voto para os respectivos candidatos;
• 5 = voto nulo;
• 6 = voto em branco;
Elabore um programa que calcule e imprima:
• total de votos para cada candidato;
• total de votos nulos;
• total de votos em branco;
• percentual dos votos em branco e nulos sobre o total;
• Se haverá segundo turno (candidato vencedor obteve mais votos que os outros três somados).
Como finalizador do conjunto de votos, tem-se o valor 0.
Exercícios
• Matemática:
– Faça um programa que leia uma seqüência de números inteiros
terminada por 0 (zero) e imprima o número que for múltiplo de sua
posição (primeiro, segundo, terceiro, …) na seqüência. Exemplo:
• posição: 1 2 3 4 5
• valores lidos: 3 7 8 16 5 0
• impressão: 3 16 5
– Faça um programa que calcule e imprima os termos da série ,
onde X e N devem ser lidos da entrada.
obs: tente programar sem usar o comando **
X
N
N
!obs: tente programar sem usar o comando **
– Faça um programa que calcule e imprima a média e a variância das
notas de todos os alunos de uma determinada cadeira. As notas
devem ser lidas via teclado. O fim da leitura é marcado por uma nota
negativa. A média e a variância são calculadas da seguinte forma:
• Observar que ∑(notas2) ≠ (∑notas)2 !!!!!!!!media
notas
numero de alunos
=
∑
_ _
var
( )
_ _
iancia
notas
numero de alunos
media= −
∑ 2
2
N!

Mais conteúdo relacionado

Mais procurados

Comandos de pascal e estrutura de repetição (para...fazer)
Comandos de pascal e estrutura de repetição (para...fazer)Comandos de pascal e estrutura de repetição (para...fazer)
Comandos de pascal e estrutura de repetição (para...fazer)
111111119
 
Algoritmo e lógica de programação - aula 2
Algoritmo e lógica de programação - aula 2Algoritmo e lógica de programação - aula 2
Algoritmo e lógica de programação - aula 2
engenhariadecomputacao
 
Lógica de programação pascal
Lógica de programação   pascalLógica de programação   pascal
Lógica de programação pascal
Jocelma Rios
 
Logica Algoritmo 05 Repeticao
Logica Algoritmo 05 RepeticaoLogica Algoritmo 05 Repeticao
Logica Algoritmo 05 Repeticao
Regis Magalhães
 

Mais procurados (20)

Construcao de Algoritmos - Aula 06
Construcao de Algoritmos - Aula 06Construcao de Algoritmos - Aula 06
Construcao de Algoritmos - Aula 06
 
Construcao de Algoritmos - Aula 05
Construcao de Algoritmos - Aula 05Construcao de Algoritmos - Aula 05
Construcao de Algoritmos - Aula 05
 
Maratona de Programação
Maratona de ProgramaçãoMaratona de Programação
Maratona de Programação
 
Comandos de pascal e estrutura de repetição (para...fazer)
Comandos de pascal e estrutura de repetição (para...fazer)Comandos de pascal e estrutura de repetição (para...fazer)
Comandos de pascal e estrutura de repetição (para...fazer)
 
Algoritmos Aula 08
Algoritmos Aula 08Algoritmos Aula 08
Algoritmos Aula 08
 
Lógica de Programação - Unimep/Pronatec - Aula02
Lógica de Programação - Unimep/Pronatec - Aula02Lógica de Programação - Unimep/Pronatec - Aula02
Lógica de Programação - Unimep/Pronatec - Aula02
 
Algoritmos - Aula 13 A - Lacos em C
Algoritmos - Aula 13 A - Lacos em CAlgoritmos - Aula 13 A - Lacos em C
Algoritmos - Aula 13 A - Lacos em C
 
Python + algoritmo
Python + algoritmoPython + algoritmo
Python + algoritmo
 
05 repeticao
05 repeticao05 repeticao
05 repeticao
 
Aula python
Aula pythonAula python
Aula python
 
Algoritmo e lógica de programação - aula 2
Algoritmo e lógica de programação - aula 2Algoritmo e lógica de programação - aula 2
Algoritmo e lógica de programação - aula 2
 
Teste 1 - Engenharia mecânica
Teste 1 - Engenharia mecânicaTeste 1 - Engenharia mecânica
Teste 1 - Engenharia mecânica
 
8a. aula -_estrutura_de_controle_de_repeticao_-_while_java
8a. aula -_estrutura_de_controle_de_repeticao_-_while_java8a. aula -_estrutura_de_controle_de_repeticao_-_while_java
8a. aula -_estrutura_de_controle_de_repeticao_-_while_java
 
Pseudocódigo - Estrutura de Repetição (Lógica de Programação)
Pseudocódigo - Estrutura de Repetição (Lógica de Programação)Pseudocódigo - Estrutura de Repetição (Lógica de Programação)
Pseudocódigo - Estrutura de Repetição (Lógica de Programação)
 
Lógica de Programação - Unimep/Pronatec - Aula08
Lógica de Programação - Unimep/Pronatec - Aula08Lógica de Programação - Unimep/Pronatec - Aula08
Lógica de Programação - Unimep/Pronatec - Aula08
 
Lógica de programação pascal
Lógica de programação   pascalLógica de programação   pascal
Lógica de programação pascal
 
Logica Algoritmo 05 Repeticao
Logica Algoritmo 05 RepeticaoLogica Algoritmo 05 Repeticao
Logica Algoritmo 05 Repeticao
 
Algoritmos - Lógica de Programação
Algoritmos - Lógica de ProgramaçãoAlgoritmos - Lógica de Programação
Algoritmos - Lógica de Programação
 
Lógica de programação em ppt
Lógica de programação em pptLógica de programação em ppt
Lógica de programação em ppt
 
Material de Apoio de Algoritmo e Lógica de Programação
Material de Apoio de Algoritmo e Lógica de ProgramaçãoMaterial de Apoio de Algoritmo e Lógica de Programação
Material de Apoio de Algoritmo e Lógica de Programação
 

Destaque (8)

006 programando em python - dicionarios
006   programando em python - dicionarios006   programando em python - dicionarios
006 programando em python - dicionarios
 
05 listas
05 listas05 listas
05 listas
 
004 programando em python - listas
004   programando em python - listas004   programando em python - listas
004 programando em python - listas
 
005 programando em python - tuplas e strings
005   programando em python - tuplas e strings005   programando em python - tuplas e strings
005 programando em python - tuplas e strings
 
013 programando em python - arquivos
013   programando em python - arquivos013   programando em python - arquivos
013 programando em python - arquivos
 
007 programando em python - funcoes
007   programando em python - funcoes007   programando em python - funcoes
007 programando em python - funcoes
 
Ideias para programar
Ideias para programarIdeias para programar
Ideias para programar
 
Aula02
Aula02Aula02
Aula02
 

Semelhante a 03 algoritmos basicos

Curso De Algoritmo Aula 9
Curso De Algoritmo   Aula 9Curso De Algoritmo   Aula 9
Curso De Algoritmo Aula 9
Felipe Santos
 
Algoritmo e lógica de programação - Aula 1
Algoritmo e lógica de programação - Aula 1Algoritmo e lógica de programação - Aula 1
Algoritmo e lógica de programação - Aula 1
engenhariadecomputacao
 

Semelhante a 03 algoritmos basicos (20)

Lógica de Programação e Algoritmos
Lógica de Programação e AlgoritmosLógica de Programação e Algoritmos
Lógica de Programação e Algoritmos
 
Curso De Algoritmo Aula 9
Curso De Algoritmo   Aula 9Curso De Algoritmo   Aula 9
Curso De Algoritmo Aula 9
 
Pj 2009 avioes_overflow
Pj 2009 avioes_overflowPj 2009 avioes_overflow
Pj 2009 avioes_overflow
 
Aula 3-lógica.pptx
Aula 3-lógica.pptxAula 3-lógica.pptx
Aula 3-lógica.pptx
 
Aula 4 aed - parte 1
Aula 4   aed - parte 1Aula 4   aed - parte 1
Aula 4 aed - parte 1
 
Campeonato
CampeonatoCampeonato
Campeonato
 
Algoritmos
AlgoritmosAlgoritmos
Algoritmos
 
Aula 03 - Condicionais e Loops em Python.pptx
Aula 03 - Condicionais e Loops em Python.pptxAula 03 - Condicionais e Loops em Python.pptx
Aula 03 - Condicionais e Loops em Python.pptx
 
Visualg
VisualgVisualg
Visualg
 
Introducao a Lógica de Programação
Introducao a Lógica de ProgramaçãoIntroducao a Lógica de Programação
Introducao a Lógica de Programação
 
logica d programacaorepeticaoRepitaAte.pdf
logica d programacaorepeticaoRepitaAte.pdflogica d programacaorepeticaoRepitaAte.pdf
logica d programacaorepeticaoRepitaAte.pdf
 
Conta de água e pedágio
Conta de água e pedágioConta de água e pedágio
Conta de água e pedágio
 
Python for zombies (very basic level)
Python for zombies (very basic level)Python for zombies (very basic level)
Python for zombies (very basic level)
 
Programando em python comandos basicos
Programando em python   comandos basicosProgramando em python   comandos basicos
Programando em python comandos basicos
 
Algoritmo e lógica de programação - Aula 1
Algoritmo e lógica de programação - Aula 1Algoritmo e lógica de programação - Aula 1
Algoritmo e lógica de programação - Aula 1
 
Algoritmos
AlgoritmosAlgoritmos
Algoritmos
 
Curso de Python e Django
Curso de Python e DjangoCurso de Python e Django
Curso de Python e Django
 
Módulo 2 pascal
Módulo 2  pascalMódulo 2  pascal
Módulo 2 pascal
 
Python
PythonPython
Python
 
Laços de repetição
Laços de repetiçãoLaços de repetição
Laços de repetição
 

Mais de Leandro Barbosa (6)

011 programando em python - conjuntos
011   programando em python - conjuntos011   programando em python - conjuntos
011 programando em python - conjuntos
 
05 biomassa
05 biomassa05 biomassa
05 biomassa
 
python
pythonpython
python
 
python.tipos
python.tipospython.tipos
python.tipos
 
Estrutura cristalina
Estrutura cristalinaEstrutura cristalina
Estrutura cristalina
 
Lista de integração
Lista de integraçãoLista de integração
Lista de integração
 

Último

Teoria heterotrófica e autotrófica dos primeiros seres vivos..pptx
Teoria heterotrófica e autotrófica dos primeiros seres vivos..pptxTeoria heterotrófica e autotrófica dos primeiros seres vivos..pptx
Teoria heterotrófica e autotrófica dos primeiros seres vivos..pptx
TailsonSantos1
 
A EDUCAÇÃO FÍSICA NO NOVO ENSINO MÉDIO: IMPLICAÇÕES E TENDÊNCIAS PROMOVIDAS P...
A EDUCAÇÃO FÍSICA NO NOVO ENSINO MÉDIO: IMPLICAÇÕES E TENDÊNCIAS PROMOVIDAS P...A EDUCAÇÃO FÍSICA NO NOVO ENSINO MÉDIO: IMPLICAÇÕES E TENDÊNCIAS PROMOVIDAS P...
A EDUCAÇÃO FÍSICA NO NOVO ENSINO MÉDIO: IMPLICAÇÕES E TENDÊNCIAS PROMOVIDAS P...
PatriciaCaetano18
 

Último (20)

A Revolução Francesa. Liberdade, Igualdade e Fraternidade são os direitos que...
A Revolução Francesa. Liberdade, Igualdade e Fraternidade são os direitos que...A Revolução Francesa. Liberdade, Igualdade e Fraternidade são os direitos que...
A Revolução Francesa. Liberdade, Igualdade e Fraternidade são os direitos que...
 
Teoria heterotrófica e autotrófica dos primeiros seres vivos..pptx
Teoria heterotrófica e autotrófica dos primeiros seres vivos..pptxTeoria heterotrófica e autotrófica dos primeiros seres vivos..pptx
Teoria heterotrófica e autotrófica dos primeiros seres vivos..pptx
 
GÊNERO CARTAZ - o que é, para que serve.pptx
GÊNERO CARTAZ - o que é, para que serve.pptxGÊNERO CARTAZ - o que é, para que serve.pptx
GÊNERO CARTAZ - o que é, para que serve.pptx
 
Apresentação ISBET Jovem Aprendiz e Estágio 2023.pdf
Apresentação ISBET Jovem Aprendiz e Estágio 2023.pdfApresentação ISBET Jovem Aprendiz e Estágio 2023.pdf
Apresentação ISBET Jovem Aprendiz e Estágio 2023.pdf
 
Seminário Biologia e desenvolvimento da matrinxa.pptx
Seminário Biologia e desenvolvimento da matrinxa.pptxSeminário Biologia e desenvolvimento da matrinxa.pptx
Seminário Biologia e desenvolvimento da matrinxa.pptx
 
A EDUCAÇÃO FÍSICA NO NOVO ENSINO MÉDIO: IMPLICAÇÕES E TENDÊNCIAS PROMOVIDAS P...
A EDUCAÇÃO FÍSICA NO NOVO ENSINO MÉDIO: IMPLICAÇÕES E TENDÊNCIAS PROMOVIDAS P...A EDUCAÇÃO FÍSICA NO NOVO ENSINO MÉDIO: IMPLICAÇÕES E TENDÊNCIAS PROMOVIDAS P...
A EDUCAÇÃO FÍSICA NO NOVO ENSINO MÉDIO: IMPLICAÇÕES E TENDÊNCIAS PROMOVIDAS P...
 
About Vila Galé- Cadeia Empresarial de Hotéis
About Vila Galé- Cadeia Empresarial de HotéisAbout Vila Galé- Cadeia Empresarial de Hotéis
About Vila Galé- Cadeia Empresarial de Hotéis
 
Projeto de Extensão - ENGENHARIA DE SOFTWARE - BACHARELADO.pdf
Projeto de Extensão - ENGENHARIA DE SOFTWARE - BACHARELADO.pdfProjeto de Extensão - ENGENHARIA DE SOFTWARE - BACHARELADO.pdf
Projeto de Extensão - ENGENHARIA DE SOFTWARE - BACHARELADO.pdf
 
migração e trabalho 2º ano.pptx fenomenos
migração e trabalho 2º ano.pptx fenomenosmigração e trabalho 2º ano.pptx fenomenos
migração e trabalho 2º ano.pptx fenomenos
 
M0 Atendimento – Definição, Importância .pptx
M0 Atendimento – Definição, Importância .pptxM0 Atendimento – Definição, Importância .pptx
M0 Atendimento – Definição, Importância .pptx
 
Conflitos entre: ISRAEL E PALESTINA.pdf
Conflitos entre:  ISRAEL E PALESTINA.pdfConflitos entre:  ISRAEL E PALESTINA.pdf
Conflitos entre: ISRAEL E PALESTINA.pdf
 
P P P 2024 - *CIEJA Santana / Tucuruvi*
P P P 2024  - *CIEJA Santana / Tucuruvi*P P P 2024  - *CIEJA Santana / Tucuruvi*
P P P 2024 - *CIEJA Santana / Tucuruvi*
 
Estudar, para quê? Ciência, para quê? Parte 1 e Parte 2
Estudar, para quê?  Ciência, para quê? Parte 1 e Parte 2Estudar, para quê?  Ciência, para quê? Parte 1 e Parte 2
Estudar, para quê? Ciência, para quê? Parte 1 e Parte 2
 
Camadas da terra -Litosfera conteúdo 6º ano
Camadas da terra -Litosfera  conteúdo 6º anoCamadas da terra -Litosfera  conteúdo 6º ano
Camadas da terra -Litosfera conteúdo 6º ano
 
LENDA DA MANDIOCA - leitura e interpretação
LENDA DA MANDIOCA - leitura e interpretaçãoLENDA DA MANDIOCA - leitura e interpretação
LENDA DA MANDIOCA - leitura e interpretação
 
Currículo - Ícaro Kleisson - Tutor acadêmico.pdf
Currículo - Ícaro Kleisson - Tutor acadêmico.pdfCurrículo - Ícaro Kleisson - Tutor acadêmico.pdf
Currículo - Ícaro Kleisson - Tutor acadêmico.pdf
 
PROJETO DE EXTENSÃO I - Radiologia Tecnologia
PROJETO DE EXTENSÃO I - Radiologia TecnologiaPROJETO DE EXTENSÃO I - Radiologia Tecnologia
PROJETO DE EXTENSÃO I - Radiologia Tecnologia
 
PROJETO DE EXTENSÃO I - AGRONOMIA.pdf AGRONOMIAAGRONOMIA
PROJETO DE EXTENSÃO I - AGRONOMIA.pdf AGRONOMIAAGRONOMIAPROJETO DE EXTENSÃO I - AGRONOMIA.pdf AGRONOMIAAGRONOMIA
PROJETO DE EXTENSÃO I - AGRONOMIA.pdf AGRONOMIAAGRONOMIA
 
Produção de Texto - 5º ano - CRÔNICA.pptx
Produção de Texto - 5º ano - CRÔNICA.pptxProdução de Texto - 5º ano - CRÔNICA.pptx
Produção de Texto - 5º ano - CRÔNICA.pptx
 
PROJETO DE EXTENSÃO I - TERAPIAS INTEGRATIVAS E COMPLEMENTARES.pdf
PROJETO DE EXTENSÃO I - TERAPIAS INTEGRATIVAS E COMPLEMENTARES.pdfPROJETO DE EXTENSÃO I - TERAPIAS INTEGRATIVAS E COMPLEMENTARES.pdf
PROJETO DE EXTENSÃO I - TERAPIAS INTEGRATIVAS E COMPLEMENTARES.pdf
 

03 algoritmos basicos

  • 1. Python: algoritmos básicosalgoritmos básicos Rodrigo de Toledo (adaptação do original do prof. Alexandre Meslin) Resumo até agora • Em programação, temos os seguintes papéis: – cliente, programador, usuário e computador • Em python: – variável: espaço em memória para armazenar conteúdoconteúdo – atribuição = (da direita para esquerda) – print: informar ao usuário – input: pegar informação do usuário – ==, !=, >, >=, <, <=, and, or ! – if, elif e else – while Dicas valiosas • Escolha bons nomes de variáveis – Diminui a chance de você se perder – Maior legibilidade para o programador futuro • Foque primeiro em entender qual é o resultado esperado.esperado. – Ou seja, pense qual será o seu output • Pense em diferentes testes de entradas – Para cada teste de entrada, verifique se a saída está correta – Se estiver fazendo no papel, tente fazer um “chinês” – (o Debugger do Python é equivalente ao chinês no papel) Matemática • Relação entre dois valores – Relação entre a e b: a) obter os valores de a e b. b) calcular a / b.b) calcular a / b. • Percentual entre dois valores – Percentual de a em relação a b: a) obter a relação entre a e b. b) multiplicar o valor obtido por 100
  • 2. Loops (1/3) • Loop com quantidade determinada em tempo de programação (número de vezes constante) (O comando FOR é o mais apropriado, porém exemplos com WHILE) Usar uma variável para contar (ex: i) • Com while, inicializar contador antes do loop e atualizá-lo dentro.atualizá-lo dentro. • Exemplo: executar um comando ou um bloco de comandos 100 vezes. i = 0 while i<100 <comando> i = i+1 # i+=1 também funciona, apenas uma abreviação... Loops (2/3) • Loop com quantidade determinada no início da execução (O comando FOR é o mais apropriado, porém exemplos com WHILE) Usar uma variável para contar (ex: i) • Exemplo: executar um comando ou um bloco de• Exemplo: executar um comando ou um bloco de comandos n vezes, onde n é uma variável cujo valor já foi calculado, inicializado ou lido anteriormente: nnnn = input (“Entre com a quantidade de vezes :”) i = 0 while i<nnnn <comando> i += 1 Loops (3/3) • Loop com quantidade indeterminada de vezes – Inicializar variáveis de controle fora do loop (geralmente imediatamente antes do loop começar) – Montar a condição do loop – Ao final do bloco de comandos, atualizar as variáveis de controlede controle • Exemplo: ler uma seqüência de números inteiros até que o valor digitado seja igual a zero. num = input(“Entre com o primeiro numero”) While num!=0: <comandos> num = input(“Entre com o proximo numero”) Loops exemplo • O chefe do departamento da universidade gostaria que os professores informassem a média da turma a cada prova. Para ajudá-los: Faça um programa que leia 40 notas e diga a média. – Quem são o cliente, o usuário e o programador? • As turmas tem tamanho variado, então, modifique o programa• As turmas tem tamanho variado, então, modifique o programa anterior para perguntar o total de alunos antes de ler a sequência. • Os professores reclamaram porque, como alguns alunos faltam a prova, eles são obrigados a contar o total de provas para rodar o programa. Modifique o programa anterior para que o professor não seja obrigado a dizer quantas provas são, o professor pode entrar diretamente com as notas e, ao final, entrará com um valor negativo para indicar o fim da série.
  • 3. As 3 soluções• 40 provas n = input("Entre com a quantidade de provas: ") i, soma = 0, 0.0 while i<n: nota = input("Entre com a proxima nota: ") i, soma = 0, 0.0 while i<40: nota = input("Entre com a proxima nota: ") soma = soma+nota i = i+1 print "A media eh :", soma / 40 Quantas provas? nota = input("Entre com a proxima nota: ") soma = soma+nota i = i+1 print "A media eh :", soma / n Terminar com negativo! i, soma = 0, 0.0 nota = input("Entre com a primeira nota: ") while nota>=0: soma = soma+nota i = i+1 nota = input("Entre com a proxima nota: ") print "A media eh :", soma / i Acumulador e Contador • Inicializar a variável com o valor inicialmente já acumulado (geralmente, imediatamente antes do loop). • Dentro do loop, atualizar o acumulador – Exemplo contador: Leia as notas dos 40 alunos e ao final diga o total em prova final (<7.0) i,pf=0,0 while i<40: nota = input(“Entre com nota: “) if nota<7.0: pf +=1pf +=1 i+=1 print “Total em prova final: ”, pf – Exemplo acumulador: Leia os 12 faturamentos mensais de uma empresa, indicando o seu faturamento anual. i,anual=0,0 while i<12: mensal = input(“Entre com faturamento do mes: ”) anual += mensal #anual = anual + mensal i +=1 print “Faturamento anual: ”, anual Competidor Cálculo do mais relevante (maior, menor, etc) • Obter o primeiro elemento da série e armazená-lo como o mais relevante (normalmente antes do loop) • Realizar um loop obtendo o restante da série – Para cada elemento obtido, testar se este é mais relevante do que o que já estava previamente armazenado como relevante • Exemplo: O maior de 10 números entrados maior = input(“Entre com o primeiro numero”) i=1 while i<=10: num = input(“Entre com o proximo numero”) if num > maior maior = num i = i+1 print maior Competidor (continuação) • Exemplo: O maior de 10 números entrados, mas em qual posição? maior = input(“Entre com o primeiro numero”) i=1 posicao = 1 while i<=10: num = input(“Entre com o proximo numero”) if num > maior maior = num posicao = i i = i+1 print “O maior eh”, maior, “na posição”, posicao
  • 4. Loop dentro de loop • Exemplo das tabuadas Exercícios• Percentual: – Faça um programa que leia as notas finais dos alunos e, ao final, diga total e percentual de aprovações diretas (>=7), reprovações (<3) e pessoas em prova final. (termina com <0) – Faça um programa que leia o preço de compra e o preço de venda de 100 mercadorias. O programa deverá imprimir quantas mercadorias proporcionam: • lucro < 10 % • 10 % <= lucro <= 20 % • lucro > 20 % • Competidor: – Faça um programa que leia os tempos conseguidos pelos corredores em cada uma das 8 raias da prova de 1500m das olimpíadas e diga quem foi o vencedor (ou seja, o número da raia). Obs: os tempos serão dados em minutos e segundos.da raia). Obs: os tempos serão dados em minutos e segundos. • Filtro: – Em uma eleição presidencial, existem quatro candidatos. Os votos são informados através de código. Os dados utilizados para a escrutinagem obedecem à seguinte codificação: • 1, 2, 3, 4 = voto para os respectivos candidatos; • 5 = voto nulo; • 6 = voto em branco; Elabore um programa que calcule e imprima: • total de votos para cada candidato; • total de votos nulos; • total de votos em branco; • percentual dos votos em branco e nulos sobre o total; • Se haverá segundo turno (candidato vencedor obteve mais votos que os outros três somados). Como finalizador do conjunto de votos, tem-se o valor 0. Exercícios • Matemática: – Faça um programa que leia uma seqüência de números inteiros terminada por 0 (zero) e imprima o número que for múltiplo de sua posição (primeiro, segundo, terceiro, …) na seqüência. Exemplo: • posição: 1 2 3 4 5 • valores lidos: 3 7 8 16 5 0 • impressão: 3 16 5 – Faça um programa que calcule e imprima os termos da série , onde X e N devem ser lidos da entrada. obs: tente programar sem usar o comando ** X N N !obs: tente programar sem usar o comando ** – Faça um programa que calcule e imprima a média e a variância das notas de todos os alunos de uma determinada cadeira. As notas devem ser lidas via teclado. O fim da leitura é marcado por uma nota negativa. A média e a variância são calculadas da seguinte forma: • Observar que ∑(notas2) ≠ (∑notas)2 !!!!!!!!media notas numero de alunos = ∑ _ _ var ( ) _ _ iancia notas numero de alunos media= − ∑ 2 2 N!