Ir para conteúdo

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Juliana Mesquita

Ajuda na solução de exercício com estrutura de repetição

Recommended Posts

Gostaria de ajuda para responder a seguinte questão sem ter que usar vetor, pois a professora ainda não entrou nesse tema, já mudei código mais de 10 vezes(Abaixo tem meu código mas não roda da forma adequada) teria como alguém me ajudar?? Estou tendo Programação I, com Python, tive apenas duas semana de aula então peço por favor que não venham com jorgões ou técnicas que eu possa não compreender sem uma explicação, obrigada ;) :

 

'''1. Escreva uma função que, dada uma quantidade de números, pede ao usuário para digitá-los
e retorna o maior e menor deles.''

def numeromaiormenor(quantidade):
contador=0
maior=0
menor=0
while contador<=quantidade:
numero=eval(input("Digite o valor do número :"))
contador=contador+1
if numero>maior:
maior=max(numero)
elif numero<maior:
menor=min(numero)
return ("O maior valor digitado foi o:",maior," O menor valor digitado foi o :",menor)

quantidade=eval(input("Digite a quantidade de número desejada :"))
print(numeromaiormenor(quantidade))

Compartilhar este post


Link para o post
Compartilhar em outros sites

Não sei como por que já resolvi o problema... se alguém poder me ajudar a por que já resolvi.. faltava um acumulador... <_< <_<

 

'''1. Escreva uma função que, dada uma quantidade de números, pede ao usuário para digitá-los
e retorna o maior e menor deles.
Autor:Juliana Mesquita
Função: Retornar maior e menor número
Dados de entrada: Quantidade de Números e numeros
Dados de Saída: maior e menor número digitado'''

def numeromaiormenor(quantidade):
contador=1
maior=0
menor=0
while contador<=quantidade:
numero=eval(input("Digite o valor do número :"))
acumulador=numero
contador=contador+1
if(numero>maior)or(numero>acumulador):
maior=numero
if(numero<maior)or(numero<acumulador):
menor=numero
return (maior,menor)

quantidade=eval(input("Digite a quantidade de número desejada :"))
print(" O maior e menor valor digitados foram : ",numeromaiormenor(quantidade))

Compartilhar este post


Link para o post
Compartilhar em outros sites

vc precisava carregar um número para fazer a comparação, seguindo a lógica de que o primeiro numero digitado é o maior e tbm o menor vc faz as comparações a partir dele! ou seja na primera repetição vc já atribui o primeiro valor a variável 'menor' e 'maior' ai depois pode seguir normalmente!

Espero ter ajudado!

Compartilhar este post


Link para o post
Compartilhar em outros sites

Obrigada, já tinha posto para rodar kkkk... mais agora estou com outra duvida não consigo fazer esse dever sem ter que converter para string e contar com o len, porem querem a solução através da estrutura de repetição.. :`(, já fiz de varias formas mais não consigo.... a unica forma que rodou foi eu convertendo para str e usando o len, minhas outras opções não deram certo.. acho que pq não sei usar direito a estrutura de repetição....;

 

'''3. Escreva uma função para informar quantos dígitos um número recebido pela função tem
Função: Contar digitos de um numero
Dados de entrada: numero
dados de saida: quantidade de digitos'''

def quantidadedigitos(numero):
return len(str(numero))

numero=eval(input(" Digite o valor do número :"))
print("A quantidade de digitos que o número tem é :",quantidadedigitos(numero))

Compartilhar este post


Link para o post
Compartilhar em outros sites

Você pode fazer um while e dividir o valor por 10 e enquanto a parte inteira desse valor for maior que 0 você continua dividindo e acrescentando 1 a um contador:

 

Usando Python 3

num = 1534
cont = 0

while num > 0:
    num = num // 10 # Duas barras retornam apenas a parte inteira
    cont = cont + 1

1534 // 10 = 153

cont = 1

 

153 // 10 = 15

cont = 2

 

15 // 10 = 1

cont = 3

 

1 // 10 = 0

cont = 4

Compartilhar este post


Link para o post
Compartilhar em outros sites

Obrigada entendi ajeitei o meu, o teste de mesa que você fez ajudou a entender melhor! vlw mesmo, tem alguma dica para saber aplicar a estrutura de repetição?? indicação de livro ou algo do tipo?? estou com muitas duvidas.

Ficou da seguinte forma e rodou perfeitamente! : (y) :lol:

 

'''3. Escreva uma função para informar quantos dígitos um número recebido pela função tem
Função: Contar digitos de um numero
Dados de entrada: numero
dados de saida: quantidade de digitos'''

def quantidadedigitos(numero):
contador = 0
while numero>0:
numero=numero//10 # Duas barras retornam apenas a parte inteira
contador=contador+1
return contador

numero=eval(input(" Digite o valor do número :"))
print("A quantidade de digitos que o número tem é :",quantidadedigitos(numero))

'''OU
def quantidadedigitos(numero):
return len(str(numero))

numero=eval(input(" Digite o valor do número :"))
print("A quantidade de digitos que o número tem é :",quantidadedigitos(numero))'''

Compartilhar este post


Link para o post
Compartilhar em outros sites

Eu não sei bem qual é a dificuldade, mas....

 

Quando aplicar uma estrutura de repetição?

Quando você perceber que terá uma parte de código que será repetida muitas vezes em sequência, tornando inviável sua implementação. Ou quando não sabe se essa parte de código será ou não executada várias vezes e quantas vezes.

 

Qual estrutura aplicar?

Se você sabe quantas vezes o código precisa ser executado usa-se for.

Por exemplo: Insira 50 alunos no sistema. O limite é 50.

Acrescente aos salários dos funcionários 10% do salário individual. Suponhamos que esses salários estejam em uma lista, então o limite de execução é o tamanho da lista. Ou seja, 10 funcionários são 10 salários que é uma lista de 10 posições; 100 funcionários são 100 salários que é uma lista de 100 posições.

 

Se não sabe quantas vezes o código será executado usa-se while:

No código que te enviei, por exemplo, é claro a necessidade de uma estrutura de repetição (já que não se pode usar o len), mas é impossível saber quantas vezes o código será executado, porque não sabe qual o tamanho do número que será informado. Outro exemplo é quando o usuário utiliza-se de um menu. O programa só será finalizado quando ele inserir algum caracter que o faça encerrar o programa. Por exemplo: digite 0 para sair.

 

 

Eu não sei se ajudei, mas é isso.

 

Eu não sou de buscar conteúdo em livro, então não tenho condições de te indicar nada. Aprendo melhor com alguém me explicando, então assisto vídeo-aulas, geralmente, no youtube. Um canal que eu gosto é o eXcript: https://www.youtube.com/user/excriptvideo

Compartilhar este post


Link para o post
Compartilhar em outros sites

Obrigada adorei sua explicação ;) , estou meio confusa com repetição e lista mesmo, e que entrei no primeiro período de S.I na uff esse mês e como teve greve o período só vai ter 3 meses, A professora está correndo com a matéria ela esta dando a sintaxe de Python misturada com logica de programação e estou me confundindo muito. :(

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.