Você está na página 1de 21

Algoritmos

em Javascript

Sumrio

Algoritmos
O que um programa?
Entrada e Sada de Dados
Programando
O que necessrio para programar
em JavaScript?
Variveis
Tipos de Variveis
Arrays
ndices Numricos
ndices Associativos
Pegando Dados Externos
Operadores
Operadores de Atribuio
Operadores Aritmticos
Operadores Relacionais
Operadores Lgicos
Incremento e Decremento
Comentrios
Funes
Estruturas de Controle
If
Switch
Estruturas de Repetio
While
For
Do/While

1
1
3
4
4
5
6
8
8
8
9
10
10
10
11
12
13
13
14
15
15
17
18
18
18
19

Algoritmos em JavaScript
Algoritmos
Um algoritmo uma seqncia de instrues definidas para serem executadas
mecanicamente. Todos os dias realizamos algoritmos e no percebemos. Basicamente todas as
manhs ns nos levantamos da cama, tomamos o caf da manh, nos arrumamos e vamos ao
trabalho. Entre cada uma dessas aes descritas, realizamos vrias outras aes. Nosso prprio
corpo realiza algoritmos o tempo inteiro realizando decises. Se nos machucamos, sentimos
dor. Se o ambiente externo tem temperatura baixa, o corpo treme para tentar aumentar a
temperatura novamente.
Todo algoritmo segue uma seqncia lgica. Geralmente um algoritmo lido de cima pra
baixo e da esquerda pra direita. Cada linha de cdigo lida e, caso no haja nenhum erro,
executada e logo depois lida a prxima linha e assim sucessivamente at terminarem as
linhas do algoritmo.
Como exemplo de algoritmo podemos pensar em um ser humano andando. Observe:
1.
2.
3.
4.
5.
6.
7.
8.

Levantar a perna direita


Inclinar o corpo para frente
Baixar a perna direita
Apoiar o p direito no cho
Levantar a perna esquerda
Baixar a perna esquerda
Apoiar o p esquerdo no cho
Levantar a perna direita...

Outro exemplo de algoritmo seria fazer um calculo simples como a soma ou multiplicao de
dois nmeros como no exemplo abaixo:
1.
2.
3.
4.

Ler primeiro nmero


Ler segundo nmero
Somar os dois nmeros lidos
Exibir o resultado

O que um programa?
Um programa um ou mais algoritmos escritos numa linguagem de programao. Existem
diversas linguagens de programao atualmente. A grosso modo as linguagens mais fceis so
chamadas de linguagens de alto nvel e as mais difceis so chamadas de linguagens de
baixo nvel. As Linguagens de Baixo nvel so assim chamadas por que voc precisa trabalhar
mandando comandos e recebendo respostas direto para o hardware. As Linguagens de Alto
nvel so assim chamadas por que elas escondem as tarefas difceis como trabalhar direto
com hardware, o que facilita o desenvolvimento do cdigo e aumenta a velocidade de
programao.
Mayck Xavier

contato@mayckxavier.com

Pgina 1 de 21

Algoritmos em JavaScript
Exerccios:
1. Escreva um algoritmo para pentear o cabelo. Tente ser bem especifico e detalhado em
cada ao realizada.

Mayck Xavier

contato@mayckxavier.com

Pgina 2 de 21

Algoritmos em JavaScript
Entrada e sada de dados
Muitas vezes no percebemos, mas para haver o processamento de informaes, necessrio
ter informaes para que elas sejam processadas. Um programa precisa que dados sejam
inseridos nele para que eles sejam processados e retorne algum resultado daquele
processamento. Esses dados podem ser inseridos pelo usurio do programa e algumas vezes o
usurio no sabe que est inserindo dados. Digitar texto em um formulrio
formulrio eletrnico ou o
simples ato de copiar um arquivo para o seu computador considerado entrada de dados.

Exerccio: Escreva alguns modos de entrada e sada de dados. Ao lado de cada um, diga se
entrada ou sada.

Mayck Xavier

contato@mayckxavier.com

Pgina 3 de 21

Algoritmos em JavaScript
Programando
A partir de agora, utilizaremos uma linguagem de programao. Assim podemos ver melhor os
resultados e realmente programar. Utilizaremos a linguagem Javascript por ser fcil e no ser
necessrio a instalao de nenhum programa na maioria dos sistemas operacionais atuais no
mercado, entretanto recomendado que voc utilize um editor de textos que faa a colorao
do seu cdigo para que fique mais fcil o aprendizado. Nos exemplos da apostila ser utilizado
o GVim (http://www.vim.org/).
Antes de comearmos a escrever necessrio saber o que o Javascript. Javascript foi
inicialmente criada pela Netscape em 1995 para se desenvolver websites dinmicos tendo em
vista que no inicio da internet todos os sites eram estticos, ou seja, no haviam mudanas em
seu comportamento inicial. A linguagem tem total integrao com o HTML por meio do DOM
(Document Object Model), assim a mesma pode manipular qualquer elemento em uma
pgina. Devido ao seu sucesso, o Javascript hoje suportado pela maioria dos navegadores
que seguem os padres W3C () e outros no mercado.

O que necessrio para programar em Javascript?


Apenas um navegador, como o Mozilla Firefox, Internet Explorer, Google Chrome e Safari, e
um editor de texto, como o Bloco de Notas (Microsoft Windows), GEdit (GNU/Linux com a
interface Gnome) ou Vi (Utilizado em grande parte das distribuies GNU/Linux), pode ser
utilizado para programar em Javascript. Recomendo que utilize um editor que tenha highlight
(utiliza cores para mostrar diferentes elementos no programa), como o Notepad++
(http://notepad-plus.sourceforge.net/), para que a programao seja mais fcil e encontrar
erros mais rapidamente. necessrio tambm salvar o arquivo com a extenso .htm ou
.html para que o navegador execute o que est escrito no arquivo.

Mayck Xavier

contato@mayckxavier.com

Pgina 4 de 21

Algoritmos em JavaScript
Variveis
Variveis so espaos em memria onde podemos alocar algum valor temporariamente. Como
o nome diz, o valor de uma varivel pode ser alterado.

Acabamos de inicializar uma varivel, mas a mesma ainda no


no tem valor algum. A seguir, um
exemplo de uma varivel recebendo valores.

O cdigo acima cria a varivel num, atribui o nmero 10 como valor para ela e por fim
imprime o valor da varivel em tela com o comando document.write. Sempre que precisar
imprimir
primir um texto, um nmero ou o valor de uma varivel utilize-o.
utilize
Aps esses pequenos exemplos j podemos definir algumas regras para trabalhar com o
Javascript com linguagem.
1 Sempre que for definir criar uma varivel, escreva var antes do nome da mesma.
me
Isso ser bastante til e seu benefcio ser mostrado quando falarmos sobre escopo de
varivel mais frente;
2 Toda linha deve terminar com o sinal de ; (Ponto e vrgula). Assim o interpretador
saber que aquela linha de cdigo acabou.
3 Um cdigo
digo em Javascript deve ser colocado entre as TAGS <script> e </script>.
Isso apenas para realizar nossos algoritmos. Caso voc trabalhe com Html seguindo os
padres W3C, ser necessrio mais informaes dentro da Tag <script>, mas esse no o
nosso foco no momento.

Mayck Xavier

contato@mayckxavier.com

Pgina 5 de 21

Algoritmos em JavaScript
Tipos de Varireis
O Javascript tem trs tipos de variveis: Numrico, Booleano e Cadeias de Caracteres.
As variveis numricas contem nmeros, sejam eles inteiros ou de ponto flutuante e podem
ser utilizadas para fazer clculos de qualquer tipo.
Exemplo:

Os dois modos para criao de variveis e atribuio de valores esto corretos. Podemos
declarar uma varivel e depois atribuir um valor ela ou no ato da declarao da varivel,
definir um valor ela.
As varireis booleanas podem conter apenas dois valores: verdadeiro ou falso.
Exemplo:

As variveis do tipo cadeia de caracteres


caracteres podem receber qualquer tipo de texto. Para isso
necessrio colocar aspas duplas () ou simples () no incio e no fim da cadeia de caracteres.
caractere
Exemplo:

Exerccios:
1 Esse exerccio apenas para fixao de conceitos. Crie variveis com nomes diferentes e
atribua valores a elas. Imprima o valor das variveis com o comando document.write.

Obs.:: Para fazer uma impresso por linha, voc pode


pod utilizar a tag de HTML <br>. Para isso,
basta escrever o cdigo como no exemplo abaixo.

Mayck Xavier

contato@mayckxavier.com

Pgina 6 de 21

Algoritmos em JavaScript
No exemplo acima, estamos utilizando o sinal + para concatenar as cadeias de caracteres,
que agora chamaremos de String. Concatenar significa ligar, ento utilizaremos a palavra
concatenar para dizer que estamos ligando duas Strings.

Mayck Xavier

contato@mayckxavier.com

Pgina 7 de 21

Algoritmos em JavaScript
Arrays
Traduzir array de um modo fcil seria dizer que ele uma varivel que tem o valor de vrias
variveis. Dentro de um array
arra possvel colocar vrios valores diferentes.

Para utilizar um array necessrio que antes de atribuir valores aos seus ndices (Um ndice
um espao dentro do array onde podemos armazenar dados), voc o declare com o comando
new Array(). Aps isso basta atribuir valores aos seus ndices, que podem ser numricos ou
associativos.
ndices Numricos
So os ndices de um array representados por nmeros.

Do mesmo modo que voc atribui valores aos ndices, voc pode acessar seus valores
utilizando o nome do array e seu ndice entre chaves como no exemplo acima. Se voc atribuir
atri
dois valores a um mesmo ndice, o mesmo ser substitudo.
ndices Associativos
ndices Associativos funcionam como os numricos, mas ao invs de nmeros, strings so
utilizados para sinalizar um ndice.

Mayck Xavier

contato@mayckxavier.com

Pgina 8 de 21

Algoritmos em JavaScript
Pegando dados externos
Como j falamos anteriormente,
ormente, para um programa funcionar ele deve ter uma entrada de
dados para que eles sejam processados e serem enviados para uma sada. Utilizando o
comando window.prompt do seguinte modo:

Ao executar o cdigo acima, sero exibidas duas janelas no navegador, uma para cada
comando window.prompt e o que for digitado ser inserido na varivel correspondente.

A opo Impedir que esta pgina crie caixas de dilogo adicionais foi adicionada pelo prprio
navegador.
Agora que podemos pegar dados dos usurios, podemos utilizar esses dados para que nossos
programas comecem a ter vida.
Exerccio:
1 Utilize as caixas de prompt (window.prompt) e faa um pequeno programa que pea
alguns dados para o usurio e os imprima em tela, um por linha.

Mayck Xavier

contato@mayckxavier.com

Pgina 9 de 21

Algoritmos em JavaScript
Operadores
Operador de Atribuio
Como j vimos anteriormente, para atribuir um valor a uma varivel, utilizado o sinal de =.
Voc pode atribuir valores numricos, Strings e booleanos s suas variveis.
Operadores Aritmticos
Operadores Aritmticos servem para calcular nmeros e valores em variveis. Em Javascript
ns temos os seguintes Operadores Aritmticos:
Adio (+)
Subtrao (-)
Multiplicao (*)
Diviso (/)
Resto da Diviso (%)
Utilizaremos o sinal de % quando precisarmos ter o resto de uma diviso, diferente
difer
de / que
retorna o resultado de um nmero dividido pelo outro.
Exemplo:

Mayck Xavier

contato@mayckxavier.com

Pgina 10 de 21

Algoritmos em JavaScript
Operadores Relacionais
Os operadores relacionais so utilizados quando voc precisa descobrir a relao entre um
valor e outro. Os Operadores Relacionais so:
>
<
>=
<=
==
!=

Maior que...
Menor que...
Maior ou igual que...
Menor ou igual que...
Igual a...
Diferente de...

Os Operadores Relacionais retornam sempre um valor booleano, ou seja, true (verdadeiro) ou


false (false). Podemos testar os operadores do seguinte modo:

Mayck Xavier

contato@mayckxavier.com

Pgina 11 de 21

Algoritmos em JavaScript
Operadores Lgicos
Os operadores lgicos servem para se utilizar vrias operaes relacionais em uma mesma
linha.
&&
||
!

E
Ou
No

Os Operadores Lgicos && e || seguem a lgica da tabela verdade, descrita abaixo:


A
Verdadeiro
Verdadeiro
Falso
Falso

B
Verdadeiro
Falso
Verdadeiro
Falso

A
Verdadeiro
Verdadeiro
Falso
Falso

Mayck Xavier

A && B
Verdadeiro
Falso
Falso
Falso

B
Verdadeiro
Falso
Verdadeiro
Falso

contato@mayckxavier.com

A || B
Verdadeiro
Verdadeiro
Verdadeiro
Falso

Pgina 12 de 21

Algoritmos em JavaScript
Incremento e Decremento
Para incrementar em 1 uma varivel, basta utilizar duas vezes o sinal + aps a varivel. Para
decrementar em um, faa o mesmo, porm utilizando o sinal de -.

Exemplo:

Comentrios
Comentrios so utilizados quando voc precisa descrever parte de um cdigo ou apenas para
sinalizar algo importante como um lembrete. Em Javascript existem comentrios de linha e de
bloco. importante sempre fazer comentrios quando for necessrio.

O interpretador do Javascript ir ignorar tudo o que estiver comentado. No comentrio de


linha,, tudo o que estiver aps as barras ser ignorado. J no comentrio de bloco, tudo o que
estiver entre o /* e o */ ser ignorado.

Mayck Xavier

contato@mayckxavier.com

Pgina 13 de 21

Algoritmos em JavaScript
Funes
Algumas vezes ser necessrio que voc execute uma mesma rotina vrias vezes. Para que
voc no precise reescrever
ver o mesmo cdigo vrias vezes, existem as funes. Uma funo
permite que voc passe parmetros para ela. A funo ir realizar o bloco de cdigo definido
dentro das chaves com ou sem os parmetros passados.
Exemplo:

No exemplo anterior ns temos a funo


funo soma que recebe dois nmeros. Ela soma esses
dois nmeros e retorna o resultado da soma.
O comando return utilizado no final da funo retorna a soma das duas variveis que pode ser
utilizado do lado de fora da funo como mostra o exemplo baixo.
baixo

Mayck Xavier

contato@mayckxavier.com

Pgina 14 de 21

Algoritmos em JavaScript
Estruturas de Controle
As estruturas de controles servem para, como o nome diz, controlar
controlar a execuo do programa.
IF
Imagine que no sistema de uma loja virtual apenas maiores de 18 anos de idade podem
realizar compras. Para isso necessrio checar se a idade
idade do comprador maior ou igual a 18
anos. Utilizaremos a estrutura de controle IF (Se) que serve para executar determinado cdigo
caso uma expresso retorne true.
Exemplo:

Nesse exemplo ser testado se a idade do usurio igual ou maior que 18 anos. Se o teste
entre parntesis retornar true, ser executado o cdigo entre as chaves. Esse exemplo
bastante limitado levando em considerao que nada acontecer se o usurio tiver
tiv idade
menor de 18 anos. Sempre que houver a necessidade de que um bloco de cdigo seja
executado se a expresso retornar false, basta adicionar a o bloco do ELSE (SENO) aps os
parntesis do IF.

Se houver a necessidade de fazer mais de um teste, basta


bast utilizar o ELSE IF.

Mayck Xavier

contato@mayckxavier.com

Pgina 15 de 21

Algoritmos em JavaScript

Voc pode perceber que utilizamos o operador lgico && para dizer ao ELSE IF que o valor do
produto deve ser maior que 10 e menor ou igual a 20. Voc pode utilizar quantos ELSE IF
forem necessrios.

Mayck Xavier

contato@mayckxavier.com

Pgina 16 de 21

Algoritmos em JavaScript
Switch
O Switch utilizado quando voc precisa de comparaes simples como, por exemplo,
comparar se a letra digitada uma vogal ou consoante.

Mayck Xavier

contato@mayckxavier.com

Pgina 17 de 21

Algoritmos em JavaScript
Estruturas de Repetio
As estruturas de Repetio so utilizadas quando voc precisa repetir um cdigo vrias vezes
enquanto uma determinada
minada condio no for satisfeita. Em Javascript existem 3 estruturas de
repetio.
While
O while ir executar um bloco de cdigo at que sua condio seja satisfeita. Veja o exemplo:

Acima temos um problema. O valor de num nunca ser igual ou maior que 20, ento o
programa entrar no que chamamos de loop infinito. Ele entrar nesse bloco de cdigo e
executar infinitamente, geralmente travando a o seu navegador. Para que isso no acontea,
necessrio que voc faa com que a varivel num receba um valor
valor que no satisfaa a
condio do while. Um exemplo simples seria incrementar a varivel a cada loop.

Pronto. Agora o while executar o cdigo um nmero limitado de vezes e sair logo assim que
a condio no mais o satisfizer.
For
O for funciona do mesmo
o modo que o while, mas utilizando ele fica mais fcil no esquecer
declarar uma varivel ou increment-la.
increment . O For apresenta uma sintaxe mais definida.

Podemos ver que o for recebe 3 parmetros. O primeiro a varivel com o seu valor inicial. O
segundo a condio que deve ser satisfeita e no terceiro parmetro voc pode incrementar a
varivel como eu fiz ou atualizar o valor dela.
Mayck Xavier

contato@mayckxavier.com

Pgina 18 de 21

Algoritmos em JavaScript
Do/While
O Do/While mais parecido com o while, porm ao invs de ele fazer o teste antes da
execuo do bloco, seu teste feito apenas depois.

A grande diferena entre o While e o Do/While que no do/while o cdigo no bloco ser
executado
do pelo menos uma vez, mesmo se a condio no for satisfeita.

Mayck Xavier

contato@mayckxavier.com

Pgina 19 de 21