SlideShare ist ein Scribd-Unternehmen logo
1 von 4
Downloaden Sie, um offline zu lesen
Python:
whilewhile
Rodrigo de Toledo
(original: Claudio Esperança)
Primeiros passos em programação
• Até agora só vimos:
– Expressões, que são escritas e computadas
imediatamente
– Variáveis, que podem ser usadas para valores
temporáriostemporários
– Input, para ler informações entradas pelos usuários
– Print, para informar ao usuário a saída
– If, comando condicional para tomada de decisão
• O que veremos agora:
– Comandos de repetição (ou loop)
Primeiros passos em programação
>>> # Série de Fibonacci
... a,b = 0,1
>>> while b < 10:
... print b
... a,b = b,a+b
Comentário
Atribuição dupla
Comando de repetição
Expressão booleana
... a,b = b,a+b
...
1
1
2
3
5
8
Bloco do
comando de repetição
Expressão booleana
Resultado
Indentação
Sobre a série de Fibonacci
• Fibonacci, matemático do século XII
• Fórmula
• Série
– 1,1,2,3,5,8,13,21,34,55,89,144,233,377,610,987,1597, ...
• Tendem à razão áurea
– 1.618033989...– 1.618033989...
– Razão da beleza
• Na natureza:
– Espiral: conchas, bromélias, orelha...
– Flores: girassol...
– Crescimento populacional dos coelhos
• Várias propriedades matemáticas
• Muito usado em aprendizado de linguagens de programação
while
• Repete uma seqüência de comandos enquanto uma dada expressão
booleana é avaliada como verdadeira
• Formato:
whilewhilewhilewhile expressão:
comando
...
comandocomando
• Exemplo:
>>> i = 10
>>> while i>8:
... print i,
... i = i-1
...
10 9
Programas armazenados
• À medida que os programas vão se tornando mais complicados, é
mais interessante guardá-los em arquivos e executá-los quando
necessário
• Arquivo fibo.py (use um editor de textos como o do IDLE):
# Série de Fibonacci:
a, b = 0, 1a, b = 0, 1
while b < 10:
print b
a, b = b, a+b
Formas de Executar
um Programa
• 4 opções:
– Digite python fibo.py no seu shell (ex: janela DOS), ou
– Clique no ícone do arquivo, ou
– De dentro do editor IDLE, selecione Run Module (F5), ou– De dentro do editor IDLE, selecione Run Module (F5), ou
– De dentro do interpretador python:
>>> execfile ("fibo.py")
Entre com um numero 5
1 1 2 3
>>>
Observações
• Existe um outro comando de repetição:
– FOR
– (o comando FOR será visto posteriormente)
• Em geral usa-se a variável i (abreviação de integer)
para contagem sequencial de inteirospara contagem sequencial de inteiros
• É possível haver loop dentro de loop
– Nesse caso recomenda-se usar variáveis diferentes para o controle do
loop (ex: i, j, k ...), para que não haja interferência
• Atenção para não criar um loop infinito
– Para interromper: ctrl+c
– Exemplo no próximo slide
Laços Infinitos
• Como em todo comando de repetição, é
importante evitar os chamados “laços
infinitos” ou “loop infinitos”
• Ex.:• Ex.:
>>> i = 10
>>> while i>8:
... print i,
... i = i+1
...
10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29
30 31 32 33 ...
Vamos fazer juntos...
1. Faça um programa que repita na tela 40 vezes a
frase “Aprender Python eh muito facil!”
2. Faça um programa que leia quantas vezes a frase
“Aprender Python eh muito facil!” deverá ser
repetida, imprima também o número da linha.repetida, imprima também o número da linha.
3. Faça um programa que leia 40 números
somando-os e ao final diga o total
4. Faça um programa que inicialmente pergunte
quantos números serão entrados e então calcule
o seu somatório e a média.
Exercícios (loop)
1. Faça um programa que leia um numero entre 1 e
10 e imprima a sua tabuada de 1 a 10.
2. Faça um programa que leia um número
informando a quantidade de números que serão
entrados em sequência posteriormente, entãoentrados em sequência posteriormente, então
leia os números e, ao final, imprima a média
deles
3. Faça um programa que leia uma seqüência de 10
números e, ao final, imprima o maior deles.
4. Faça um programa que imprima todas as
tabuadas de 1 a 10.
Exercícios (while)
1. Faça um programa que leia uma série de números inteiros e imprima a sua
média, o programa termina com a entrada do número 0.
2. Faça um programa que leia uma série de números positivos e diga ao final
qual é o maior (termina com um número negativo).
3. Altere o programa anterior para imprimir também qual é o segundo maior.
4. Faça um programa que leia 2 números da entrada e imprima o resto da
divisão inteira do primeiro pelo segundo usando subtrações sucessivas (ou
seja, não use comando de resto: %).
5. Altere o programa anterior para que imprima também o resultado da
divisão (não use comando de divisão: /).divisão (não use comando de divisão: /).
6. Faça um programa que calcule e imprima o CR do período para os alunos
da UFRJ (matrícula inferior ou igual a zero termina a entrada). Para cada
aluno, o programa deverá ler:
número da matrícula;
quantidade de disciplinas cursadas;
Para cada disciplina cursada:
nota da disciplina.
créditos da disciplina
Obs1: O CR é calculado segundo a média ponderada das notas.
Obs2: O programa termina com a entrada de uma matrícula negativa.
Exercício: números primos
• Fazer um programa que decida se um número
positivo dado é primo ou não
– Entrada: número inteiro positivo
– Saída: diagnóstico de primalidade do número– Saída: diagnóstico de primalidade do número
• Exemplos de execução:
– Entre com um número inteiro positivo: 169
169 é múltiplo de 13
– Entre com um número inteiro positivo: 983
983 é primo
Exercício: números primos
• Um número natural é primo se é divisível apenas
por si mesmo e pela unidade (excetuando-se o 1)
• Isto sugere o seguinte algoritmo:
– Se o número é 1, então não é primo
– Se o número é 2, então é primo– Se o número é 2, então é primo
– Caso contrário,
• Seja d um possível divisor, cujo valor é inicialmente 2
• Repetir
– Se o resto da divisão do número por d é zero, então o número
não é primo
– Caso contrário, incrementar d
– Se d é igual ou maior que o número, então terminar repetição
diagnosticando o número como primo

Weitere ähnliche Inhalte

Was ist angesagt?

T02_LM3: Introdução à algoritmia (2013-2014)
T02_LM3: Introdução à algoritmia (2013-2014)T02_LM3: Introdução à algoritmia (2013-2014)
T02_LM3: Introdução à algoritmia (2013-2014)
Carlos Santos
 
Logica Algoritmo 05 Repeticao
Logica Algoritmo 05 RepeticaoLogica Algoritmo 05 Repeticao
Logica Algoritmo 05 Repeticao
Regis Magalhães
 
Introdução à programação
Introdução à programaçãoIntrodução à programação
Introdução à programação
12anogolega
 
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
 
Aula 04 estruturas de repetição
Aula 04   estruturas de repetiçãoAula 04   estruturas de repetição
Aula 04 estruturas de repetição
Tácito Graça
 
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
 

Was ist angesagt? (20)

Dicas para maratonas de programação
Dicas para maratonas de programaçãoDicas para maratonas de programação
Dicas para maratonas de programação
 
Lógica de Programação - Unimep/Pronatec - Aula10
Lógica de Programação - Unimep/Pronatec - Aula10Lógica de Programação - Unimep/Pronatec - Aula10
Lógica de Programação - Unimep/Pronatec - Aula10
 
Python + algoritmo
Python + algoritmoPython + algoritmo
Python + algoritmo
 
Aula python
Aula pythonAula python
Aula python
 
Lógica de Programação - Unimep/Pronatec - Aula06
Lógica de Programação - Unimep/Pronatec - Aula06Lógica de Programação - Unimep/Pronatec - Aula06
Lógica de Programação - Unimep/Pronatec - Aula06
 
Algoritmos - Comandos de Repetição
Algoritmos - Comandos de RepetiçãoAlgoritmos - Comandos de Repetição
Algoritmos - Comandos de Repetição
 
T02_LM3: Introdução à algoritmia (2013-2014)
T02_LM3: Introdução à algoritmia (2013-2014)T02_LM3: Introdução à algoritmia (2013-2014)
T02_LM3: Introdução à algoritmia (2013-2014)
 
Logica Algoritmo 05 Repeticao
Logica Algoritmo 05 RepeticaoLogica Algoritmo 05 Repeticao
Logica Algoritmo 05 Repeticao
 
Introdução à programação
Introdução à programaçãoIntrodução à programação
Introdução à programação
 
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
 
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)
 
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
 
Aula 01 - Algoritmo e Programação
Aula 01 - Algoritmo e ProgramaçãoAula 01 - Algoritmo e Programação
Aula 01 - Algoritmo e Programação
 
Aula 04 estruturas de repetição
Aula 04   estruturas de repetiçãoAula 04   estruturas de repetição
Aula 04 estruturas de repetição
 
ICC - Aula 04 - Expressões literais, comando de atribuição e de entrada/saída
ICC - Aula 04 - Expressões literais, comando de atribuição e de entrada/saídaICC - Aula 04 - Expressões literais, comando de atribuição e de entrada/saída
ICC - Aula 04 - Expressões literais, comando de atribuição e de entrada/saída
 
Lógica de programação pascal
Lógica de programação   pascalLógica de programação   pascal
Lógica de programação pascal
 
Descritiva Narrativa (Lógica de Programação)
Descritiva Narrativa (Lógica de Programação)Descritiva Narrativa (Lógica de Programação)
Descritiva Narrativa (Lógica de Programação)
 
Lógica de Programação - Estrutura de repetição
Lógica de Programação - Estrutura de repetiçãoLógica de Programação - Estrutura de repetição
Lógica de Programação - Estrutura de repetição
 
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
 
Algoritmos e Programação: Estruturas de repetição
Algoritmos e Programação: Estruturas de repetiçãoAlgoritmos e Programação: Estruturas de repetição
Algoritmos e Programação: Estruturas de repetição
 

Andere mochten auch

Andere mochten auch (8)

004 programando em python - listas
004   programando em python - listas004   programando em python - listas
004 programando em python - listas
 
05 listas
05 listas05 listas
05 listas
 
006 programando em python - dicionarios
006   programando em python - dicionarios006   programando em python - dicionarios
006 programando em python - dicionarios
 
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
 

Ähnlich wie 02 while

03 programando em python - comandos basicos
 03   programando em python - comandos basicos 03   programando em python - comandos basicos
03 programando em python - comandos basicos
Victor Marcelino
 
Curso De Algoritmo Aula 9
Curso De Algoritmo   Aula 9Curso De Algoritmo   Aula 9
Curso De Algoritmo Aula 9
Felipe Santos
 
Trabalho de Paradigmas Da Linguagem De Programação - Python
Trabalho de Paradigmas Da Linguagem De Programação - PythonTrabalho de Paradigmas Da Linguagem De Programação - Python
Trabalho de Paradigmas Da Linguagem De Programação - Python
Janderson Campêlo
 

Ähnlich wie 02 while (20)

01 variaveis io if
01 variaveis io if01 variaveis io if
01 variaveis io if
 
LP1 P01 - Python.pdf
LP1 P01 - Python.pdfLP1 P01 - Python.pdf
LP1 P01 - Python.pdf
 
Algoritmos - Aula 07 A - Lacos
Algoritmos - Aula 07 A - LacosAlgoritmos - Aula 07 A - Lacos
Algoritmos - Aula 07 A - Lacos
 
Algoritmos - Pascal
Algoritmos - PascalAlgoritmos - Pascal
Algoritmos - Pascal
 
Algoritmos
AlgoritmosAlgoritmos
Algoritmos
 
Hardware
HardwareHardware
Hardware
 
03 programando em python - comandos basicos
 03   programando em python - comandos basicos 03   programando em python - comandos basicos
03 programando em python - comandos basicos
 
Módulo 2 pascal
Módulo 2  pascalMódulo 2  pascal
Módulo 2 pascal
 
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
 
Python for zombies (very basic level)
Python for zombies (very basic level)Python for zombies (very basic level)
Python for zombies (very basic level)
 
Algop - aula 06
Algop - aula 06Algop - aula 06
Algop - aula 06
 
Curso de python capítulo 1 - introdução
Curso de python   capítulo 1 - introduçãoCurso de python   capítulo 1 - introdução
Curso de python capítulo 1 - introdução
 
Curso De Algoritmo Aula 9
Curso De Algoritmo   Aula 9Curso De Algoritmo   Aula 9
Curso De Algoritmo Aula 9
 
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
 
Lógica de Programação
Lógica de ProgramaçãoLógica de Programação
Lógica de Programação
 
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
 
Conceito de funçao e modularizaçao
Conceito de funçao e modularizaçaoConceito de funçao e modularizaçao
Conceito de funçao e modularizaçao
 
Trabalho de Paradigmas Da Linguagem De Programação - Python
Trabalho de Paradigmas Da Linguagem De Programação - PythonTrabalho de Paradigmas Da Linguagem De Programação - Python
Trabalho de Paradigmas Da Linguagem De Programação - Python
 
Aula 01 - Introducao a C (3).pptx
Aula 01 - Introducao a C (3).pptxAula 01 - Introducao a C (3).pptx
Aula 01 - Introducao a C (3).pptx
 
Laços de Repetição
Laços de RepetiçãoLaços de Repetição
Laços de Repetição
 

Mehr von 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
 

Kürzlich hochgeladen

19- Pedagogia (60 mapas mentais) - Amostra.pdf
19- Pedagogia (60 mapas mentais) - Amostra.pdf19- Pedagogia (60 mapas mentais) - Amostra.pdf
19- Pedagogia (60 mapas mentais) - Amostra.pdf
marlene54545
 
atividade-de-portugues-paronimos-e-homonimos-4º-e-5º-ano-respostas.pdf
atividade-de-portugues-paronimos-e-homonimos-4º-e-5º-ano-respostas.pdfatividade-de-portugues-paronimos-e-homonimos-4º-e-5º-ano-respostas.pdf
atividade-de-portugues-paronimos-e-homonimos-4º-e-5º-ano-respostas.pdf
Autonoma
 
8 Aula de predicado verbal e nominal - Predicativo do sujeito
8 Aula de predicado verbal e nominal - Predicativo do sujeito8 Aula de predicado verbal e nominal - Predicativo do sujeito
8 Aula de predicado verbal e nominal - Predicativo do sujeito
tatianehilda
 
Responde ou passa na HISTÓRIA - REVOLUÇÃO INDUSTRIAL - 8º ANO.pptx
Responde ou passa na HISTÓRIA - REVOLUÇÃO INDUSTRIAL - 8º ANO.pptxResponde ou passa na HISTÓRIA - REVOLUÇÃO INDUSTRIAL - 8º ANO.pptx
Responde ou passa na HISTÓRIA - REVOLUÇÃO INDUSTRIAL - 8º ANO.pptx
AntonioVieira539017
 
Os editoriais, reportagens e entrevistas.pptx
Os editoriais, reportagens e entrevistas.pptxOs editoriais, reportagens e entrevistas.pptx
Os editoriais, reportagens e entrevistas.pptx
TailsonSantos1
 
Slide - SAEB. língua portuguesa e matemática
Slide - SAEB. língua portuguesa e matemáticaSlide - SAEB. língua portuguesa e matemática
Slide - SAEB. língua portuguesa e matemática
sh5kpmr7w7
 

Kürzlich hochgeladen (20)

6ano variação linguística ensino fundamental.pptx
6ano variação linguística ensino fundamental.pptx6ano variação linguística ensino fundamental.pptx
6ano variação linguística ensino fundamental.pptx
 
19- Pedagogia (60 mapas mentais) - Amostra.pdf
19- Pedagogia (60 mapas mentais) - Amostra.pdf19- Pedagogia (60 mapas mentais) - Amostra.pdf
19- Pedagogia (60 mapas mentais) - Amostra.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*
 
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
 
Aula 67 e 68 Robótica 8º ano Experimentando variações da matriz de Led
Aula 67 e 68 Robótica 8º ano Experimentando variações da matriz de LedAula 67 e 68 Robótica 8º ano Experimentando variações da matriz de Led
Aula 67 e 68 Robótica 8º ano Experimentando variações da matriz de Led
 
Cartão de crédito e fatura do cartão.pptx
Cartão de crédito e fatura do cartão.pptxCartão de crédito e fatura do cartão.pptx
Cartão de crédito e fatura do cartão.pptx
 
3 2 - termos-integrantes-da-oracao-.pptx
3 2 - termos-integrantes-da-oracao-.pptx3 2 - termos-integrantes-da-oracao-.pptx
3 2 - termos-integrantes-da-oracao-.pptx
 
atividade-de-portugues-paronimos-e-homonimos-4º-e-5º-ano-respostas.pdf
atividade-de-portugues-paronimos-e-homonimos-4º-e-5º-ano-respostas.pdfatividade-de-portugues-paronimos-e-homonimos-4º-e-5º-ano-respostas.pdf
atividade-de-portugues-paronimos-e-homonimos-4º-e-5º-ano-respostas.pdf
 
Slides Lição 6, CPAD, As Nossas Armas Espirituais, 2Tr24.pptx
Slides Lição 6, CPAD, As Nossas Armas Espirituais, 2Tr24.pptxSlides Lição 6, CPAD, As Nossas Armas Espirituais, 2Tr24.pptx
Slides Lição 6, CPAD, As Nossas Armas Espirituais, 2Tr24.pptx
 
8 Aula de predicado verbal e nominal - Predicativo do sujeito
8 Aula de predicado verbal e nominal - Predicativo do sujeito8 Aula de predicado verbal e nominal - Predicativo do sujeito
8 Aula de predicado verbal e nominal - Predicativo do sujeito
 
Educação Financeira - Cartão de crédito665933.pptx
Educação Financeira - Cartão de crédito665933.pptxEducação Financeira - Cartão de crédito665933.pptx
Educação Financeira - Cartão de crédito665933.pptx
 
Responde ou passa na HISTÓRIA - REVOLUÇÃO INDUSTRIAL - 8º ANO.pptx
Responde ou passa na HISTÓRIA - REVOLUÇÃO INDUSTRIAL - 8º ANO.pptxResponde ou passa na HISTÓRIA - REVOLUÇÃO INDUSTRIAL - 8º ANO.pptx
Responde ou passa na HISTÓRIA - REVOLUÇÃO INDUSTRIAL - 8º ANO.pptx
 
Os editoriais, reportagens e entrevistas.pptx
Os editoriais, reportagens e entrevistas.pptxOs editoriais, reportagens e entrevistas.pptx
Os editoriais, reportagens e entrevistas.pptx
 
O que é arte. Definição de arte. História da arte.
O que é arte. Definição de arte. História da arte.O que é arte. Definição de arte. História da arte.
O que é arte. Definição de arte. História da arte.
 
Slide - SAEB. língua portuguesa e matemática
Slide - SAEB. língua portuguesa e matemáticaSlide - SAEB. língua portuguesa e matemática
Slide - SAEB. língua portuguesa e matemática
 
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...
 
Cópia de AULA 2- ENSINO FUNDAMENTAL ANOS INICIAIS - LÍNGUA PORTUGUESA.pptx
Cópia de AULA 2- ENSINO FUNDAMENTAL ANOS INICIAIS - LÍNGUA PORTUGUESA.pptxCópia de AULA 2- ENSINO FUNDAMENTAL ANOS INICIAIS - LÍNGUA PORTUGUESA.pptx
Cópia de AULA 2- ENSINO FUNDAMENTAL ANOS INICIAIS - LÍNGUA PORTUGUESA.pptx
 
GUIA DE APRENDIZAGEM 2024 9º A - História 1 BI.doc
GUIA DE APRENDIZAGEM 2024 9º A - História 1 BI.docGUIA DE APRENDIZAGEM 2024 9º A - História 1 BI.doc
GUIA DE APRENDIZAGEM 2024 9º A - História 1 BI.doc
 
Pesquisa Ação René Barbier Livro acadêmico
Pesquisa Ação René Barbier Livro  acadêmicoPesquisa Ação René Barbier Livro  acadêmico
Pesquisa Ação René Barbier Livro acadêmico
 
Introdução às Funções 9º ano: Diagrama de flexas, Valor numérico de uma funçã...
Introdução às Funções 9º ano: Diagrama de flexas, Valor numérico de uma funçã...Introdução às Funções 9º ano: Diagrama de flexas, Valor numérico de uma funçã...
Introdução às Funções 9º ano: Diagrama de flexas, Valor numérico de uma funçã...
 

02 while

  • 1. Python: whilewhile Rodrigo de Toledo (original: Claudio Esperança) Primeiros passos em programação • Até agora só vimos: – Expressões, que são escritas e computadas imediatamente – Variáveis, que podem ser usadas para valores temporáriostemporários – Input, para ler informações entradas pelos usuários – Print, para informar ao usuário a saída – If, comando condicional para tomada de decisão • O que veremos agora: – Comandos de repetição (ou loop) Primeiros passos em programação >>> # Série de Fibonacci ... a,b = 0,1 >>> while b < 10: ... print b ... a,b = b,a+b Comentário Atribuição dupla Comando de repetição Expressão booleana ... a,b = b,a+b ... 1 1 2 3 5 8 Bloco do comando de repetição Expressão booleana Resultado Indentação Sobre a série de Fibonacci • Fibonacci, matemático do século XII • Fórmula • Série – 1,1,2,3,5,8,13,21,34,55,89,144,233,377,610,987,1597, ... • Tendem à razão áurea – 1.618033989...– 1.618033989... – Razão da beleza • Na natureza: – Espiral: conchas, bromélias, orelha... – Flores: girassol... – Crescimento populacional dos coelhos • Várias propriedades matemáticas • Muito usado em aprendizado de linguagens de programação
  • 2. while • Repete uma seqüência de comandos enquanto uma dada expressão booleana é avaliada como verdadeira • Formato: whilewhilewhilewhile expressão: comando ... comandocomando • Exemplo: >>> i = 10 >>> while i>8: ... print i, ... i = i-1 ... 10 9 Programas armazenados • À medida que os programas vão se tornando mais complicados, é mais interessante guardá-los em arquivos e executá-los quando necessário • Arquivo fibo.py (use um editor de textos como o do IDLE): # Série de Fibonacci: a, b = 0, 1a, b = 0, 1 while b < 10: print b a, b = b, a+b Formas de Executar um Programa • 4 opções: – Digite python fibo.py no seu shell (ex: janela DOS), ou – Clique no ícone do arquivo, ou – De dentro do editor IDLE, selecione Run Module (F5), ou– De dentro do editor IDLE, selecione Run Module (F5), ou – De dentro do interpretador python: >>> execfile ("fibo.py") Entre com um numero 5 1 1 2 3 >>> Observações • Existe um outro comando de repetição: – FOR – (o comando FOR será visto posteriormente) • Em geral usa-se a variável i (abreviação de integer) para contagem sequencial de inteirospara contagem sequencial de inteiros • É possível haver loop dentro de loop – Nesse caso recomenda-se usar variáveis diferentes para o controle do loop (ex: i, j, k ...), para que não haja interferência • Atenção para não criar um loop infinito – Para interromper: ctrl+c – Exemplo no próximo slide
  • 3. Laços Infinitos • Como em todo comando de repetição, é importante evitar os chamados “laços infinitos” ou “loop infinitos” • Ex.:• Ex.: >>> i = 10 >>> while i>8: ... print i, ... i = i+1 ... 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 ... Vamos fazer juntos... 1. Faça um programa que repita na tela 40 vezes a frase “Aprender Python eh muito facil!” 2. Faça um programa que leia quantas vezes a frase “Aprender Python eh muito facil!” deverá ser repetida, imprima também o número da linha.repetida, imprima também o número da linha. 3. Faça um programa que leia 40 números somando-os e ao final diga o total 4. Faça um programa que inicialmente pergunte quantos números serão entrados e então calcule o seu somatório e a média. Exercícios (loop) 1. Faça um programa que leia um numero entre 1 e 10 e imprima a sua tabuada de 1 a 10. 2. Faça um programa que leia um número informando a quantidade de números que serão entrados em sequência posteriormente, entãoentrados em sequência posteriormente, então leia os números e, ao final, imprima a média deles 3. Faça um programa que leia uma seqüência de 10 números e, ao final, imprima o maior deles. 4. Faça um programa que imprima todas as tabuadas de 1 a 10. Exercícios (while) 1. Faça um programa que leia uma série de números inteiros e imprima a sua média, o programa termina com a entrada do número 0. 2. Faça um programa que leia uma série de números positivos e diga ao final qual é o maior (termina com um número negativo). 3. Altere o programa anterior para imprimir também qual é o segundo maior. 4. Faça um programa que leia 2 números da entrada e imprima o resto da divisão inteira do primeiro pelo segundo usando subtrações sucessivas (ou seja, não use comando de resto: %). 5. Altere o programa anterior para que imprima também o resultado da divisão (não use comando de divisão: /).divisão (não use comando de divisão: /). 6. Faça um programa que calcule e imprima o CR do período para os alunos da UFRJ (matrícula inferior ou igual a zero termina a entrada). Para cada aluno, o programa deverá ler: número da matrícula; quantidade de disciplinas cursadas; Para cada disciplina cursada: nota da disciplina. créditos da disciplina Obs1: O CR é calculado segundo a média ponderada das notas. Obs2: O programa termina com a entrada de uma matrícula negativa.
  • 4. Exercício: números primos • Fazer um programa que decida se um número positivo dado é primo ou não – Entrada: número inteiro positivo – Saída: diagnóstico de primalidade do número– Saída: diagnóstico de primalidade do número • Exemplos de execução: – Entre com um número inteiro positivo: 169 169 é múltiplo de 13 – Entre com um número inteiro positivo: 983 983 é primo Exercício: números primos • Um número natural é primo se é divisível apenas por si mesmo e pela unidade (excetuando-se o 1) • Isto sugere o seguinte algoritmo: – Se o número é 1, então não é primo – Se o número é 2, então é primo– Se o número é 2, então é primo – Caso contrário, • Seja d um possível divisor, cujo valor é inicialmente 2 • Repetir – Se o resto da divisão do número por d é zero, então o número não é primo – Caso contrário, incrementar d – Se d é igual ou maior que o número, então terminar repetição diagnosticando o número como primo