Baixe o app para aproveitar ainda mais
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
Compartilhar