Python: algoritmos básicos

15
Rodrigo de Toledo (adaptação do original do prof. Alexandre Meslin) Python: algoritmos básicos

description

Rodrigo de Toledo (adaptação do original do prof. Alexandre Meslin). Python: algoritmos básicos. 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údo - PowerPoint PPT Presentation

Transcript of Python: algoritmos básicos

Page 1: Python: algoritmos básicos

Rodrigo de Toledo(adaptação do original do prof. Alexandre Meslin)

Python:algoritmos básicos

Page 2: Python: algoritmos básicos

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ú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

Page 3: Python: algoritmos básicos

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. 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)

Page 4: Python: algoritmos básicos

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. 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

Page 5: Python: algoritmos básicos

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. 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...

Page 6: Python: algoritmos básicos

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

comandos n vezes, onde n é uma variável cujo valor já foi calculado, inicializado ou lido anteriormente:n = input (“Entre com a quantidade de vezes :”)

i = 0

while i<n

<comando>

i += 1

Page 7: Python: algoritmos básicos

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 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”)

Page 8: Python: algoritmos básicos

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 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.

Page 9: Python: algoritmos básicos

As 3 soluções 40 provas

n = input("Entre com a quantidade de provas: ")i, soma = 0, 0.0while i<n: nota = input("Entre com a proxima nota: ") soma = soma+nota i = i+1print "A media eh :", soma / n

i, soma = 0, 0.0while i<40: nota = input("Entre com a proxima nota: ") soma = soma+nota i = i+1print "A media eh :", soma / 40

Quantas provas?

Terminar com negativo!i, soma = 0, 0.0nota = 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

Page 10: Python: algoritmos básicos

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,0while i<40: nota = input(“Entre com nota: “) if nota<7.0: pf +=1 i+=1print “Total em prova final: ”, pf

Exemplo acumulador: Leia os 12 faturamentos mensais de uma empresa, indicando o seu faturamento anual.i,anual=0,0while i<12: mensal = input(“Entre com faturamento do mes: ”) anual += mensal #anual = anual + mensal i +=1print “Faturamento anual: ”, anual

Page 11: Python: algoritmos básicos

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=1while i<=10: num = input(“Entre com o proximo numero”) if num > maior maior = num i = i+1print maior

Page 12: Python: algoritmos básicos

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

Page 13: Python: algoritmos básicos

Loop dentro de loop

Exemplo das tabuadas

Page 14: Python: algoritmos básicos

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.

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.

Page 15: Python: algoritmos básicos

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 **

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 !!!!!!!!

medianotas

numero de alunos

_ _

var( )

_ _iancia

notas

numero de alunosmedia

22

X

N

N

!