Prévia do material em texto
Primeira Lista de Exerc´ıcios da Disciplina de Liguagem de Programac¸a˜o III Carolina Maria Costa Batschauer 22 de marc¸o 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 02 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 Func¸a˜o div A func¸a˜o div retorna ao usua´rio a parte inteira entre a divisa˜o de dois nu´meros inteiros, os quais sa˜o argumentos desta func¸a˜o. Deste modo, sem a utilizac¸a˜o das func¸o˜es floor e/ou div existentes no mo´dulo Prelude, construa uma func¸a˜o div. Sugesta˜o: utilize os conceitos da divisa˜o euclidiana. Exemplo: main > div2 4 2 > 2 main > div2 2 4 > 0 1http://geocities.yahoo.com.br/lpg3udesc 1 2 Func¸a˜o mod A func¸a˜o mod retorna ao usua´rio o resto de uma divisa˜o. Construa uma func¸a˜o mod, sem a utilizac¸a˜o da func¸a˜o mod existente no mo´dulo Prelude. Exemplo: main > mod2 4 2 > 0 main > mod2 4 3 > 1 3 Menor Entre Elementos Construa uma func¸a˜o que receba 4 inteiros como argumento e retorne ao usua´rio o menor destes elementos. Sugere-se a criac¸a˜o de uma func¸a˜o menor2 que retorne o menor entre 2 inteiros. Exemplo: main > menor4 1 2 3 4 > 1 main > menor4 5 3 9 2 > 2 4 Modus Ponens O Modus Ponens e´ um dos silogismos condicionais .O argumento tem duas premissas. A primeira premissa e´ a condic¸a˜o ”se - enta˜o”, nomeadadamente que P implica Q. A segunda premissa e´ que P e´ verdadeiro. Destas duas premissas pode ser logicamente conclu´ıdo que Q tem de ser tambe´m verdadeiro. Construa a func¸a˜o que realize esta operac¸a˜o lo´gica. Exemplo: main > modusp ’choveu’ ’Esta´ molhado!’ > "Esta´ molhado!" main > modusp ’estou com sede’ ’Vou tomar a´gua!’ > "Vou tomar a´gua!" main > modusp ’esta´ quente’ ’Preciso de um ar-condicionado!’ > "Preciso de um ar-condicionado!" 5 Modus Tollens O Modus Tollens e´ um dos silogismos condicionais .O argumento tem duas premissas. A primeira premissa e´ a condic¸a˜o ”se - enta˜o”, nomeadadamente que P implica Q. A segunda 2 premissa e´ que Q e´ falso. Destas duas premissas pode ser logicamente concluido que P tem de ser falso. (Porqueˆ ? Porque se P fosse verdadeiro, enta˜o Q seria verdadeiro, pela premissa 1, mas na˜o e´, pela premissa 2). Construa a func¸a˜o que realize esta operac¸a˜o lo´gica. Exemplo: main > modusp ’choveu’ ’Esta´ molhado!’ > ~ "Esta´ molhado!" main > modusp ’estou com sede’ ’Vou tomar a´gua!’ > ~ "Vou tomar a´gua!" main > modusp p q > ~ q 6 Progressa˜o Aritme´tica Uma progressa˜o aritme´tica e´ uma sequ¨eˆncia nume´rica em que cada termo, a partir do segundo, e´ igual a` soma do termo anterior com uma constante . O nu´mero e´ chamado de raza˜o da progressa˜o aritme´tica 1 3 5 7 9 11... Construa uma func¸a˜o que retorne o n-e´simo termo de uma PA dando seu primeiro termo e sua raza˜o. Exemplo: main > prog_a 4 1 2 > 7 main > prog_a 5 10 10 > 50 7 Fatorial Construa uma func¸a˜o que realize o fatorial de um valor inteiro passado como argumento. Exemplo: main > fatorial 5 > 120 main > fatorial 8 > 40320 3 8 Sequ¨eˆncia de Fibonacci Sabendo que a Sequ¨eˆncia de Fibonacci e´ formada da seguinte forma: 0 1 1 2 3 5 8 13... Construa uma func¸a˜o que retorne o n-e´simo termo da sequ¨eˆncia de Fibonacci. Exemplo: main > fibo 4 > 3 main > fibo 7 > 8 9 Potenciac¸a˜o A potenciac¸a˜o e´ o resultado de multiplicac¸o˜es sucessivas: 24 = 2 ∗ 2 ∗ 2 ∗ 2 = 16 Construa uma func¸a˜o que realize o calculo do valor, sendo informado a base e o ex- poente. Exemplo: main > potencia 2 4 > 16 main > potencia 5 2 > 25 10 Raiz Inteira de Valor Inteiro Construa uma func¸a˜o que calcule a parte inteira da raiz quadrada de um inteiro. Na˜o utilize as func¸o˜es sqrt e floor do mo´dulo Prelude. Exemplo: main > raiz 95 > 9 main > raiz 884 > 29 4