ISW008 - Programação para Scripts
Prova P2 – 27 de novembro de 2024
NOME DO ALUNO :
RA :
INSTRUÇÕES
1. Preencha o cabeçalho acima.
2. A prova deve ser feita com consulta a uma folha de papel a4 com o conteúdo livre.
3. O fonte desenvolvido deverá ser apenas na linguagem Javascript.
4. Escolha 3 questões.
5. Responda cada questão no espaço correspondente (mesma folha).
DURAÇÃO DA PROVA: 3 horas
Nota
Questão 1
Questão 2
Questão 3
Questão 4
TOTAL
BOA PROVA
1. (2.5 pontos) Implemente uma função que, ao clicar em um botão com a classe "classe1", altere a cor de fundo
de todos os elementos que possuem a classe "classe2" para amarelo, utilizando o event listener.
2. (2.5 pontos) Suponha já existir a função unfold, crie uma função seq que receba um número intero n e retorne a
soma dos termos até n-ésimo termo da sequência: 1, 3, 5, 9, 11, 15, ... (note que 7 e 13 estão fora de propósito).
Por exemplo, seq(6) = 1 + 3 + 5 + 9 + 11 + 15 = 44. Sua função deve usar o aparato da programação funcional.
É proı́bido qualquer loop, if, goto, forEach ou similares.
3. (2.5 pontos) Considere o seguinte código JavaScript:
f u n c t i o n thenn ( f ) {
r e t u r n t h i s . map( f ) . j o i n ( ) . s p l i t ( ” , ” ) ;
}
Array . p r o t o t y p e . then = thenn ;
l e t r = [ 1 , 2 ] . then ( x => [ x − 1 , x , x + 1 ] ) . then ( y => [ p a r s e I n t ( y ) ∗ 3 ] ) ;
console . log ( r ) ;
Pergunta: Qual será o conteúdo de r na saı́da do console? Explique usando o teste de mesa (raciocı́nio por
equações).
4. (2.5 pontos) Considere o seguinte problema: Suponha haver uma div com o ID "res" definida como:
<div id=” r e s ”>0</ div>
Além disso, há um botão com a classe "classe1". Usando o event listener, implemente uma função que
incremente o valor exibido na div em 1 toda vez que o botão for clicado.