• Revista PROGRAMAR: Já está disponível a edição #53 da revista programar. Faz já o download aqui!

Comebeer

alteracao duma posicao

3 mensagens neste tópico

boas!

tenho uma duvida: gostaria de saber como posso alterar um dos caracteres da lista em baixo dando a sua posicao e o novo caracter por exemplo

troca (0,2) % [".....","-----","-.-..","_-_-_","....."] = [".....","-----","%.-..","_-_-_","....."]

se der jeito tenho o que devolve o carater da x posicao

get (x,y) list = (list !! x) !! y

agradecia uma ajuda  :-[

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Primeiro deves verificar a validade da posição. Depois podes usar as funções take e drop para fazer a substituição.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

é fácil:

troca (x,y) c p = take y p ++[take x (p!!y) ++ [c] ++ drop (x+1) (p!!y)] ++ drop (y+1) (p!!y)

onde c é o novo char e p a lista em questão.

em take y p vais retirar todos os elementos até à linha onde vais mudar o char

em take x (p!!y) vais tirar todos os elementos da linha y em questão até à posição x do elemento a retirar

[c] juntas o novo elemento

drop (x+1) (p!!y) voltas a colocar todos os elementos dessa linha a seguir ao elemento que trocaste

drop (y+1) (p!!y) junta todas as linhas seguintes à linha onde estava o elemento a alterar

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Crie uma conta ou ligue-se para comentar

Só membros podem comentar

Criar nova conta

Registe para ter uma conta na nossa comunidade. É fácil!


Registar nova conta

Entra

Já tem conta? Inicie sessão aqui.


Entrar Agora