• Share
  • Email
  • Embed
  • Like
  • Save
  • Private Content
03 algoritmos basicos
 

03 algoritmos basicos

on

  • 204 views

 

Statistics

Views

Total Views
204
Views on SlideShare
204
Embed Views
0

Actions

Likes
0
Downloads
1
Comments
0

0 Embeds 0

No embeds

Accessibility

Categories

Upload Details

Uploaded via as Adobe PDF

Usage Rights

© All Rights Reserved

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
Post Comment
Edit your comment

    03 algoritmos basicos 03 algoritmos basicos Presentation Transcript

    • Python:algoritmos básicosalgoritmos básicosRodrigo 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 armazenarconteú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– whileDicas 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 resultadoesperado.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 deprogramaçã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 eatualizá-lo dentro.atualizá-lo dentro.• Exemplo: executar um comando ou um bloco decomandos 100 vezes.i = 0while 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 daexecuçã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 decomandos 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 = 0while i<nnnn<comando>i += 1Loops (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áveisde controlede controle• Exemplo: ler uma seqüência de números inteiros até que ovalor digitado seja igual a zero.num = input(“Entre com o primeiro numero”)While num!=0:<comandos>num = input(“Entre com o proximonumero”)Loops exemplo• O chefe do departamento da universidade gostaria que osprofessores informassem a média da turma a cada prova. Paraajudá-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 programaanterior para perguntar o total de alunos antes de ler a sequência.• Os professores reclamaram porque, como alguns alunos faltam aprova, eles são obrigados a contar o total de provas para rodar oprograma. Modifique o programa anterior para que o professor nãoseja obrigado a dizer quantas provas são, o professor pode entrardiretamente com as notas e, ao final, entrará com um valornegativo para indicar o fim da série.
    • As 3 soluções• 40 provasn = input("Entre com a quantidade de provas: ")i, soma = 0, 0.0while i<n:nota = input("Entre com a proxima nota: ")i, soma = 0, 0.0while i<40:nota = input("Entre com a proxima nota: ")soma = soma+notai = i+1print "A media eh :", soma / 40Quantas provas?nota = input("Entre com a proxima nota: ")soma = soma+notai = i+1print "A media eh :", soma / nTerminar com negativo!i, soma = 0, 0.0nota = input("Entre com a primeira nota: ")while nota>=0:soma = soma+notai = i+1nota = input("Entre com a proxima nota: ")print "A media eh :", soma / iAcumulador 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 provafinal (<7.0)i,pf=0,0while i<40:nota = input(“Entre com nota: “)if nota<7.0:pf +=1pf +=1i+=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 + mensali +=1print “Faturamento anual: ”, anualCompetidorCá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 entradosmaior = input(“Entre com o primeiro numero”)i=1while i<=10:num = input(“Entre com o proximo numero”)if num > maiormaior = numi = i+1print maiorCompetidor(continuação)• Exemplo: O maior de 10 números entrados, mas em qual posição?maior = input(“Entre com o primeiro numero”)i=1posicao = 1while i<=10:num = input(“Entre com o proximo numero”)if num > maiormaior = numposicao = ii = i+1print “O maior eh”, maior, “na posição”, posicao
    • Loop dentro de loop• Exemplo das tabuadasExercícios• Percentual:– Faça um programa que leia as notas finais dos alunos e, ao final, diga total e percentualde 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 8raias da prova de 1500m das olimpíadas e diga quem foi o vencedor (ou seja, o númeroda 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 informadosatravés de código. Os dados utilizados para a escrutinagem obedecem à seguintecodificaçã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 inteirosterminada por 0 (zero) e imprima o número que for múltiplo de suaposiçã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 **XNN!obs: tente programar sem usar o comando **– Faça um programa que calcule e imprima a média e a variância dasnotas de todos os alunos de uma determinada cadeira. As notasdevem ser lidas via teclado. O fim da leitura é marcado por uma notanegativa. A média e a variância são calculadas da seguinte forma:• Observar que ∑(notas2) ≠ (∑notas)2 !!!!!!!!medianotasnumero de alunos=∑_ _var( )_ _iancianotasnumero de alunosmedia= −∑ 22N!