Biblioteca de funções

O Javascript possui um conjunto bastante vasto de funções com aplicação específica.

As funções são muito vantajosas para o usuário, pois permitem diminuir o tempo gasto na elaboração de formulários, assim como eventuais erros na sua concepção.

As funções do Javascript agrupam-se em:

As funções do Javascript tem a seguinte sintaxe:

= nomedafunção(argumentos)

Os tipos de argumentos variam de função para função e em relação às necessidades de cálculo do usuário.

Os tipos de argumentos mais utilizados são: variáveis numéricas, variáveis strings, variáveis booleanas, arrays e propriedades.

Exemplos (teóricos) de funções:

Inicio
        escreva( Potencia(2, 6) )
        escreva( Soma(12, 36) )
        escreva( Media(8, 3) )
Fim

Funções de tratamento de String

Manipulando Strings

O Javascript é bastante poderoso no manuseio de Strings, fornecendo ao programador uma total flexibilidade em seu manuseio.

Abaixo apresentamos os métodos disponíveis para manuseio de strings.

length

Retorna o comprimento de uma String.

Exemplo:
var s="Esta e uma string de texto";
document.write("Tamanho da String = "+s.length+" caracteres");

Resultado:
Tamanho da String = 26 caracteres

substring(indiceInicial, indiceFinal)

O método substring (subcadeia) retorna a cadeia que se estende do indice Inicial até o caractere logo antes de indice final. Se indice Inicial for maior que indice final, o método funciona como se ambos estivessem com as posições trocadas. Se os dois índices forem iguais, retorna uma cadeia vasia.

Exemplo:
var s="Esta e uma string de texto";
var s1=s.substring(4, 10);
document.write(s1);

Resultado:
"e uma"

charAt(posição)

Funciona da mesma forma que o substring, só que, retorna o caractere simples em uma posição específica na String.

Exemplo:
var s="Esta e uma string de texto";
var s1=s.charAt(5);
document.write(s1);

Resultado: "e"

indexOf(caractere, [inicIndex])

O método indexOf faz a busca no objeto string pela primeira ocorrência do caractere e retorna o índice correspondente. o argumento inicIndex é opcional e indica a partir de onde inicia a busca. Podemos localizar os valores dos índices para todos os caracteres do mesmo tipo iniciando após o índice anterior.

Exemplo:
text="Hello, world!";
index=0
document.write("<pre>");
while(index<text.lastIndexOf("l")) {
index= text.indexOf("l", index+1);
document.write(index+"\t");
}
document.write("\n");
document.write("</pre>")

Resultado:" 2 3 10"

lastIndexOf(caractere, [inicIndex]) O método lasIndexOf é idêntico ao método index of exceto que faz a busca do caractere na cadeia do fim para o começo iniciando em inicIndex.
Veja o exemplo anterior
replace(palavra, substituto)

O método replace você insere uma palavra ou uma letra em que você deseja substituir por outra.

Exemplo:
s="Este automovel é caro"
document.write(s.replace("automovel", "carro"))

Resultado:
Este carro é caro

search(palavra)

O método search localiza a palavra dentro de uma string.

Exemplo:
s="Este automovel é caro"
document.write(s.search("automovel"))

Resultado: "5"

toLowerCase()

O método toLowerCase (para minúsculo) retorna a cadeia com todos os caracteres alterados para minúsculo.

Exemplo:
s="ISTO É UM EXEMPLO"
document.write(s.toLowerCase())

Resultado:
isto é um exemplo

toUpperCase()

O método toUpperCase (para maiúsculo) retorna a cadeia com todos os caracteres alterados para maiúsculo.

Exemplo:
s="isto é um exemplo"
document.write(s.toUpperCase())

Resultado:
ISTO É UM EXEMPLO

 

Veja um exemplo de código que inverte o texto ao contrário:

<head>
<title>Se não entendeu, use este código HTML</title>
</head>
<script language="javascript">
<!--
function inverter(formulario){
var vtexto1=formulario.texto1.value
var vtexto2=""

for(var x=vtexto1.length; x>=0; x--){
vtexto2+=vtexto1.charAt(x)
}
formulario.texto2.value=vtexto2
}
-->
</script>
<body>
<form>
Insira o texto aqui: <br/>
<textarea name="texto1" cols="120" rows="10"></textarea> <br />
<input type="button" name="Inverter" value="Inverter" onClick="inverter(this.form)"/>
<input type="reset" value="Apagar"> <br />
<textarea name="texto2" cols="120" rows="10"></textarea>
</form>
</body>
</html>

Funções Matemáticas

Para auxiliar os cálculos matemáticos, além dos operadores matemáticos de adição, subtração, multiplicação e divisão existem outras funçoes matemáticas.

Algumas funções são comuns, tais como: raiz quadrada, potênciação, módulo, etc. Outras exigem conhecimento a nível de 2º grau tais como: trigonometria e logarítmos.

Vejamos

Covertendo string para numérica

eval

Calcula o conteúdo da string

Exemplo:

resultado=eval("(10*20)+2-8")
document.write(resultado)

Resultado: 194

parseInt

Transforma string em inteiro

Exemplo:
valor=parseInt("79.65732")
document.write(valor)

Resultado: 79

parseFloat

Transforma string em número real

Exemplo:
valor=parseFloat("79.65732")
document.write(valor)

Resultado: 79.65732

 

Arredondando valores

Funções matemáticas comuns

Funções trigonométricas



Trigonometria no triângulo retângulo

Considere um triângulo ABC, retângulo em  (Â=90º), onde á é a medida da hipotenusa, b e c são as medidas dos catetos e α, β são ângulos agudos.

a

Pelo teorema de Pitágoras, temos que "o quadrado da hipotenusa é igual a soma dos quadrados dos catetos", ou seja, pela figura, a2=b2+c2

Observamos ainda que os ângulos agudos do triângolo retângulo são complementares na figura α + β = 90º

Exercícios:

1) Usando o teorema de Pitágoras, calcule o valor de x:

a)a
a
b)a
a
c)a
a

 

2) Determine o valor de α ou β nas figuras seguintes:

a)a
a
b)a
a

 

Razões trigonométricas

a

α = ângulo

a = Hipotenusa

b = Cateto oposto

c = Cateto adjacente

Observação:

a

Exercícios

1) Em cada caso, determinar o sen α, cos α e tg α:

a)a
a
b)a
a

c)a
a

d)a
a
e)a
a
 

Tabela dos ângulos mais usados do triângulo retângulo

Grau sen cos tg em
radianos
30º a a a a
45º a a 1 a
60º a a a a

Exercícios:

1) Encontre x:

a
a

2) Encontre y:

a)a
a
b)a
a

3) Encontre x e y:

a)a
a
b)cccca
a
c)a
a

 

Unidades de medida

Ângulo

em
grau

em
radianos
a 360º a
a 180º a
a 90º a
a 60º a
a 45º a
a 30º a

A unidade de medida usada pelos brasileiros é o grau, porém a unidade de medida usada pela maioria das linguagens de programação é o radiano, então acostume-se a transformar graus em radianos.

Calculando o seno, cosseno e tangente pelo computador

Se o argumento estiver em graus, multiplique-o por PI()/180 ou use a função radianos() para convertê-lo em radianos.

Exemplo:

<script language="javascript">
function radianos(){
return Math.PI/180
}
document.write("<br>"+ Math.sin(Math.PI)) // O seno de radianos de pi(0, aproximadamente). Resultado: 1.2246063538223773e-16
document.write("<br>"+Math.sin(Math.PI/2)) // O seno de radianos de pi/2 (1). Resultado: 1
document.write("<br>"+Math.sin(30*Math.PI/180)) // O seno de 30 graus (0,5). Resultado: 0.49999999999999994
document.write("<br>"+Math.sin(30*radianos())) // O seno de 30 graus (0,5). Resultado: 0.49999999999999994

document.write("<br>"+Math.cos(60*Math.PI/180)) // O cosseno de 60 graus (0,5). Resuntado: 0.5000000000000001
document.write("<br>"+Math.cos(60*radianos())) // O cosseno de 60 graus (0,5). Resultado: 0.5000000000000001

document.write("<br>"+Math.tan(45*Math.PI/180)) // A tangente de 45 graus (1). Resultado: 0.9999999999999999
document.write("<br>"+Math.tan(45*radianos())) // A tangente de 45 graus (1). Resultado: 0.9999999999999999
</script>

Calculando o arco seno, arco cosseno e arco tangente pelo computador

Retorna o arco seno ou o seno inverso de um número. O arco seno é o ângulo cujo seno é núm. O ângulo retornado é fornecido em radianos; o mesmo para arco cosseno e arco tangente.

Para expressar o arco seno em graus, multiplique o resultado por 180/PI( ) ou use a função graus().

<script language="javascript">
function graus() {
return 180/Math.PI
}

document.write("<br>"+Math.round(Math.asin(0.5)*180/Math.PI)) // O arco seno de 0,5 em graus é 30
document.write("<br>"+Math.round(Math.asin(0.5)*graus())) // O arco seno de 0,5 em graus é 30

document.write("<br>"+Math.round(Math.acos(-0.5)*180/Math.PI)) // O arco cosseno de -0.5 em graus é 120
document.write("<br>"+Math.round(Math.acos(-0.5)*graus())) // O arco cosseno de -0.5 em graus é 120

document.write("<br>"+Math.round(Math.atan(1)*180/Math.PI)) // O arco tangente de 1 em graus é 45
document.write("<br>"+Math.round(Math.atan(1)*graus())) // O arco tangente de 1 em graus é 45

</script>

 

Logarítmos


Definição

Sendo a e b números reais e positivos com a≠1, chama-se logaritmo de b na base a o expoente x ao qual se deve elevar a base a de modo que a potência ax seja igual a b.

logab=x <=> ax=b

Na expressão logab=x, temos:

Vejamos alguns exemplos de logarítmos:

log24=2, pois 22=4

log381=4, pois 34=81

log77=1, pois 71=7

log51=0, pois 50=1

 

Logaritmo decimal

No âmbito do Ensino Médio, usa-se bastante a base 10, uma vez que neste ambiente a base decimal recebe as preferências para o trabalho com o nosso sistema de numeração, mas devemos observar que em contextos mais avançados, a base decimal tem pouca utilidade. Quando escrevermos Log a partir daqui neste trabalho, entenderemos o Logaritmo na base decimal e escrevemos:


y = Log(x)

para entender que y é o Logaritmo de x na base 10 e nesta base 10, temos algumas características interessantes com os logaritmos das potências de 10

  1. Log(1)=0
  2. Log(0) não tem sentido
  3. Log(10)=Log(101)=1
  4. Log(1/10)=Log(10-1)=-1
  5. Log(100)=Log(10²)=2
  6. Log(1/100)=Log(10-2)=-2
  7. Log(1000)=Log(10³)=3
  8. Log(1/1000)=Log(10-3)=-3
  9. Log(10n)=n
  10. Log(10-n)=-n

A partir da propriedade

Log 10n=n

temos que o Logaritmo de 10n na base 10 é o expoente n, o que nos faz pensar que para todo x real positivo vale a relação:

Log(10x) = x

 

Mudança de base

Apesar de existirem identidades muito úteis, a mais importante para o uso na calculadora é a que permite encontrar logaritmos com bases que não as que foram programadas na calculadora (normalmente loge e log10). Para encontrar um logaritmo com uma base b usando qualquer outra base a:
a

Prova da fórmula de mudança de base

a

por definição

a

aplica-se a em ambos os lados

a

simplifica-se o lado esquerdo da igualdade

a

divide-se por logk(b)


Cálculos mais fáceis

Logaritmos trocam números por expoentes. Mantendo-se a mesma base, é possível tornar algumas poucas operações mais fáceis:

Operação com números

Operação com expoentes

Identidade logarítmica

a

a

a

a

a

a

a

a

a

a

a

a

Demonstração da identidade log(a) + log(b) = log(ab)

Por definição, se: log(a) = x então a = 10x. Logo, considerando-se b = 10y, tem-se:
a

Observa-se em ambos os lados da expressão acima que x + y = x + y, o que comprova a identidade.


Manipulando datas e horas

Existe apenas uma função para que se possa obter a data e a hora. É a função Date(). Esta funão devolve data e hora no formanto: Dia da semana, Nome do mês, Dia do mês, Hora:Minuto:Segundo e Ano

Ex:

Fri May 24 16:58:02 1996

Para se obter os dados separadamente, existem os seguintes métodos:



No exemplo 1 abaixo obteremos o dia da semana e as horas. Para tal, utilizaremos a variável DataToda para armazenar data e hora.

<script language="javascript">
DataToda=new Date()
Dia_do_mes=DataToda.getDate()
Dia_da_semana=DataToda.getDay()
Mes=DataToda.getMonth()
Ano=DataToda.getFullYear()
// ---------------------------------------
Horas=DataToda.getHours()
Minutos=DataToda.getMinutes()
Segundos=DataToda.getSeconds()
// ---------------------------------------
semana = Array(6)
semana[0]="Domingo"
semana[1]="Segunda"
semana[2]="Terça"
semana[3]="Quarta"
semana[4]="Quinta"
semana[5]="Sexta"
semana[6]="Sabado"
Semana_atual=semana[Dia_da_semana]
//-------------------------
Mes2=Array(11)
Mes2[0]="Janeiro"
Mes2[1]="Fevereiro"
Mes2[2]="Março"
Mes2[3]="Abril"
Mes2[4]="Maio"
Mes2[5]="Junho"
Mes2[6]="Julho"
Mes2[7]="Agosto"
Mes2[8]="Setembro"
Mes2[9]="Outubro"
Mes2[10]="Novembro"
Mes2[11]="Desembro"
Mes_atual=Mes2[Mes]
document.write(Semana_atual+", "+Dia_do_mes+" de "+Mes_atual+" de "+Ano)
document.write("<br>")
document.write("São: "+Horas+" horas, "+Minutos+" minutos e "+Segundos+" segundos.")
</script>

exemplo 4: alterando a data

Para criar uma variável tipo Date com o conteúdo informado pela aplicação, existe o métido set. Assim temos os seguintes métodos: setDate, setDay, setMonth, setYear, setHours, setMinutes e setSeconds. Os mas importantes são:

<script language="javascript">
DataToda=new Date()
DataToda.setDate(28)
DataToda.setMonth(4)
DataToda.setYear(1997)
// ---------------------------------------
Dia_do_mes=DataToda.getDate()
Dia_da_semana=DataToda.getDay()
Mes=DataToda.getMonth()
Ano=DataToda.getFullYear()
// ---------------------------------------
semana = Array(6)
semana[0]="Domingo"
semana[1]="Segunda"
semana[2]="Terça"
semana[3]="Quarta"
semana[4]="Quinta"
semana[5]="Sexta"
semana[6]="Sabado"
Semana_atual=semana[Dia_da_semana]
//-------------------------
Mes2=Array(11)
Mes2[0]="Janeiro"
Mes2[1]="Fevereiro"
Mes2[2]="Março"
Mes2[3]="Abril"
Mes2[4]="Maio"
Mes2[5]="Junho"
Mes2[6]="Julho"
Mes2[7]="Agosto"
Mes2[8]="Setembro"
Mes2[9]="Outubro"
Mes2[10]="Novembro"
Mes2[11]="Desembro"
Mes_atual=Mes2[Mes]
document.write(Semana_atual+", "+Dia_do_mes+" de "+Mes_atual+" de "+Ano)
</script>

exmeplo 3: vendo as horas

<script language="javascript">
rel = new Date()
hora = rel.getHours()
minuto = rel.getMinutes()
segundo = rel.getSeconds()

temp = hora
temp += ((minuto < 10) ? ":0" : ":") + minuto
temp += ((segundo < 10) ? ":0" : ":") + segundo
document.write("São exatamente: "+temp)
</script>

Exemplo 4: relógio

<HTML>
<HEAD>
<TITLE> Exemplo </TITLE>
<SCRIPT language="javascript">
function relogio() {
rel = new Date()
hora = rel.getHours()
minuto = rel.getMinutes()
segundo = rel.getSeconds()
temp = "" + hora
temp += ((minuto < 10) ? ":0" : ":") + minuto
temp += ((segundo < 10) ? ":0" : ":") + segundo
document.form1.text1.value = temp
setTimeout("relogio()", 1000)
}
</SCRIPT>
</HEAD>
<BODY onLoad="relogio()">
<FORM NAME="form1">
São exatamente:
<INPUT TYPE="text" NAME="text1" SIZE="8" VALUE="">
</FORM>
</BODY>
</HTML>

Usando o Timer

É um método que permite a programação para que uma determinada ação só ocorra após o transcusro de um determinado tempo.

Variável = setTimeout("ação",tempo)

Variável é uma variável apenas para controle do timer

ação é a ação que se quer realizar

tempo é o tempo de espera para que a ação ocorra em milisegundos.

Obs:

É importante observar que a ação só ocorrerá uma vez. para que a ação volte a ocorrer, será necessãrio repetir o comando dentro da ação, optendo-se, assim um LOOP.

Para interromper um LOOP, provocado pela forma acima, deve-se utilizar o seguinte método:

clearTimeout(Variável)

Onde:

Variável é o nome da variável de controle do timer.

<HTML>
<HEAD>
<TITLE> Exemplo </TITLE>
<SCRIPT language="javascript">
function relogio() {
rel = new Date()
hora = rel.getHours()
minuto = rel.getMinutes()
segundo = rel.getSeconds()
temp = "" + hora
temp += ((minuto < 10) ? ":0" : ":") + minuto
temp += ((segundo < 10) ? ":0" : ":") + segundo
document.form1.text1.value = temp
controleRelogio=setTimeout("relogio()", 1000)
}
</SCRIPT>
</HEAD>
<BODY>
<FORM NAME="form1">
São exatamente:
<INPUT TYPE="text" NAME="text1" SIZE="8" VALUE=""><br>
<INPUT TYPE="button" VALUE="Ativar Relógio" onClick="relogio()">
<INPUT TYPE="button" VALUE="Parar Relógio" onClick="clearTimeout(controleRelogio)">
</FORM>
</BODY>
</HTML>

ArrayList

add(Object o): adiciona à coleção o objeto passado como argumento.
size(): retorna o tamanho da coleção
get(int index): retorna um objeto dada uma posição.

import java.util.ArrayList;

public class JavaTeste {
public static void main(String[] args) {
ArrayList<String> frutas = new ArrayList<String>();

// adiciona itens na lista
frutas.add("Banana");
frutas.add("Melão");
frutas.add("Goiaba");
frutas.add("Morango");

// exibe os valores da lista
for(int i = 0; i < frutas.size(); i++){
System.out.println(frutas.get(i));
}

}
}

Resultado:

Banana
Melão
Goiaba
Morango

add(int index, Object element): adiciona um objeto dada uma posição.

import java.util.ArrayList;

public class JavaTeste {
public static void main(String[] args) {
ArrayList<String> frutas = new ArrayList<String>();

// adiciona itens na lista
frutas.add("Banana");
frutas.add("Melão");
frutas.add("Goiaba");
frutas.add("Morango");

frutas.add(1, "======");

// exibe os valores da lista
for(int i = 0; i < frutas.size(); i++){
System.out.println(frutas.get(i));
}

}
}

Resultado:

Banana
======
Melão
Goiaba
Morango

set(int index, Object element): edita um objeto dada uma posição.

import java.util.ArrayList;

public class JavaTeste {
public static void main(String[] args) {
ArrayList<String> frutas = new ArrayList<String>();

// adiciona itens na lista
frutas.add("Banana");
frutas.add("Melão");
frutas.add("Goiaba");
frutas.add("Morango");

frutas.set(1, "======");

// exibe os valores da lista
for(int i = 0; i < frutas.size(); i++){
System.out.println(frutas.get(i));
}

}
}

Resultado:

Banana
======
Goiaba
Morango

remove(int index): remove um objeto dada sua posição.

import java.util.ArrayList;

public class JavaTeste {
public static void main(String[] args) {
ArrayList<String> frutas = new ArrayList<String>();

// adiciona itens na lista
frutas.add("Banana");
frutas.add("Melão");
frutas.add("Goiaba");
frutas.add("Morango");

frutas.remove(1);

// exibe os valores da lista
for(int i = 0; i < frutas.size(); i++){
System.out.println(frutas.get(i));
}

}
}

Resultado:

Banana
Goiaba
Morango

clear(): apaga todo o conteúdo da coleção.

import java.util.ArrayList;

public class JavaTeste {
public static void main(String[] args) {
ArrayList<String> frutas = new ArrayList<String>();

// adiciona itens na lista
frutas.add("Banana");
frutas.add("Melão");
frutas.add("Goiaba");
frutas.add("Morango");

frutas.clear();

// exibe os valores da lista
for(int i = 0; i < frutas.size(); i++){
System.out.println(frutas.get(i));
}

}
}

Resultado

 

boolean contains(Object o): verifica se o objeto passado como argumento existe na coleção.
ArrayList lista = new ArrayList();
lista.add(“Jose”);
lista.add(“Maria”);
System.out.println(lista.contains(“Jose”)); // True
Object[ ] toArray(): converte os elementos da coleção em um array (rápidos acesso aos elementos).
ArrayList lista = new ArrayList();
lista.add(“Jose”);
lista.add(“Maria”);
lista.add(“Joao”);
Object[] elementos = lista.toArray();
for(int i=0; i<elementos.length;i++) {
System.out.println(elementos[i]);
}
int indexOf (Object o): retorna a posição de um objeto.
ArrayList lista = new ArrayList();
lista.add(“Jose”);
lista.add(“Maria”);
lista.add(“João”);
lista.indexOf(“Maria”); //1
int lastIndexOf (Object o): retorna o último índice de um objeto.
ArrayList lista = new ArrayList();
lista.add(“Maria”);
lista.add(“Maria”);
lista.lastIndexOf(“Maria”); //1

ArrayList (Matriz)

Não utilize Matriz no ArraList, pode acontecer erros.

Arquivo: JavaTeste.java

import java.util.ArrayList;

public class JavaTeste {
    public static void main(String[] args) {
        ArrayList < ArrayList > Exemplo = new ArrayList < ArrayList > ();

        int numero_deLinhas = 4;

        for (int i = 0; i < numero_deLinhas; i++) {
            Exemplo.add(new ArrayList < String > ());
        }

        Exemplo.get(0).add("Linha 1 Coluna 1");
        Exemplo.get(0).add("Linha 1 Coluna 2");
        Exemplo.get(0).add("Linha 1 Coluna 3");

        Exemplo.get(1).add("Linha 2 Coluna 1");
        Exemplo.get(1).add("Linha 2 Coluna 2");
        Exemplo.get(1).add("Linha 2 Coluna 3");

        Exemplo.get(2).add("Linha 3 Coluna 1");
        Exemplo.get(2).add("Linha 3 Coluna 2");
        Exemplo.get(2).add("Linha 3 Coluna 3");

        Exemplo.get(3).add("Linha 4 Coluna 1");
        Exemplo.get(3).add("Linha 4 Coluna 2");
        Exemplo.get(3).add("Linha 4 Coluna 3");

        for (int i = 0; i < numero_deLinhas; i++) {
            for (int j = 0; j < Exemplo.size(); j++) {
                try {
                    System.out.println(Exemplo.get(i).get(j));
                } catch (IndexOutOfBoundsException e) {}
            }
        }

    }
}

Resultado:

Linha 1 Coluna 1
Linha 1 Coluna 2
Linha 1 Coluna 3
Linha 2 Coluna 1
Linha 2 Coluna 2
Linha 2 Coluna 3
Linha 3 Coluna 1
Linha 3 Coluna 2
Linha 3 Coluna 3
Linha 4 Coluna 1
Linha 4 Coluna 2
Linha 4 Coluna 3