Baixe o app para aproveitar ainda mais
Prévia do material em texto
Local: Acadêmico: Aluno: Avaliação: A2- Matrícula: Data: 18 de Junho de 2020 - 08:00 Finalizado Correto Incorreto Anulada Discursiva Objetiva Total: 10,00/10,00 1 Código: 35910 - Enunciado: Um desenvolvedor precisa criar um link para uma página que se encontra em um outro diretório (de mesma hierarquia do diretório corrente) para uma aplicação web. Para isso, é necessário informar a localização do outro diretório a partir do diretório corrente. Diante do exposto, determine a opção correta de codificação do link para atender ao requisito da aplicação. a) <a href="../../sobre/index.html">Sobre</a> b) <a href="/sobre/../index.html">Sobre</a> c) <a href="sobre/sobre.html">Sobre</a> d) <a href="index.html">Sobre</a> e) <a href="../sobre/index.html">Sobre</a> Alternativa marcada: e) <a href="../sobre/index.html">Sobre</a> Justificativa: Resposta correta:<a href=”../sobre/index.html”>Sobre</a>.Fará um link retornando um nível de diretório e depois acessará o subdiretório sobre, atendendo ao requisito da aplicação. Distratores:<a href=”sobre/index.html”>Sobre</a>. Errada. Fará um link para um diretório de nível inferior ao diretório corrente, não atendendo ao requisito da aplicação.<a href=”index.html”>Sobre</a>. Errada. Fará um link para o mesmo diretório, ou seja, para o diretório corrente, não atendendo ao requisito da aplicação. <a href=”../../sobre/index.html”>Sobre</a>. Errada. Fará um link retornando dois níveis de diretório, para um diretório de nível superior ao diretório corrente, e não para um de mesmo nível, não atendendo ao requisito da aplicação. <a href=”/sobre../index.html”>Sobre</a>. Errada. O link não foi formado de maneira correta. Dessa forma, o link será para o diretório sobre da raiz do disco corrente, não sendo o local correto para o link, não atendendo ao requisito da aplicação. 1,50/ 1,50 2 Código: 35909 - Enunciado: Um desenvolvedor precisa apresentar uma lista de itens para que o usuário, ao clicar sobre o item de sua escolha, faça com que o navegador o direcione para uma outra página. A lista não deverá apresentar descrição dos itens ou qualquer tipo de numeração, conforme apresentado no exemplo. Diante do exposto, determine qual das alternativas criará uma lista que atenderá às necessidades do desenvolvedor para acessar as páginas: sobre.html e contato.html. a) <p><a href="sobre.html">Sobre</a></p><p><a href="contato.html">Contato</a></p> b) <ol> <li><a href="sobre.html">Sobre</a></li> <li><a href="contato.html">Contato</a></li></ol> c) <p><a href="sobre.html">Sobre</a> <a href="contato.html">Contato</a></p> d) <ul> <li><a href="sobre.html">Sobre</a></li> <li><a href="contato.html">Contato</a></li></ul> e) <dl> <dt><a href="sobre.html">Sobre</a></dt> <dt><a href="contato.html">Contato</a></dt></dl> Alternativa marcada: 1,50/ 1,50 d) <ul> <li><a href="sobre.html">Sobre</a></li> <li><a href="contato.html">Contato</a> </li></ul> Justificativa: Resposta correta:<ul> <li><a href="sobre.html">Sobre</a></li> <li><a href="contato.html">Contato</a></li></ul>A tag para a criação de listas não numeradas e sem descrição é a <ul>. Distratores:<dl> <dt><a href="sobre.html">Sobre</a></dt> <dt><a href="contato.html">Contato</a></dt></dl>Errada. A tag <dl> é utilizada para a criação de listas de definição com opção de apresentação de descrição. Essa tag não permite a apresentação de itens identificados com o ponto na frente. <p><a href="sobre.html">Sobre</a></p><p><a href="contato.html">Contato</a></p>Errada. A tag <p> é usada para a criação de parágrafos, não sendo indicada para o uso com listas. No exemplo acima, os itens aparecerão um abaixo do outro, mas não será apresentado o ponto de identificação dos itens na frente. <p><a href="sobre.html">Sobre</a> <a href="contato.html">Contato</a></p> Errada. A tag <p> é usada para a criação de parágrafos, não sendo indicada para o uso com listas. Nesse código, os itens irão aparecer lado a lado. <ol> <li><a href="sobre.html">Sobre</a></li> <li><a href="contato.html">Contato</a></li> </ol>Errada. A tag <ol> é usada para a criação de listas numeradas, em que o ponto identificador do item é substituído por um número. 3 Código: 35975 - Enunciado: Uma aplicação para a web necessita realizar a verificação de um valor numérico digitado pelo usuário em um campo de texto (componente do tipo <input>). Para tanto, é preciso que a aplicação obedeça aos seguintes critérios:Verificar se o usuário digitou de fato um número.O valor só deve ser verificado quando o usuário tiver preenchido totalmente o campo e tiver alterado o foco para o próximo campo. Para realizar a operação relatada, o desenvolvedor deve trabalhar com os eventos na linguagem JavaScript para que, caso o valor não esteja correto, a aplicação retorne o foco para o componente anterior no qual o usuário não digitou corretamente um valor.Sabe-se também que:O formulário possui identificador: formCadastro. O campo que irá armazenar o preço tem como identificador: preco, e o próximo campo tem como identificador: data. Diante do exposto, escolha a opção que atenda corretamente às características necessárias aos campos na montagem do código HTML dos componentes do tipo input da aplicação. a) O campo preço (identificador: preco) deve possuir o método onBlur() e, caso não seja um valor, utilizar a instrução document.formCadastro.preco.focus();. b) O campo preço (identificador: preco) deve possuir o método onClick() e, caso não seja um valor, utilizar a instrução document.formCadastro.preco.focus();. c) O campo preço (identificador: data) deve possuir o método onBlur() e, caso não seja um valor, utilizar a instrução document.formCadastro.preco.focus();. d) O campo preço (identificador: preco) deve possuir o método onInput() e, caso não seja um valor, utilizar a instrução document.formCadastro.preco.focus();. e) O campo preço (identificador: data) deve possuir o método onClick() e, caso não seja um valor, utilizar a instrução document.formCadastro.preco.focus();. Alternativa marcada: a) O campo preço (identificador: preco) deve possuir o método onBlur() e, caso não seja um valor, utilizar a instrução document.formCadastro.preco.focus();. Justificativa: Resposta correta:O campo preço (identificador: preco) deve possuir o método onBlur() e, caso não seja um valor, utilizar a instrução document.formCadastro.preco.focus();.O componente correto a ter o método associado é input preco, que deve utilizar o método onBlur, que é executado sempre que um componente perde o foco, conforme os requisitos apresentados pela aplicação. Distratores:O campo preço (identificador: preco) deve possuir o método onInput() e, caso não seja um valor, utilizar a instrução document.formCadastro.preco.focus();. Errada. O componente correto a ter o método associado é input preco. O método onInput é executado sempre que 2,00/ 2,00 existe uma alteração em componentes do tipo input, mas a aplicação tem como requisito a perda do foco, não atendendo aos requisitos apresentados pela aplicação.O campo preço (identificador: preco) deve possuir o método onClick() e, caso não seja um valor, utilizar a instrução document.formCadastro.preco.focus();. Errada. O componente correto a ter o método associado é input preco, mas o método onClick não deve ser utilizado em conjunto com componentes do tipo input, porque componentes de input são para realizar entrada de dados e não devem ser associados a ações de cliques dos usuários, o que não atende aos requisitos apresentados pela aplicação.O campo preço (identificador: data) deve possuir o método onClick() e, caso não seja um valor, utilizar a instrução document.formCadastro.preco.focus();. Errada. O componente correto a ter o método associado é input preco, e não o componente data, porque a perda de foco deve ocorrer com o próprio campo, e não com o próximo; além disso, o método onClick não deve ser utilizado em conjunto com componentesdo tipo input, porque componentes de input são para realizar entrada de dados e não devem ser associados a ações de cliques dos usuários, o que não atende aos requisitos apresentados pela aplicação.O campo preço (identificador: data) deve possuir o método onBlur() e caso não seja um valor, utilizar a instrução document.formCadastro.preco.focus();. Errada. O componente correto a ter o método associado é input preco, e não o componente data, porque a perda de foco deve ocorrer com o próprio campo, e não com o próximo. Apesar do uso correto do método onBlur, que é executado sempre que um componente perde o foco, os requisitos da aplicação não foram atendidos. 4 Código: 35945 - Enunciado: Um desenvolvedor precisa validar o ano de nascimento de um usuário (que é numérico) e, para isso, precisa identificar se o usuário digitou corretamente o ano no campo “data” do formulário. Para tanto, será necessário criar uma função em JavaScript para realizar essa validação.Para obter as informações necessárias para a codificação correta da função, observe o código do formulário a seguir, levando em consideração os seguintes aspectos:a) A função deve apresentar uma mensagem do tipo alerta contendo o texto “Ano Numérico”, caso o dado seja numérico, ou “Ano Não Numérico!”, caso o dado não seja numérico. b) Será necessário separar o dia, o mês e o ano obtidos no campo “data”, e lembre-se: para essa separação, será necessário subdividir o campo de texto, que se comporta como um vetor de caracteres. c) O uso correto da função: isNaN(). <p>Preencha sua data de nascimento: </p> <form name="formData" method="post"> Digite a data de nascimento: <input type="text" name="data">(Ex.:25/12/2001) <button onclick="analisarData()">Verificar</button> </form> Diante do exposto, avalie qual das soluções apresenta a correta codificação da função JavaScript, capaz de atender aos requisitos da aplicação. a) function analisarData() { var data = document.post.data.value; var dia = data.substr(1,2); var mes = data.substr(4,2); var ano = data.substr(7,4); if(isNaN(ano)==false) { alert("Ano Numérico!"); } else { alert("Ano Não Numérico!"); } } b) function analisarData() { var data = document.formData.data.value; var dia = data.substr(0,2); var mes = data.substr(3,2); var ano = data.substr(6,4); if(isNaN(ano)==false) { alert("Ano Numérico!"); } else { alert("Ano Não Numérico!"); } } c) function analisarData() { var data = document.formData.data.value; var dia = data.substr(1,2); var mes = data.substr(4,2); var ano = data.substr(7,4); if(isNaN(ano)==false) { alert("Ano Numérico!"); } else { alert("Ano Não Numérico!"); } } d) function analisarData() { var data = document.formData.data.value; var dia = data.substr(1,2); var mes = data.substr(4,2); var ano = data.substr(7,4); if(isNaN(ano)==true) { alert("Ano Numérico!"); } else { alert("Ano Não Numérico!"); } } e) function analisarData() { var data = document.formData.data.value; var dia = data.substr(0,2); var mes = data.substr(3,2); var ano = data.substr(6,4); if(isNaN(ano)==true) { alert("Ano Numérico!"); } else { alert("Ano Não Numérico!"); } } 2,00/ 2,00 Alternativa marcada: b) function analisarData() { var data = document.formData.data.value; var dia = data.substr(0,2); var mes = data.substr(3,2); var ano = data.substr(6,4); if(isNaN(ano)==false) { alert("Ano Numérico!"); } else { alert("Ano Não Numérico!"); } } Justificativa: Resposta correta:function analisarData() { var data = document.formData.data.value; var dia = data.substr(0,2); var mes = data.substr(3,2); var ano = data.substr(6,4); if(isNaN(ano)==false) { alert("Ano Numérico!"); } else { alert("Ano Não Numérico!"); } }A função isNaN quer dizer “is Not a Number”, o que retorna verdadeiro se NÃO é um número, portanto, para ser um número, devemos comparar com o valor false para verificar se o valor é um número, conforme pode ser visto nessa opção. Distratores:function analisarData() { var data = document.formData.data.value; var dia = data.substr(0,2); var mes = data.substr(3,2); var ano = data.substr(6,4); if(isNaN(ano)==true) { alert("Ano Numérico!"); } else { alert("Ano Não Numérico!"); } } Errada. Essa função busca corretamente o valor do ano, uma vez que a String se inicia da posição zero, mas verifica se a função isNaN() é comparada a true, o que indica que o valor não é um número. function analisarData() { var data = document.formData.data.value; var dia = data.substr(1,2); var mes = data.substr(4,2); var ano = data.substr(7,4); if(isNaN(ano)==true) { alert("Ano Numérico!"); } else { alert("Ano Não Numérico!"); } }Errada. Essa função não busca corretamente o valor do ano, uma vez que a String se inicia da posição zero, e a função começa pela posição um, o que não permitirá a busca pelo valor correto do ano. A função ainda verifica se a função isNaN() é comparada a true, o que indica que o valor não é um número. function analisarData() { var data = document.formData.data.value; var dia = data.substr(1,2); var mes = data.substr(4,2); var ano = data.substr(7,4); if(isNaN(ano)==false) { alert("Ano Numérico!"); } else { alert("Ano Não Numérico!"); } }Errada. Essa função não busca corretamente o valor do ano, uma vez que a String se inicia da posição zero, e a função começa pela posição um, o que não permitirá a busca pelo valor correto do ano. A função ainda verifica corretamente ao se comparar a função isNaN() com false, o que indica que o valor é um número. function analisarData() { var data = document.post.data.value; var dia = data.substr(1,2); var mes = data.substr(4,2); var ano = data.substr(7,4); if(isNaN(ano)==false) { alert("Ano Numérico!"); } else { alert("Ano Não Numérico!"); } }Errada. Essa função não busca corretamente o valor da data, porque utiliza para identificar o formulário o método post, e não o nome do formulário, que é “formData”; além disso, o valor do ano não é obtido corretamente, uma vez que a String se inicia da posição zero, e a função começa pela posição um, o que não permitirá a busca pelo valor correto do ano. A função ainda verifica corretamente ao se comparar a função isNaN() com false, o que indica que o valor é um número. 5 Código: 35444 - Enunciado: Com o CSS, também conhecido como folha de estilos em cascata, podemos determinar os estilos por meio de três diferentes formas, sendo que cada uma possui uma ordem de precedência superior à outra. A partir das opções apresentadas a seguir, defina a ordem de precedência ao aplicar estilos em CSS, da maior precedência para a menor precedência: a) Externa (linked) à incorporada (embedded) à externa (inline). b) Local (inline) à externa (linked) à incorporada (embedded). c) Externa (linked) à local (inline) à incorporada (embedded). d) Local (inline) à incorporada (embedded) à externa (linked). e) Incorporada (embedded) à externa (linked) à local (inline). Alternativa marcada: d) Local (inline) à incorporada (embedded) à externa (linked). 0,50/ 0,50 Justificativa: Resposta correta: Local (inline) à incorporada (embedded) à externa (linked). Essa ordem permite que todos os padrões possam ser aplicados sem que um se sobreponha aos demais, porque é essa ordem de precedência que determina o estilo que será aplicado quando temos mais de um estilo a ser aplicado a um mesmo componente. Distratores:Local (inline) à externa (linked) à incorporada (embedded). Errada. Com a aplicação dessa ordem de precedência, não poderíamos utilizar o estiloincorporado em conjunto com os demais, pois o estilo externo se sobreporia ao estilo incorporado, não permitindo que em uma determinada página possamos alterar o estilo externo por outro específico para essa página.Externa (linked) à local (inline) à incorporada (embedded). Errada. Com a aplicação dessa ordem de precedência, não poderíamos utilizar os estilos locais e incorporados em conjunto com o externo, pois o estilo externo se sobreporia aos estilos locais e incorporados, não permitindo o uso de estilos específicos a uma determinada página ou determinado componente.Incorporada (embedded) à externa (linked) à local (inline). Errada. Com a aplicação dessa ordem de precedência, não poderíamos utilizar o estilo local em conjunto com os demais, pois os estilos incorporados e externos se sobreporiam ao estilo local, não permitindo a definição de um estilo específico para um componente.Externa (linked) à incorporada (embedded) à externa (inline). Errada. Com a aplicação dessa ordem de precedência, não poderíamos utilizar os estilos locais e incorporados em conjunto com o externo, pois o estilo externo se sobreporia aos estilos locais e incorporados, não permitindo o uso de estilos específicos a uma determinada página ou determinado componente. Ainda teríamos o estilo incorporado se sobrepondo ao local, o que não permitiria o uso de estilos em componentes específicos. 6 Código: 35449 - Enunciado: Na programação em JavaScript, temos uma série de funções predefinidas que podemos utilizar diretamente em nossos códigos. No contexto dos métodos disponibilizados pela linguagem JavaScript, identifique qual deles é responsável por realizar o cálculo de um número elevado a outro. a) Math.round(). b) Math.sqrt(). c) Math.sin(). d) Math.floor(). e) Math.pow(). Alternativa marcada: e) Math.pow(). Justificativa: Resposta correta:Math.pow(). Essa função é responsável por calcular um número elevado a outro. Exemplo: Math.pow(x, y), em que x será elevado a y. Distratores:Math.sin(). Errada. Essa função é responsável por calcular o seno de um ângulo.Math.sqrt(). Errada. Essa função é responsável por calcular a raiz quadrada de um número. Math.round(). Errada. Essa função é responsável por arredondar um número para o valor inteiro. Math.floor(). Errada. Essa função é responsável por arredondar um número para o menor valor inteiro. 0,50/ 0,50 7 Código: 36503 - Enunciado: No desenvolvimento de sites e aplicações para a web, precisamos apresentar diversos tipos de conteúdos. Em muitos casos, é necessário combinar diferentes tags para compor o resultado final esperado. Observe o seguinte resultado: Diante do exposto, identifique o conjunto de códigos HTML originais para a geração do resultado esperado: a) CH<sub>2</sub>O - <u>H R<sup>2</sup></u> <br> b) CH<sup>2</sup>O - <u>H R<sub>2</sub></u> <br> 0,50/ 0,50 c) CH<sup>2</sup>O - H R<sub>2</sub> <br> d) CH<sub>2</sub>O - H R<sup>2</sup> <br> e) CH<sub>2</sub>O - <u>H R</u><sup>2</sup> <br> Alternativa marcada: e) CH<sub>2</sub>O - <u>H R</u><sup>2</sup> <br> Justificativa: Resposta correta:CH<sub>2</sub>O - <u>H R</u><sup>2</sup> <br>.Resulta em: CH2O - H R2. Representa corretamente o uso das tags de subscrito, sobrescrito e sublinhado. Distratores:CH<sub>2</sub>O - H R<sup>2</sup> <br>. Errada, pois o resultado não apresenta o trecho sublinhado <u> e </u>.CH<sup>2</sup>O - <u>H R<sub>2</sub></u> <br>. Errada, pois o resultado apresenta uma inversão entre o uso do subscrito e do sobrescrito.CH<sup>2</sup>O - H R<sub>2</sub> <br>. Errada, pois o resultado não apresenta o trecho sublinhado <u> e </u>, além de apresentar uma inversão entre o subscrito e o sobrescrito.CH<sub>2</sub>O - <u>H R<sup>2</sup></u> <br>. Errada, pois no resultado, o trecho sublinhado se estende até o valor 2 sobrescrito, que diverge do padrão original apresentado. 8 Código: 35468 - Enunciado: Durante a elaboração de um formulário para uma pesquisa voltada para o levantamento das preferências de clientes, que será disponibilizado na web, observou-se a necessidade de identificar a faixa etária do cliente. Entre as opções a seguir, determine qual trecho do formulário, em HTML, atenderá melhor à captura da informação desejada. a) Faixa Etária: <br> <input type = "radio" name = "faixa" value="Menos de 20 anos"> </input> <input type = "radio" name = "faixa" value="Entre 21 e 40 anos”> </input> <input type = "radio" name = "faixa" value=" Acima de 40"> </input> ..... </form> b) <form name = "pesquisa">Faixa Etária: <br> <input type = "checkbox" name = "faixa" value="op1"> Menos de 20 anos </input> <br> <input type = "checkbox" name = "faixa" value="op2"> Entre 21 e 40 anos </input> <br> <input type = "checkbox" name = "faixa" value="op3"> Acima de 40 </input> <br> .....</form> c) <form name = "pesquisa"> Faixa Etária: <br> <input type = "radio" name = "faixa" value="op1"> Menos de 20 anos </input> <input type = "radio" name = "faixa" value="op2"> Entre 21 e 40 anos </input> <input type = "radio" name = "faixa" value="op3"> Acima de 40 </input> ..... </form> d) <form name = "pesquisa">Faixa Etária: <input type = "radio" name = "op1" value="faixa"> Menos de 20 anos </input> <input type = "radio" name = "op2" value="faixa"> Entre 21 e 40 anos </input> <input type = "radio" name = "op3" value="faixa"> Acima de 40 </input> .....</form> e) <form name = "pesquisa">Faixa Etária: <br> <input type = "checkbox" name = "op1" value="faixa"> Menos de 20 anos </input> <br> <input type = "checkbox" name = "op2" value="faixa"> Entre 21 e 40 anos </input> <br> <input type = "checkbox" name = "op3" value="faixa"> Acima de 40 </input> <br> .....</form> Alternativa marcada: 1,50/ 1,50 c) <form name = "pesquisa"> Faixa Etária: <br> <input type = "radio" name = "faixa" value="op1"> Menos de 20 anos </input> <input type = "radio" name = "faixa" value="op2"> Entre 21 e 40 anos </input> <input type = "radio" name = "faixa" value="op3"> Acima de 40 </input> ..... </form> Justificativa: Resposta correta:<form name = "pesquisa"> Faixa Etária: <br> <input type = "radio" name = "faixa" value="op1"> Menos de 20 anos </input> <input type = "radio" name = "faixa" value="op2"> Entre 21 e 40 anos </input> <input type = "radio" name = "faixa" value="op3"> Acima de 40 </input> ..... </form>Uma vez que o objetivo é identificar a qual faixa etária o cliente pertence, o tipo de componente apropriado é o radio, e a propriedade name de cada componente deve ter o mesmo identificador para que, entre as várias opções, apenas uma possa ser selecionada. Distratores:Faixa Etária: <br> <input type = "radio" name = "faixa" value="Menos de 20 anos"> </input> <input type = "radio" name = "faixa" value="Entre 21 e 40 anos”> </input> <input type = "radio" name = "faixa" value=" Acima de 40"> </input> ..... </form>Errada. Apesar de ter usado corretamente o componente radio, o parâmetro value tem como papel determinar o valor que será associado ao nome do campo (name) quando do envio dos dados, e não o conteúdo a ser apresentado ao usuário. Sendo assim, o controle não apresentará o texto das opções (exemplo: "Menos de 20 anos") ao usuário. <form name = "pesquisa">Faixa Etária: <input type = "radio" name = "op1" value="faixa"> Menos de 20 anos </input> <input type = "radio" name = "op2" value="faixa"> Entre 21 e 40 anos </input> <input type = "radio" name = "op3" value="faixa"> Acima de 40 </input> ..... </form>Errada. Apesar de ter utilizado o controle radio, a propriedade name tem que possuir o mesmo identificador para um mesmo conjunto de opções; caso contrário, os botões de radio não ficarão agrupados, permitindo ao usuário a escolha de mais de uma opção, o que está errado. Já a propriedade value deverá ter nomes diferentes. O parâmetro value tem como papel determinar o valor que será associado ao nome do campo (name) quando do envio dos dados. <form name = "pesquisa">Faixa Etária: <br> <input type= "checkbox" name = "op1" value="faixa"> Menos de 20 anos </input> <br> <input type = "checkbox" name = "op2" value="faixa"> Entre 21 e 40 anos </input> <br> <input type = "checkbox" name = "op3" value="faixa"> Acima de 40 </input> <br> .....</form>Errada. Uma vez que o objetivo é identificar a qual faixa etária o cliente pertence, o tipo de controle apropriado é o radio, uma vez que, entre várias opções, só poderá selecionar uma. O componente checkbox deve ser utilizado apenas em situações de do tipo "sim" ou "não", uma vez que é adequado apenas para confirmação ou não de um atributo. Para o uso de componentes do tipo checkbox, como eles não são agrupados, a propriedade name de cada componente deve ter nomes diferentes, conforme apresentado nessa opção. <form name = "pesquisa">Faixa Etária: <br> <input type = "checkbox" name = "faixa" value="op1"> Menos de 20 anos </input> <br> <input type = "checkbox" name = "faixa" value="op2"> Entre 21 e 40 anos </input> <br> <input type = "checkbox" name = "faixa" value="op3"> Acima de 40 </input> <br> .....</form>Errada. Uma vez que o objetivo é identificar a qual faixa etária o cliente pertence, o tipo de controle apropriado é o radio, uma vez que, entre várias opções, só poderá selecionar uma. O componente checkbox deve ser utilizado apenas em situações de do tipo "sim" ou "não", uma vez que é adequado apenas para confirmação ou não de um atributo. Para o uso de componentes do tipo checkbox, como eles não são agrupados, a propriedade name de cada componente deve ter nomes diferentes, e não iguais, como nessa opção.
Compartilhar