exame 2024
Qual é o resultado da função alterna 5 2?
Apuntes
1. Defina a fun¸c˜ao alterna :: Num a => Int -> a -> [a] que dado um n´umero n e um valor v, constro´ı uma lista com n elementos alternadamente v e -v. Por exemplo, alterna 5 2 corresponde a [2,-2,2,-2,2]. alterna :: Num a => Int -> a -> [a] alterna n v = take n (cycle [v, -v]) 2. Considere o seguinte tipo de dados para guardar os n´umeros e nomes dos alunos numa ´arvore bin´aria de procura ordenada por n´umero de aluno. data Turma = Empty | Node (Integer,String) Turma Turma (a) Declare Turma como instˆancia da classe Show de forma a que a visualiza¸c˜ao da turma seja uma listagem da turma por ordem crescente de n´umero de aluno, com um registo por linha. instance Show Turma where show turma = unlines (lista turma) where lista Empty = [] lista (Node (num, nome) esq dir) = lista esq ++ [show num ++ ": " ++ nome] ++ lista dir (b) Defina a fun¸c˜ao limites :: Turma -> (Integer,Integer) que d´a o par com o menor e o maior n´umero da turma. limites :: Turma -> (Integer, Integer) limites Empty = error "Turma vazia" limites turma = (menor turma, maior turma) where menor (Node (n, _) Empty _) = n menor (Node _ esq _) = menor esq maior (Node (...
Estudia con juegos interactivos
Sube tus apuntes y genera flashcards, examenes y mas con IA
Empezar gratis