Buscar

Slides de Aula Linguagem de Programação - Unidade III

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 3, do total de 34 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 6, do total de 34 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 9, do total de 34 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Prévia do material em texto

100
Unidade III
Unidade III
5 LINGUAGEM DE PROGRAMAÇÃO VBSCRIPT
5.1 Introdução
O Visual Basic Script Language (VBScript) é uma das muitas linguagens de script que rodam 
em um servidor e, para o IIS (servidor web da Microsoft voltado a seus sistemas operacionais para 
servidores), ela é a linguagem padrão. Utilizar esta linguagem para desenvolver aplicações não é difícil. 
A seguir, algumas características da linguagem:
• é um subconjunto do Visual Basic, logo, será muito familiar se o usuário já tiver usado Visual Basic 
ou Visual Basic Application (VBA);
• permite a manipulação de números, datas e strings;
• possibilita a utilização dos comandos do Visual Basic, com exceção dos comandos de manipulação 
de banco de dados e de acesso aos periféricos;
• o acesso ao banco de dados é feito através do objeto ActiveX Data Object (ADO).O VBScript apenas 
cria instâncias e através dos métodos desse objeto os dados podem ser manipulados;
• tem um mecanismo de comunicação com servidores de objetos Common Object Model (COM), 
como o Microsoft Exchange Server, Microsoft Index Server, Database Servers.
O VBScript é uma linguagem leve, baseada nas funcionalidades do Visual Basic e que roda nativamente 
no browser Internet Explorer. A execução em outros browsers também pode ser realizada através de plug-ins.
 Observação
Sendo uma linguagem baseada nos conceitos e aplicações do Visual Basic 
puro, o VB Script adota as mesmas definições para manipulação de dados, 
criação de estruturas para execução dos scripts e estruturas de decisão.
5.2 Características do VBScript
Há algumas características comuns nas linguagens de scripting que as tornam mais fáceis de serem 
utilizadas, principalmente para pessoas com pouca experiência em sua utilização. No entanto, essas 
mesmas facilidades também podem se tornar uma fonte de problemas, se não tomados os devidos 
cuidados. Podemos ver algumas dessas características:
101
LINGUAGEM DE PROGRAMAÇÃO APLICADA
Maiúsculas e minúsculas
Para a linguagem VBScript, o código pode ser escrito tanto em letras maiúsculas quanto em 
letras minúsculas.
 Observação
O VBScript não é CASE Sensitive, ou seja, ele interpreta os comandos 
independentemente se estão escritos em letra maiúscula ou minúscula.
Variáveis
As variáveis são espaços reservados na memória, utilizados para ler e escrever dados que são 
utilizados em programas ou scripts. Em VBScript, as variáveis não devem ser declaradas, ou seja, quando 
necessário, ela é utilizada e pronto. Mesmo assim, caso se deseje declarar uma variável, utiliza-se a 
palavra DIM. Não existem tipos: as variáveis não estão classificadas por tipos, isso quer dizer que podem 
ser salvas nelas igualmente números, letras ou outras coisas.
 Lembrete
As variáveis só podem ser utilizadas ao longo de um código de programa 
caso tenham sido declaradas de forma correta, definindo-se o nome e o seu 
tipo. Essa declaração pode ser feita em qualquer ponto do código, porém 
o ideal é que sejam declaradas no início, para um melhor entendimento.
 Observação
O VBScript suporta apenas o tipo de variável Variant. Esse tipo é único 
pois suporta todos os outros tipos: integer, double, string, date e currency. 
O tipo Variant assume o tipo de variável dependendo da atribuição feita a ele.
Quebras de linha
As quebras de linha são muito importantes, pois expressam o final de uma instrução e o início da 
instrução seguinte. Não se pode colocar duas instruções em uma mesma linha.
Comentários
Códigos-fonte de programação podem ser difíceis de ler e entender. Práticas de programação até 
podem melhorar isso um pouco, mas se um programador quer ter certeza que vai entender seu código 
posteriormente, ele deverá usar o recurso de comentários disponibilizado pelo VBScript.
102
Unidade III
Para comentar uma linha de um código desenvolvido em VBScript, deve-se inserir aspas simples no 
início dessa linha, assim, essa linha será ignorada pelo interpretador do código do sistema.
Na sequência, apresentamos um script simples, que exemplifica essas características vistas 
anteriormente. Esse script faz com que janelas do tipo message box sejam abertas, trazendo o conteúdo 
da variável pepe. Em seguida, o valor da variável é alterado, e a janela é chamada novamente.
Nesse exemplo, podemos comprovar que os comandos podem ser escritos tanto em letras maiúsculas 
quanto em letras minúsculas. Também podemos ver os comentários inseridos no código através do uso 
das aspas simples. Além disso, podemos verificar que as variáveis podem receber qualquer tipo de valor, 
nesse caso, textos e números.
<HTML>
<HEAD>
<TITLE>Exemplo2 Comentário, caixa alerta e variáveis</TITLE>
</HEAD>
<BODY>
<script language=VBScript>’Isto é um comentário
PEPE=”OIquot;
msgbox(pepe)
pepe=3456
‘NAO importam as maiusculas-minusculas
msgbox(PEPE)
</script>
</BODY>
</HTML>
5.3 Criando uma página ASP
Inicialmente, deve-se ter em mente que será necessário interpretar os códigos do VBScript. 
O responsável por essa interpretação é o Internet Information Server (IIS), sendo assim, entende-se que 
o código deve ser interpretado no servidor, e não no cliente (browser).
Existem algumas instruções que devem ser seguidas para que o código seja interpretado pelo 
servidor. Seguem algumas delas:
Utilizando a tag <% %>
Utiliza-se a tag <% e %> quando se deseja executar algum código VBScript no servidor. O código 
deve ser inserido entre esses caracteres para poder ser interpretado. 
Quando o script possuir código HTML e VBScript, o servidor saberá qual informação deverá ser 
retornada para o cliente (browser). Por exemplo:
103
LINGUAGEM DE PROGRAMAÇÃO APLICADA
<% if Hour(Now) < 12 then %>
Bom dia!
<% else %>
Boa tarde!
<% end if %>
No código do exemplo anterior, os comandos que estiverem entre a tag <% %> serão interpretados 
pelo servidor IIS. Se a hora for menor que 12, será mostrado um HTML com o texto “Bom dia!”; se não, 
o HTML retornado pelo servidor conterá o texto “Boa Tarde!”.
Para retornar valores de variáveis no HTML diretamente do script, deve ser utilizada a seguinte sintaxe:
A data de hoje é <% = Date %>.
Utilizando a tag <SCRIPT>
Utilizando essa tag, também é possível criar scripts que rodam no servidor, conforme pode ser visto 
a seguir:
<SCRIPT LANGUAGE = VBScript RUNAT=Server>
</SCRIPT>
É preciso especificar qual a linguagem script que será utilizada no código e onde esse código será 
interpretado. A partir daí, basta realizar a chamada de alguma parte do HTML. No exemplo anterior, 
a linguagem script que estiver entre a tag <SCRIPT></SCRIPT> deve ser do tipo VBScript e será 
interpretada por um servidor IIS. Essa tag é muito utilizada para criar funções e sub-rotinas. Por exemplo:
<SCRIPT LANGUAGE=VBScript RUNAT=Server>
Function RetornaData()
RetornaData = Date
End Function
</SCRIPT>
No caso do exemplo anterior, o código retornará a data do sistema no servidor. Deve-se utilizar as 
tags <% %> para fazer a chamada dessa função, conforme exemplo a seguir:
A data de hoje é <% = RetornaData() %>
Outra forma de retornar valores direto para o HTML é utilizando o método response.write, conforme 
pode ser visto em seguida:
<SCRIPT LANGUAGE=VBScript RUNAT=Server>
Function RetornaData()
Response.Write “A data de hoje é “ & Date & “.”
End Function
</SCRIPT>
104
Unidade III
Quando é realizada uma solicitação ao servidor pela execução de um ASP, o servidor executa as 
funções declaradas nele. Como o método response.write retorna o conteúdo do texto diretamente para 
o HTML, será mostrado para o utilizador o texto definido.
O passo seguinte para a criação de uma página ASP é introduzir o código HTML. 
<HTML>
<BODY>
<% if Hour(Now) < 12 then %>
<CENTER> Bom dia! </CENTER><BR>
<% else %>
<CENTER> Olá! </CENTER><BR>
<% end if %>
<CENTER> A sua primeira página utilizando VBScript e HTML! </CENTER>
</BODY>
</HTML>
Essa mescla de códigos HTML e VBScript constitui uma página ASP. O servidor saberá que o código 
entre <% %> deverá ser interpretado e ocultado para o cliente,mostrando apenas o seu resultado.
 Lembrete
Os arquivos que contêm código VBScript devem ser nomeados com a 
extensão “.ASP”, por exemplo: MeuPrimeiroPrograma.asp. Dessa forma, o 
IIS entenderá que a chamada foi feita a partir de uma página ASP.
Utilizadando a tag <SCRITP></SCRIPT>, o código VBScript e HTML ficará da seguinte forma:
<SCRIPT LANGUAGE=VBScript RUNAT=Server>
Function RetornaData()
RetornaData = Date
End Function
</SCRIPT>
<HTML>
<BODY>
<CENTER><B>A data de hoje é <% = RetornaData() %>.</B></CENTER>
</BODY>
</HTML>
O VBScript também permite criar rotinas que sejam executadas do lado do cliente (browser). Para 
isso, devemos observar dois aspectos principais ao programar sub-rotinas e funções para rodar no 
browser, são eles:
105
LINGUAGEM DE PROGRAMAÇÃO APLICADA
• versão do browser (Internet Explorer);
• a codificação deve ser baseada nos eventos dos objetos do formulário e do próprio formulário. 
Por exemplo: ONCLICK, CHANGE, GOTFOCUS.
A seguir, um exemplo de script em uma página web. Esse código mostra a data da última modificação 
do documento.
<html>
<head>
<title> A última modificação do documento</title>
</head>
<body>
<h1>Script da última modificação de um documento</h1>
<script language=”VBScript”>document.write “Este documento foi atualizado pela última 
vez em: “document.write document.lastmodified
</script>
</body>
</html>
<p><input type=”button” name=”BOTAO1”value=”Vamos mudar o value!”></p>
</form>
</body>
</html>
O método document.write escreve na página web o texto que recebe por parâmetro, localizado logo 
após a sentença. A variável document.lastmodified armazena a data e a hora da última atualização do 
documento. Na sequência do código, temos o seguinte trecho:
<form NAME=RodarCli method=”POST”>
<p><input type=”button” name=”BOTAO1” value=”Vamos mudar o value!”></p>
</form>
Nesse trecho, está sendo criado o objeto botão. Para que a sub-rotina seja executada, o botão deve 
ser criado em um form, ser definido um nome para ele e o seu tipo deve ser button. Depois de definir o 
evento que deve disparar a ação (nesse caso, ONCLICK), é necessário programar a sub-rotina:
<script language=”VBScript”>
SUB BOTAO1_ONCLICK()
RodarCli.BOTAO1.Value = “Mudamos o Value!”
END SUB
</script>
Essa sub-rotina será executada no lado cliente (browser). Observe que o parâmetro RUNAT não foi 
configurado na tag <SCRIPT>.
106
Unidade III
O evento que deve disparar a ação será o ONCLICK, ou seja, quando clicarmos no botão, o código 
escrito será executado.
 Lembrete
Não será feito o uso de ferramentas visuais, que disponibilizam os 
objetos de forma gráfica, para a construção da interface gráfica. Todos 
os objetos visuais utilizados serão criados em tempo de execução, através 
de comandos da linguagem VBScript.
Para fazer a referência ao objeto do formulário, é necessário seguir a seguinte sintaxe:
NomeFormulário.NomeObjeto.PropriedadeObjeto
Por exemplo:
RodarCli.BOTAO1.Value
5.4 Diferentes formas de execução de scripts
Agora que já abordamos como incluir scripts nas suas páginas e alguns fundamentos da linguagem, 
serão vistos dois casos em que o Internet Explorer pode executar seus scripts e, em seguida, será 
apresentado o conceito de evento. As formas de execução de VBScript são:
• scripts que são executados enquanto o navegador abre a página;
• scripts que são executados como resposta a uma ação do usuário.
O primeiro caso é utilizado quando se quer fazer algo enquanto o navegador está carregando a 
página. Por exemplo, poderia mostrar uma mensagem de boas-vindas quando o usuário entrar na página 
ou que o navegador informe a respeito da última atualização do documento.
O segundo caso ocorre quando se deseja realizar ações como resposta a comportamentos do usuário. 
Os eventos são ações que ocorrem quando um usuário faz alguma coisa na página web, ou seja, um 
evento poderia ser a escrita de um texto em uma caixa de texto, o posicionamento do mouse sobre 
um link, o clique em um botão etc. Praticamente toda ação executada pelo usuário em uma página web 
tem um evento relacionado.
Ao utilizar os eventos, pode-se preparar algum efeito que seja visível somente quando o usuário 
realizar alguma ação dentro da página web.
Será dado um exemplo para a compreensão das duas formas de execução dos scripts. Vamos fazer 
com que o código retorne a versão do navegador e alguns outros dados em uma caixa de diálogo, e isso 
107
LINGUAGEM DE PROGRAMAÇÃO APLICADA
será feito de duas maneiras: enquanto o usuário carrega a página e no clique de um botão. No exemplo 
a seguir, o script é executado ao carregar a página: 
<html>
<head>
<title>Script de execução direta</title>
</head>
<body>
‘Enquanto se carrega a página veremos a versão do navegador em uma ‘caixa de diálogo.
<script language=vbscript>msgbox(navigator.appVersion)
</script>
</body>
</html>
Esse exemplo é muito parecido com os vistos anteriormente. A única novidade é a variável navigator.
appVersion, a qual retorna na caixa de diálogo a versão do navegador.
Agora podemos ver a execução do script como resposta à ação do usuário. A caixa de diálogo 
contendo a versão do navegador só irá aparecer quando o usuário pressionar o botão.
<html>
<head>
<title>Script de execução como resposta a um evento</title>
</head>
<body>
Clique o botão para ver a versão do navegador
<input type=button value=Clique aqui onclick=”msgbox(navigator.appVersion)”language=
”vbscript”>
</body>
</html>
Esse exemplo tem algumas informações novas que devem ser destacadas:
• cria-se um botão com a tag <INPUT>;
• acrescenta-se o atributo onclick e, com isto, indica-se a ação que se quer realizar como resposta 
ao clique sobre o botão;
• acrescentamos o atributo language para especificar a linguagem em que o código associado ao 
evento está sendo desenvolvido.
Agora temos um botão que, quando se clica, executará o código que abre uma caixa de diálogo com 
a versão do navegador.
108
Unidade III
 Saiba mais
Como referência bibliográfica adicional sobre as linguagens de script, leia:
COSTA, D. G. Administração de redes com scripts: bash script, python e 
VBScript. São Paulo: Brasport, 2007.
5.5 Variáveis em VBScript
5.5.1 Conceito e utilização
Variáveis são elementos básicos de um programa. É tudo aquilo que é sujeito a variações, que é 
incerto, instável ou inconstante. O volume de informações manipuladas em computadores é muito 
grande e diversificado, sendo assim, utilizam-se muitas variáveis no processamento dos dados.
Como já visto anteriormente, as memórias dos computadores armazenam informações de diferentes 
tipos. Para acessar cada uma dessas informações, a princípio, seria necessário saber o tipo de dado de 
cada uma e a posição inicial desse conjunto de bytes na memória.
Percebe-se que essa sistemática de acesso às informações na memória é consideravelmente 
complexa. Para contornar essa situação, criou-se o conceito de variável, um objeto capaz de reter e 
representar um valor ou expressão.
Basicamente, uma variável possui três atributos: um nome, um tipo de dado associado à mesma e 
a informação por ela guardada.
As variáveis possuem um nome para identificá-las e diferenciá-las das demais. Cada linguagem de 
programação pode definir suas próprias regras e boas práticas para definição de nomes de variáveis.
Para os algoritmos, são adotadas as seguintes regras:
• um nome de variável deve, necessariamente, começar com uma letra;
• um nome de variável não deve conter nenhum símbolo especial, exceto ounderscore (_) e nenhum 
espaço em branco;
• um nome de variável não poderá ser uma palavra reservada a uma instrução de programa.
109
LINGUAGEM DE PROGRAMAÇÃO APLICADA
 Observação
Palavras reservadas em linguagens de programação não podem ser 
usadas como um identificador, pois são reservadas para uso da gramática 
da linguagem. Por exemplo, na linguagem de programação VBScript, um 
programador não pode utilizar uma variável com o nome If, pois essa 
palavra é reservada para construção de estruturasde condição.
Exemplos de nomes de variáveis:
• Salário – correto.
• 1ANO – errado (não começou uma letra).
• ANO1 – correto.
• SAL/HORA – errado (contém o caractere / ).
• SAL_HORA – correto.
• _DESCONTO – errado (não começou com uma letra).
Obviamente, é interessante criar variáveis com nomes que se relacionem às funções que irão exercer 
dentro de um programa. Outro atributo característico de uma variável é o tipo de dado que ela pode 
armazenar. Ele define a natureza das informações contidas nela. 
Por último, há o atributo informação, que nada mais é do que o valor contido na variável. Uma vez 
definidos, os atributos nome e tipo de dado de uma variável não podem ser alterados e assim 
permanecem durante toda a sua existência, desde que o programa que a utiliza não seja modificado. 
Por outro lado, o atributo informação está constantemente sujeito a mudanças, de acordo com o fluxo 
de execução do programa.
Em resumo, o conceito de variável foi criado para facilitar a vida dos programadores, permitindo acessar 
informações na memória dos computadores por meio de um nome, em vez de um endereço de memória.
5.5.2 Tipos de dados
O Visual Basic Script possui vários tipos de dados, mas, na prática, só possui um tipo de variável, 
que vai mudando de acordo com a informação que é introduzida. Esse tipo principal de dados é o tipo 
Variant, no qual podemos introduzir vários subtipos de dados.
Para mudar o subtipo de um Variant, é necessário inserir um dado na variável, fazendo-a mudar 
automaticamente de um subtipo a outro, sem que tenhamos que fazer nenhuma operação adicional.
110
Unidade III
Quadro 12 – Subtipos de dados que podem ser utilizados no Variant
Subtipo Descrição
Empty Valor é 0 (zero) para variáveis numéricas e comprimento zero (“”) para variáveis string
Null Variant possui um valor que não é válido
Boolean Verdadeiro ou falso
Byte Inteiro com valores entre 0 e 255
Integer Inteiro com valores entre -32.768 até 32.767
Currency Tipo moeda. Valores entre -922.337.203.685.477.5808 até 922.337.203.685.477.5807
Long Inteiro com valores entre -2.147.483.648 até 2.147.483.647
Single Ponto flutuante com precisão simples. Valores entre: - 3.402823E38 até -1.401298E-45 para números negativos; 1.401298E-45 até 3.402823E38 para números positivos
Double
Ponto flutuante com dupla precisão. Valores entre: – 1.7976931348623E308 e 
-4.94065645841247E-324 para valores negativos e entre 4.94065645841247E-324 e 
1.79769313486232E308 para valores positivos
Date (Time) Contém um número que representa uma data entre 01/01/100 até 31/12/9999
String Contém um comprimento variável de texto que pode chegar até 2 bilhões de caracteres
Object Contém um objeto
No exemplo de código a seguir, podemos ver o tipo de dados Variant assumindo dois subtipos, 
Integer e String.
<% Dim teste
 Dim Mensagem
 teste = 25
 if teste = 30 then
 Mensagem = “O valor de Teste é igual a 30“
 Else
 Mensagem = “O valor de Teste é igual a 25“
 End if
%>
Declaramos duas variáveis do 
tipo Variant, onde Teste assume 
um valor inteiro e Mensagem 
assume o valor string
Figura 30
 Observação
O tipo Variant, sendo um subtipo genérico, é o que utiliza a maior quantidade 
de memória alocada, portanto se deve, sempre que possível, evitar seu uso, 
otimizando a utilização dos recursos de hardware do sistema.
5.6 Funções de conversão de tipos de dados
Utilizaremos as funções de conversão de tipo de dados para forçar uma variável Variant a assumir 
um subtipo específico. Esse passo é importante, pois esse tipo de dados é o que utiliza a maior quantidade 
de memória alocada.
111
LINGUAGEM DE PROGRAMAÇÃO APLICADA
As funções de conversão de dados também podem evitar erros em tempo de execução ou mesmo 
de lógica, se a aplicação, por exemplo, não reconhecer o tipo de dado que está sendo manipulado. Essas 
funções conseguem reconhecer as configurações regionais e interagir com vários formatos diferentes 
de dados sem mudá-los, evitando que erros ocorram.
O quadro a seguir descreve as funções que permitem a conversão de dados:
Quadro 13
Função Valor retornado Descrição
Cbool Boolean Converte uma expressão de uma variante de booleano subtipo
Cbyte Byte Converte uma expressão de uma variante de byte subtipo
Ccur Currency Converte uma expressão de uma variante da moeda subtipo
Cdate Date Converte uma data válida e expressão tempo para a variante do subtipo data
CDbl Double Converte uma expressão de uma variante do subtipo duplo
Cint Integer Converte uma expressão de uma variante de integer subtipo
CLng Long Converte uma expressão de uma variante do subtipo longo
CSng Single Converte uma expressão de uma variante de subtipo único
CStr String Converte uma expressão de uma variante de corda subtipo
5.6.1 Identificando o tipo de dados
Como o VBScript consegue identificar uma série de subtipos de variáveis, é necessário, às vezes, que 
saibamos qual o subtipo que está sendo utilizado no código. Para isso, usa-se a função VarType, 
que identifica o subtipo por um valor numérico. 
Tabela 2 – Valores retornados pela função
Subtipo Valor retornado
Empty 0
Null 1
Integer 2
Long 3
Single 4
Double 5
Currency 6
Date (Time) 7
String 8
Automation object 9
Error 10
Boolean 11
Variant 12
Non-automation object 13
Byte 17
Array 8192
112
Unidade III
O exemplo a seguir demonstra a utilização das funções para conversão de tipo de dados:
<% Dim teste, Mensage, ResultMedia
Function Media(Valor)
 Dim Retorna, cont
 Retorna = 1
 For cont = 1 to Valor
 Retorna = Retorna * Cont
 Next
 Media = Retorna
End Function
teste = 5
if teste = 5 then
 Mensagem = “O valor da variável Teste é igual a 5”
End if
ResultMedia = Media(teste)
%>
<HTML><BODY><center><b>
<FONT COLOR=”#008000”> O tipo que a variável <i>Teste</i> assumiu foi: <% =
VarType(teste) %></FONT><BR>
<FONT COLOR=”#0000C0”>O tipo que variável <i>Mensagem</i> assumiu foi: <% =
VarType(Mensagem)
%></FONT><BR>
<FONT COLOR=”#400040”> O tipo que variável <i>ResultMedia</i> assumiu foi: <% =
VarType(ResultMedia)
%></FONT><BR>
<FONT COLOR=”#0000FF”>As variáveis Retorna e Cont não podem ser referenciadas, pois 
existem apenas quando a Função Media está a ser executada/FONT>
</b></center></BODY></HTML>
Para verificar o subtipo de dados que a variável teste assume, utiliza-se a função:
<% = VarType(teste) %>
Essa função retornará o código numérico correspondente ao subtipo assumido.
Nesse caso (variável teste), o valor retornado é 2, que corresponde ao subtipo Integer. As variáveis 
cont e retorna não podem ser referenciadas, pois existem apenas para a função (Media), não sendo 
enxergadas pelo restante do script.
5.7 Declaração de variáveis
Quando declaramos variáveis, precisamos ter em mente o seu escopo, ou seja, se será uma variável 
utilizada em toda a aplicação ou apenas em um módulo, uma função ou uma sub-rotina. Esse ciclo de 
vida da variável é flexível, ou seja, deve-se definir onde, quando e por quanto tempo ela existirá.
113
LINGUAGEM DE PROGRAMAÇÃO APLICADA
As variáveis no VBScript podem existir em dois níveis ou escopos: script ou procedimento. O termo 
escopo está relacionado a quais pontos do programa aquela variável vai efetivamente existir.
O espaço de tempo, que se refere ao tempo de vida da variável, depende do nível em que foi declarada.
Quando uma variável é definida fora de uma determinada função ou de um procedimento, 
caracterizamos essa variável como global, ou seja, pode ser referenciada em qualquer ponto do script.
5.7.1 Procedimento
Quando se verifica que uma variável precisa ser utilizada apenas para uma função ou procedimento, ela 
é declarada dentro dessa função ou procedimento. Dessa maneira, assim que a função ou procedimento 
deixar de ser executado, a variável deixa de existir na memória.
Uma variável se declara utilizando a palavra dim, vejamos como:
<script language=”vbscript”>
 dim minha_nova_variavel
 ‘Agora que a variável já existe podemos fazer uso dela
 minha_nova_variavel = “Valor da variavel”</script>
Não importa que tipo de informação a variável vai conter, a declaração é feita da mesma forma.
5.7.1.1 Option explicit
A declaração option explicit pode ser utilizada para forçar que variáveis sejam declaradas em nossos 
scripts. Isso pode impedir a ocorrência de erros, quando da tentativa de utilizar uma variável sem tê-la criado.
Essa opção pode ser utilizada para evitar a possível ocorrência de erros em virtude da liberdade de 
não declarar as variáveis. No exemplo do código a seguir, vemos que o sistema gerará uma mensagem 
de erro devido ao uso de uma variável que não foi declarada previamente (tomas). 
<HTML>
<HEAD>
<TITLE>Option explicit</TITLE>
</HEAD>
<BODY>
<script language=vbscript>
option explicit
dim Pepe
pepe = 3
tomas = 87
</script>
</BODY>
</HTML>
114
Unidade III
A seguir, um exemplo mais completo de um script com a adoção de procedimentos e declaração 
de variáveis:
<% Dim teste
Dim Mensagem
Dim ResultMedia
Function Media(Valor)
Dim Retorna
Dim cont
Retorna = 1
For cont = 1 to Valor
Retorna = Retorna + Cont
Next
Retorna = Retorna / cont
Media = Retorna
End Function
teste = 5
if teste = 30 then
Mensagem = “O valor da variável Teste é igual a 30”
Else
Mensagem = “O valor da variável Teste é igual a 5”
End if
ResultMedia = Media(teste)%>
<HTML><BODY>
<CENTER><B><% = mensagem %><BR><BR>
A média ponderada dos valores da variável Teste é igual a: <% = ResultMedia %>
</B></CENTER>
</BODY></HTML>
Explicação do código:
<% Dim teste
Dim Mensagem
Dim ResultMedia
Nesse trecho de código anterior, as variáveis foram declaradas fora de qualquer função ou sub-rotina 
e, sendo assim, podem ser utilizadas ou referenciadas em qualquer parte do script.
Function Media(Valor)
Dim Retorna
Dim cont
Retorna = 1
115
LINGUAGEM DE PROGRAMAÇÃO APLICADA
Diferentemente das variáveis teste, mensagem e resultmedia, as variáveis retorna e cont foram 
declaradas dentro da função media e, sendo assim, só podem ser utilizadas ou referenciadas dentro 
dessa própria função. Para o restante do código, as variáveis retorna e cont não são válidas.
Para declarar variáveis em VBScript, podemos usar algumas declarações e modificadores de acesso 
como, por exemplo: dim, public, static. A seguir, veremos mais detalhes dessas declarações.
Para se declarar uma variável explicitamente, utiliza-se a dim, por exemplo:
Dim nomevar [([dimensão]))
Dim nomevar [([dimensão])), nomevar2
Em que nomevar e nomevar2 são nomes de variáveis, e dimensão representa o número da dimensão 
do vetor.
No exemplo anterior, somos apresentados a um novo tipo de estrutura de dados. Essa estrutura é 
chamada de vetor.
 Observação
Um vetor é uma variável utilizada para armazenar uma coleção de 
informações similares. Essa coleção é acessada através de seu índice, que 
começa na posição 0 (zero). 
A declaração dos vetores é semelhante à das demais variáveis. A única diferença é a opção de 
especificar a quantidade de posições que o seu vetor deverá conter.
O código a seguir cria um vetor com cinco posições. Como os vetores começam com a posição zero, 
cinco posições da variável TipoProduto são alocadas. Podemos ver a declaração da variável do tipo vetor 
(TipoProduto) e também a definição do seu tamanho (5 posições).
Nas linhas seguintes, são inseridos valores do tipo “String” na primeira e na segunda posição 
do vetor.
DimTipoProduto(4) ‘Como o vetor começa com 0 (zero), a primeira posição é 0 e a quinta posição 
é 4
TipoProduto(0) = “Material de Construção”
TipoProduto(1) = “Material Escolar”
116
Unidade III
 Lembrete
A opção Option Explicit não indica quando variáveis que foram 
declaradas não estão sendo utilizadas no código. A criação de variáveis 
é uma atividade que deve ser feita com muito critério, evitando, dessa 
forma, definições desnecessárias e consequente elevação da utilização dos 
recursos de hardware.
5.7.1.2 Função ReDim
A instrução ReDim pode ser usada para dimensionar ou redimensionar um vetor dinâmico. Para 
o VBScript, os vetores podem ser definidos como estáticos ou dinâmicos. Um vetor estático tem 
seu número de índices definido na declaração, como o vetor que foi definido no exemplo anterior 
(TipoProduto), que possui cinco posições. Já um vetor dinâmico pode variar o seu número de posições, 
sendo definido quando a aplicação é executada. Podemos criar um vetor dinâmico apenas declarando-o 
com os parênteses vazios (sem subíndices de dimensão).
Sendo assim, os vetores dinâmicos são utilizados quando a alocação de memória precisar ser dinâmica, 
ou seja, o vetor pode assumir vários tamanhos, podendo aumentar ou diminuir. Se, ao aumentar o 
tamanho de um vetor, precisarmos manter os elementos já inclusos nas posições existentes, devemos 
utilizar o comando preserve, garantindo, assim, que o conteúdo dos campos que haviam previamente 
no vetor sejam mantidos.
Por exemplo, o código a seguir cria um vetor dinâmico chamado ProdutosSelecionados e o 
redimensiona com três posições. A última linha expande o número de elementos do vetor para seis. 
Como está sendo utilizada a cláusula preserve, o conteúdo já incluso no vetor permanecerá.
Dim ProdutosSelecionados()
ReDim ProdutosSelecionados(3)
ProdutosSelecionados(0) = “Caderno”
ReDim Preserve ProdutosSelecionados(6)
5.7.1.3 Modificador de acesso public
Uma variável declarada com o modificador de acesso public pode ser referenciada por todas as 
procedures de todos os scripts. Também é possível declarar vetores estáticos ou dinâmicos com a 
cláusula public.
Sintaxe
Public nomevar[([dimensão])]
Em que nomevar é o nome do vetor, e dimensão é seu número de elementos.
117
LINGUAGEM DE PROGRAMAÇÃO APLICADA
5.7.1.4 Modificador de acesso private
Uma variável declarada com o modificador de acesso private tem um nível de acesso mais restrito e 
consequentemente um grau de segurança um pouco maior, uma vez que só podem ser referenciadas no 
escopo (ou script) em que foram declaradas. Também é possível declarar vetores estáticos ou dinâmicos 
com a cláusula private.
Sintaxe
Private nomevar[([dimensão])]
Em que nomevar é o nome do vetor, e dimensão é seu número de elementos.
6 OPERADORES E ESTRUTURAS DE FLUXO DE EXECUÇÃO
6.1 Operadores de execução
Podemos definir os operadores em linguagens de programação como sendo os componentes 
que definem as operações a serem realizadas entre dois operandos, resultando em um determinado 
valor, que depende do tipo de dados que participam. Eles se classificam em alguns tipos como 
veremos a seguir.
6.1.1 Operadores aritméticos
A linguagem VBScript é muito rica em operadores, que ajudam a manipular as variáveis em suas 
páginas ASP, como é o caso dos operadores que executam operações aritméticas. A seguir, estão 
relacionados os operadores aritméticos binários, ou seja, que executam operações entre dois operandos.
Quadro 14
Símbolo Operação
+ Soma
- Subtração
* Multiplicação
/
Divisão em vírgula flutuante. É a 
divisão normal devolvendo um 
número real se for o resultado
\ Divisão de inteiros. Devolve um número inteiro, resultado da divisão
^ Potência
Mod Resto da divisão
Vejamos, a seguir, um exemplo de script que realiza ações com esses operadores:
118
Unidade III
dim v1
dim v2
v1 = 34
v2 = 43
soma = v1 + v2
subtracao = v1- v2
potencia = v1 ^ v2
divisaoInteiros = v1 \ v2
msgbox(divisaoInteiros)
DivisaoReal = v1 /v2
msgbox(divisaoReal)
A função msgbox mostra uma janela de alerta típica do Windows, com o conteúdo passado a ela 
via parâmetro. 
O operador (=) em VBScript não tem a interpretação dada em matemática. Ele representa a atribuição 
da expressão à direita ao nome da variável à esquerda. Já os operadores +, -, / e * representam as 
operações aritméticas básicas de soma, subtração, divisão e multiplicação, respectivamente.
6.1.2 Operadores relacionais
Os operadores relacionais são usados para fazer comparações entre valores do mesmo tipo. Em VBScript, 
não existe um tipo de variável chamada booleana, isto é, que assume um valor verdadeiro ou falso. O valor 
zero (0)é considerado falso, e qualquer valor diferente de 0 é considerado verdadeiro e é representado pelo 
inteiro 1. Os operadores relacionais comparam dois operandos e retornam 0 se o resultado for falso e 1 se 
o resultado for verdadeiro. Os operadores relacionais disponíveis em VBScript são:
Quadro 15
Símbolo Operação
= Igual
<> Diferente
> Maior que
< Menor que
>= Maior ou igual que
<= Menor ou igual que
A seguir, um exemplo de script que realiza operações de comparação. Antes de mais nada, 
pontuemos que os operadores de comparação costumam ser utilizados dentro de uma estrutura 
condicional e realizam ações dependendo do resultado das comparações realizadas dentro dessas 
estruturas. Por esse motivo, incluímos no script a estrutura condicional if, que veremos com 
profundidade mais adiante.
119
LINGUAGEM DE PROGRAMAÇÃO APLICADA
preco = 20000
dinheiroAtual = 3500
if (dinheiroAtual = preco) then
 msgbox (“está certinho”)
end if
if (dinheiroAtual < preco) then
 msgbox (“falta dinheiro”)
end if
Perceba que o operador relacional de igualdade (=) tem a mesma simbologia do operador de 
atribuição, portanto, deve-se tomar muito cuidado na aplicação de ambos, pois o interpretador não 
acusará erro de execução no caso de sua utilização incorreta.
6.1.3 Operadores lógicos
Os operadores lógicos são empregados na comparação entre dois valores booleanos (0 ou 1), por 
isso, são denominados operadores lógicos binários. Como operadores lógicos em VBScript, temos:
Quadro 16
Operador Operação
AND E lógico
OR OU lógico
XOR XOR
NOT NÃO lógico
No código a seguir, podemos ver um exemplo de utilização dos operadores lógicos em VBScript:
Dim a : a = 10
Dim b : b = 0
Dim c
 If a<>0 AND b<>0 Then
 msgbox (“AND Resultado do operado é : True”)
 Else
 msgbox (“AND Resultado do operado é : False”)
 End If
 If a<>0 OR b<>0 Then
 msgbox (“OR Resultado do operado é : True”)
 Else
 msgbox (“OR Resultado do operado é : False”)
 End If
 If NOT(a<>0 OR b<>0) Then
 msgbox (“NOT Resultado do operado é : True”)
120
Unidade III
 Else
 msgbox (“NOT Resultado do operado é : False”)
 End If
 If (a<>0 XOR b<>0) Then
 msgbox (“XOR Resultado do operado é : True”)
 Else
 msgbox (“XOR Resultado do operado é : False”)
 End If
6.1.4 Operadores de concatenação
Esse tipo de operador tem a função de interligar duas cadeias de caracteres (strings). Podemos 
concatenar as cadeias de strings utilizando tanto o operador & quanto o operador +. Vejamos um 
exemplo de utilização:
Dim a : a = “Microsoft”
Dim b : b = “VBScript”
Dim c
c=a+b
 x=msgbox (“Concatenação do valor:1 é “ &c) ‘Adiciona um valor
 c=a&b
 x=msgbox (“Concatenação do valor:2 é “ &c) ‘Concatena dois valores
6.2 Estruturas de fluxo de execução
6.2.1 Estruturas de decisão
Uma das tarefas fundamentais de qualquer programa é tomar decisões ao longo de sua execução. 
Os comandos de decisão permitem determinar qual é a ação a ser tomada, com base no resultado 
de uma expressão condicional. O funcionamento é simples, com base no resultado de uma expressão 
booleana (verdadeiro ou falso), o fluxo do algoritmo segue para um bloco de instruções, ou não.
6.2.1.1 If...then
O comando if serve para alterar o fluxo de execução de um programa, baseado no valor booleano (verdadeiro 
ou falso), de uma expressão lógica ou um conjunto delas. A sintaxe de estrutura é mostrada a seguir:
IF (expressão) then
Sentenças
....
END IF
Em primeiro lugar, tem-se a sentença if, logo depois uma expressão, que pode ou não ir entre 
parênteses, e, mais tarde, a palavra then. Na linha seguinte, é inserido o bloco de código que será 
121
LINGUAGEM DE PROGRAMAÇÃO APLICADA
executado caso a expressão seja verdadeira. Depois de colocar as sentenças associadas à avaliação 
positiva, é utilizado um end if para finalizar a estrutura do if.
6.2.1.2 If...then...else
Opcionalmente, pode-se colocar uma série de sentenças associadas à avaliação negativa da expressão. 
Essas sentenças devem ser colocadas depois da ordem else e antes do end if. A seguir, a sintaxe desse 
tipo de estrutura:
IF (expressão) then
Sentenças
....
ELSE
Sentenças
....
END IF
6.2.1.3 If...then...elseif
Em VBScript, existe a possibilidade de utilizar um enunciado especial no lugar do comando else. 
Isso serve para encadear sentenças if, de modo que em um resultado negativo de um if possa se avaliar 
outra expressão que teria, por sua vez, outros enunciados then e provavelmente else ou novamente 
elseif. Veja o exemplo em seguida:
IF (expressao1) then
Sentencas1
....
ELSEIF (expressao2) then
Sentencas2
....
ELSEIF (expressao3) then
Sentencas3
....
ELSE
Sentencas4
....
END IF
Avalia-se a primeira expressão; em caso positivo, executam-se as sentencas1; no caso negativo, avalia-se 
a expressao2. Se a expressao2 for positiva, executam-se as sentencas2; em caso negativo, avaliamos a 
expressao3. Se a expressão 3 for positiva, executam-se as sentencas3, e se nenhuma das expressões for 
positiva ele executa as sentencas4. A seguir, um exemplo de aplicação desse tipo de estrutura:
122
Unidade III
Dim strCountry
strCountry = “USA”
If strCountry = “USA” Then
 MsgBox(“United States of America.”)
ElseIf strCountry = “CA” Then
 MsgBox(WScript.Echo “Canada.”)
Else
 MsgBox(WScript.Echo “Some other country.”)
End If
6.2.1.4 Select case
A estrutura select case busca uma variável definida dentro de uma lista de conjuntos possíveis. 
Se a variável pertencer àquele conjunto, o código imediatamente abaixo de case é executado. A diferença 
dessa estrutura com a estrutura do if se dá pelo fato de a estrutura select case não permitir comandos 
condicionais, apenas valores. Após a execução da estrutura, o bloco é finalizado com a instrução end 
select. Veja a sintaxe da estrutura a seguir:
SELECT CASE (variável)
 CASE (valor1):
 (ação para caso valor1)
 CASE (valor3):
 (ação para caso valor2)
 CASE (valor3):
 (ação para caso valor3)
 CASE ELSE:
 (ação em caso de que não se cumpra nenhum anterior caso)
End Select
Vejamos agora um exemplo para facilitar o entendimento dessa estrutura. Faremos um cálculo 
fictício de imposto de renda. Suponha a seguinte tabela de imposto de renda:
Tabela 3
Índice Salário
0% R$ 800,00
2% R$ 1.000,00
4% R$ 3.000,00
6% R$ 6.000,00
Nossa variável é o salário e cada valor é um conjunto. Observe:
123
LINGUAGEM DE PROGRAMAÇÃO APLICADA
Select Case salário
 Case 800
 taxa = 0
 msgbox (“Salário é igual a 800”)
 Case 1000
 taxa = 2
 msgbox (“Salário é igual a 1000”)
 Case 3000
 taxa = 4
 msgbox (“Salário é igual a 3000”)
 Case 6000
 taxa = 6
 msgbox (“Salário é igual a 6000”)
 Case else
 msgbox (“Salário fora dos valores”) 
End Select
No código anterior, a variável salário será comparada com cada valor de salário. Quando a variável 
salário for igual ao valor, a taxa é definida, uma caixa de texto será apresentada e a instrução pula para 
end select, encerrando o procedimento.
6.2.2 Estruturas de repetição
As estruturas de repetição – também conhecidas como estruturas de looping – permitem a execução 
de grupo ou bloco de instruções repetidamente. As instruções podem ser repetidas até que uma condição 
seja falsa ou até que seja verdadeira.
Essa é uma prática bem comum, pois, em muitos casos, é preciso percorrer uma determinada coleção 
de dados, um conjunto de registros, índices em matrizes etc.
6.2.2.1 Laço FOR
A sentença for é utilizada para os loops, quando se sabe o número de vezes que o bloco de código 
deve ser executado. A seguir, sua sintaxe: 
FOR (iniciacao) TO (termo do loop) STEP (passo)
sentencas
........
NEXT
A Instrução realiza uma repetição através da iniciação até o termo do loop. Essa estrutura percorre 
todos os elementos de uma lista e, a cada visita, executa as sentenças presentes no bloco. O comando 
next serve para delimitar o final do loop, voltando outra vez ao princípio do for, assim até realizar o 
número de execuções determinado.
124
Unidade III
O parâmetro STEP determina a quantidade de incremento ou decremento à qual a variávelserá 
submetida. No exemplo a seguir, o contador de uma variável j é incrementado em 2 unidades. Quando 
o laço é terminado, a variável total terá a soma de 2, 4, 6, 8 e 10. 
Sub SomaStep() 
 Dim j, total 
 For j = 2 To 10 Step 2 
 total = total + j 
 Next 
 MsgBox (“O Total é “ & total )
End Sub
6.2.2.2 Laço FOR EACH
O laço for each é parecido com o laço for next, porém, em vez de percorrer os elementos um número 
específico de vezes, o laço for each percorre o laço para cada item de uma coleção de objetos.
Vejamos o exemplo da estrutura de controle a seguir. Primeiro, cria-se um vetor, preenchido com 
valores numéricos em cada um de seus campos através de um loop for next comum. Em seguida, é 
utilizado o loop for each para acessar cada uma das posições desse vetor de números e escrever na 
página cada um deles.
dim tor(20)
for i=1 to 20
 tor(i)=i
next
for each i in tor
 response.write(tor(i))
next
No segundo loop, indica-se que para cada i (i é o índice com o qual podemos nos mover no loop e 
na estrutura) dentro de tor (que é a estrutura, nesse caso, um vetor) faça um response.write(tor(i)). 
Com tor(i), acessa-se o índice atual e response.write() serve para escrever algo na página web. Combinados, 
o que é escrito, então, é o conteúdo da posição atual do vetor.
6.2.2.3 Laço WHILE ... WEND
O laço de repetição while ... wend realiza um tipo de loop muito utilizado em programação, que é o 
loop enquanto. Esse loop é executado enquanto uma determinada condição for verdadeira.
A diferença dessa estrutura em relação à estrutura do laço for é que esta é utilizada quando não 
conhecemos o número de iterações que temos que realizar. 
125
LINGUAGEM DE PROGRAMAÇÃO APLICADA
Seu funcionamento é assim: a condição é testada e, se for verdadeira, as sentenças serão executadas 
até encontrar a declaração wend. Em seguida, o controle retorna para a declaração while e a condição é 
verificada novamente. Se a condição ainda for verdadeira, o processo é repetido. Se for falsa, a execução 
é encerrada. Veja, a seguir, a sintaxe do comando:
WHILE (condicao)
sentenças
....
WEND
O código a seguir realiza a somatória de números inteiros enquanto o valor for menor do que 13. 
Em cada iteração do laço, o número é apresentado em uma janela. Também é possível alterar o 
número nessa mesma janela. Se introduzirmos um novo número nela, a conta continuará a partir do número 
introduzido. Se o número introduzido for maior que 13, o loop será finalizado.
option explicit
dim a
a = 0
WHILE (a < 13)
 a = a + 1
 a=inputbox(“Entre com um valor inteiro”,”Petição de número”,a,200,100)
WEND
6.2.2.4 Laço DO ... LOOP
O laço do ... loop é muito versátil. Ele, além de ser simples, é um dos mais flexíveis. Pode ser combinado 
às instruções while e until. A diferença entre essas duas combinações é o modo como a estrutura avalia 
a expressão lógica. A sintaxe fica da seguinte forma:
DO [WHILE | UNTIL (condição)]
 sentenças
........
LOOP [WHILE | UNTIL (condição)]
Entre o do e o loop, colocaremos as sentenças que queremos executar em cada iteração do loop. 
Os loops têm que avaliar em cada iteração se continuam executando as sentenças ou não. Para isso, 
avaliam uma condição. A versatilidade desse loop é que a condição pode ser expressa de modo que:
• a condição ao lado do comando do é avaliada antes de começar a se executar o loop;
• a condição ao lado do comando loop é avaliada depois de se executar o loop. Nesse caso, o loop 
será executado pelo menos uma vez.
126
Unidade III
Na sequência, vejamos dois exemplos dessa construção, para melhor compreender seu 
funcionamento. O exemplo pede constantemente o nome do autor da página até que o nome digitado 
seja “Miguel”. O usuário também tem a possibilidade de escrever “out” e, nesse caso, o loop é 
encerrado através da sentença exit do, utilizada para finalizar loops.
Dim entrada
entrada = “”
DO WHILE (entrada <> “Miguel”)
 entrada = inputbox (“Diga o nome do autor”,”seguraca”,”Miguel”,2,3)
if (entrada = “out”) then
 msgbox “saia pela porta dos fundos”
 exit do
end if
LOOP
Este outro exemplo apresenta uma janela em que existem dois botões: repetir e cancelar. Pressionando 
o botão “repetir”, é realizada a soma dos números inteiros até que o valor 6 seja alcançado e, após isso, o 
loop é finalizado. Se o botão “cancelar” for pressionado, o loop é finalizado no mesmo instante e uma 
janela com uma mensagem de cancelamento é apresentada.
option explicit
dim cont
dim resposta
cont = 0
DO
 cont = cont + 1
 resposta = msgbox (cont,69,”Variavel do loop, com valor 6 se sair”)
 if (resposta = 2) then
 msgbox “Conta Cancelada”,16,”Cancelou!”
exit DO
 end if
LOOP UNTIL (cont = 6)
 Saiba mais
No fim da década de 1970, surgiu uma nova linguagem de programação 
voltada para o ensino, principalmente de crianças e adolescents. Essa 
linguagem se chama Logo. Versões desse programa ainda podem ser 
encontradas gratuitamente na internet. Para aqueles que tiverem a 
curiosidade, o site xLogo oferece gratuitamente o manual e o programa:
<http://xlogo.tuxfamily.org/pt/>.
127
LINGUAGEM DE PROGRAMAÇÃO APLICADA
6.3 Array
Os arrays são estruturas de dados muito utilizadas em qualquer linguagem de programação. Trata-se 
de variáveis que podem guardar uma quantidade maior de elementos, pois possuem compartimentos 
em que a informação pode ser salva. O acesso a esses compartimentos é feito através de índices. 
Antes de utilizar um array, devemos declará-lo de maneira obrigatória. Para isso, utilizamos a 
palavra-chave dim, da seguinte maneira: 
dim meuArray(20)
Depois de utilizá-la, deve-se indicar o nome do array e, a seguir, entre parênteses, coloca-se seu 
número de posições, nesse caso, 20.
Os arrays em VBScriptse iniciam na posição 0, ou seja, o primeiro elemento de um array está na 
posição 0. Portanto, se o array foi definido com 20 campos, como no exemplo, terá 21 elementos, 
primeira posição será a 0 e a última posição será a 20.
 Observação
Em VBScript, assim como na maioria das linguagens de programação, 
os índices de listas são “zero-based”, ou seja, começam a contar do zero (0), 
e não do um (1), como estamos acostumados em nosso dia a dia.
A atribuição de um valor em um array é semelhante à atribuição em variáveis comuns, porém é 
necessário indicar a posição em que o valor será atribuído, conforme pode ser visto na sintaxe em seguida:
meuArray(0) = 234
Para utilizar o conteúdo de um array, deve-se indicar o índice que se deseja acessar. Por exemplo, caso 
se queira imprimir na página a primeira posição do array, essa ação deverá ser feita da seguinte maneira:
response.write(meuArray(0))
A seguir, um exemplo sobre como utilizar os arrays. O primeiro laço preenche o array com valores, e 
o segundo imprime o conteúdo de cada posição do array na página.
dim matriz (10)
for i=1 to 10
 matriz(i)=100 * i
next
for i=1 to 10
 response.write(“Posicao “ & i & “: “ & matriz(i) & “<br>”)
next
128
Unidade III
6.3.1 Arrays multidimensionais
Os arrays multidimensionais, também chamados de matrizes, são estruturas de dados que armazenam 
os valores em mais de uma dimensão. Os arrays vistos anteriormente armazenam valores em apenas 
uma dimensão, por isso, para acessar as suas posições, utilizamos somente um índice. Os arrays de duas 
posições, por exemplo, armazenam os valores de alguma forma, como em linhas e colunas e, por isso, 
é necessário dois índices para acessar cada uma de suas posições. Por exemplo, pode-se definir uma 
matriz de 8x8 dessa maneira:
dim meuArray2Dimensoes (7,7)
Como o array é de oito linhas e oito colunas, utilizamos o tamanho sete (de zero a sete). Para 
escrever e ler o array, pode-se utilizar a vírgula de maneira similar a como se declara. Por exemplo, 
para colocar dados na coluna 2 da linha 1, deve-se fazer o seguinte:
meuArray2Dimensoes (1,2) = “texto posicao 1,2”
6.3.2 Redimensionamento de array
Existem situações em que é necessário alterar o tamanho de um array em tempo de execução, ou 
seja, conforme o código vai sendo executado.Chamamos esse tipo de array, que se redimensiona, de 
array dinâmico. Para criá-lo, utiliza-se o comando dim (como os anteriores) ou o comando redim, com a 
particularidade de que não se coloca nenhum valor entre parênteses, onde antes se indicava o tamanho 
do array.
dim meu_array()
redim meu_outro_array()
Quando são utilizados arrays dinâmicos, pode-se usar a sentença redim para indicar o número de 
dimensões e a quantidade de campos de cada dimensão. Com essa sentença, indica-se que meu_array 
deve ter o tamanho 10. Campos desde 0 até a 10.
redim meu_array(10)
O comando preserve garante que o conteúdo dos campos previamente existentes no array 
sejam preservados.
redim preserve meu_array(20)
Por último, se em qualquer momento for reduzido o número de posições do array, perde-se o que 
possa ter sido salvo nessas posições.
No exemplo a seguir, foi criado um array dinâmico. Em seguida, este array foi redimensionado 
para o tamanho três. Seus campos são preenchidos e seus valores apresentados. Posteriormente, 
redimensionou-se o array para o tamanho sete, salvando os valores antigos através do comando preserve. 
129
LINGUAGEM DE PROGRAMAÇÃO APLICADA
Após isso, os novos campos criados foram preenchidos e a sequência do código apresenta um laço que 
escreve o conteúdo de todo o array na página.
dim frutas()
redim frutas(3)
frutas(0) = “Pêra”
frutas(1) = “Uva”
frutas(2) = “Maçã”
frutas(3) = “Melão”
for each in frutas
response.write frutas(i) & “<br>”
next
redim preserve frutas(7)
frutas(4) = “Melancia”
frutas(5) = “Laranja”
frutas(6) = “Banana”
frutas(7) = “Tangerina”
for each i in frutas
response.write frutas(i) & “<br>”
next
6.3.3 Obtendo o número de campos de um array
Um dos dados típicos que necessitamos extrair de um array é seu número de posições. Isso é útil, por 
exemplo, para percorrer um array desde o primeiro até o último campo. Para isso, é utilizada a função 
uBound(). Essa função retorna um valor contendo o maior índice para a dimensão definida de um array. 
Por exemplo:
dim cidades(5)
document.write ubound (cidades)
Na página, seria escrito o número do maior índice do array cidades, nesse caso, cinco.
Temos disponível a função lBound(), que devolve o número da posição com índice menor do array.
document.write lbound (cidades)
Na página, seria escrito o número do menor índice do array cidades, nesse caso, zero, visto que o 
array começa na posição zero.
6.4 Funções e procedimentos
As funções e procedimentos são recursos muito utilizados em programação, pois servem para 
agrupar um conjunto de instruções de acordo com a tarefa que elas desempenham. Por exemplo, 
quando chamamos a função response.write para imprimir informações na tela, não há preocupação de 
como o programa realiza essa tarefa, pois a função já realiza esse serviço da forma adequada.
130
Unidade III
Essas estruturas, quando bem empregadas, facilitam bastante a organização modular do programa, 
permitindo a reutilização de suas partes, além de facilitar a sua manutenção.
Esses blocos de código são designados a cumprir uma tarefa particular. Provavelmente, a 
principal razão de sua existência é não precisar copiar o código todas as vezes que precisar executar 
determinada operação.
A primeira atitude a ser tomada ao se criar uma estrutura desse tipo é pensar no motivo pelo 
qual ela será criada, a informação que precisará para ser executada (e que terá que ser recebida como 
parâmetro) e a informação que será devolvida. Com essas ideias em mente, podem-se construir os 
procedimentos e funções sem muita dificuldade, seguindo a estrutura a seguir.
Sub nome (parametro1, parametro2...)
... Código do procedimento
end Sub
Para uma função
Function nome (parametro1, parametro2...)
... Código da função
end Function
6.4.1 Procedimentos ou sub
Os procedimentos diferem das funções apenas por não retornarem resultado. A seguir, um exemplo 
de procedimento. Este procedimento chamado de “digaOla”, quando chamado, exibe uma mensagem 
em uma caixa de texto contendo o seguinte texto: “Olá pessoal!”
<!DOCTYPE html>
<html>
<body>
<script language=”vbscript” type=”text/vbscript”>
Sub digaOla()
 msgbox(“Olá pessoal!”)
End Sub
</script>
</body>
</html>
6.4.2 Funções
Como visto na definição dos procedimentos, as funções são blocos de códigos que retornam um 
valor ao serem chamadas pelo programa principal. Vejamos o exemplo que segue. Foi criada uma função 
que realiza um cálculo matemático e retorna o resultado do mesmo. O código da função será o seguinte:
131
LINGUAGEM DE PROGRAMAÇÃO APLICADA
function operar (operador,op1,op2)
select case operador
 case “+”:
 operar = op1 + op2
 case “-”:
 operar = op1 - op2
 case “*”:
 operar = op1 * op2
 case else:
 operar = op1 / op2
end select
end function
A função recebe três parâmetros: o primeiro é um operador, que nada mais é do que um texto com 
o sinal da operação a ser realizada; os dois seguintes são os números que serão utilizados no cálculo.
A função realiza uma operação matemática, dependendo do operador, e devolve, em cada caso, o 
resultado conveniente. Para devolver um valor, deve-se realizar uma atribuição do nome da função ao 
valor que se deseja devolver. A seguir, o código que pode ser utilizado para fazer a chamada à função.
meuOperador=”+”
meuOperando1=221
meuOperando2=32
resultado = operar(meuOperador,meuOperando1,meuOperando2)
No final de todas essas sentenças, a variável resultado terá como valor 253.
 
 Resumo
Nesta unidade, apresentamos os principais conceitos de uma linguagem 
de programação baseada em scripts, a linguagem VBScript. Mostrou-se 
como um script é inserido dentro de uma página desenvolvida para web 
através da criação de páginas com extensão ASP. 
A estrutura de uma página ASP, com seus marcadores e formatações, 
foi demonstrada através de alguns exemplos, bem como os requisitos 
necessários para que uma página ASP possa ser executada por um sistema 
operacional. Foram apresentadas as principais características da linguagem 
VBScript, como tipos de dados, quais os operadores e as estruturas de 
controle de fluxo de execução de um código. Mostrou-se como criar, 
através de um código, botões, caixas de texto e mais alguns objetos para 
interação direta do usuário com o software. Tipos de variáveis e formas de 
declará-las foram demonstradas com exemplos para fácil entendimento.
132
Unidade III
 Exercícios
Questão 1. (Esaf 2008) Quanto à estrutura, propriedades e sintaxe da linguagem de programação 
VBScript, é correto afirmar que:
A) A instrução de tratamento de erro “On Error Clear” faz com que o Script continue funcionando, 
caso este erro ocorra em tempo de execução. Apesar de a mensagem de erro não ser gerada, o 
objeto Err armazena as informações da origem do erro.
B) A instrução de tratamento de erro “On Error Resume Next” permite que o script corrija um erro 
e continue funcionando caso este erro ocorra em tempo de execução. Uma mensagem de erro é 
gerada apenas para informar que ocorreu erro.
C) Sempre que o script encontra um erro em tempo de execução, as propriedades do objeto Err são 
preenchidas automaticamente com as informações que identificam o erro.
D) Sempre que o objeto de automação for responsável pelo erro, a mensagem “Microsoft VBScript 
runtime error” é exibida como a origem.
E) Após a ocorrência de um erro, os valores das propriedades do objeto Err são reinicializados 
automaticamente com valor null sempre que uma nova linha do script é executada com sucesso.
Resposta correta: alternativa C. 
Análise das alternativas
A) Alternativa incorreta. 
Justificativa: sem tratamento de erros, qualquer erro de tempo de execução que ocorre é fatal: uma 
mensagem de erro é exibida e a execução é interrompida.
B) Alternativa incorreta. 
Justificativa: o VBScript não suporta o conceito de continuar a execução em um rótulo de tratamento 
de erros. Em outras palavras, você não pode usar On Error GoTo no VBScript. Em vez disso, use On Error 
Resume Next. 
C) Alternativa correta. 
Justificativa:isso realmente acontece quando se encontra o erro em tempo de execução. 
D) Alternativa incorreta. 
133
LINGUAGEM DE PROGRAMAÇÃO APLICADA
Justificativa: Microsoft VBScript runtime error é o Err.Source.
E) Alternativa incorreta. 
Justificativa: suas propriedades serão preenchidas como o tipo de erro. 
Questão 2. (FGV 2010) No desenvolvimento de sistemas interativos para a web, o recurso ASP possui 
a seguinte característica:
A) Tecnologia executada nativamente em servidores Linux, através do serviço chamado IIS, codificada 
em linguagem de marcação DHTML.
B) Tecnologia executada nativamente em servidores Windows, através do serviço chamado ActiveX, 
codificada em linguagem de marcação XML.
C) Estrutura de programação em script que se utiliza de Perlscript ou Python, processada pelo lado 
do cliente para geração de conteúdo estático na web.
D) Estrutura de programação em VBscript que se utiliza de Ajax e C#, processada pelo lado do 
servidor para geração de conteúdo dinâmico na web.
E) Estrutura de programação em script que se utiliza de VBScript ou Jscript, processada pelo lado 
servidor para geração de conteúdo dinâmico na web.
Resolução desta questão na plataforma.

Outros materiais