Skip to content

silveira neto Posts

JavaScript: Vetores

Um tutorial básico orientado a exemplos de como funcionam os vetores em JavaScript.

Criando e acessando um vetor

var planetas = new Array()
planetas[0] = "Mercúrio"
planetas[1] = "Vênus"
planetas[2] = "Terra"
planetas[3] = "Marte"
planetas[4] = "Júpiter"
planetas[5] = "Saturno"
planetas[6] = "Urano"
planetas[7] = "Neptuno"
 
for (i=0;i

Que vai escrever isso:

Mercúrio
Vênus
Terra
Marte
Júpiter
Saturno
Urano
Neptuno

Iterando no vetor

var planetas = new Array()
planetas[0] = "Mercúrio"
planetas[1] = "Vênus"
planetas[2] = "Terra"
planetas[3] = "Marte"
planetas[4] = "Júpiter"
planetas[5] = "Saturno"
planetas[6] = "Urano"
planetas[7] = "Neptuno"
 
for (i in planetas){
    document.write(planetas[i] + "")
}

vai retornar a mesma saída do primeiro programa:

Que vai escrever isso:

Mercúrio
Vênus
Terra
Marte
Júpiter
Saturno
Urano
Neptuno

Concatenando dois vetores

var litoral = new Array()
litoral[0] = "Jericoacoara"
litoral[1] = "Paracuru"
litoral[2] = "Tabuba"
 
var sertao = new Array()
sertao[0] = "Itapipoca"
sertao[1] = "Ubajara"
sertao[2] = "Juazeiro"
 
var ceara = litoral.concat(sertao)
 
document.write(litoral+"
")
document.write(sertao+"
")
document.write(ceara+"
")

Jericoacoara,Paracuru,Tabuba
Itapipoca,Ubajara,Juazeiro
Jericoacoara,Paracuru,Tabuba,Itapipoca,Ubajara,Juazeiro

Unindo os elementos de um vetor

var letras = new Array(3)
letras[0] = "A"
letras[1] = "B"
letras[2] = "C"
document.write(letras.join() + "")
document.write(letras.join("@"))

A,B,C
A@B@C

Ordenação Literal

Essa ordenação é feita sem usar nenhum parâmetro, então a ordem lexicográfica, a do dicionário.

var coisas = new Array(4)
coisas[0] = "casa"
coisas[1] = "bonde"
coisas[2] = "alvo"
coisas[3] = "dado"
 
document.write(coisas + "")
document.write(coisas.sort()+ "")
document.write(coisas + "")

Note que depois do .sort() o vetor é alterado.

casa,bonde,alvo,dado
alvo,bonde,casa,dado
alvo,bonde,casa,dado

Ordenação usando uma função de ordenação

A ordenação literal não vai funcionar bem nesse caso, então nos definimos uma função para ordenação. Ela deve retornar zero se ambos forem iguais, um número positivo se o primeiro for maior que o segundo e um número negativo se o segundo for maior que o primeiro.

function sortNumber(a, b){
return a - b
}
 
var arr = new Array(6)
arr[0] = "10"
arr[1] = "5"
arr[2] = "40"
arr[3] = "25"
arr[4] = "1000"
arr[5] = "1"
 
document.write(arr + "")
document.write(arr.sort()+"
")
document.write(arr.sort(sortNumber))

10,5,40,25,1000,1
1,10,1000,25,40,5
1,5,10,25,40,1000

Retirando o último elemento

O pop retorna o último elemento do vetor e o retira.

var gatos = new Array(3)
gatos[0] = "Frida"
gatos[1] = "Sauber"
gatos[2] = "Boris"
document.write(gatos + "")
document.write(gatos.pop() + "")
document.write(gatos)

Frida,Sauber,Boris
Boris
Frida,Sauber

Inserindo elementos no final do vetor

O push insere um elemento no final do vetor e retorna seu novo tamanho.

var animais = new Array(3)
animais[0] = "Frida"
animais[1] = "Sauber"
animais[2] = "Frida"
document.write(animais + "")
document.write(animais.push("Vida")+ "")
document.write(animais)

Frida,Sauber,Frida
4
Frida,Sauber,Frida,Vida

Inserindo elementos no inicio do vetor

var inst = new Array(3)
inst[0] = "Baixo"
inst[1] = "Guitarra"
inst[2] = "Piano"
document.write(inst + "")
document.write(inst.unshift("Flauta") + "")
document.write(inst)

Baixo,Guitarra,Piano
4
Flauta,Baixo,Guitarra,Piano

Retirando elemento no inicio do vetor

var inst = new Array(3)
inst[0] = "Baixo"
inst[1] = "Guitarra"
inst[2] = "Piano"
 
document.write(inst + "")
document.write(inst.shift() + "")
document.write(inst)

Baixo,Guitarra,Piano
Baixo
Guitarra,Piano

JavaScript: Relógio Digital


Código-Fonte

Aqui na página colocamos:

<input type='text' value='00:00:00' id='relogio' readonly size='6'
style="font-size: 200%; color:red"/>
<script type="text/javascript" src="/scripts/relogio.js"></script>

Que cria um input de texto com nome relógio e depois chamamos o script relogio.js que contém o seguinte código:

function proximo_segundo(){
	var hoje = new Date
	var hora = hoje.getHours()
	var minutos = hoje.getMinutes()
	var segundos = hoje.getSeconds()
	relogio = document.getElementById('relogio')
	relogio.value = hora +":"+minutos+":"+segundos
	setTimeout('proximo_segundo()',1000)
}
proximo_segundo()

Ele cria um objeto Date, encontro o elemento com id ‘relogio’ e coloca no valor dele as informações extraídas do objeto Date. Em seguida ele agenda para daqui a um segundo chamar a si próprio, recursivamente.

Um refinamento que se pode fazer nesse código é uma função auxiliar para preencher com um zero à esquerda, transformando 1:2:3 em 01:02:03. Eu não coloquei isso para deixar o código o mais simples possível.

Como eu ainda sou muito novinho no JavaScript eu não sei se usar uma recursão desse tipo é uma boa idéia ou não. Era isso ou um laço infinito.

JavaScript: Informações sobre o Navegador do Usuário


Você deve estar vendo na caixinha de cima várias informações sobre o seu navegador.
O trecho do código JavaScript que gerou isso foi:

<TEXTAREA id="nav_info" cols="60"></textarea>
<script type="text/javascript">document.getElementById("nav_info").value =
navigator.appName+
navigator.appVersion+
navigator.appCodeName+
navigator.platform+
navigator.userAgent</script>

Cada um das variáveis lidas de navigator contém algum tipo de informação útil sobre as características do navegador.

É a Vida, é Bonita e é Bonita

A cachorrinha nova da Ana Paula, o nome dela é Vida. Ela ainda é uma filhotinha e é da raça Pug.

Vida, a pug

É uma raça muito carinho, sociável, obediente e leal. Como eles tem vias nasais bem pequenas, eles tem jeito estranho de respirar. Para quem nunca esteve perto de um Pug antes, como eu, a impressão que se tem é que ele está doente ou sem conseguir respirar.

Fotos:

Deborah e Vida, cachorra, cadela Deborah e Vida Deborah e Vida beijando-se Vida cabisbaixa Vida de cachorro Vida dormindo Vida Olhando a Vida Vida olhando para a c Vida Olhando para cima na grama Pug sentado na mesa Pug olhando para trás Pug pensando pug olhando pra trás pug pensando Pug tristonha

Conclusão: até o Mickey que é um rato tem um cachorro. Só eu que não tenho :(

Javascript dentro do WordPress

Vamos fazer um teste:

O código-fonte:

<input type='button' value='clique em mim' onclick="alert('funcionou')"/>

Se você clicou no botão e apareceu uma janelinha chata, então a coisa deu certo.

Para escrever códigos dentro do WordPress você precisa desligar o editor rico nas configurações. Além disso é necessário escrever códigos de uma só linha. Para códigos mais violentos, você precisa invocar o código de um arquivo .js externo.

<SCRIPT src="my.js" type="text/javascript"></SCRIPT>

Se você escrever o código dentro do editor o WordPress vai esculhambar seu código com tags html de fim de linha e parágrafo. Então você vai precisar realmente de um arquivo externo.

Decimal para Binário

Código em C para converter um inteiro positivo em uma representação em string binária.

#include<stdio.h>
#include<stdlib.h>
#include<string.h>
 
char * decpbin(unsigned int n){
   int i, r, c;
   char * bin;
   bin = calloc(16,sizeof(char));
   memcpy(bin, "0000000000000000", 16);
   i = n;
   c = 0;
   while(i>0){
      r = i % 2;
      i = i/2;
      bin[15-c] = '0'+r;
      c++;
   }
   return bin;
}
 
int main(){
   char * dec;
   dec = decpbin(1985);
   printf("%s\n", dec);
   free(dec);
}

Compilando e Testando:

$ gcc decbin.c -o decbin
$ ./decbin
0000011111000001

No caso, ele foi feito para inteiros não sinalizados. Como um inteiro ocupa 16 bits, e não estamos gastando um bit para o sinal, o maior número que pode ser convertido é 65535. Por isso criamos a string bin com 16 casas de tamanho.

Basicamente é o algoritmo que se usa para transformar um inteiro em binário. Você pega o número, pega o resto da divisão por 2, que vai ser 0 ou 1 e usa isso para representar o bit menos significativo, ou seja, o mais a direita. Depois pega o número e divide por dois e pega novamente o resto. Fica fazendo isso até que o número dividido por 2 seja 0.