Buscar

laboratorio8

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

Prévia do material em texto

Curso: Engenharia de Computação
Disciplina: Programação I
Professor: Rodolfo da Silva Villaça
Oitava Aula de Laboratório
1. Escreva recursivamente uma função de argumentos m e n (n<=n) que retorna o 
valor de m*(m+1)*...*(n-1)*n
2. Faça um arquivo com o seguinte formato:
chuva 1 = 110
chuva 2 = 0
chuva 3 = 78
...
chuva 12 = 210
Agora, implemente a função maxchuva m1 m2, tal que retorne uma tupla-2 
contendo o mês e a quantidade de chuva do mês que mais choveu no intervalo 
entre m1 e m2.
3. Escreva, recursivamente, uma função multnat :: Int -> Float -> Float que 
multiplique dois números sem usar a multiplicação.
4. Construa uma função que receba uma lista de números e transforma todas
as repeticoes em sub-listas de dois elementos: sendo que o primeiro elemento o 
número de repetições encontradas e o segundo elemento é o número na lista 
original. Números que não se repetem não deverão ser modificados.
Ex.:
Hugs> compactar [2, 2, 2, 3, 4, 4, 2, 9, 5, 2, 4, 5, 5, 5]
[[3,2], [3], [2,4], [2], [9], [5], [2], [4], [3,5]]
5. Espetáculos Teatrais - Vários espetáculos estão sendo apresentados em um 
grande teatro da cidade. Para cada um dos espetáculos, registra-se o mapa de 
ocupação da platéia, conforme as vendas dos ingressos. A platéia está 
representada por m filas numeradas de 1 a m, sendo que cada fila contém n 
cadeiras também numeradas de 1 a n. Considere a seguinte representação para os 
dados:
lugar - tupla-2 (fila, cadeira), onde fila é representada por um inteiro de 1 a 
m e cadeira, por um inteiro de 1 a n.
platéia - lista de tuplas-2 [lugar, situação] sendo que a situação é : 1 para 
indicar lugar ocupado e 0 para indicar lugar vago.
Faça funções em Haskell que resolvam os problemas abaixo. Nomes para cada uma 
das funções são sugeridos ao final do enunciado de cada problema.
a) (1,0) Dada uma platéia pls, descreva a quantidade total de lugares vagos 
(totalVagos).
b) (1,0) Dado um lugar lg e uma platéia pls, verifique se o lugar lg está ocupado 
(estaOcupado).
c) (2,0) Dada uma fila fl e uma platéia pls, descreva a lista de cadeiras ocupadas da 
fila fl (cadeirasOcupadasFila).

Outros materiais