Creation of a random vector

1
from random import randint # para gerar os nums aleatorios

def criaVetor(L, H, tam):
    vec = []
    for i in range(tam): # vamos fazer isto tam (N) vezes
        vec.append(randint(L, H)) # gerar numero aleatorio entre L e H, e colocar na nossa lista
    return vec


def pegaExtremosUnicos(vec):
    i = 1
    for i in range(len(vec)):
        atual = vec[i]
        j = i - 1;
        while (j >=0) and (atual < vec[j]):
            vec[j +1] = vec[j]
            j = j -1
        vec[j + 1] = atual
    i = 1
    while i < len(vec):
        if vec[i] == vec[i-1]:
            del vec[i]
            del vec[i-1]
        i = i +1
    d = [vec[0],vec[len(vec)-1]]
    return tuple(d)

vec = []
L = int(input('Informe o valor inteiro minimo da faixa:'))
H = int(input('Informe o valor inteiro maximo da faixa:'))
tam = int(input('Informe a quantidade de valores a serem sorteados:'))
print(criaVetor(L, H, tam))
print (pegaExtremosUnicos(criaVetor(L, H, tam)))    

What would be wrong? If there are no single minimum or maximum values, a tuple of None 's must be returned. For example:

  • [3, 5, 3, 10, 8] returns (5, 10) - return ok

  • [13] returns (13, 13) d = [vec [0], vec [len (vec) -1]] IndexError: list index out of range

  • [13, 13, 8, 8] returns (None, None) Enter the minimum integer value of the track: 8 Enter the maximum integer value of the track: 13 Enter the number of values to be drawn: 4 [10, 10, 12, 10] (9, 11)

After returning the subprogram, the main program should display the produced tuple.

    
asked by anonymous 21.08.2016 / 18:02

1 answer

1

So I realized all the inputs of the user must be passed parameters ("... it receives as parameters the size of the vector and the range of values."):

from random import randint # para gerar os nums aleatorios

def criaVetor(L, H, tam):
    vec = []
    for i in range(tam): # vamos fazer isto tam (N) vezes
        vec.append(randint(L, H)) # gerar numero aleatorio entre L e H, e colocar na nossa lista
    return vec

L = int(input('Informe o valor inteiro minimo da faixa:'))
H = int(input('Informe o valor inteiro maximo da faixa:'))
tam = int(input('Informe a quantidade de valores a serem sorteados:'))
print(criaVetor(L, H, tam))
    
22.08.2016 / 00:57