Buscar

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 3, do total de 4 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Continue navegando


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