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

Webs

Dúvida

6 mensagens neste tópico

type TabPrecos = [(Produto,Preco)] --preco em euros
type Produto = String
type Preco = Float

type Cotacoes = [(Moeda,Valor)] --das diversas moedas face ao euro
type Moeda = String
type Valor = Float

convPrecos :: TabPrecos -> Cotacoes -> Moeda -> TabPrecos
convPrecos [] _ _ = []
convPrecos _ [] _ = []
convPrecos t _ [] = t
convPrecos ...

moedaExiste ((m1,v1):c) m = if m == m1 then True else moedaExiste c m

A ideia é converter 1 tabela de preços numa moeda em outra tabela dos meus produtos com os preços em outra moeda dada.

Comecei por fazer a funçao auxiliar para confirmar se a moeda dada existe na lista de moedas nas Cotacoes.

Apos isso, o meu problema esta em ir agarrar o valor da dita moeda à lista para poder usa-lo.

Esta é a alínea :D do exercício 4 do exame de PF deste ano (08/09).

Qualquer sugestão é bem vinda, ja tentei dar imensas voltas ao codigo.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Ora eu faria da seguinte forma.

Obtia o valor da moeda que é pretendido, gerava uma função para converter de euros para a nova moeda usando o valor de conversão. Depois percorria a tabela dos preços, um a um, e aplica a função de converter moeda a cada um deles, obtendo assim no final uma nova tabela de preços na moeda pretendida.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

suponho que a parte de obter o valor seria feita na funçao que verifica se a moeda existe?

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Para ires buscar o valor da moeda só precisas de substituir aquele True na função pelo v1, na função moedaExiste.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

ops, tinha-me ocorrido mas quando experimentei antes tinha usado 1 variavel errada. obrigado.

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