Baixe o app para aproveitar ainda mais
Prévia do material em texto
Segunda Lista de Exerc´ıcios da Disciplina de Liguagem de Programac¸a˜o III Carolina Maria Costa Batschauer 4 de abril de 2007 Instruc¸o˜es A presente lista de exerc´ıcios tem como objetivo introduzir e aplicar os conceitos sobre a linguagem de programac¸a˜o Haskell vistos em sala de aula. Esta deve ser entregue ate´ o dia 13 de abril atrave´s do e-mail monitorialpg3@gmail.com, podendo ser confeccionada em duplas ou individualmente. Exerc´ıcios entregues apo´s a data tera˜o reduc¸a˜o de nota no grau previsto nas instruc¸o˜es dispostas na pa´gina da disciplina1. Na avaliac¸a˜o sera˜o considerados a clareza, originalidade, os comenta´rios e as diferentes soluc¸o˜es apresentadas. Os arquivos fontes em LATEX sera˜o disponibilizados para quem desejar entregar a lista atrave´s deste formato. Du´vidas referentes ou na˜o a` lista podem ser esclarecidas procurando a monitora em seu hora´rio de atendimento, dispon´ıvel no site da disciplina, ou via e-mail. Implemente quantas func¸o˜es forem necessa´rias para a implementac¸a˜o da func¸a˜o princi- pal. 1 Se´rie de Taylor A sequ¨eˆncia de Taylor para a func¸a˜o exponecial e´ definida por: ex = 1 + x 1! + x2 2! + x3 3! + x4 4! + ... Construa uma func¸a˜o que retorne o n-e´simo termo dessa sequ¨eˆncia. Exemplo: main > taylor 1 > 1 main > taylor 2 > 4 1http://geocities.yahoo.com.br/lpg3udesc 1 2 Intervalos entre datas Dadas duas datas (dia , meˆs) realizar o calculo do nu´mero de dias entre elas. Exemplo: main > intervdatas (1,4) (2,5) > 32 main > intervdatas (10,6) (15,6) > 5 3 Soma de Equac¸a˜o de Segundo Grau Dadas duas duas equac¸o˜es do segundo grau em formato de tuplas (x2, x1, x0), realizar a soma entre elas. Exemplo: main > intervdatas (1,4,5) (2,5,6) > (3,9,11) main > intervdatas (10,6,5) (2,15,6) > (12,21,11) 4 Cadastro de empresas Realize um cadastro de empresas formado por uma tupla com os seguintes campos: empresa1 = (”nome− empresa”, ”produto− fornecido”, valor − unita´rio− produto, dia− pagamento, nu´mero− componentes− pedidos) Exemplo: empresa 1 = ("Ac¸o firme", "Chapas de ac¸o", 100.00 , 15, 1000) empresa 2 = ("Aluminio S/A", "Chapas de aluminio", 150.00 , 10, 1000) empresa 3 = ("Porcas e parafusos LTDA", "Porcas", 0.50 , 7, 150000) empresa 4 = ("Porcas e parafusos LTDA", "Parafusos", 0.50 , 7, 150000) ... empresa 20 = ("S~ao Marcos", "Caixas de papel~ao", 20.50 , 5, 5000) 5 Retornar Nome Empresa Construa func¸o˜es que retornem o nome da empresa que possuem as seguintes carac- ter´ısticas, nos ”n”primeiros registros, utilizando a lista criada anteriormente: 1. Maior prec¸o unita´rio 2. Menor prec¸o unita´rio 3. O dia de pagamento mais pro´ximo do final do meˆs 2 main > maiorpreco 3 > "Aluminio S/A" main > menorpreco 4 > "Porcas e parafusos LTDA" main > diapag 4 > "Ac¸o firme" 6 Gasto mensal por produto Ainda utilizando o cadastro gerado, construa uma func¸a˜o que retorne o gasto mensal com determinado produto. Exemplo: main > gastoprod "Porcas" > 75000 main > gastoprod "Chapas de ac¸o" > 100000 7 Gasto mensal total Ainda utilizando o cadastro gerado, construa uma func¸a˜o que retorne o gasto mensal total. 8 Gasto mensal total Ainda utilizando o cadastro gerado, construa uma func¸a˜o que retorne o gasto mensal total. 9 Valor gerado de ICMS Ainda utilizando o cadastro gerado, construa uma func¸a˜o que retorne o gasto mensal total com ICMS (Imposto sobre Circulac¸a˜o de Mercadorias e Prestac¸a˜o de Servic¸os). 10 Frac¸o˜es na Forma Mista Sabe-se que um nu´mero fraciona´rio maior que 1 pode ser representado pela chamada forma mista. Dessa maneira, a igualdade abaixo e´ verdadeira: 11 3 = 3 2 3 3 Sendo assim, construa uma func¸a˜o que receba uma tupla contendo o numerador e o de- nominador da frac¸a˜o original e que retorne uma nova tupla contendo a parte inteira, o numerador e o denominador da frac¸a˜o em sua forma mista. Exemplo: main > mista (11, 3) > (3, 2, 3) main > mista (15, 6) > (2, 1, 2) 11 Comparac¸a˜o entre Frac¸o˜es Tendo como paraˆmetro de uma func¸a˜o duas tuplas, as quais representam duas frac¸o˜es em sua forma mista, construa duas func¸o˜es que retornem a maior e a menor frac¸a˜o entre as duas. Exemplo: main > maiorf (2, 3, 5) (1, 7, 8) > (2, 3, 5) main > menorf (4, 2, 3) (4, 1, 3) > (4, 1, 3) 12 Integrais pelo me´todo dos trape´zios simples Para uma f (x) previamente determinada realizar o calculo da integral pelo me´todo dos trape´zios simples. Os paraˆmetros de entrada sera˜o o ponto a = x0 e b = x1 T (f) = (f(a) + f(b)) ∗ (b− a)/2 13 Integrais pelo me´todo dos trape´zios composto Para uma f (x) previamente determinada realizar o calculo da integral pelo me´todo dos trape´zios composto. Os paraˆmetros de entrada sera˜o o ponto a = x0 , b = x1 e a raza˜o r (valor que dara´ o segundo ponto que sera´ calculado recursivamente ate´ b = x1). T (f) = (f(a) + r) ∗ (r − a)/2 14 Problema desafio Como implementac¸a˜o EXTRA!! Encontrar o dia da semana que foi o seu nascimento!! Na func¸a˜o interna deve constar uma data de parametro inicial com seu dia da semana correspondente!! Exemplo: main > dianasc (17, 01, 2007) > "quarta-feira" 4
Compartilhar