Alguem me ajuda nesta atividade de logica de programação?
1.Faça um programa para ler três números positivos e escrevê-los em ordem crescente.
Soluções para a tarefa
Resposta:
10 - 20 - 30
Explicação:
Invertendo dois a dois
O grande segredo desse tipo de algoritmo, é comparar e trocar valor das variáveis, duas a duas.
Por exemplo, vamos pegar a sequência:
Por exemplo, vamos pegar a sequência: 30 - 20 - 10
Primeira posição: 30
Segunda posição: 20
Terceira posição: 10
Primeiro vamos comparar a segunda posição com a terceira.
A terceira posição é maior que a segunda? Se for, inverte.
Agora fica: 30 - 10 - 20
Pronto, colocamos em ordem crescente as duas últimas posições.
Agora vamos comparar a primeira posição com a segunda.
A segunda posição tem um valor menor (10) que a primeira (30)?
Sim! Tem! Então inverte essas duas.
Agora fica: 10 - 30 - 20
Note que ao fazer isso, da direita pra esquerda, pegando duas a duas a posição, jogamos sempre o menor número pro começo da ordem.
Por fim, vamos comparar novamente a segunda com a terceira posição.
A terceira é menor que a segunda? Se for, troca! E é.
Agora fica: 10 - 20 - 30
Algoritmo:
1. Compara as duas últimas posições
2. Compara as duas primeiras posições
3. Compara novamente as duas últimas posições
primeiro = int(input('Primeiro numero: '))
segundo = int(input('Segundo numero : '))
terceiro = int(input('Terceiro numero: '))
print(primeiro,'-',segundo,'-',terceiro)
if(terceiro > segundo):
aux = terceiro
terceiro = segundo
segundo = aux
if(segundo > primeiro):
aux = segundo
segundo = primeiro
primeiro = aux
if(terceiro > segundo):
aux = terceiro
terceiro = segundo
segundo = aux
print(primeiro,'-',segundo,'-',terceiro)
Espero ter ajudado :-)