Defina imperativamente em Python uma função intervalos que dado um inteiro positivo n
devolva como resultado uma lista de n
listas, em que a lista na posição i
corresponde à partição do intervalo (0,1)
em i+1
intervalos contíguos do mesmo tamanho.
Por exemplo, intervalos(3)
deve dar como resultado [[(0,1)],[(0,0.5),(0.5,1)],[(0,0.333),(0.333,0.666),(0.666,1)]]
.
Neste exercício não pode usar definições por compreensão nem métodos. As únicas operações sobre listas permitidas são: lista vazia ([]
), acesso aos elementos da lista por posição (lista[posição]
), seccionamento da lista (lista[posição:posição]
), concatenação (+
) e cálculo do comprimento (len
).
def intervalos(n):
res=[]
i=1
while i<=n:
part=[]
j=0
while j<i:
part=part+[(j/i,(j+1)/i)]
j=j+1
res=res+[part]
i=i+1
return res
intervalos(3)
Alternativamente, usando ciclos for
:
def intervalos(n):
res=[]
for i in range(1,n+1):
part=[]
for j in range(i):
part+=[(j/i,(j+1)/i)]
res+=[part]
return res
intervalos(3)
Defina imperativamente em Python uma função lincol que dada uma matriz m
devolva como resultado a submatriz de m
formada apenas pelas linhas de índice par e as colunas de índice ímpar (sem esquecer que em Python os índices se contam a partir de zero).
Por exemplo, lincol([[1,2,3,4],[5,6,7,8],[9,0,1,2],[3,4,5,6]])
deve dar como resultado [[2,4],[0,2]]
.
Neste exercício não pode usar definições por compreensão nem métodos. As únicas operações sobre listas permitidas são: lista vazia ([]
), acesso aos elementos da lista por posição (lista[posição]
), seccionamento da lista (lista[posição:posição]
), concatenação (+
) e cálculo do comprimento (len
).
def lincol(m):
res=[]
i=0
while i<len(m):
linha=[]
j=1
while j<len(m[0]):
linha=linha+[m[i][j]]
j=j+2
res=res+[linha]
i=i+2
return res
lincol([[1,2,3,4],[5,6,7,8],[9,0,1,2],[3,4,5,6]])
Alternativamente, usando ciclos for
:
def lincol(m):
res=[]
for i in range(0,len(m),2):
linha=[]
for j in range(1,len(m[0]),2):
linha+=[m[i][j]]
res+=[linha]
return res
lincol([[1,2,3,4],[5,6,7,8],[9,0,1,2],[3,4,5,6]])
Defina imperativamente em Python uma função passos que dada uma lista w
de inteiros positivos devolva como resultado uma lista de listas, em que a lista na posição i
corresponde à sequência crescente de valores no intervalo (0,1)
obtida a partir de zero por incrementos de 1/w[i]
.
Por exemplo, passos([4,1,2])
deve dar como resultado [[0,0.25,0.5,0.75,1],[0,1],[0,0.5,1]]
.
Neste exercício não pode usar definições por compreensão nem métodos. As únicas operações sobre listas permitidas são: lista vazia ([]
), acesso aos elementos da lista por posição (lista[posição]
), seccionamento da lista (lista[posição:posição]
), concatenação (+
) e cálculo do comprimento (len
).
def passos(w):
res=[]
i=0
while i<len(w):
seq=[0]
j=1
while j<=w[i]:
seq=seq+[j/w[i]]
j=j+1
res=res+[seq]
i=i+1
return res
passos([4,1,2])
Alternativamente, usando ciclos for
:
def passos(w):
res=[]
for n in w:
seq=[0]
for j in range(1,n+1):
seq+=[j/n]
res+=[seq]
return res
passos([4,1,2])
Defina imperativamente em Python uma função linzero que dada uma matriz m
devolva como resultado a submatriz de m
formada apenas pelas linhas cuja soma não é nula.
Por exemplo, linzero([[1,2,3,4],[5,-6,-7,8],[0,0,0,0],[3,4,5,6]])
deve dar como resultado [[1,2,3,4],[3,4,5,6]]
.
Neste exercício não pode usar definições por compreensão nem métodos. As únicas operações sobre listas permitidas são: lista vazia ([]
), acesso aos elementos da lista por posição (lista[posição]
), seccionamento da lista (lista[posição:posição]
), concatenação (+
) e cálculo do comprimento (len
).
def linzero(m):
res=[]
i=0
while i<len(m):
s=0
j=0
while j<len(m[0]):
s=s+m[i][j]
j=j+1
if s!=0:
res=res+[m[i]]
i=i+1
return res
linzero([[1,2,3,4],[5,-6,-7,8],[0,0,0,0],[3,4,5,6]])
Alternativamente, usando ciclos for
:
def linzero(m):
res=[]
for linha in m:
s=0
for j in range(len(linha)):
s+=linha[j]
if s!=0:
res+=[linha]
return res
linzero([[1,2,3,4],[5,-6,-7,8],[0,0,0,0],[3,4,5,6]])