Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
* **Boa noite, estou com um problema que acredito que seja de logica em um determinado programa criado, ele não retorna o valor devido, abaixo está a questão e o código que criei, alguém poderia me ajudar a solucionar o que eu fiz de errado?? Eu acrescento dentro de uma lista determinados valores ele me retorna faltando um elemento sempre. :(*
Questão - Faça um programa que preencha por leitura um vetor de 10 posições, e conta quantos valores diferentes existem no vetor.
soma_dife=0
repetido=False
vetor=[]
posicao=10
valor=0
valor_anterior=0
for i in range(posicao):
vetor.append(int(input(' Digite elemento : ')))
for i in range(posicao):
valor=vetor[i]
for j in range(i):
valor_anterior=vetor[j]
if(valor==valor_anterior):
repetido=True
if(not repetido):
soma_dife+=1
print(' No vetor = ',vetor,', Existem ',soma_dife,' valores diferentes.')
OBS: Exemplo de resultado errado eu acrescento no vetor os valores :1,3,9,6,7,3,2,1, criando o vetor[1,3,9,6,7,3,2,1] e o resultado de valores diferentes gerado e 5, porem na verdade deveria ser 6. :wacko:
A Forma que eu estou imprimindo na tela o valor 6 está errado pois estou acrescentando no print na variável diferente +1, foi a unica forma que achei para gerar o que eu queria... mas continua com erro de logica... alguém me ajuda?? :´( "print('A quantidade de valores diferentes dentro do vetor ',vetor,' valores diferentes = ',diferente+1)"
Obrigada pela ajuda, vou implementar da duas formas que você sugeriu para testar, mas percebi que minha variável repetição não voltada a ser Falso.... por isso estava dando erro no resultado, a solução foi por ele iniciando dentro do primeiro for como Falso. ;)
Vlws! Depois posto o método que você sugeriu para ver se você aprova.. Te mais Jovem! (y)
posi=10
vetor=[]
diferente=0
for i in range(posi):
vetor.append(eval(input(' Digite elemento : ')))
for i in range(posi):
repeticao=False
valor=vetor[i]
for j in range(i):
if(valor==vetor[j]):
repeticao=True
if not repeticao:
diferente+=1
print('A quantidade de valores diferentes dentro do vetor ',vetor,' valores diferentes = ',diferente)
valores = []
for i in range(10):
valores.append(int(input(' Digite elemento : ')))
conjunto = set(valores)
print("Existem {0} valor(es) diferente(s)\n".format(len(conjunto))
Creio estar com o mesmo slide de exercícios que você, estou com dificuldades nessa questão, não entendi bem como funcionou a variável repeticao que você usou, e pq utilizar 3 for sendo dois com variável i e um com variável j. Poderia esclarecer o seu co
array = list()
contador = 0
i = 0
repetido = False
for i in range(10):
valor = int(input("Valor:"))
array.append(valor)
for i in range(10):
array.sort()
if array[i-1] == array[i]:
repetido = True
else:
contador +=1
print(contador)
Me baseei no seu algoritmo.
Duas possibilidades: