Ir para conteúdo
Fórum Script Brasil
  • 0

Ajuda com Exercício de Javascript


Zuca

Pergunta

Boas!

Sou iniciante em javascript e estou a estudar na faculdade em Portugal.

Uma das disciplinas incluí Javascript e infelizmente ando a "empancar" com isto.

Tenho um pequeno exercício que me anda a partir a cabeça mas que qualquer entendido em javascript resolve em 5 minutos.

Gostaria de saber se há alguém que me possa ajudar com a resolução disto.

Eis o link para o exercício:

http://www.a2o3.com/javascript/Exerc1.pdf

Se alguém me puder ajudar agradeço desde já!

Link para o comentário
Compartilhar em outros sites

18 respostass a esta questão

Posts Recomendados

  • 0

1. [3 valor(es) ∑ = 3]

Escreva o HTML que conduza a uma página com a seguinte apresentação:

A sua frase:

Resultado da encriptação:

Decriptando:

Sabendo que a sua organização deve ser a seguinte:

• Uma form que contém, para além dos parágrafos visíveis:

o Uma caixa de texto, com id “tFrase”;

o Uma área de texto (elemento textarea) com id “tEnc”;

o Uma textarea com id “tDec”.

• A cada keypress em tFrase, deve ser chamada uma função Javascript “feedback”, sem argumentos.

• E, por fim, já no exterior da form, um parágrafo, inicialmente vazio de conteúdo, com id “feedback”.

2. A ideia é combinar o HTML da questão 1 com o Javascript das questões da próxima página, de forma a conseguir uma aplicação que permita testar umas técnicas de criptação de conteúdos.

Por exemplo, quando alguém escrever “Artur” em tFrase, deverá aparecer “Fsy}v” em tEnc, porque esse é o resultado da sua criptação, pelas técnicas que serão descritas nos próximos exercícios.

Para decriptar “Fsy}v” em “Artur” será necessária a chave “5 1 5 8 4”.

A imagem abaixo ilustra uma utilização da form.

A sua frase:

Resultado da encriptação:

Decriptando:

somaDaFrase= 526 numeroDaFrase= 4 chaveDaFrase= 5 1 5 8 4

2.1 [3 valor(es) ∑ = 6]

Escreve, em Javascript, a função “somaDaFrase”, que deve receber uma qualquer frase e devolver a soma dos códigos ASCII das letras que a compões.

Por exemplo:

Var soma=somaDaFrase(“Artur”); //soma=526, porque A=65 + r=114 + t=116 + u=117 + r=114 = 526

2.2 [3 valor(es) ∑ = 9]

Escreva, em Javascript, a função “numeroDaFrase”, que deve receber uma qualquer frase e devolver o número que é somado à sua somaDaFrase, torna o resultado múltiplo de 10.

Por exemplo:

Var num=numerodaFrase(“A”);

//num=5, porque 5 é o número que somado a somaDaFrase(“A”)=65, permite um resultado (70) múltiplo de 10.

2.3 [3 valor(es) ∑ = 12]

Escreva, em Javascript, a função “chaveDaFrase”, que deve receber uma qualquer frase e devolver a frase composta pelos sucessivos numeroDaFrase que lhe foram correspondendo.

Por exemplo:

Var numeros=chaveDaFrase(“AB”);

//numeros=”5 9”, porque 5 é o numeroDaFrase(“A”) e 9 é numeroDaFrase(“AB”);

2.4 [4 valor(es) ∑ = 16]

Escreva, em Javascript, a função “cripta”, que poderá receber uma frase e uma chave.

Quando for recebida uma chave, a função deve decriptar a frase, de acordo com a chave, retornando a frase resultado.

Quando não for recebida uma chave, a função deve encriptar a frase, usando como chave a chaveDaFrase, retornando a frase resultado.

O significado destas encriptação e decriptação explica-se de seguida:

Por exemplo, para a frase “AB”, que tem chaveDaFrase=”5 9”, a encriptação é “FK”, porque

F é a letra cujo código ASCII (70) é + 5 do que o código da letra “A” (65);

K é a letra cujo código ASCII (75) é + 9 do que o código da letra “B” (66).

A decriptação faz-se por subtracção. Por exemplo:

var resultado=cripta(“FK”,”5 9”); //resultado=”AB”, porque

A é a letra cujo código ASCII (65) é – 5 do que o código da letra “F” (70);

B é a letra cujo código ASCII (66) é – 9 do que o código da letra “K” (75).

3. [4 valor(es) ∑ = 20]

Admita que está disponível uma form com caixas de texto com IDs “tFrase” e “tChave”, destinadas a receberem uma frase encriptada e uma chave de decriptação, com a lógica explicada nas questões anteriores.

Escreva o CGI C# capaz de receber, por GET e url-encoded, ambas as frases e de responder com o resultado da decriptação.

Link para o comentário
Compartilhar em outros sites

  • 0
Boas!

Sou iniciante em javascript e estou a estudar na faculdade em Portugal.

Uma das disciplinas incluí Javascript e infelizmente ando a "empancar" com isto.

Tenho um pequeno exercício que me anda a partir a cabeça mas que qualquer entendido em javascript resolve em 5 minutos.

Gostaria de saber se há alguém que me possa ajudar com a resolução disto.

5 minutos é um exagero. É um exercício muito chato de fazer e na minha opinião um tanto quanto inútil. Seu professor deveria ensinar manipulação com Dom que foi para isso que o javascript foi destinado, encriptação com javascript....é a coisa mais imbecil que eu já vi.

Mas quem sou eu pra falar alguma coisa.

Bom Zuca, ninguém vai resolver o exercício pra você, mas podemos ajudar na resolução, já começou a fazer alguma coisa ?

Poste o que começou a fazer.

Link para o comentário
Compartilhar em outros sites

  • 0
Guest --Zuca --

O meu problema é que os meus conhecimentos de Javascript são muito poucos... Eis o que eu consigo resolver:

Questão1:

Código:

<html> 
<body> 

<script type="text/javascript"> 
function feedback() 
</script> 

<form name="exerc1"> 
A sua frase: <input type="text" id="tFrase" onkeypress="return feedback()"/> <br/> 
Resultado da encriptação: <br/> 
<textarea rows="10" cols="30" id="tEnc"></textarea> <br/> 
Decriptando: <br/> 
<textarea rows="10" cols="30" id="tDec" ></textarea> <br/> 
</form> 
<p id="feedback"> 
</body> 
</html>

Esta primeira questão está mais ou menos correcta ou nem por isso?

A partir daqui é tudo encadeado com a questão 2.1 que não sei como resolver... Alguém me pode ajudar?

Editado por fercosmig
Adicionar tag's
Link para o comentário
Compartilhar em outros sites

  • 0

Grande Zuca, bem vindo ao fórum.

Bom, até agora o que você fez está correto, mas você só mostrou o HTML. O que você já fez com relação à programação de JS? Mostre as suas funções!

Alguns conselhos:

onkeypress="return feedback()"

O uso do return, neste caso, é desnecessário.

Link para o comentário
Compartilhar em outros sites

  • 0
Guest --Zuca --

Olhando para isto já evolui mais 2 cms

Código:

<html> 
<body> 
<script type="text/javascript"> 
var str="Artur" 

for (i = 0; i <= str.length; i++) 
{ 
b = str.charCodeAt(i); 

document.write(B); 
document.write("<br/>"); 
} 
</script> 
</body> 
</html>

Com isto estava a tentar escrever o resultado de cada charCode, mas o estranho é que obtenho um último resultado manhoso e não sei porquê.

Resultado:

Código:

65

114

116

117

114

NaN

Alguém me sabe dizer porquê?! E já agora como é que eu agora pego nisto e converto para números para poder somar?

Editado por fercosmig
Adicionar tag's
Link para o comentário
Compartilhar em outros sites

  • 0

for (i = 0; i < str.length; i++)

Esse link pode ajudar:

Number

O restante da resolução do problema exige mais "Logica de Programação" do que conhecimento de JavaScript... sendo assim, boa sorte! Qualquer duvida, pode perguntar.

T+.

Editado por flavio
Link para o comentário
Compartilhar em outros sites

  • 0

Obrigado pela ajuda!

Assim já consegui!

Agora só me falta a sintaxe correcta para meter isto tudo dentro de uma função.

Será assim?

<script type="text/javascript">

Function somaDaFrase()

{

var str = document.exerc1.tfrase.value

c = 0

for (i = 0; i < str.length; i++)

{

b = str.charCodeAt(i);

c = c + b;

}

document.write©;

}

</script>

A minha tentativa é ir buscar o que é escrito na caixa de texto e passar para a variavel str...

Depois meter tudo dentro da função somaDaFrase...

Mas dá-me erro. Penso que é problema de sintaxe, certo?

Link para o comentário
Compartilhar em outros sites

  • 0

Já consegui resolver essa parte!

Era apenas uma questão de "case sensitive" e uns parenteses a mais.

Agora estou a tentar descobrir uma função que me permita adicionar um número automaticamente ao valor obtido no ASCII de forma a transformá-lo num múltiplo de 10.

Exemplo: Escrevo "A" que é 65... Preciso de somar 5 para obter 70 (múltiplo de 10).

Não faço a mínima ideia mesmo e não encontro nada na net...

Alguém tem sugestões?

Link para o comentário
Compartilhar em outros sites

  • 0

certo ...

claro q você pode melhorar o codigo reduzindo o numero de variaveis:

function somaDaFrase(str)
{
    var c = 0;
    var i;
    var b;
    for (i = 0; i < str.length; i++) {
        b = str.charCodeAt(i);
        c = c + b;
    }
    return c;
}

function numeroDaFrase(str) {
    return (10 - somaDaFrase(str) % 10);
}

mas a questao é: você entendeu o que a funcao faz?

Editado por flavio
Link para o comentário
Compartilhar em outros sites

  • 0

A função numeroDaFrase sim, mas a alteração da função somaDaFrase é que não.

Retirando de lá o

var str = document.exerc1.tFrase.value;

como é que conseguimos meter o valor da textbox na str?

Peço desculpa se esta pergunta for completamente descabida, mas tal como já deu para entender, programação não é o meu forte...

Editado por Zuca
Link para o comentário
Compartilhar em outros sites

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,2k
    • Posts
      651,9k
×
×
  • Criar Novo...