Buscar

Exercícios Haskell - Listas e Cadastros

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 3 páginas

Prévia do material em texto

Quarta Lista de Exerc´ıcios da Disciplina de Liguagem de
Programac¸a˜o III
Carolina Maria Costa Batschauer
22 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 30 de abril atrave´s do e-mail monitorialpg3@gmail.com, podendo ser resolvida 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.
Na implementac¸a˜o desta lista podera˜o ser usados os conceitos de compressa˜o de listas
dados em sala de aula.
1 Construc¸a˜o de cadastros com listas
Contrua um cadastro de alunos, dentro de uma lista,com os seguintes paraˆmentros.
[(nome · aluno1, ano · nascimento1, semestre · entrada · faculdade1), (nome ·
aluno2, ano · nascimento2, semestre · entrada · faculdade2), . . .]
Exemplo:
cadatro [("Maria da Silva", 1976, 2002), ("Marcos Friedman",
1978, 2003), ("Sandra de Mattos", 1976, 2000) ]
2 Manipulac¸a˜o de listas de tuplas
Com o cadastro anterior realizar as seguintes manipulac¸o˜es:
1http://geocities.yahoo.com.br/lpg3udesc
1
2.1 Listar alunos de acordo com ano de nascimento
Construir uma func¸a˜o que utilize o cadastro anteriormente desenvolvido e retorne todos
os registros que possuirem nascimento em determinado ano passado como paraˆmetro de
entrada. Exemplo:
main > listanascimento 1977
> [("Maria da Silva", 1976, 2002), ("Sandra de Mattos", 1976, 2000)]
main > listanascimento 1976
> "N~ao existe registro para este ano!"
2.2 Listar alunos de acordo com semestre de entrada
Construir uma func¸a˜o que utilize o cadastro anteriormente desenvolvido e retorne todos
os registros que possuirem ano de entrada na faculdade acima do valor passado como
paraˆmetro de entrada.
main > listaentradafacu 2002
> [("Maria da Silva", 1976, 2002), ("Marcos Friedman",1978, 2003)]
main > listanascimento 2005
> "N~ao existe registros acima deste ano!"
3 Construc¸a˜o de cadastros com listas 2
Contrua um cadastro de alunos, dentro de uma lista. Em seguinda construa um cadastro
dos cursos poss´ıveis, ambos com os paraˆmetros listados abaixo:
Cadastro Alunos [(nome · aluno1, codigo · curso, nota · obtida · curso), (nome ·
aluno2, codigo · curso, nota · obtida · curso), . . .]
Cadastro Cursos
[(nome · curso1, codigo · curso1, semestre · curso1 · oferecido, numero · cre´ditos1), (nome ·
curso2, codigo · curso2, semestre · curso2 · oferecido, numero · cre´ditos2), . . .]
Exemplo1:
cadatroalunos [("Maria da Silva", 100, 3.0), ("Marcos Friedman",
200, 7.5), ("Sandra de Mattos", 150, 8.5), ("Alice Snow", 150,
9.5), ("Karla Walt", 100, 7.0) ]
Exemplo2:
cadatrocursos [("Algebra", 100, 1, 6), ("Ca´lculo Nume´rico", 150,
1, 8), ("Computac¸~ao Gra´fica", 200, 6, 4) ]
2
3.1 Listar alunos com notas acima da me´dia
Construir uma func¸a˜o que utilize o cadastro anteriormente desenvolvido e retorne todos os
registros que possuirem nota (em qualquer curso/mate´ria) acima ou igual a 7.0. Exemplo:
main > listamedia
> [("Marcos Friedman",
200, 7.5), ("Sandra de Mattos", 150, 8.5), ("Alice Snow", 150,
9.5), ("Karla Walt", 100, 7.0)]
3.2 Listar alunos com maior me´dia em cada curso
Construir uma func¸a˜o que utilize o cadastro anteriormente desenvolvido e retorne todos os
registros que possuirem a maior nota de todos os cursos/mate´ria, obedecendo a seguinte
formatac¸a˜o das tuplas:
[(nome · aluno1, codigo · curso1, nome · curso1 · oferecido, nota · obtida · curso), . . .]
Para a resoluc¸a˜o deste exerc´ıcio devera˜o ser utilizadas ambos os cadastros criados.
Exemplo:
main > maiornotacurso
> [("Karla Walt", 100, "Algebra", 7.0), ("Alice Snow",
150, "Ca´lculo Nume´rico", 9.5),("Marcos Friedman", 200,
"Computac¸~ao Gra´fica", 7.5) ]
3.3 Listar alunos por semestre
Construir uma func¸a˜o que utilize os cadastros anteriormente desenvolvidos e retorne todos
os registros que possuirem alunos de um determinado semestre passado como paraˆmetro
de entrada, retorne a tupla no formato abaixo:
[(nome · curso1 · oferecido, nome · aluno1, nota · obtida · curso), . . .]
Para a resoluc¸a˜o deste exerc´ıcio devera˜o ser utilizadas ambos os cadastros criados.
Exemplo:
main > listasemestre 1
> [("Algebra", "Maria da Silva", 3.0),("Algebra", "Karla Walt", 7.0),
("Ca´lculo Nume´rico", "Sandra de Mattos", 8.5), ("Ca´lculo Nume´rico",
"Alice Snow", 9.5) ]
3

Outros materiais